Files
kotlin-fork/compiler/testData/diagnostics/tests/controlFlowAnalysis/reassignmentInTryCatchWithJumps.fir.kt
T
2020-06-19 15:53:09 +03:00

56 lines
1.0 KiB
Kotlin
Vendored

fun exc(flag: Boolean) {
if (flag) throw Exception()
}
fun f1(flag: Boolean) {
val n: Int
try {
if (flag) {
n = 1
exc(flag)
return
}
}
catch (e: Exception) {
// KT-13612: reassignment
n = 3
}
<!UNINITIALIZED_VARIABLE!>n<!>.hashCode()
}
fun f2(flag: Boolean) {
while (true) {
val n: Int
try {
if (flag) {
n = 1
exc(flag)
break
}
}
catch (e: Exception) {
// KT-13612: reassignment
n = 3
}
<!UNINITIALIZED_VARIABLE!>n<!>.hashCode()
}
}
fun f3(flag: Boolean) {
while (true) {
val n: Int
try {
if (flag) {
n = 1
exc(flag)
continue
}
}
catch (e: Exception) {
// KT-13612: reassignment
n = 3
}
<!UNINITIALIZED_VARIABLE!>n<!>.hashCode()
}
}