diff options
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/bug987.check | 20 | ||||
-rwxr-xr-x | test/files/run/existentials.scala | 11 |
2 files changed, 25 insertions, 6 deletions
diff --git a/test/files/neg/bug987.check b/test/files/neg/bug987.check index 77e71c9b5e..d850f39fd9 100644 --- a/test/files/neg/bug987.check +++ b/test/files/neg/bug987.check @@ -1,9 +1,19 @@ -bug987.scala:15: error: the type intersection B[D] with B[C] is malformed - --- because --- -no common type instance of base types B[C] and B[D] exists +bug987.scala:15: error: illegal inheritance; + class E inherits different type instances of trait B: +B[C] and B[D] class E extends D ^ -bug987.scala:20: error: illegal cyclic reference involving class E +bug987.scala:20: error: illegal inheritance; + class F inherits different type instances of trait B: +B[C] and B[D] class F extends D ^ -two errors found +bug987.scala:25: error: illegal inheritance; + class D inherits different type instances of trait B: +B[C] and B[D] +abstract class D extends C with B[D] {} + ^ +bug987.scala:25: error: type arguments [D] do not conform to trait B's type parameter bounds [T <: B[T]] +abstract class D extends C with B[D] {} + ^ +four errors found diff --git a/test/files/run/existentials.scala b/test/files/run/existentials.scala index 3d51751996..76dd705380 100755 --- a/test/files/run/existentials.scala +++ b/test/files/run/existentials.scala @@ -12,8 +12,17 @@ trait Counter[T] { def newCounter: T def get(i: T): Int def inc(i: T): T - } +} + +case class C[T](x: T) +object LUB { + def x = C(1) + def y = C("abc") + var coinflip: boolean = _ + def z = if (coinflip) x else y + def zz: C[_1] for_some { type _1 >: Int with java.lang.String } = z +} object Test extends Application { def foo(x : Counter[T] { def name : String } for_some { type T }) = x match { |