21e9bd7ea2
#KT-9304 #KT-14961 #KT-16549 #KT-21080 #KT-28234 #KT-30102 #KT-31994 #KT-34291 #KT-38099 #KT-41174 #KT-44622 #KT-44701 #KT-44781 #KT-44849 #KT-44978 #KT-45081 #KT-45286 #KT-45383 #KT-45444 #KT-45907
28 lines
568 B
Kotlin
Vendored
28 lines
568 B
Kotlin
Vendored
// KT-16549
|
|
// IGNORE_BACKEND: JVM
|
|
|
|
class TailInline {
|
|
private inline fun act(action: () -> Unit) {
|
|
return action()
|
|
}
|
|
|
|
private var countDown = 10
|
|
|
|
tailrec fun test(): Int {
|
|
if (countDown < 5) return countDown
|
|
act {
|
|
countDown--
|
|
if (countDown < 1)
|
|
return countDown
|
|
else
|
|
return test() // GOTO countDown--
|
|
}
|
|
return countDown
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
val result = TailInline().test()
|
|
return if (result == 4) "OK" else "Fail: $result"
|
|
}
|