tests: Update box tests (1053418:id)
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
// NO_CHECK_LAMBDA_INLINING
|
||||
|
||||
// FILE: 1.kt
|
||||
inline fun test(noinline foo: () -> String, noinline bar: () -> String): String {
|
||||
var vfoo = foo
|
||||
var vbar = bar
|
||||
var vres = foo
|
||||
for (i in 1 .. 4) {
|
||||
vres = vbar
|
||||
vbar = vfoo
|
||||
vfoo = vres
|
||||
}
|
||||
return vres()
|
||||
}
|
||||
|
||||
|
||||
// FILE: 2.kt
|
||||
fun box(): String =
|
||||
test({ "OK" }, { "wrong lambda" })
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
// FILE: 1.kt
|
||||
inline fun cycle(p: String): String {
|
||||
var z = p
|
||||
var x = z
|
||||
for (i in 1..4) {
|
||||
z = x
|
||||
x = z
|
||||
}
|
||||
return z
|
||||
}
|
||||
|
||||
inline fun test(crossinline foo: String.() -> String): String {
|
||||
val cycle = cycle("123");
|
||||
|
||||
{
|
||||
cycle.foo()
|
||||
}()
|
||||
|
||||
|
||||
return cycle.foo()
|
||||
}
|
||||
|
||||
|
||||
// FILE: 2.kt
|
||||
fun box(): String = test { "OK" }
|
||||
@@ -0,0 +1,7 @@
|
||||
// FILE: 1.kt
|
||||
inline fun alwaysOk(s: String, fn: (String) -> String): String {
|
||||
return fn(return "OK")
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
fun box() = alwaysOk("what?") { it }
|
||||
@@ -0,0 +1,7 @@
|
||||
// FILE: 1.kt
|
||||
inline fun alwaysOk(s: String, fn: (String) -> String): String {
|
||||
try { return fn(return "fail") } finally { fn(return "OK") }
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
fun box() = alwaysOk("what?") { it }
|
||||
@@ -0,0 +1,15 @@
|
||||
// FILE: 1.kt
|
||||
inline fun alwaysOk(s: String, fn: (String) -> String): String {
|
||||
try {
|
||||
throw Exception()
|
||||
}
|
||||
catch(e: Exception) {
|
||||
fn(return "fail")
|
||||
}
|
||||
finally {
|
||||
fn(return "OK")
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
fun box() = alwaysOk("what?") { it }
|
||||
Reference in New Issue
Block a user