FIR2IR: add implicit NOT_NULL cast if needed

This commit is contained in:
Jinseong Jeon
2020-10-18 23:36:47 -07:00
committed by Mikhail Glukhikh
parent eeda48e63e
commit 46cc01602e
44 changed files with 181 additions and 88 deletions
@@ -1,5 +1,4 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: box.kt
@@ -1,4 +1,5 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: inLambdaReturnWithExpectedType.kt
@@ -1,5 +1,4 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: box.kt
@@ -1,5 +1,4 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: box.kt
@@ -1,5 +1,4 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: box.kt
@@ -1,5 +1,4 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: box.kt
@@ -1,5 +1,4 @@
// !LANGUAGE: +StrictJavaNullabilityAssertions
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: box.kt
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// FILE: nnStringVsT.kt
fun <T> useT(fn: () -> T) = fn()
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// FILE: nnStringVsTAny.kt
fun <T : Any> useTAny(fn: () -> T) = fn()
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// FILE: nnStringVsTConstrained.kt
fun <T> useTConstrained(xs: Array<T>, fn: () -> T) = fn()
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// FILE: nnStringVsTXArray.kt
fun <T> useTX(x: T, fn: () -> T) = fn()
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// FILE: nnStringVsTXString.kt
fun <T> useTX(x: T, fn: () -> T) = fn()
@@ -1,5 +1,4 @@
// KOTLIN_CONFIGURATION_FLAGS: +JVM.NO_UNIFIED_NULL_CHECKS
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: A.java
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM
// FILE: A.java
@@ -1,4 +1,7 @@
// FILE: test/CallableDescriptor.java
// IGNORE_BACKEND_FIR: JVM_IR
// Here FIR adds implicit NOT_NULL cast for `origin`, resulting in an assertion being added,
// which is the correct (yet mismatching) behavior, according to https://youtrack.jetbrains.com/issue/KT-35656
// JVM_IR:
// Here in 'original in emptySet<D>()' T = '@EnhancedNullability CallableDescriptor' is inferred for 'Iterable<T>.contains(T)'.