edaca59d83
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
15 lines
437 B
Kotlin
Vendored
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
|
|
}
|