[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,26 +150,26 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: @[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
public open a: @[EnhancedNullability] kotlin.String
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
public open fun <get-a> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open c: @[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
public open c: @[EnhancedNullability] kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
public open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, text:@[EnhancedNullability] kotlin.String) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
public open fun <set-c> (text: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
VALUE_PARAMETER name:text index:0 type:@[EnhancedNullability] kotlin.String
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
@@ -203,25 +203,25 @@ FILE fqName:<root> fileName:/1.kt
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open c: @[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[FlexibleNullability] kotlin.String? [fake_override]
public open c: @[EnhancedNullability] kotlin.String
FUN FAKE_OVERRIDE name:<get-c> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
public open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, text:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
FUN FAKE_OVERRIDE name:<set-c> visibility:public modality:OPEN <> ($this:<root>.Java2, text:@[EnhancedNullability] kotlin.String) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:c visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.Java2
public open fun <set-c> (text: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:text index:0 type:@[FlexibleNullability] kotlin.String?
VALUE_PARAMETER name:text index:0 type:@[EnhancedNullability] kotlin.String
PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open a: @[FlexibleNullability] kotlin.String?
public open a: @[EnhancedNullability] kotlin.String
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
overridden:
public open fun <get-a> (): @[FlexibleNullability] kotlin.String? declared in <root>.Java2
public open fun <get-a> (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.String declared in <root>.D'
@@ -749,12 +749,12 @@ FILE fqName:<root> fileName:/1.kt
second: CONST String type=kotlin.String value="2"
third: CONST Int type=kotlin.Int value=3
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-a> (): @[FlexibleNullability] kotlin.String? declared in <root>.C' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY
CALL 'public open fun <get-a> (): @[EnhancedNullability] kotlin.String declared in <root>.C' type=@[EnhancedNullability] kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.C' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY
CALL 'public open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.C' type=@[EnhancedNullability] kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=EQ
CALL 'public open fun <set-c> (text: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=EQ
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: @[EnhancedNullability] kotlin.String, second: @[EnhancedNullability] kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
@@ -769,9 +769,9 @@ FILE fqName:<root> fileName:/1.kt
CALL 'public open fun <get-a> (): kotlin.String declared in <root>.D' type=kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun <get-c> (): @[FlexibleNullability] kotlin.String? declared in <root>.D' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY
CALL 'public open fun <get-c> (): @[EnhancedNullability] kotlin.String declared in <root>.D' type=@[EnhancedNullability] kotlin.String origin=GET_PROPERTY
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun <set-c> (text: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=EQ
CALL 'public open fun <set-c> (text: @[EnhancedNullability] kotlin.String): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=EQ
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
text: CONST String type=kotlin.String value="2"
CALL 'public open fun overloadMethod (first: kotlin.String, second: kotlin.String, third: kotlin.Int): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
@@ -133,28 +133,28 @@ class C : Java2 {
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: String?
/* fake */ override val a: @EnhancedNullability String
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.String?
// Public signature: /C.a.<get-a>|-3827020536169281094[0]
// Public signature debug description: <get-a>(){}kotlin.String?
/* fake */ override get(): String?
// Mangled name: C#<get-a>(){}kotlin.String{EnhancedNullability}
// Public signature: /C.a.<get-a>|-7145393266243152488[0]
// Public signature debug description: <get-a>(){}kotlin.String{EnhancedNullability}
/* fake */ override get(): @EnhancedNullability String
// CHECK:
// Mangled name: C{}c
// Public signature: /C.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String?
/* fake */ override var c: @EnhancedNullability String
// CHECK JVM_IR:
// Mangled name: C#<get-c>(){}kotlin.String?
// Public signature: /C.c.<get-c>|-6320399562288171885[0]
// Public signature debug description: <get-c>(){}kotlin.String?
/* fake */ override get(): String?
// Mangled name: C#<get-c>(){}kotlin.String{EnhancedNullability}
// Public signature: /C.c.<get-c>|-2824529966014301292[0]
// Public signature debug description: <get-c>(){}kotlin.String{EnhancedNullability}
/* fake */ override get(): @EnhancedNullability String
// CHECK:
// Mangled name: C#<set-c>(kotlin.String?){}
// Public signature: /C.c.<set-c>|7821982893837257305[0]
// Public signature debug description: <set-c>(kotlin.String?){}
/* fake */ override set(text: String?): Unit
// Mangled name: C#<set-c>(kotlin.String{EnhancedNullability}){}
// Public signature: /C.c.<set-c>|163997591642030389[0]
// Public signature debug description: <set-c>(kotlin.String{EnhancedNullability}){}
/* fake */ override set(text: @EnhancedNullability String): Unit
}
@@ -184,17 +184,17 @@ class D : Java2 {
// Mangled name: D{}c
// Public signature: /D.c|-4416962153448040627[0]
// Public signature debug description: {}c
/* fake */ override var c: String?
/* fake */ override var c: @EnhancedNullability String
// CHECK JVM_IR:
// Mangled name: D#<get-c>(){}kotlin.String?
// Public signature: /D.c.<get-c>|-6320399562288171885[0]
// Public signature debug description: <get-c>(){}kotlin.String?
/* fake */ override get(): String?
// Mangled name: D#<get-c>(){}kotlin.String{EnhancedNullability}
// Public signature: /D.c.<get-c>|-2824529966014301292[0]
// Public signature debug description: <get-c>(){}kotlin.String{EnhancedNullability}
/* fake */ override get(): @EnhancedNullability String
// CHECK:
// Mangled name: D#<set-c>(kotlin.String?){}
// Public signature: /D.c.<set-c>|7821982893837257305[0]
// Public signature debug description: <set-c>(kotlin.String?){}
/* fake */ override set(text: String?): Unit
// Mangled name: D#<set-c>(kotlin.String{EnhancedNullability}){}
// Public signature: /D.c.<set-c>|163997591642030389[0]
// Public signature debug description: <set-c>(kotlin.String{EnhancedNullability}){}
/* fake */ override set(text: @EnhancedNullability String): Unit
// CHECK:
// Mangled name: D{}a
@@ -658,3 +658,4 @@ interface KotlinInterface {
// Public signature: /test|-2663909601123444132[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Unit