9b6fef005f
1. Scheme of capturing local variables not touched 2. Lowered local functions are transposed to the nearest class (including local) or file 3. Local classes are also transpose to the nearest class (including local) or file
25 lines
381 B
Kotlin
Vendored
25 lines
381 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
|
|
// WITH_REFLECT
|
|
|
|
interface A {
|
|
fun f(): String
|
|
}
|
|
|
|
inline fun foo(): A {
|
|
return object : A {
|
|
override fun f(): String {
|
|
return "OK"
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
val y = foo()
|
|
|
|
val enclosing = y.javaClass.getEnclosingMethod()
|
|
if (enclosing?.getName() != "foo") return "method: $enclosing"
|
|
|
|
return y.f()
|
|
}
|