sealed trait O
object A extends O
object B extends O
object Test {
def test(x: O) =
(x, x, x, x, x, x, x, x, x, x, x, x, x, x) match {
case (A, A, _, _, _, _, _, _, _, _, _, _, _, _) => 1
case (_, _, A, A, _, _, _, _, _, _, _, _, _, _) => 2
case (_, _, _, _, A, A, _, _, _, _, _, _, _, _) => 3
case (_, _, _, _, _, _, A, A, _, _, _, _, _, _) => 4
case (_, _, _, _, _, _, _, _, A, A, _, _, _, _) => 5
case (_, _, _, _, _, _, _, _, _, _, A, A, _, _) => 6
case (_, _, _, _, _, _, _, _, _, _, _, _, A, A) => 7
case (B, A, B, A, B, A, B, A, B, A, B, A, B, A) => 8
}
}