Let the user know that class object bounds are not supported

KT-4080 Code analisys show all good, but got compile error

#KT-4080 Fixed
This commit is contained in:
Andrey Breslav
2013-10-15 14:41:45 +04:00
parent 6154464050
commit f05f3f5686
7 changed files with 30 additions and 19 deletions
@@ -18,9 +18,9 @@ class Test1<T : A>()
where
T : B,
<!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>B<!> : T, // error
class object T : A,
class object T : B,
class object <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>B<!> : T
<!UNSUPPORTED!>class object T : A<!>,
<!UNSUPPORTED!>class object T : B<!>,
<!UNSUPPORTED!>class object <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>B<!> : T<!>
{
fun test(t : T) {
@@ -50,9 +50,9 @@ fun <T : A> test2(t : T)
where
T : B,
<!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>B<!> : T,
class object <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>B<!> : T,
class object T : B,
class object T : A
<!UNSUPPORTED!>class object <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>B<!> : T<!>,
<!UNSUPPORTED!>class object T : B<!>,
<!UNSUPPORTED!>class object T : A<!>
{
T.foo()
T.bar()
@@ -66,7 +66,7 @@ val t3 = test2<C>(C())
class Test<<!CONFLICTING_CLASS_OBJECT_UPPER_BOUNDS!>T<!>>
where
class object T : <!FINAL_CLASS_OBJECT_UPPER_BOUND!>Foo<!>,
class object T : A {}
<!UNSUPPORTED!>class object T : <!FINAL_CLASS_OBJECT_UPPER_BOUND!>Foo<!><!>,
<!UNSUPPORTED!>class object T : A<!> {}
val <T, B : T> x : Int = 0
val <T, B : T> x : Int = 0
@@ -0,0 +1,2 @@
class C<T> where <!UNSUPPORTED!>class object T: Any<!>
fun f<T>() where <!UNSUPPORTED!>class object T: Any<!> {}
@@ -1 +1 @@
class CO<T> where class object T : CO<T>
class CO<T> where <!UNSUPPORTED!>class object T : CO<T><!>