Files
kotlin/compiler/testData/codegen/box/functions/tailRecursion/thisReferences.kt
2013-12-05 23:53:08 +04:00

23 lines
516 B
Kotlin

class A {
tailRecursive fun f1(c : Int, x : Any) {
if (c > 0) {
this.f1(c - 1, "tail")
}
}
tailRecursive fun f2(c : Int, x : Any) {
if (c > 0) {
f2(c - 1, "tail 108")
}
}
tailRecursive fun f3(a : A, x : Any) {
a.f3(a, "no tail") // non-tail recursion, could be potentially resolved by condition if (a == this) f3() else a.f3()
}
}
fun box() : String {
A().f1(1000000, "test")
A().f2(1000000, "test")
return "OK"
}