Add regression tests for obsolete issues

#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
This commit is contained in:
Alexander Udalov
2021-02-11 14:51:55 +01:00
parent 2666a93e6a
commit 21e9bd7ea2
41 changed files with 1150 additions and 0 deletions
@@ -0,0 +1,27 @@
// 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"
}
@@ -0,0 +1,18 @@
// KT-14961
// IGNORE_BACKEND: JVM, JS_IR, WASM
// WITH_RUNTIME
fun listOfFactor(number: Int): List<Int> {
tailrec fun listOfFactor(number: Int, acc: List<Int>): List<Int> {
(2..number).forEach {
if (number % it == 0) return listOfFactor(number / it, acc + it)
}
return acc
}
return listOfFactor(number, emptyList())
}
fun box(): String {
val factors = listOfFactor(60)
return if (factors.size == 4) "OK" else "Fail: $factors"
}