aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/pos/t6022b.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/pos/t6022b.scala')
-rw-r--r--tests/untried/pos/t6022b.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/untried/pos/t6022b.scala b/tests/untried/pos/t6022b.scala
new file mode 100644
index 000000000..6ceb92816
--- /dev/null
+++ b/tests/untried/pos/t6022b.scala
@@ -0,0 +1,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 {})
+}