Indirect tests for tail call diagnostics removed

This commit is contained in:
Andrey Breslav
2013-11-26 21:21:36 +04:00
parent 94500bd968
commit 0316e6cb8d
20 changed files with 80 additions and 451 deletions
@@ -1,12 +1,10 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
tailRecursive fun test(counter : Int, a : Any) : Int? {
tailRecursive fun test(counter : Int) : Int? {
if (counter < 0) return null
if (counter == 0) return 777
return <!NON_TAIL_RECURSIVE_CALL!>test<!>(-1, "no tail") ?: <!NON_TAIL_RECURSIVE_CALL!>test<!>(-2, "no tail") ?: test(counter - 1, "tail")
return <!NON_TAIL_RECURSIVE_CALL!>test<!>(-1) ?: <!NON_TAIL_RECURSIVE_CALL!>test<!>(-2) ?: test(counter - 1)
}
fun box() : String =
if (test(100000, "test") == 777) "OK"
if (test(100000) == 777) "OK"
else "FAIL"