diff options
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/volatile-intersection.check | 4 | ||||
-rw-r--r-- | test/files/neg/volatile-intersection.scala | 21 |
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 +} + |