diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java index e90596be229..7da695bfb22 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java @@ -19352,6 +19352,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java index f0510081d9f..157cfc34d54 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java @@ -19352,6 +19352,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 33a3c5d7b5b..47046f067ee 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -586,7 +586,7 @@ internal fun IrDeclarationParent.declareThisReceiverParameter( explicitReceiver: FirReceiverParameter? = null, isAssignable: Boolean = false ): IrValueParameter { - return symbolTable.irFactory.createValueParameter( + return irFactory.createValueParameter( startOffset = startOffset, endOffset = endOffset, origin = thisOrigin, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index a8b0ceaf0e2..010458da60c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -358,7 +358,7 @@ class Fir2IrClassifierStorage( } else { irParent.origin } - val symbol = createEnumEntrySymbol(enumEntry) + val symbol = IrEnumEntrySymbolImpl() return classifiersGenerator.createIrEnumEntry( enumEntry, irParent = irParent, @@ -369,34 +369,18 @@ class Fir2IrClassifierStorage( } } - private fun createEnumEntrySymbol(enumEntry: FirEnumEntry): IrEnumEntrySymbol { - val signature = signatureComposer.composeSignature(enumEntry) - return when { - signature != null -> symbolTable.referenceEnumEntry(signature) - else -> IrEnumEntrySymbolImpl() - } - } - // ------------------------------------ typealiases ------------------------------------ fun createAndCacheIrTypeAlias( typeAlias: FirTypeAlias, parent: IrDeclarationParent ): IrTypeAlias { - val symbol = createTypeAliasSymbol(typeAlias) + val symbol = IrTypeAliasSymbolImpl() return classifiersGenerator.createIrTypeAlias(typeAlias, parent, symbol).also { typeAliasCache[typeAlias] = it } } - private fun createTypeAliasSymbol(typeAlias: FirTypeAlias): IrTypeAliasSymbol { - val signature = signatureComposer.composeSignature(typeAlias) - return when { - signature != null -> symbolTable.referenceTypeAlias(signature) - else -> IrTypeAliasSymbolImpl() - } - } - internal fun getCachedTypeAlias(firTypeAlias: FirTypeAlias): IrTypeAlias? = typeAliasCache[firTypeAlias] fun referenceTypeAlias(firTypeAliasSymbol: FirTypeAliasSymbol): IrTypeAlias { @@ -413,7 +397,7 @@ class Fir2IrClassifierStorage( firTypeAlias.origin )!! - val symbol = createTypeAliasSymbol(firTypeAlias) + val symbol = IrTypeAliasSymbolImpl() val irTypeAlias = lazyDeclarationsGenerator.createIrLazyTypeAlias(firTypeAlias, irParent, symbol) typeAliasCache[firTypeAlias] = irTypeAlias irTypeAlias.prepareTypeParameters() diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index e2b37691641..7007cfdfe5e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -598,7 +598,7 @@ class Fir2IrDeclarationStorage( } val backingFieldSymbol = runIf(property.delegate != null || property.hasBackingField) { - createFieldSymbol(signature = null) + createFieldSymbol() } return PropertySymbols(propertySymbol, getterSymbol, setterSymbol, backingFieldSymbol) @@ -888,8 +888,7 @@ class Fir2IrDeclarationStorage( origin: IrDeclarationOrigin = IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB ): IrField { val containingClassLookupTag = (irParent as IrClass?)?.classId?.toLookupTag() - val signature = signatureComposer.composeSignature(field, containingClassLookupTag) - val symbol = createFieldSymbol(signature) + val symbol = createFieldSymbol() val irField = callablesGenerator.createIrField(field, irParent, symbol, type, origin) @@ -902,11 +901,8 @@ class Fir2IrDeclarationStorage( return irField } - private fun createFieldSymbol(signature: IdSignature?): IrFieldSymbol { - return when { - signature != null -> symbolTable.referenceField(signature) - else -> IrFieldSymbolImpl() - } + private fun createFieldSymbol(): IrFieldSymbol { + return IrFieldSymbolImpl() } // This function returns null if this field/ownerClassId combination does not describe static fake override @@ -1374,19 +1370,12 @@ class Fir2IrDeclarationStorage( fun createIrScript(script: FirScript): IrScript { getCachedIrScript(script)?.let { error("IrScript already created: ${script.render()}") } - val symbol = createScriptSymbol(signatureComposer.composeSignature(script)) + val symbol = IrScriptSymbolImpl() return callablesGenerator.createIrScript(script, symbol).also { scriptCache[script] = it } } - private fun createScriptSymbol(signature: IdSignature?): IrScriptSymbol { - return when { - signature != null -> symbolTable.referenceScript(signature) - else -> IrScriptSymbolImpl() - } - } - // ------------------------------------ scoping ------------------------------------ fun enterScope(symbol: IrSymbol) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt index 097abec1ee1..518a0ecce55 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt @@ -59,7 +59,7 @@ class IrBuiltInsOverFir( private val symbolProvider: FirSymbolProvider get() = session.symbolProvider - override val irFactory: IrFactory = components.symbolTable.irFactory + override val irFactory: IrFactory = components.irFactory private val kotlinPackage = StandardClassIds.BASE_KOTLIN_PACKAGE diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index 9c43858e98b..8c8c0664440 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -19341,6 +19341,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java index b4fecc2a3e7..50d9a0bba84 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java @@ -19341,6 +19341,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 2fdd1d74f34..f5ef42ba223 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -19341,6 +19341,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/testData/codegen/box/fakeOverride/kt65274.kt b/compiler/testData/codegen/box/fakeOverride/kt65274.kt new file mode 100644 index 00000000000..15c74412a56 --- /dev/null +++ b/compiler/testData/codegen/box/fakeOverride/kt65274.kt @@ -0,0 +1,20 @@ +// TARGET_BACKEND: JVM + +// FILE: a/A.java +package a; + +public class A { + static final String X = "Fail"; +} + +// FILE: B.java +public class B extends a.A { + private final String X = "OK"; + + public String get() { return X; } +} + +// FILE: box.kt +class C : B() + +fun box(): String = C().get() \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java index febba5d5cae..6e3043dc2f5 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java @@ -19341,6 +19341,12 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index cb535ee5e03..7aa104eb522 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -18489,6 +18489,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/fakeOverride/kt49371.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 98c55e3f105..3f940237837 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -19341,6 +19341,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 54527496a42..4c5b3ec59b9 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -19341,6 +19341,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @Test + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @Test @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index c8ddbe80089..a47c5f26cbc 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -16114,6 +16114,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt"); } + @TestMetadata("kt65274.kt") + public void testKt65274() throws Exception { + runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt"); + } + @TestMetadata("methodOfAnyFromInterface.kt") public void testMethodOfAnyFromInterface() throws Exception { runTest("compiler/testData/codegen/box/fakeOverride/methodOfAnyFromInterface.kt");