[FIR] Add ONLY_ONE_CLASS_BOUND_ALLOWED diagnostic

This commit is contained in:
Andrey Zinovyev
2021-04-07 11:31:08 +00:00
committed by Space
parent 68f39768ae
commit fc8b75be80
10 changed files with 56 additions and 11 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ class Bar<T : <!FINAL_UPPER_BOUND!>Foo<!>>
class Buzz<T> where T : <!FINAL_UPPER_BOUND!>Bar<Int><!>, T : <!UNRESOLVED_REFERENCE!>nioho<!>
class X<T : <!FINAL_UPPER_BOUND!>Foo<!>>
class Y<T> where T : <!FINAL_UPPER_BOUND!>Foo<!>, T : <!FINAL_UPPER_BOUND!>Bar<Foo><!>
class Y<T> where T : <!FINAL_UPPER_BOUND!>Foo<!>, T : <!FINAL_UPPER_BOUND, ONLY_ONE_CLASS_BOUND_ALLOWED!>Bar<Foo><!>
fun <T> test2(t : T)
where
@@ -2,17 +2,17 @@ open class C1
open class C2
open class C3 : C2()
class A1<T> where T : C1, T : C2
class A2<T> where T : C1, T : C2, T : C3
class A3<T> where T : C2, T : C3
class A4<T> where T : C3, T : C2
class A1<T> where T : C1, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C2<!>
class A2<T> where T : C1, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C2<!>, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C3<!>
class A3<T> where T : C2, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C3<!>
class A4<T> where T : C3, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C2<!>
fun <T> f1() where T : C1, T : C2, T : C3 {}
fun <T> f2() where T : C2, T : C3 {}
fun <T> f3() where T : C3, T : C2 {}
fun <T> f1() where T : C1, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C2<!>, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C3<!> {}
fun <T> f2() where T : C2, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C3<!> {}
fun <T> f3() where T : C3, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C2<!> {}
enum class E1
class A5<T> where T : C1, T : E1
class A5<T> where T : C1, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>E1<!>
object O1
class A6<T> where T : <!FINAL_UPPER_BOUND!>O1<!>, T : C2
class A6<T> where T : <!FINAL_UPPER_BOUND!>O1<!>, T : <!ONLY_ONE_CLASS_BOUND_ALLOWED!>C2<!>