diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt index c3f33bfb82f..b4ede38d533 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyClass.kt @@ -193,9 +193,7 @@ class Fir2IrLazyClass( for (name in scope.getCallableNames()) { scope.processFunctionsByName(name) l@{ symbol -> when { - symbol.isSubstitutionOrIntersectionOverride -> {} !shouldBuildStub(symbol.fir) -> {} - symbol.containingClassLookupTag() != ownerLookupTag -> {} else -> { // Lazy declarations are created together with their symbol, so it's safe to take the owner here @OptIn(UnsafeDuringIrConstructionAPI::class) @@ -208,9 +206,7 @@ class Fir2IrLazyClass( symbol is FirFieldSymbol && (symbol.isStatic || symbol.containingClassLookupTag() == ownerLookupTag) -> { result += declarationStorage.getOrCreateIrField(symbol.fir, this) } - symbol.isSubstitutionOrIntersectionOverride -> {} !shouldBuildStub(symbol.fir) -> {} - symbol.containingClassLookupTag() != ownerLookupTag -> {} symbol !is FirPropertySymbol -> {} else -> { // Lazy declarations are created together with their symbol, so it's safe to take the owner here @@ -229,14 +225,6 @@ class Fir2IrLazyClass( result.addAll(getFieldsWithContextReceiversForClass(this@Fir2IrLazyClass, fir)) } - for (name in scope.getCallableNames()) { - getFakeOverridesByName(name).forEach { - if (it !is IrField) { // All fields are being added from scopes that's why filter out fields to get rid of duplicates - result += it - } - } - } - result } diff --git a/compiler/testData/ir/irText/classes/kt45853.__AX.fir.ir.txt b/compiler/testData/ir/irText/classes/kt45853.__AX.fir.ir.txt index e200e8f2b41..bf2eac5eb6d 100644 --- a/compiler/testData/ir/irText/classes/kt45853.__AX.fir.ir.txt +++ b/compiler/testData/ir/irText/classes/kt45853.__AX.fir.ir.txt @@ -1,6 +1,10 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:AX modality:ABSTRACT visibility:public superTypes:[.A; .X] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.AX CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:.AX [primary] + FUN FAKE_OVERRIDE name:getA visibility:public modality:ABSTRACT <> ($this:.X) returnType:@[FlexibleNullability] .X? [fake_override] + overridden: + public abstract fun getA (): @[FlexibleNullability] .X? declared in .X + $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:.X PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:a visibility:public modality:OPEN [val] overridden: public abstract a: .A? [val] @@ -11,10 +15,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:AX modality:ABSTRACT visibili overridden: public abstract fun (): .A? declared in .A $this: VALUE_PARAMETER IR_EXTERNAL_JAVA_DECLARATION_STUB name: type:.AX - FUN FAKE_OVERRIDE name:getA visibility:public modality:ABSTRACT <> ($this:.X) returnType:@[FlexibleNullability] .X? [fake_override] - overridden: - public abstract fun getA (): @[FlexibleNullability] .X? declared in .X - $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:.X FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in .A diff --git a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J.fir.ir.txt b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J.fir.ir.txt index 39b94b955ac..5f37607c7b0 100644 --- a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J.fir.ir.txt +++ b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J.fir.ir.txt @@ -3,8 +3,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:pu CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:.J [primary] FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:kotlin.Int visibility:public FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:kotlin.Int visibility:public - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static] - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:kotlin.Int visibility:public [static] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any @@ -18,3 +16,5 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:pu overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Any + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static] + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:kotlin.Int visibility:public [static] diff --git a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J1.fir.ir.txt b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J1.fir.ir.txt index cacafbe176d..3a6d6193ab4 100644 --- a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J1.fir.ir.txt +++ b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__J1.fir.ir.txt @@ -4,8 +4,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:p CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:.J1.J1> [primary] FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f type:@[FlexibleNullability] T of .J1? visibility:public FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:@[FlexibleNullability] T of .J1? visibility:public - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:@[FlexibleNullability] T of .J1? visibility:public [static] - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:@[FlexibleNullability] T of .J1? visibility:public [static] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any @@ -19,3 +17,5 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J1 modality:OPEN visibility:p overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Any + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:@[FlexibleNullability] T of .J1? visibility:public [static] + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:@[FlexibleNullability] T of .J1? visibility:public [static] diff --git a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X.fir.ir.txt b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X.fir.ir.txt index f461fbecd8d..37d217304f3 100644 --- a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X.fir.ir.txt +++ b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X.fir.ir.txt @@ -2,8 +2,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X modality:OPEN visibility:pu $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.X CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:.X [primary] FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:kotlin.Int visibility:public - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:kotlin.Int visibility:public [static] - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in .J @@ -17,3 +15,5 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X modality:OPEN visibility:pu overridden: public open fun toString (): kotlin.String [fake_override] declared in .J $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Any + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:kotlin.Int visibility:public [static] + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:kotlin.Int visibility:public [static] diff --git a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X1.fir.ir.txt b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X1.fir.ir.txt index e254cb60f86..65c7ae88122 100644 --- a/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X1.fir.ir.txt +++ b/compiler/testData/ir/irText/firProblems/MissingFieldInJavaClass.__X1.fir.ir.txt @@ -3,8 +3,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X1 modality:OPEN visibility:p TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public/*package*/ <> () returnType:.X1.X1> [primary] FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:f2 type:@[FlexibleNullability] kotlin.String? visibility:public - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:@[FlexibleNullability] kotlin.String? visibility:public [static] - FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:@[FlexibleNullability] T of .J1? visibility:public [static] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in .J1 @@ -18,3 +16,5 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:X1 modality:OPEN visibility:p overridden: public open fun toString (): kotlin.String [fake_override] declared in .J1 $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Any + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s2 type:@[FlexibleNullability] kotlin.String? visibility:public [static] + FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:s type:@[FlexibleNullability] T of .J1? visibility:public [static] diff --git a/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt b/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt index 70ce69add5a..8331053ebd6 100644 --- a/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt +++ b/compiler/testData/ir/irText/stubs/javaEnum.__JEnum.fir.ir.txt @@ -3,12 +3,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ENUM_CLASS name:JEnum modality:FINAL vis ENUM_ENTRY IR_EXTERNAL_JAVA_DECLARATION_STUB name:ONE ENUM_ENTRY IR_EXTERNAL_JAVA_DECLARATION_STUB name:TWO ENUM_ENTRY IR_EXTERNAL_JAVA_DECLARATION_STUB name:THREE - FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.JEnum> - FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.JEnum - VALUE_PARAMETER name:value index:0 type:kotlin.String - PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:entries visibility:public modality:FINAL [val] - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:kotlin.enums.EnumEntries<.JEnum> - correspondingProperty: PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:entries visibility:public modality:FINAL [val] FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<@[FlexibleNullability] .JEnum?>) returnType:kotlin.Any [fake_override] overridden: protected final fun clone (): kotlin.Any declared in kotlin.Enum @@ -59,3 +53,9 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB ENUM_CLASS name:JEnum modality:FINAL vis overridden: protected/*protected and package*/ final fun finalize (): kotlin.Unit declared in kotlin.Enum $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Enum<@[FlexibleNullability] .JEnum?> + FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<.JEnum> + FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:.JEnum + VALUE_PARAMETER name:value index:0 type:kotlin.String + PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:entries visibility:public modality:FINAL [val] + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:kotlin.enums.EnumEntries<.JEnum> + correspondingProperty: PROPERTY IR_EXTERNAL_JAVA_DECLARATION_STUB name:entries visibility:public modality:FINAL [val] diff --git a/compiler/testData/ir/irText/stubs/javaNestedClass.__J.fir.ir.txt b/compiler/testData/ir/irText/stubs/javaNestedClass.__J.fir.ir.txt index 4399e8c8566..d7f09302d4f 100644 --- a/compiler/testData/ir/irText/stubs/javaNestedClass.__J.fir.ir.txt +++ b/compiler/testData/ir/irText/stubs/javaNestedClass.__J.fir.ir.txt @@ -6,7 +6,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:pu CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:.J.JJ [primary] FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:foo visibility:public modality:OPEN <> ($this:.J.JJ) returnType:kotlin.Unit $this: VALUE_PARAMETER IR_EXTERNAL_JAVA_DECLARATION_STUB name: type:.J.JJ - FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:bar visibility:public modality:OPEN <> () returnType:kotlin.Unit FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any @@ -20,6 +19,7 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:pu overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Any + FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:bar visibility:public modality:OPEN <> () returnType:kotlin.Unit FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any diff --git a/compiler/testData/ir/irText/stubs/javaStaticMethod.__J.fir.ir.txt b/compiler/testData/ir/irText/stubs/javaStaticMethod.__J.fir.ir.txt index be1b25f8bb2..f2f78c77ce9 100644 --- a/compiler/testData/ir/irText/stubs/javaStaticMethod.__J.fir.ir.txt +++ b/compiler/testData/ir/irText/stubs/javaStaticMethod.__J.fir.ir.txt @@ -1,7 +1,6 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.J CONSTRUCTOR IR_EXTERNAL_JAVA_DECLARATION_STUB visibility:public <> () returnType:.J [primary] - FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:bar visibility:public modality:OPEN <> () returnType:kotlin.Unit FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any @@ -15,3 +14,4 @@ CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:J modality:OPEN visibility:pu overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER FAKE_OVERRIDE name: type:kotlin.Any + FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:bar visibility:public modality:OPEN <> () returnType:kotlin.Unit