Почему следующее не выдает предупреждение, когда -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, без достаточного ответа.
EDIT
@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
!