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, x) match {
case (A, A, A, A, A, _, _, _, _, _, _, _, _, _, _) => 1
case (B, _, _, _, _, A, A, A, A, _, _, _, _, _, _) => 2
case (_, B, _, _, _, B, _, _, _, A, A, A, _, _, _) => 3
case (_, _, B, _, _, _, B, _, _, B, _, _, A, A, _) => 4
case (_, _, _, B, _, _, _, B, _, _, B, _, B, _, A) => 5
case (_, _, _, _, B, _, _, _, B, _, _, B, _, B, B) => 6
}
}