FIR DFA: don't propagate reassignments of loop-scoped vars to outside

This commit is contained in:
pyos
2022-12-07 11:16:36 +01:00
committed by teamcity
parent 06b71f8300
commit a3768b9185
3 changed files with 57 additions and 22 deletions
@@ -66,3 +66,20 @@ fun test5() {
}
lambda?.invoke()
}
fun test6() {
var lambda: () -> Unit = { }
for (x in 1..10) {
var s: String? = null
for (y in 1..10) {
s = null
lambda()
s = ""
lambda = { <!DEBUG_INFO_SMARTCAST!>s<!>.length } // bad - next iteration will assign s = null
}
if (s != null) {
lambda = { <!DEBUG_INFO_SMARTCAST!>s<!>.length } // ok - s about to go out of scope
}
}
}