49 lines
1.4 KiB
Kotlin
Vendored
49 lines
1.4 KiB
Kotlin
Vendored
fun box(): String {
|
|
var encl1 = "fail";
|
|
test {
|
|
val lam1 = {
|
|
val lam2 = { encl1 = "OK" }
|
|
lam2()
|
|
}
|
|
lam1()
|
|
}
|
|
|
|
return encl1
|
|
}
|
|
|
|
inline fun test(crossinline s: () -> Unit) {
|
|
{
|
|
{
|
|
s()
|
|
}.let { it() }
|
|
}.let { it() }
|
|
}
|
|
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\s
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1\s
|
|
|
|
// JVM_TEMPLATES
|
|
// 13 INNERCLASS
|
|
// 3 INNERCLASS Kt10259_3Kt\$test\$1 null
|
|
// 2 INNERCLASS Kt10259_3Kt\$test\$1\$1
|
|
// inlined:
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1\$lambda\$1\s
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1\$lambda\$1\$1\s
|
|
|
|
// NB JVM_IR generates
|
|
// final static INNERCLASS Kt10259_3Kt$box$1$lam1$1 null null
|
|
// public final static INNERCLASS Kt10259_3Kt$test$1 null null
|
|
// in Kt10259_3Kt.
|
|
// Although Oracle JVM doesn't check for consistency of InnerClasses attributes,
|
|
// this behavior is equivalent to javac and seems to be correct.
|
|
|
|
// JVM_IR_TEMPLATES
|
|
// 17 INNERCLASS
|
|
// 3 INNERCLASS Kt10259_3Kt\$box\$1\$lam1\$1 null null
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$1\$lam1\$1\$lam2\$1 null null
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1 null null
|
|
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1 null null
|
|
// 3 INNERCLASS Kt10259_3Kt\$test\$1 null null
|
|
// 2 INNERCLASS Kt10259_3Kt\$test\$1\$1 null null
|
|
// 3 INNERCLASS kotlin.jvm.internal.Ref\$ObjectRef kotlin.jvm.internal.Ref ObjectRef
|