Missing tests added

This commit is contained in:
Andrey Breslav
2013-12-05 21:06:29 +04:00
parent c70a54306f
commit bb6ceffbbb
12 changed files with 108 additions and 0 deletions
@@ -0,0 +1,8 @@
tailRecursive fun Int.test(x : Int) : Int {
if (this > 1) {
return (this - 1) test x
}
return this
}
fun box() : String = if (1000000.test(1000000) == 1) "OK" else "FAIL"
@@ -0,0 +1,12 @@
tailRecursive fun test(x : Int) : Int {
return if (x == 1) {
<!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
1 + <!NON_TAIL_RECURSIVE_CALL!>test<!>(x - 1)
} else if (x > 0) {
test(x - 1)
} else {
0
}
}
fun box() : String = if (test(1000000) == 1) "OK" else "FAIL"
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
tailRecursive fun Int.foo(x: Int) {
return 1.foo(2)
}
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
tailRecursive fun Int.foo(x: Int) {
return 1 foo 2
}
@@ -0,0 +1,8 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun foo()<!> {
run {
<!NON_TAIL_RECURSIVE_CALL!>foo<!>()
}
}
fun run(a: Any) {}
@@ -0,0 +1,5 @@
<!NO_TAIL_CALLS_FOUND!>tailRecursive fun foo()<!> {
fun bar() {
<!NON_TAIL_RECURSIVE_CALL!>foo<!>()
}
}
@@ -0,0 +1,3 @@
tailRecursive fun foo() {
(return foo())
}
@@ -0,0 +1,6 @@
tailRecursive fun foo() {
return if (true) {
(foo())
}
else Unit.VALUE
}
@@ -0,0 +1,3 @@
tailRecursive fun foo() {
return (foo())
}