summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/files/neg/volatile-intersection.check4
-rw-r--r--test/files/neg/volatile-intersection.scala21
2 files changed, 25 insertions, 0 deletions
diff --git a/test/files/neg/volatile-intersection.check b/test/files/neg/volatile-intersection.check
new file mode 100644
index 0000000000..ef983994ab
--- /dev/null
+++ b/test/files/neg/volatile-intersection.check
@@ -0,0 +1,4 @@
+volatile-intersection.scala:8: error: illegal type selection from volatile type C.this.D with C.this.U
+ val y: (D with U)#T = new B { }
+ ^
+one error found
diff --git a/test/files/neg/volatile-intersection.scala b/test/files/neg/volatile-intersection.scala
new file mode 100644
index 0000000000..086c474a37
--- /dev/null
+++ b/test/files/neg/volatile-intersection.scala
@@ -0,0 +1,21 @@
+object Test extends Application {
+ trait A
+ trait B extends A
+
+ trait C {
+ type U
+ trait D { type T >: B <: A }
+ val y: (D with U)#T = new B { }
+ }
+
+ class D extends C {
+ trait E
+ trait F { type T = E }
+ type U = F
+ def frob(arg : E) : E = arg
+ frob(y)
+ }
+
+ new D
+}
+