diff options
Diffstat (limited to 'tests/untried/neg/lubs.scala')
-rw-r--r-- | tests/untried/neg/lubs.scala | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/untried/neg/lubs.scala b/tests/untried/neg/lubs.scala new file mode 100644 index 000000000..3524fa4d8 --- /dev/null +++ b/tests/untried/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 +} |