[FIR2IR] Add @EnhancedNullability and @FlexibleNullability independently

Previously @EnhancedNullability for IR type was added if only there wasn't
  an @FlexibleNullability annotation, which is inconsistent with K1
  behavior

^KT-65302 Fixed
This commit is contained in:
Dmitriy Novozhilov
2024-02-16 15:23:56 +02:00
committed by Space Team
parent bd66b96f8a
commit 4c9fc8f214
5 changed files with 109 additions and 103 deletions
@@ -97,9 +97,9 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
public open fun listIterator (p0: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] E of java.util.ArrayList> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<kotlin.String>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] kotlin.String?> [fake_override]
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] kotlin.String?> [fake_override]
overridden:
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<kotlin.String>
FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN <> ($this:java.util.ArrayList<kotlin.String>, p0:@[EnhancedNullability] kotlin.String) returnType:kotlin.Boolean [fake_override]
overridden:
@@ -152,9 +152,9 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
overridden:
public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<kotlin.String>
FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] kotlin.String?> [fake_override]
FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] kotlin.String?> [fake_override]
overridden:
public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<kotlin.String>
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<kotlin.String>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.String> [fake_override]
overridden:
@@ -286,9 +286,9 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
public open fun listIterator (p0: kotlin.Int): @[EnhancedNullability] kotlin.collections.MutableListIterator<@[EnhancedNullability] E of java.util.ArrayList> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<kotlin.String>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] kotlin.String?> [fake_override]
FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] kotlin.String?> [fake_override]
overridden:
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<kotlin.String>
FUN FAKE_OVERRIDE name:removeAll visibility:public modality:OPEN <> ($this:java.util.ArrayList<kotlin.String>, p0:kotlin.collections.Collection<@[EnhancedNullability] kotlin.String>) returnType:kotlin.Boolean [fake_override]
overridden:
@@ -336,9 +336,9 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
overridden:
public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<kotlin.String>
FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] kotlin.String?> [fake_override]
FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN <> ($this:kotlin.collections.Collection<kotlin.String>) returnType:@[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] kotlin.String?> [fake_override]
overridden:
public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] E of java.util.ArrayList?> declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:kotlin.collections.Collection<kotlin.String>
FUN FAKE_OVERRIDE name:subList visibility:public modality:OPEN <> ($this:java.util.ArrayList<kotlin.String>, p0:kotlin.Int, p1:kotlin.Int) returnType:@[EnhancedNullability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.String> [fake_override]
overridden:
@@ -123,10 +123,12 @@ class A1 : ArrayList<String> {
/* fake */ override fun listIterator(p0: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability String>
// CHECK JVM_IR:
// Mangled name: A1#parallelStream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A1.parallelStream|-4896737022635116901[0]
// Public signature debug description: parallelStream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
/* fake */ override fun parallelStream(): @EnhancedNullability Stream<String?>
// Mangled name: A1#parallelStream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by IR: parallelStream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by Frontend: parallelStream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A1.parallelStream|3092772522219636263[0]
// Public signature debug description: parallelStream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
/* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability String?>
// CHECK JVM_IR:
// Mangled name: A1#remove(kotlin.String{EnhancedNullability}){}kotlin.Boolean
@@ -189,10 +191,12 @@ class A1 : ArrayList<String> {
/* fake */ override fun spliterator(): @EnhancedNullability Spliterator<String?>
// CHECK JVM_IR:
// Mangled name: A1#stream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A1.stream|-795993718377355146[0]
// Public signature debug description: stream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
/* fake */ override fun stream(): @EnhancedNullability Stream<String?>
// Mangled name: A1#stream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by IR: stream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by Frontend: stream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A1.stream|6909137692784416467[0]
// Public signature debug description: stream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
/* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability String?>
// CHECK JVM_IR:
// Mangled name: A1#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList<kotlin.String{EnhancedNullability}>{EnhancedNullability}
@@ -362,10 +366,12 @@ class A2 : ArrayList<String> {
/* fake */ override fun listIterator(p0: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability String>
// CHECK JVM_IR:
// Mangled name: A2#parallelStream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A2.parallelStream|-4896737022635116901[0]
// Public signature debug description: parallelStream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
/* fake */ override fun parallelStream(): @EnhancedNullability Stream<String?>
// Mangled name: A2#parallelStream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by IR: parallelStream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by Frontend: parallelStream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A2.parallelStream|3092772522219636263[0]
// Public signature debug description: parallelStream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
/* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability String?>
// CHECK JVM_IR:
// Mangled name: A2#removeAll(kotlin.collections.Collection<kotlin.String{EnhancedNullability}>){}kotlin.Boolean
@@ -422,10 +428,12 @@ class A2 : ArrayList<String> {
/* fake */ override fun spliterator(): @EnhancedNullability Spliterator<String?>
// CHECK JVM_IR:
// Mangled name: A2#stream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A2.stream|-795993718377355146[0]
// Public signature debug description: stream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
/* fake */ override fun stream(): @EnhancedNullability Stream<String?>
// Mangled name: A2#stream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by IR: stream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
// Mangled name for the signature by Frontend: stream(){}java.util.stream.Stream<kotlin.String?>{EnhancedNullability}
// Public signature: /A2.stream|6909137692784416467[0]
// Public signature debug description: stream(){}java.util.stream.Stream<kotlin.String?{EnhancedNullability}>{EnhancedNullability}
/* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability String?>
// CHECK JVM_IR:
// Mangled name: A2#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList<kotlin.String{EnhancedNullability}>{EnhancedNullability}