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 a47d38a4c57..d18e9443e60 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 @@ -34116,6 +34116,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Test @TestMetadata("javaMethodWithTypeParameter.kt") public void testJavaMethodWithTypeParameter() 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 e31fd686243..74e56d6e4f0 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 @@ -34116,6 +34116,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Test @TestMetadata("javaMethodWithTypeParameter.kt") public void testJavaMethodWithTypeParameter() 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 de2df69c1c5..f173d7c0df4 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 @@ -34116,6 +34116,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Test @TestMetadata("javaMethodWithTypeParameter.kt") public void testJavaMethodWithTypeParameter() throws Exception { diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizer.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizer.kt index 15eeddf895e..29c80807aab 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizer.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/actualizer/IrActualizer.kt @@ -119,7 +119,9 @@ object IrActualizer { } private fun mergeIrFragments(mainFragment: IrModuleFragment, dependentFragments: List) { - mainFragment.files.addAll(0, dependentFragments.flatMap { it.files }) + val newFiles = dependentFragments.flatMap { it.files } + for (file in newFiles) file.module = mainFragment + mainFragment.files.addAll(0, newFiles) } } diff --git a/compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt b/compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt new file mode 100644 index 00000000000..91b41eae61c --- /dev/null +++ b/compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt @@ -0,0 +1,47 @@ +// LANGUAGE: +MultiPlatformProjects +// It accidentially passes K1 JVM while not intended to do so. +// IGNORE_BACKEND_K1: JS, JS_IR, JS_IR_ES6, WASM, NATIVE +// MODULE: common +// FILE: common.kt + +open class A { + open internal fun foo() = "A" +} + +open class B { + open internal fun foo() = "B" +} + + +// MODULE: middle()()(common) +// FILE: middle.kt + +class AChild : A() { + override public fun foo() = "AChild" +} + +open class C { + open internal fun foo() = "C" +} + +// MODULE: main()()(middle) +// FILE: main.kt + +class BChild : B() { + override public fun foo() = "BChild" +} + +class CChild : C() { + override public fun foo() = "CChild" +} + + +fun box() : String { + val a: A = AChild() + val b: B = BChild() + val c: C = CChild() + if (a.foo() != "AChild") return "Fail 1" + if (b.foo() != "BChild") return "Fail 2" + if (c.foo() != "CChild") return "Fail 3" + return "OK" +} \ No newline at end of file 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 10bac06bf26..13003c7e91f 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 @@ -32394,6 +32394,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") 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 bce20c2d85c..845d51b8b26 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 @@ -34116,6 +34116,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Test @TestMetadata("javaMethodWithTypeParameter.kt") public void testJavaMethodWithTypeParameter() 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 19253285129..5d566916e95 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 @@ -34116,6 +34116,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Test @TestMetadata("javaMethodWithTypeParameter.kt") public void testJavaMethodWithTypeParameter() 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 3eac74df76a..833e9be4e5d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -29071,6 +29071,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClassJVM.kt"); } + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @TestMetadata("javaMethodWithTypeParameter.kt") public void testJavaMethodWithTypeParameter() throws Exception { runTest("compiler/testData/codegen/box/multiplatform/k2/javaMethodWithTypeParameter.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index 3754ccfdb71..4628ed0cdc1 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -23820,6 +23820,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java index 7658b87984b..ed64900422c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java @@ -23820,6 +23820,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index 06dbde514e0..5a844e6bf0e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -23820,6 +23820,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index 4ea710ae421..4bb0e64264f 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -23820,6 +23820,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java index af17d5e1e20..a1bfce76121 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java @@ -26789,6 +26789,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java index 59c9412797d..5dc827b8f35 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java @@ -27405,6 +27405,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java index 086d7a66eb1..536b38386b7 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java @@ -26482,6 +26482,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java index 95f72156666..147b7168078 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java @@ -26790,6 +26790,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java index 9d95455842e..5f82cc72590 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java @@ -23568,6 +23568,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT") diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index ecb7cbf3486..38c8da12bf1 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java @@ -23568,6 +23568,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest runTest("compiler/testData/codegen/box/multiplatform/k2/expectValInInlineClass.kt"); } + @Test + @TestMetadata("internalOverride.kt") + public void testInternalOverride() throws Exception { + runTest("compiler/testData/codegen/box/multiplatform/k2/internalOverride.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/multiplatform/k2/annotations") @TestDataPath("$PROJECT_ROOT")