Files
kotlin-fork/compiler/testData/codegen/boxInline/enclosingInfo/inlineChain2.kt
T
Alexander Udalov 0dea6b94c6 JVM IR: unmute boxInline tests on enclosing method/class
In box tests, only check that Java reflection does not crash on the
EnclosingMethod attribute generated in these classes. If it doesn't
crash, most likely it returns the value that can be read from the class
file by ASM, which is what the newly added bytecode listing tests are
checking now.
2020-09-07 19:41:37 +02:00

35 lines
635 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_RUNTIME
// FILE: 1.kt
package test
inline fun <R> call(crossinline s: () -> R) = { s() }()
inline fun test(crossinline z: () -> String) = { z() }
// FILE: 2.kt
import test.*
fun box(): String {
val res = call {
test { "OK" }
}
// Check that Java reflection doesn't crash. Actual values are tested in bytecodeListing/inline/enclosingInfo/.
res.javaClass.enclosingMethod
res.javaClass.enclosingClass
val res2 = call {
call {
test { "OK" }
}
}
res2.javaClass.enclosingMethod
res2.javaClass.enclosingClass
return res2()
}