Files
kotlin-fork/compiler/testData/diagnostics/tests/smartCasts/loops/safeCallBreakInsideDoWhile.fir.kt
T
pyos edaca59d83 FIR DFA: fork flow everywhere
In theory, forking persistent flows should be cheap because of object
reuse, so the proposal here is to start from scratch and prove
redundancy of forks on a case-by-case basis. Something something better
safe than sorry.

^KT-28333 tag fixed-in-k2
^KT-28489 tag fixed-in-k2
2022-11-22 15:44:32 +00:00

15 lines
437 B
Kotlin
Vendored

fun foo(x: String): String? = x
fun calc(x: String?, y: String?): Int {
do {
// Smart cast because of x!! in receiver
foo(x!!)?.subSequence(0, if (x.length > 0) 5 else break)
y!!.length
// x is not null in condition but we do not see it yet
} while (x.length > 0)
// y is nullable because of break
y<!UNSAFE_CALL!>.<!>length
// x is not null, at least in theory
return x.length
}