[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
@@ -63,10 +63,10 @@ class A1 : ArrayList<String> {
/* fake */ override fun ensureCapacity(p0: Int): Unit
// CHECK JVM_IR:
// Mangled name: A1#equals(kotlin.Any?){}kotlin.Boolean
// Public signature: /A1.equals|722809408929142791[0]
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
/* fake */ override operator fun equals(p0: Any?): Boolean
// Mangled name: A1#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
// Public signature: /A1.equals|4126616015386471185[0]
// Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
/* fake */ override operator fun equals(p0: @EnhancedNullability Any?): Boolean
// CHECK:
// Mangled name: A1#forEach(java.util.function.Consumer<in|kotlin.String?>?){}
@@ -302,10 +302,10 @@ class A2 : ArrayList<String> {
/* fake */ override fun ensureCapacity(p0: Int): Unit
// CHECK JVM_IR:
// Mangled name: A2#equals(kotlin.Any?){}kotlin.Boolean
// Public signature: /A2.equals|722809408929142791[0]
// Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean
/* fake */ override operator fun equals(p0: Any?): Boolean
// Mangled name: A2#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
// Public signature: /A2.equals|4126616015386471185[0]
// Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean
/* fake */ override operator fun equals(p0: @EnhancedNullability Any?): Boolean
// CHECK:
// Mangled name: A2#forEach(java.util.function.Consumer<in|kotlin.String?>?){}
@@ -475,3 +475,4 @@ class A2 : ArrayList<String> {
/* fake */ override get(): Int
}