[FIR] Add diagnostic UPPER_BOUND_VIOLATED
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
interface A
|
||||
|
||||
class B<T> where T : A
|
||||
class C : A
|
||||
typealias GGG = C
|
||||
typealias HHH = GGG
|
||||
typealias JJJ = B<C>
|
||||
|
||||
fun <T : A> fest() {
|
||||
|
||||
}
|
||||
|
||||
fun test() {
|
||||
val b1 = B<<!UPPER_BOUND_VIOLATED!>Int<!>>()
|
||||
val b2 = B<C>()
|
||||
fest<<!UPPER_BOUND_VIOLATED!>Boolean<!>>()
|
||||
fest<C>()
|
||||
fest<HHH>()
|
||||
fest<<!UPPER_BOUND_VIOLATED!>JJJ<!>>()
|
||||
}
|
||||
|
||||
open class S<F, G : F>
|
||||
class T<U, Y : U> : S<U, Y>()
|
||||
|
||||
fun <K, L : K> rest() {
|
||||
val o1 = S<K, L>()
|
||||
val o2 = S<K, K>()
|
||||
val o3 = S<L, L>()
|
||||
|
||||
val o4 = S<S<K, L>, T<K, L>>()
|
||||
val o5 = S<S<K, L>, <!UPPER_BOUND_VIOLATED!>T<K, K><!>>()
|
||||
val o5 = S<S<L, L>, <!UPPER_BOUND_VIOLATED!>T<K, L><!>>()
|
||||
|
||||
val o6 = S<Any, <!UPPER_BOUND_VIOLATED!>T<S<K, L>, String><!>>()
|
||||
val o7 = S<Any, T<S<K, L>, Nothing>>()
|
||||
}
|
||||
|
||||
class NumColl<T : Collection<Number>>
|
||||
typealias NL<K> = NumColl<List<K>>
|
||||
val test7 = NL<Int>()
|
||||
val test8 = <!UPPER_BOUND_VIOLATED!>NL<String>()<!>
|
||||
Reference in New Issue
Block a user