Fix recusrive calls in infix and prefix form

The infamous invokeOperation() method removed
This commit is contained in:
Andrey Breslav
2013-11-28 20:09:37 +04:00
parent db4b73189a
commit 93160431f9
6 changed files with 81 additions and 34 deletions
@@ -0,0 +1,8 @@
fun Int.test(x : Int) : Int {
if (this > 1) {
return (this - 1) test x
}
return this
}
fun box() : String = if (10.test(10) == 1) "OK" else "FAIL"
@@ -0,0 +1,8 @@
fun String.plus() : String {
if (this == "") {
return "done"
}
return +""
}
fun box() : String = if (+"11" == "done") "OK" else "FAIL"
@@ -0,0 +1,11 @@
class C
fun C.compareTo(o: C) : Int {
if (this == o) return 0
if (o >= o) {
return 1
}
return -1
}
fun box() : String = if (C() > C()) "OK" else "FAIL"
@@ -0,0 +1,12 @@
fun String.inc() : String {
if (this == "") {
return "done"
}
var s = ""
return ++s
}
fun box() : String {
var s = "11test"
return if (++s == "done") "OK" else "FAIL"
}