Files
kotlin-fork/compiler/testData/diagnostics/tests/controlFlowAnalysis/infiniteLoops.kt
T
2021-06-25 16:37:35 +03:00

57 lines
915 B
Kotlin
Vendored

// LANGUAGE: -ProhibitSimplificationOfNonTrivialConstBooleanExpressions
fun unreachable() {}
fun a() {
do {
} while (true)
<!UNREACHABLE_CODE!>unreachable()<!>
}
fun b() {
while (true) {
}
<!UNREACHABLE_CODE!>unreachable()<!>
}
fun c() {
do {} while (<!NON_TRIVIAL_BOOLEAN_CONSTANT!>1 == 1<!>)
}
fun d() {
while (<!NON_TRIVIAL_BOOLEAN_CONSTANT!>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