30 lines
584 B
Kotlin
Vendored
30 lines
584 B
Kotlin
Vendored
// NO_CHECK_LAMBDA_INLINING
|
|
// IGNORE_BACKEND: JS
|
|
// FILE: 1.kt
|
|
|
|
package test
|
|
|
|
class Person(val name: String) {
|
|
|
|
fun sayName() = doSayName { name }
|
|
|
|
inline fun doSayName(crossinline call: () -> String): String {
|
|
return nestedSayName1 { name + Person("sub").nestedSayName2 { call() } }
|
|
}
|
|
|
|
fun nestedSayName1(call: () -> String) = call()
|
|
|
|
inline fun nestedSayName2(call: () -> String) = name + call()
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun box(): String {
|
|
val res = Person("OK").sayName()
|
|
if (res != "OKsubOK") return "fail: $res"
|
|
|
|
return "OK"
|
|
}
|