Почему следующее не выдает предупреждение, когда -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
}
}
Кажется, у меня была точно такая же проблема до во времена Scala 2.8.0, без достаточного ответа.
РЕДАКТИРОВАТЬ
@ 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
}
Единственный способ сделать предупреждение - иметь конкретный класс Entry
в Order
!