blob: 13911dbd7869144fa8a6567db181af586e60c473 (
plain) (
tree)
|
|
sealed abstract class X
sealed case class A(x: Int) extends X
// test reachability on mixed sealed / non-sealed matches
object Test extends App {
val B: X = A(0)
val C: X = A(1)
// all cases are reachable and the match is exhaustive
(C: X) match {
case B =>
case C =>
case A(_) =>
}
(true: Boolean) match { case true => } // not exhaustive, but reachable
(true: Boolean) match { case true => case false => } // exhaustive, reachable
(true: Boolean) match { case true => case false => case _ => } // exhaustive, last case is unreachable
(true: Boolean) match { case true => case false => case _: Boolean => } // exhaustive, last case is unreachable
(true: Boolean) match { case true => case false => case _: Any => } // exhaustive, last case is unreachable
}
|