Use codegen box tests for tail calls as diagnostic tests too

This commit is contained in:
Andrey Breslav
2013-11-26 21:49:17 +04:00
parent bb6ceffbbb
commit 94500bd968
22 changed files with 197 additions and 37 deletions
@@ -1,9 +1,11 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
tailRecursive fun withWhen(counter : Int, d : Any, x : Any) : Int =
when (counter) {
0 -> counter
1, 2 -> withWhen(counter - 1, "1,2", "tail")
in 3..49 -> withWhen(counter - 1, "3..49", "tail")
50 -> 1 + withWhen(counter - 1, "50", "no tail")
50 -> 1 + <!NON_TAIL_RECURSIVE_CALL!>withWhen<!>(counter - 1, "50", "no tail")
!in 0..50 -> withWhen(counter - 1, "!0..50", "tail")
else -> withWhen(counter - 1, "else", "tail")
}