क्यों निम्नलिखित एक चेतावनी का उत्पादन नहीं करता, के गुम चेतावनी जब -unchecked
सक्षम है:गैर संपूर्ण मैच
object Order {
sealed trait EntryOption
case object EmptyEntry extends EntryOption
trait Entry extends EntryOption
def isEmpty(a: EntryOption): Boolean = a match {
case EmptyEntry => true
// case _: Entry => false
}
}
ऐसा लगता है मैं वास्तव में स्काला 2.8.0 के दिनों में same problem before था, कोई साथ पर्याप्त उत्तर
संपादित
@Jed यह मेरे लिए कोई मतलब नहीं है कि चेतावनी केवल एक गैर सार वर्ग Entry
के लिए उत्सर्जित होता है। निम्नलिखित स्थिति पर विचार करें: चेतावनी प्रदर्शित करने के लिए
trait Order {
sealed trait EntryOption
case object EmptyEntry extends EntryOption
abstract sealed class Entry extends EntryOption
def isEmpty(a: EntryOption): Boolean = a match {
case EmptyEntry => true
// case _: Entry => false
}
}
trait OrderImpl extends Order {
final class EntryImpl extends Entry
}
एक ही तरीका है एक ठोस वर्ग Order
में Entry
है!
https://issues.scala-lang.org/browse/SI-4691 –