From 82fc27f0c2c800de786b54110cfd8627b043fe6d Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 14 Jul 2016 18:06:48 +0200 Subject: Fix bounds checking of hk applied typed Previous logic could only handle classes as constructors. Also, address other reviewers comments. --- tests/pos/hklower.scala | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'tests/pos/hklower.scala') diff --git a/tests/pos/hklower.scala b/tests/pos/hklower.scala index 033ee3a34..90aa343ba 100644 --- a/tests/pos/hklower.scala +++ b/tests/pos/hklower.scala @@ -1,4 +1,4 @@ -class Test { // error: conflicting bounds +class Test { type T[X] type U[X] = T[X] @@ -6,6 +6,36 @@ class Test { // error: conflicting bounds type V[X] >: T[X] type W[X] >: T[X] <: T[X] - def f[C[X] >: T[X]]() = ??? + def f[C[X] >: T[X]](x: C[Int]) = ??? + + val v: V[Int] = ??? + val t: T[Int] = ??? + + f[V](v) + + f[V](t) + + +} +class Test2 { + + class T[X] + type U[X] = T[X] + + type V[X] >: T[X] + type W[X] >: T[X] <: T[X] + + def f[C[X] >: T[X]](x: C[Int]) = ??? + + val v: V[Int] = ??? + val t: T[Int] = ??? + + f[V](v) + + f[V](t) + + var x: V[Int] = _ + x = t + } -- cgit v1.2.3