Files
kotlin-fork/compiler/testData/diagnostics/tests/generics/nullability/expressionsBoundsViolation.kt
T
Denis Zharkov 6ecfa6e985 Refine subtyping check: pay attention to corresponding supertype nullability
F: Any, T : F? => !isSubtype(T, Any)

It helps to identify upper bounds violation like in KT-7455

 #KT-7455 Fixed
 #KT-2924 Fixed
 #KT-3015 Fixed
2015-08-28 18:50:25 +03:00

19 lines
461 B
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_PARAMETER
class A<T : CharSequence>(x: T)
fun <E : CharSequence> foo1(x: E) {}
fun <E : CharSequence> E.foo2() {}
fun <F : String?> bar(x: F) {
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>A<!>(x)
A<<!UPPER_BOUND_VIOLATED!>F<!>>(x)
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo1<!>(x)
foo1<<!UPPER_BOUND_VIOLATED!>F<!>>(x)
x.<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo2<!>()
x.foo2<<!UPPER_BOUND_VIOLATED!>F<!>>()
}