1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
sealed abstract class Z
object Z {
object Z0 extends Z
case class Z1() extends Z
object Z2 extends Z
case class Z3() extends Z
object Z4 extends Z
case class Z5() extends Z
object Z6 extends Z
case class Z7() extends Z
object Z8 extends Z
case class Z9() extends Z
object Z10 extends Z
case class Z11() extends Z
object Z12 extends Z
case class Z13() extends Z
object Z14 extends Z
case class Z15() extends Z
object Z16 extends Z
case class Z17() extends Z
object Z18 extends Z
case class Z19() extends Z
}
// drop any case and it will report an error
object Test {
import Z._
def foo(z: Z) = z match {
case Z0 | Z1() | Z2 | Z3() | Z4 | Z5() | Z6 | Z7() | Z8 | Z9() |
Z10 | Z11() | Z12 | Z13() | Z14 | Z15() | Z16 | Z17() | Z18 | Z19()
=>
}
}
|