summaryrefslogtreecommitdiff
path: root/test/files/pos/t6022b.scala
blob: 6ceb928162c673a1019e0eebc25d327564d3f2c6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
trait A
trait B
trait C
trait AB extends B with A

// two types are mutually exclusive if there is no equality symbol whose constant implies both
object Test extends App {
  def foo(x: Any) = x match {
    case _ : C  => println("C")
    case _ : AB => println("AB")
    case _ : (A with B) => println("AB'")
    case _ : B  => println("B")
    case _ : A  => println("A")
  }

  foo(new A {})
  foo(new B {})
  foo(new AB{})
  foo(new C {})
}