0dea6b94c6
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.
33 lines
645 B
Kotlin
Vendored
33 lines
645 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// NO_CHECK_LAMBDA_INLINING
|
|
// WITH_RUNTIME
|
|
// FILE: 1.kt
|
|
|
|
package test
|
|
|
|
inline fun test(s: () -> Unit) {
|
|
s()
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
|
|
fun box(): String {
|
|
var s1 = ""
|
|
var s2 = ""
|
|
test {
|
|
{
|
|
val p = object {}
|
|
// Check that Java reflection doesn't crash. Actual values are tested in bytecodeListing/inline/enclosingInfo/.
|
|
s1 = p.javaClass.enclosingMethod.declaringClass.toString();
|
|
{
|
|
val q = object {}
|
|
s2 = q.javaClass.enclosingMethod.declaringClass.toString()
|
|
}()
|
|
}()
|
|
}
|
|
|
|
return "OK"
|
|
}
|