[JVM IR] Added null-checks of handler for non-super $default calls
This commit is contained in:
committed by
Alexander Udalov
parent
fe50bb4b93
commit
c1d350f8f3
@@ -0,0 +1,20 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
|
||||
open class O {
|
||||
open fun foo(s: String = throw Error("Fail: this expression should not be evaluated")) {}
|
||||
}
|
||||
|
||||
fun box(): String = try {
|
||||
val f = O::class.java.declaredMethods.single { it.name == "foo\$default" }
|
||||
f(null, O(), "s", 1, "non-null")
|
||||
"Fail: exception should have been thrown"
|
||||
} catch (e: Exception) {
|
||||
val cause = e.cause
|
||||
if (cause is UnsupportedOperationException) {
|
||||
"OK"
|
||||
} else {
|
||||
cause.toString()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user