mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 15:53:37 +00:00
44 lines
763 B
Kotlin
Vendored
44 lines
763 B
Kotlin
Vendored
// FILE: 1.kt
|
|
|
|
package test
|
|
|
|
interface A {
|
|
fun run()
|
|
}
|
|
|
|
class B(val o: String, val k: String) {
|
|
|
|
inline fun testNested(crossinline f: (String) -> Unit, crossinline f2: (String) -> Unit) {
|
|
object : A {
|
|
override fun run() {
|
|
f(o)
|
|
f2(k)
|
|
}
|
|
}.run()
|
|
}
|
|
|
|
inline fun test(crossinline f: (String) -> Unit) {
|
|
call {
|
|
{
|
|
testNested ({ it -> { f(it + o) }() }) { it -> { f(it + k) }() }
|
|
}()
|
|
}
|
|
}
|
|
|
|
inline fun call(f: () -> Unit) {
|
|
f()
|
|
}
|
|
|
|
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun box(): String {
|
|
var result = ""
|
|
B("O", "K").test { it -> result += it }
|
|
return if (result == "OOKK") "OK" else "fail: $result"
|
|
}
|