CFA: additional jumps to catch / finally generated in the end of try / before exits from try #KT-5469 Fixed
Also #KT-13612 Fixed (cherry picked from commit 7c188b3)
This commit is contained in:
committed by
Mikhail Glukhikh
parent
43954699a7
commit
f8039249c6
+55
@@ -0,0 +1,55 @@
|
||||
fun exc(flag: Boolean) {
|
||||
if (flag) throw Exception()
|
||||
}
|
||||
|
||||
fun f1(flag: Boolean) {
|
||||
val n: Int
|
||||
try {
|
||||
if (flag) {
|
||||
<!UNUSED_VALUE!>n =<!> 1
|
||||
exc(flag)
|
||||
return
|
||||
}
|
||||
}
|
||||
catch (e: Exception) {
|
||||
// KT-13612: reassignment
|
||||
<!VAL_REASSIGNMENT!>n<!> = 3
|
||||
}
|
||||
<!UNINITIALIZED_VARIABLE!>n<!>.hashCode()
|
||||
}
|
||||
|
||||
fun f2(flag: Boolean) {
|
||||
while (true) {
|
||||
val n: Int
|
||||
try {
|
||||
if (flag) {
|
||||
<!UNUSED_VALUE!>n =<!> 1
|
||||
exc(flag)
|
||||
break
|
||||
}
|
||||
}
|
||||
catch (e: Exception) {
|
||||
// KT-13612: reassignment
|
||||
<!VAL_REASSIGNMENT!>n<!> = 3
|
||||
}
|
||||
<!UNINITIALIZED_VARIABLE!>n<!>.hashCode()
|
||||
}
|
||||
}
|
||||
|
||||
fun f3(flag: Boolean) {
|
||||
while (true) {
|
||||
val n: Int
|
||||
try {
|
||||
if (flag) {
|
||||
<!UNUSED_VALUE!>n =<!> 1
|
||||
exc(flag)
|
||||
continue
|
||||
}
|
||||
}
|
||||
catch (e: Exception) {
|
||||
// KT-13612: reassignment
|
||||
<!VAL_REASSIGNMENT!>n<!> = 3
|
||||
}
|
||||
<!UNINITIALIZED_VARIABLE!>n<!>.hashCode()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user