Files
kotlin-fork/compiler/testData/diagnostics/tests/generics/nullability/tpInBounds.kt
T
Denis.Zharkov 2ecba6ac39 Remove WITH_NEW_INFERENCE directive from all tests
This directive anyway does not make test run twice with OI, and with NI
It only once run the test with specific settings (// LANGUAGE)
and ignores irrelevant (OI or NI tags)
2021-05-25 13:28:26 +03:00

40 lines
780 B
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_VALUE -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -VARIABLE_WITH_REDUNDANT_INITIALIZER
class A<T : CharSequence?, E1 : T, E2: T?> {
fun T.bar() {}
fun foo(x: E1, y: E2) {
x.bar()
if (1 == 1) {
y<!UNSAFE_CALL!>.<!>bar()
}
x?.bar()
y?.bar()
var t: T = x
var tN: T? = y
// condition needed to make smart cast on tN impossible
if (1 == 1) {
tN = x
}
if (1 == 1) {
t = <!TYPE_MISMATCH!>tN<!>
}
t = <!TYPE_MISMATCH!>y<!>
if (y != null) {
t = <!DEBUG_INFO_SMARTCAST!>y<!>
}
if (tN != null) {
t = <!DEBUG_INFO_SMARTCAST!>tN<!>
}
}
}