Files
kotlin-fork/compiler/testData/diagnostics/tests/when/withSubjectVariable/jumpoutInInitializer.fir.kt
T
2021-01-29 16:55:26 +03:00

43 lines
872 B
Kotlin
Vendored

// !LANGUAGE: +VariableDeclarationInWhenSubject
// !DIAGNOSTICS: -UNUSED_VARIABLE
fun testJumpOutInElvis(x: Int?) {
loop@ while (true) {
val y = when (val z = x ?: break@loop) {
0 -> "0"
else -> "not 0"
}
x.inc()
}
x<!UNSAFE_CALL!>.<!>inc()
}
fun testJumpOutInElvisLikeIf(x: Int?) {
loop@ while (true) {
val y = when (val z = if (x == null) break@loop else x) {
0 -> "0"
else -> "not 0"
}
x.inc()
}
x<!UNSAFE_CALL!>.<!>inc()
}
fun getBoolean() = true
fun testJumpOutInIf(x: Int?) {
loop@ while (true) {
val y = when (val z = if (getBoolean()) { x!!; break@loop } else x) {
0 -> "0"
else -> "not 0"
}
x<!UNSAFE_CALL!>.<!>inc()
}
x.inc() // Actually, safe, but it's OK if it's error
}