From 6c4064a77086ee82de861ec30dfd87fe120c6b0d Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 13 Nov 2009 17:31:12 +0000 Subject: 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. --- test/files/neg/t1477.scala | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 test/files/neg/t1477.scala (limited to 'test/files/neg/t1477.scala') 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 +} -- cgit v1.2.3