30 lines
590 B
Kotlin
Vendored
30 lines
590 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
//WITH_RUNTIME
|
|
//FULL_JDK
|
|
// FILE: 1.kt
|
|
package test
|
|
|
|
inline fun crashMe(crossinline callback: () -> Unit): Function0<Unit> {
|
|
return object: Function0<Unit> {
|
|
override fun invoke() {
|
|
callback()
|
|
}
|
|
}
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
|
|
import test.*
|
|
import java.lang.reflect.Modifier
|
|
|
|
var result = "fail"
|
|
|
|
|
|
fun box(): String {
|
|
val crashMe = crashMe { result = "OK" }
|
|
val modifiers = crashMe::class.java.getDeclaredConstructor().modifiers
|
|
if (!Modifier.isPublic(modifiers)) return "fail $modifiers"
|
|
|
|
crashMe.invoke()
|
|
return result
|
|
} |