Files
kotlin/compiler/testData/diagnostics/tests/controlFlowAnalysis/infiniteLoops.kt
Mikhail Glukhikh 569a5888ff do...while (true) is now considered infinite loop in CFA #KT-3896 Fixed
Also #KT-3883 Fixed
Also #KT-4986 Fixed
2016-03-14 16:13:14 +03:00

55 lines
772 B
Kotlin
Vendored

fun unreachable() {}
fun a() {
do {
} while (true)
<!UNREACHABLE_CODE!>unreachable()<!>
}
fun b() {
while (true) {
}
<!UNREACHABLE_CODE!>unreachable()<!>
}
fun c() {
do {} while (1 == 1)
}
fun d() {
while (2 == 2) {}
}
fun use(arg: Any) = arg
fun f(cond: Boolean) {
val bar: Any
do {
if (cond) {
bar = "value"
break
}
} while (true)
use(bar) // should work
val foo: Any
while (true) {
if (cond) {
foo = "value"
break
}
}
use(foo) // should work
}
fun g(): Int {
do {
if (true) return 12
} while (true)
} // should work
fun h(): Int {
while (true) {
if (true) return 12
}
} // should work