diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index ae268d40801..ed09bd55d37 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -67,21 +67,9 @@ class FakeOverrideGenerator( } fun IrClass.getFakeOverrides(klass: FirClass<*>, realDeclarations: Collection): List { - val classLookupTag = klass.symbol.toLookupTag() - val realDeclarationNames = realDeclarations.mapNotNullTo(mutableSetOf()) { - val callableDeclaration = (it as? FirCallableMemberDeclaration<*>) ?: return@mapNotNullTo null - // We may need to create a new fake override or compute base symbols. - if (callableDeclaration.symbol.shouldHaveComputedBaseSymbolsForClass(classLookupTag) || - callableDeclaration.allowsToHaveFakeOverrideIn(klass) - ) null - // Otherwise, bail out early based on the name of the contributed member declaration - else callableDeclaration.symbol.callableId.callableName - } - val result = mutableListOf() val useSiteMemberScope = klass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true) - val superTypesCallableNames = useSiteMemberScope.getCallableNames().filter { it !in realDeclarationNames } - + val superTypesCallableNames = useSiteMemberScope.getCallableNames() val realDeclarationSymbols = realDeclarations.filterIsInstance>().mapTo(mutableSetOf(), FirSymbolOwner<*>::symbol) for (name in superTypesCallableNames) { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 7ce28a37504..3f3615c5bbe 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -39842,6 +39842,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @Test + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @Test @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() throws Exception { diff --git a/compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt b/compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt new file mode 100644 index 00000000000..e9acb4b97e5 --- /dev/null +++ b/compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt @@ -0,0 +1,9 @@ +interface A { + fun foo(t: T): T = t +} + +class B : A { + private fun foo() {} +} + +fun box(): String = B().foo("OK") 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 f68761a77d9..34de1798b90 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 @@ -39824,6 +39824,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @Test + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @Test @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() 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 f9e05624b32..d557064f746 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 @@ -39842,6 +39842,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @Test + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @Test @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() 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 c7f425bf923..d0f1dec41fb 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -31936,6 +31936,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() throws Exception { runTest("compiler/testData/codegen/box/traits/syntheticAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index fb57525ae14..bd615a3d73b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -26881,6 +26881,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() throws Exception { runTest("compiler/testData/codegen/box/traits/syntheticAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 13c82e2bf03..d6e3f056b9b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -26302,6 +26302,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() throws Exception { runTest("compiler/testData/codegen/box/traits/syntheticAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 1cce88f4bc3..d59274a0061 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -26262,6 +26262,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() throws Exception { runTest("compiler/testData/codegen/box/traits/syntheticAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 8c8aaf1da3b..1222b7b9cde 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -14661,6 +14661,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/traits/receiverOfIntersectionType.kt"); } + @TestMetadata("sameNameMethodFromInterface.kt") + public void testSameNameMethodFromInterface() throws Exception { + runTest("compiler/testData/codegen/box/traits/sameNameMethodFromInterface.kt"); + } + @TestMetadata("syntheticAccessor.kt") public void testSyntheticAccessor() throws Exception { runTest("compiler/testData/codegen/box/traits/syntheticAccessor.kt");