Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/smartcasts/letChangesToNullComplex.fir.kt
T
pyos 63b0708ed5 FIR CFG: join/unify data flow from postponed lambdas at each level
For example:

    foo(
        // `if` joins A & B
        if (condition)
            run { ... } // A
        else
            run { ... }, // B
        run { ... } // C
    ) // `foo` unifies `A & B` and `C`, so if it is not resolved itself,
      // further `if`s, `when`s, safe calls outside it, etc. continue
      // building the correct type predicate until the next completed
      // call.

^KT-44512 Fixed
2022-06-15 20:05:49 +00:00

12 lines
305 B
Kotlin
Vendored

// KT-9051: Allow smart cast for captured variables if they are not modified
fun bar(z: String?) = z
fun foo(y: String?) {
var x: String? = ""
if (x != null) {
bar(y?.let { x = null; it })<!UNSAFE_CALL!>.<!>length
x<!UNSAFE_CALL!>.<!>length // Smart cast is not possible
}
}