[FIR] Set EnhancedNullability attribute for former flexible types

In some cases we transform flexible type into non-flexible during
  enhancement, but don't add `@EnhancedNullability` attribute to them,
  which breaks consistency with K1 on IR level

This commit fixes it

^KT-65302
This commit is contained in:
Dmitriy Novozhilov
2024-02-16 15:24:02 +02:00
committed by Space Team
parent da567e54b9
commit bd66b96f8a
45 changed files with 208 additions and 235 deletions
@@ -50,11 +50,11 @@ FILE fqName:<root> fileName:/1.kt
public open fun ensureCapacity (p0: kotlin.Int): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<kotlin.Int>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] kotlin.Int?>, p0:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] kotlin.Int?>, p0:@[EnhancedNullability] kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (p0: @[EnhancedNullability] kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<kotlin.Int>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.Int [fake_override,operator]
overridden:
public open fun get (p0: kotlin.Int): @[EnhancedNullability] kotlin.Int declared in <root>.Java1
@@ -207,11 +207,11 @@ FILE fqName:<root> fileName:/1.kt
public open fun ensureCapacity (p0: kotlin.Int): kotlin.Unit declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.ArrayList<kotlin.Int>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Int
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] kotlin.Int?>, p0:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:java.util.AbstractList<@[FlexibleNullability] kotlin.Int?>, p0:@[EnhancedNullability] kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (p0: kotlin.Any?): kotlin.Boolean declared in java.util.ArrayList
public open fun equals (p0: @[EnhancedNullability] kotlin.Any?): kotlin.Boolean declared in java.util.ArrayList
$this: VALUE_PARAMETER name:<this> type:java.util.AbstractList<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:p0 index:0 type:kotlin.Any?
VALUE_PARAMETER name:p0 index:0 type:@[EnhancedNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:get visibility:public modality:OPEN <> ($this:java.util.ArrayList<kotlin.Int>, p0:kotlin.Int) returnType:@[EnhancedNullability] kotlin.Int [fake_override,operator]
overridden:
public open fun get (p0: kotlin.Int): @[EnhancedNullability] E of java.util.ArrayList declared in java.util.ArrayList
@@ -63,10 +63,10 @@ class A : Java1 {
/* fake */ override fun ensureCapacity(p0: Int): Unit
// CHECK JVM_IR:
// Mangled name: A#equals(kotlin.Any?){}kotlin.Boolean
// Public signature: /A.equals|722809408929142791[0]
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
/* fake */ override operator fun equals(p0: Any?): Boolean
// Mangled name: A#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
// Public signature: /A.equals|4126616015386471185[0]
// Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
/* fake */ override operator fun equals(p0: @EnhancedNullability Any?): Boolean
// CHECK JVM_IR:
// Mangled name: A#get(kotlin.Int){}kotlin.Int{EnhancedNullability}
@@ -260,10 +260,10 @@ open class KotlinClass : ArrayList<Int> {
/* fake */ override fun ensureCapacity(p0: Int): Unit
// CHECK JVM_IR:
// Mangled name: KotlinClass#equals(kotlin.Any?){}kotlin.Boolean
// Public signature: /KotlinClass.equals|722809408929142791[0]
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
/* fake */ override operator fun equals(p0: Any?): Boolean
// Mangled name: KotlinClass#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
// Public signature: /KotlinClass.equals|4126616015386471185[0]
// Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
/* fake */ override operator fun equals(p0: @EnhancedNullability Any?): Boolean
// CHECK JVM_IR:
// Mangled name: KotlinClass#get(kotlin.Int){}kotlin.Int{EnhancedNullability}
@@ -391,3 +391,4 @@ open class KotlinClass : ArrayList<Int> {
/* fake */ override get(): Int
}