diff options
author | Martin Odersky <odersky@gmail.com> | 2009-11-13 17:31:12 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-11-13 17:31:12 +0000 |
commit | 6c4064a77086ee82de861ec30dfd87fe120c6b0d (patch) | |
tree | b8f815eb95603d1f023c22162d82f8fda4ae6718 /test/files/neg/t1477.scala | |
parent | 92c280f6d1116a551b805543a216eb01ab94c8cf (diff) | |
download | scala-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.scala | 25 |
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 +} |