Tại sao không phải là sau tạo ra một cảnh báo, khi được kích hoạt -unchecked
:cảnh báo Thiếu của trận đấu không đầy đủ
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
}
}
Có vẻ như tôi đã chính xác same problem before trong những ngày của Scala 2.8.0, không có câu trả lời đầy đủ.
EDIT
@Jed Nó không có ý nghĩa đối với tôi rằng cảnh báo được phát ra chỉ cho một lớp học không trừu tượng Entry
. Hãy xem xét các tình huống sau đây:
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
}
Cách duy nhất để làm cho cảnh báo xuất hiện là để có một lớp bê tông Entry
trong Order
!
https://issues.scala-lang.org/browse/SI-4691 –