Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/smartcasts/kt50875.kt
T
Dmitriy Novozhilov d1fb8338ef [FIR] Infer type of elvis from lhs if rhs is Nothing
^KT-50875 Fixed
2022-01-23 08:22:07 +03:00

24 lines
564 B
Kotlin
Vendored

// ISSUE: KT-50875
interface A {
fun foo()
}
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
fun <K> checkNotNull(x: K?, y: K): @kotlin.internal.Exact K {
return x ?: y
}
fun test_1(any: Any, a: A, nullableA: A?) {
var x = any // x has type Any
x = checkNotNull(nullableA, a) // inferred to Any
x.<!UNRESOLVED_REFERENCE!>foo<!>() // no smartcast
x = nullableA ?: a // inferred to Any
x.<!UNRESOLVED_REFERENCE!>foo<!>() // no smartcast
x = nullableA ?: return // inferred to Any, but has A type
x.foo() // smartcast
}