Inline test data structure changed

This commit is contained in:
Mikhael Bogdanov
2014-06-04 15:47:20 +04:00
committed by Michael Bogdanov
parent b37c0d3fff
commit 02c6bdeaa3
115 changed files with 765 additions and 519 deletions
@@ -0,0 +1,22 @@
import test.*
fun simple(): String {
val k = "K"
return simpleFun(lambda = {it + "O"}) + simpleFun("K", {k + it})
}
fun simpleR(): String {
val k = "K"
return simpleFunR({it + "O"}) + simpleFunR({k + it}, "K")
}
fun box(): String {
var result = simple()
if (result != "OOKK") return "fail1: ${result}"
result = simpleR()
if (result != "OOKK") return "fail2: ${result}"
return "OK"
}
@@ -0,0 +1,12 @@
package test
inline fun <T> simpleFun(arg: String = "O", lambda: (String) -> T): T {
return lambda(arg)
}
inline fun <T> simpleFunR(lambda: (String) -> T, arg: String = "O"): T {
return lambda(arg)
}
@@ -0,0 +1,26 @@
import test.*
fun testCompilation(arg: String = getStringInline()): String {
return arg
}
inline fun testCompilationInline(arg: String = getStringInline()): String {
return arg
}
fun box(): String {
var result = testCompilation()
if (result != "OK") return "fail1: ${result}"
result = testCompilation("OKOK")
if (result != "OKOK") return "fail2: ${result}"
result = testCompilationInline()
if (result != "OK") return "fail3: ${result}"
result = testCompilationInline("OKOK")
if (result != "OKOK") return "fail4: ${result}"
return "OK"
}
@@ -0,0 +1,5 @@
package test
inline fun getStringInline(): String {
return "OK"
}
@@ -0,0 +1,22 @@
import test.*
fun testCompilation(): String {
emptyFun()
emptyFun("K")
return "OK"
}
fun simple(): String {
return simpleFun() + simpleFun("K")
}
fun box(): String {
var result = testCompilation()
if (result != "OK") return "fail1: ${result}"
result = simple()
if (result != "OK") return "fail2: ${result}"
return "OK"
}
@@ -0,0 +1,11 @@
package test
inline fun emptyFun(arg: String = "O") {
}
inline fun simpleFun(arg: String = "O"): String {
val r = arg;
return r;
}