JVM IR: Avoid IMPLICIT_NOTNULL checks on special bridge methods
...with dynamic type checks, except for the `@PlatformDependent` methods, for which the JVM backend adds null checks.
This commit is contained in:
committed by
Alexander Udalov
parent
9026f89ba5
commit
0328fcaf5d
+27
@@ -0,0 +1,27 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_RUNTIME
|
||||
// FULL_JDK
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public static A nil() { return null; }
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
fun box(): String {
|
||||
// There is a null check on both arguments of Map.getOrDefault, so we expect this code to throw an exception.
|
||||
// Which exception this is depends on the language version (it's a NullPointerException in Kotlin 1.4).
|
||||
val m = mapOf<A, A>()
|
||||
try {
|
||||
m.getOrDefault(A.nil(), A())
|
||||
} catch (e: Exception) {
|
||||
try {
|
||||
m.getOrDefault(A(), A.nil())
|
||||
} catch (e: Exception) {
|
||||
return "OK"
|
||||
}
|
||||
return "Fail 2"
|
||||
}
|
||||
return "Fail 1"
|
||||
}
|
||||
Reference in New Issue
Block a user