[FIR2IR] Don't add synthetic propertiy fake overrides to parent class

This fixes a KMP issue where IrActualizer would add duplicate
fake overrides because the parent class would have both the getter
and the synthetic property in its list of declarations.
Now, the synthetic property fake overrides are still generated and
cached in the Fir2IrDeclarationStorage, but not added to the class.

#KT-60854 Fixed
This commit is contained in:
Kirill Rakhman
2023-08-11 16:06:03 +02:00
committed by Space Team
parent f459a6f6b5
commit 6fba6a2e3c
8 changed files with 57 additions and 14 deletions
@@ -15,16 +15,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:AX modality:ABSTRACT visibili
overridden:
public abstract fun getA (): @[FlexibleNullability] <root>.X? declared in <root>.X
$this: VALUE_PARAMETER FAKE_OVERRIDE name:<this> type:<root>.AX
PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:a visibility:public modality:OPEN [val]
overridden:
public abstract a: <root>.A? [val]
FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:<get-a> visibility:public modality:OPEN <> ($this:<root>.AX) returnType:@[FlexibleNullability] <root>.AX?
annotations:
Override
correspondingProperty: PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:a visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-a> (): <root>.A? declared in <root>.A
$this: VALUE_PARAMETER IR_EXTERNAL_JAVA_DECLARATION_STUB name:<this> type:<root>.AX
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:<root>.AX, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A