[FIR] Enhance getter overrides based on overridden properties

The following tests are failing with exceptions and will be fixed in the
following commits

j+k/testKjkPropertyAndExtensionProperty.kt
j+k/testKjkImplicitReturnType.kt

#KT-62118 Fixed
This commit is contained in:
Kirill Rakhman
2024-02-28 10:41:14 +01:00
committed by Space Team
parent 885ba11d97
commit 973e337bf5
42 changed files with 1140 additions and 1008 deletions
@@ -150,23 +150,23 @@ abstract class A : SortedMap<Boolean, Boolean>, Map<Boolean, Boolean> {
// Mangled name: A{}entries
// Public signature: /A.entries|-586096469347622282[0]
// Public signature debug description: {}entries
abstract /* fake */ override val entries: Set<Entry<Boolean, Boolean>>
abstract /* fake */ override val entries: @EnhancedNullability MutableSet<@EnhancedNullability MutableEntry<Boolean?, Boolean?>>
// CHECK JVM_IR:
// Mangled name: A#<get-entries>(){}kotlin.collections.Set<kotlin.collections.Map.Entry<kotlin.Boolean,kotlin.Boolean>>
// Public signature: /A.entries.<get-entries>|-2809354568196108179[0]
// Public signature debug description: <get-entries>(){}kotlin.collections.Set<kotlin.collections.Map.Entry<kotlin.Boolean,kotlin.Boolean>>
abstract /* fake */ override get(): Set<Entry<Boolean, Boolean>>
// Mangled name: A#<get-entries>(){}kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<kotlin.Boolean?,kotlin.Boolean?>{EnhancedNullability}>{EnhancedNullability}
// Public signature: /A.entries.<get-entries>|5073510598625478346[0]
// Public signature debug description: <get-entries>(){}kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<kotlin.Boolean?,kotlin.Boolean?>{EnhancedNullability}>{EnhancedNullability}
abstract /* fake */ override get(): @EnhancedNullability MutableSet<@EnhancedNullability MutableEntry<Boolean?, Boolean?>>
// CHECK:
// Mangled name: A{}keys
// Public signature: /A.keys|-1539062068328255324[0]
// Public signature debug description: {}keys
abstract /* fake */ override val keys: Set<Boolean>
abstract /* fake */ override val keys: @EnhancedNullability MutableSet<Boolean?>
// CHECK JVM_IR:
// Mangled name: A#<get-keys>(){}kotlin.collections.Set<kotlin.Boolean>
// Public signature: /A.keys.<get-keys>|725560008518957077[0]
// Public signature debug description: <get-keys>(){}kotlin.collections.Set<kotlin.Boolean>
abstract /* fake */ override get(): Set<Boolean>
// Mangled name: A#<get-keys>(){}kotlin.collections.MutableSet<kotlin.Boolean?>{EnhancedNullability}
// Public signature: /A.keys.<get-keys>|-3437886487554544497[0]
// Public signature debug description: <get-keys>(){}kotlin.collections.MutableSet<kotlin.Boolean?>{EnhancedNullability}
abstract /* fake */ override get(): @EnhancedNullability MutableSet<Boolean?>
// CHECK:
// Mangled name: A{}size
@@ -183,12 +183,12 @@ abstract class A : SortedMap<Boolean, Boolean>, Map<Boolean, Boolean> {
// Mangled name: A{}values
// Public signature: /A.values|-764749005844117249[0]
// Public signature debug description: {}values
abstract /* fake */ override val values: Collection<Boolean>
abstract /* fake */ override val values: @EnhancedNullability MutableCollection<Boolean?>
// CHECK JVM_IR:
// Mangled name: A#<get-values>(){}kotlin.collections.Collection<kotlin.Boolean>
// Public signature: /A.values.<get-values>|3980202946551805295[0]
// Public signature debug description: <get-values>(){}kotlin.collections.Collection<kotlin.Boolean>
abstract /* fake */ override get(): Collection<Boolean>
// Mangled name: A#<get-values>(){}kotlin.collections.MutableCollection<kotlin.Boolean?>{EnhancedNullability}
// Public signature: /A.values.<get-values>|2965564880775457094[0]
// Public signature debug description: <get-values>(){}kotlin.collections.MutableCollection<kotlin.Boolean?>{EnhancedNullability}
abstract /* fake */ override get(): @EnhancedNullability MutableCollection<Boolean?>
}
@@ -344,23 +344,23 @@ abstract class B : SortedMap<Boolean, Boolean>, Map<Boolean, Boolean> {
// Mangled name: B{}entries
// Public signature: /B.entries|-586096469347622282[0]
// Public signature debug description: {}entries
abstract /* fake */ override val entries: Set<Entry<Boolean, Boolean>>
abstract /* fake */ override val entries: @EnhancedNullability MutableSet<@EnhancedNullability MutableEntry<Boolean?, Boolean?>>
// CHECK JVM_IR:
// Mangled name: B#<get-entries>(){}kotlin.collections.Set<kotlin.collections.Map.Entry<kotlin.Boolean,kotlin.Boolean>>
// Public signature: /B.entries.<get-entries>|-2809354568196108179[0]
// Public signature debug description: <get-entries>(){}kotlin.collections.Set<kotlin.collections.Map.Entry<kotlin.Boolean,kotlin.Boolean>>
abstract /* fake */ override get(): Set<Entry<Boolean, Boolean>>
// Mangled name: B#<get-entries>(){}kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<kotlin.Boolean?,kotlin.Boolean?>{EnhancedNullability}>{EnhancedNullability}
// Public signature: /B.entries.<get-entries>|5073510598625478346[0]
// Public signature debug description: <get-entries>(){}kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<kotlin.Boolean?,kotlin.Boolean?>{EnhancedNullability}>{EnhancedNullability}
abstract /* fake */ override get(): @EnhancedNullability MutableSet<@EnhancedNullability MutableEntry<Boolean?, Boolean?>>
// CHECK:
// Mangled name: B{}keys
// Public signature: /B.keys|-1539062068328255324[0]
// Public signature debug description: {}keys
abstract /* fake */ override val keys: Set<Boolean>
abstract /* fake */ override val keys: @EnhancedNullability MutableSet<Boolean?>
// CHECK JVM_IR:
// Mangled name: B#<get-keys>(){}kotlin.collections.Set<kotlin.Boolean>
// Public signature: /B.keys.<get-keys>|725560008518957077[0]
// Public signature debug description: <get-keys>(){}kotlin.collections.Set<kotlin.Boolean>
abstract /* fake */ override get(): Set<Boolean>
// Mangled name: B#<get-keys>(){}kotlin.collections.MutableSet<kotlin.Boolean?>{EnhancedNullability}
// Public signature: /B.keys.<get-keys>|-3437886487554544497[0]
// Public signature debug description: <get-keys>(){}kotlin.collections.MutableSet<kotlin.Boolean?>{EnhancedNullability}
abstract /* fake */ override get(): @EnhancedNullability MutableSet<Boolean?>
// CHECK:
// Mangled name: B{}size
@@ -377,12 +377,12 @@ abstract class B : SortedMap<Boolean, Boolean>, Map<Boolean, Boolean> {
// Mangled name: B{}values
// Public signature: /B.values|-764749005844117249[0]
// Public signature debug description: {}values
abstract /* fake */ override val values: Collection<Boolean>
abstract /* fake */ override val values: @EnhancedNullability MutableCollection<Boolean?>
// CHECK JVM_IR:
// Mangled name: B#<get-values>(){}kotlin.collections.Collection<kotlin.Boolean>
// Public signature: /B.values.<get-values>|3980202946551805295[0]
// Public signature debug description: <get-values>(){}kotlin.collections.Collection<kotlin.Boolean>
abstract /* fake */ override get(): Collection<Boolean>
// Mangled name: B#<get-values>(){}kotlin.collections.MutableCollection<kotlin.Boolean?>{EnhancedNullability}
// Public signature: /B.values.<get-values>|2965564880775457094[0]
// Public signature debug description: <get-values>(){}kotlin.collections.MutableCollection<kotlin.Boolean?>{EnhancedNullability}
abstract /* fake */ override get(): @EnhancedNullability MutableCollection<Boolean?>
}
@@ -391,3 +391,4 @@ abstract class B : SortedMap<Boolean, Boolean>, Map<Boolean, Boolean> {
// Public signature: /test|-2533013708701322011[0]
// Public signature debug description: test(A;B){}
fun test(a: A, b: B): Unit