1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
sealed abstract class Const {
final def excludes(other: Const) =
(this, other) match {
case (_, NullConst) =>
case (NullConst, _) =>
case (_: ValueConst, _: ValueConst) =>
case (_: ValueConst, _: TypeConst) =>
case (_: TypeConst, _: ValueConst) =>
case (_: TypeConst, _: TypeConst) =>
case (null, _) =>
case (_, null) =>
case null =>
case _ => // unreachable
}
}
sealed class TypeConst extends Const
sealed class ValueConst extends Const
case object NullConst extends Const
|