summaryrefslogtreecommitdiff
path: root/test/files/neg/lubs.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/neg/lubs.scala')
-rw-r--r--test/files/neg/lubs.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/files/neg/lubs.scala b/test/files/neg/lubs.scala
new file mode 100644
index 0000000000..3524fa4d87
--- /dev/null
+++ b/test/files/neg/lubs.scala
@@ -0,0 +1,26 @@
+object test1 {
+ abstract class A[+T]
+ class C extends A[C]
+ class D extends A[D]
+
+ def f = if(1 == 2) new C else new D
+
+ val x1: A[Any] = f
+ val x2: A[A[Any]] = f
+ val x3: A[A[A[Any]]] = f
+ val x4: A[A[A[A[Any]]]] = f
+}
+
+object test2 {
+
+ abstract class A { type T }
+ class C extends A { type T = C }
+ class D extends A { type T = D }
+
+ def f = if (1 == 2) new C else new D
+
+ val x1: A { type T } = f
+ val x2: A { type T >: Null <: A } = f
+ val x3: A { type T >: Null <: A { type T >: Null <: A } } = f
+ val x4: A { type T >: Null <: A { type T >: Null <: A { type T >: Null <: A } } } = f
+}