summaryrefslogtreecommitdiff
path: root/test/files/neg/t1477.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-11-13 17:31:12 +0000
committerMartin Odersky <odersky@gmail.com>2009-11-13 17:31:12 +0000
commit6c4064a77086ee82de861ec30dfd87fe120c6b0d (patch)
treeb8f815eb95603d1f023c22162d82f8fda4ae6718 /test/files/neg/t1477.scala
parent92c280f6d1116a551b805543a216eb01ab94c8cf (diff)
downloadscala-6c4064a77086ee82de861ec30dfd87fe120c6b0d.tar.gz
scala-6c4064a77086ee82de861ec30dfd87fe120c6b0d.tar.bz2
scala-6c4064a77086ee82de861ec30dfd87fe120c6b0d.zip
Fixes #1477 by requiring that abstract types wi...
Fixes #1477 by requiring that abstract types with non-volatile upper bounds cannot be overridden by volatile types.
Diffstat (limited to 'test/files/neg/t1477.scala')
-rw-r--r--test/files/neg/t1477.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/files/neg/t1477.scala b/test/files/neg/t1477.scala
new file mode 100644
index 0000000000..0cc0cd5f7a
--- /dev/null
+++ b/test/files/neg/t1477.scala
@@ -0,0 +1,25 @@
+object Test extends Application {
+ trait A
+ trait B extends A
+
+ trait C {
+ type U
+ trait D { type T >: B <: A }
+ type V <: D
+ val y: V#T = new B { }
+ }
+
+ trait Middle extends C {
+ type V <: (D with U)
+ }
+
+ class D extends Middle {
+ trait E
+ trait F { type T = E }
+ type U = F
+ def frob(arg : E) : E = arg
+ frob(y)
+ }
+
+ new D
+}