From 4783822fbc6124c4ba34c64fc79b53dde6b500f7 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 12 Dec 2023 18:10:11 +0100 Subject: [PATCH] K1/K2: add test confirming the work of KT-54487 case #KT-54487 Obsolete #KT-63350 Declined --- ...LFirBlackBoxCodegenBasedTestGenerated.java | 6 +++ ...rsedBlackBoxCodegenBasedTestGenerated.java | 6 +++ ...LightTreeBlackBoxCodegenTestGenerated.java | 6 +++ ...hIrFakeOverrideGeneratorTestGenerated.java | 6 +++ .../FirPsiBlackBoxCodegenTestGenerated.java | 6 +++ ...publicMethodCallViaPackagePrivateCommon.kt | 47 +++++++++++++++++++ .../IrBlackBoxCodegenTestGenerated.java | 6 +++ ...kBoxCodegenWithIrInlinerTestGenerated.java | 6 +++ .../LightAnalysisModeTestGenerated.java | 5 ++ 9 files changed, 94 insertions(+) create mode 100644 compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt 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 731260af6cf..63d13dc2ed7 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 @@ -20144,6 +20144,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() 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 2ef5606d9fb..bf792226bf4 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 @@ -20144,6 +20144,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() throws Exception { 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 b867e33e28a..68bd1e5095c 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 @@ -19819,6 +19819,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() 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 da5fb59d0dc..27bed7af3fb 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 @@ -19819,6 +19819,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() 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 a50e92f7c3d..016b87e6acb 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 @@ -19819,6 +19819,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() throws Exception { diff --git a/compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt b/compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt new file mode 100644 index 00000000000..637c7882cf0 --- /dev/null +++ b/compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt @@ -0,0 +1,47 @@ +// TARGET_BACKEND: JVM_IR +// ISSUE: KT-54487, KT-63350 +// FILE: p/I.java + +package p; + +public interface I { + String foo(); +} + +// FILE: p/I2.java + +package p; + +public interface I2 extends I {} + +// FILE: p/C.java + +package p; + +public class C { + static class Impl implements I { + public String foo() { + return "OK"; + } + } + + static class C1Base extends Impl {} + static class C2Base extends Impl {} + + public static class C1 extends C1Base implements I2 {} + public static class C2 extends C2Base implements I2 {} + + public static final C1 c1 = new C1(); + public static final C2 c2 = new C2(); +} + +// FILE: test.kt + +import p.C + +fun union(a: T, b: T) = a + +fun box() = +// receiver type = I2 & C.Impl +// method resolved to C.Impl.foo, but in backend IR the resulting call is I2.foo + union(C.c1, C.c2).foo() 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 8ab432fafc4..539c069fc13 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 @@ -19819,6 +19819,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() 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 4786755191f..d881181c550 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 @@ -19819,6 +19819,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @Test + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @Test @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() 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 6d497c70e1a..85c9805e323 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -16537,6 +16537,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/fir/notFoundClasses.kt"); } + @TestMetadata("publicMethodCallViaPackagePrivateCommon.kt") + public void testPublicMethodCallViaPackagePrivateCommon() throws Exception { + runTest("compiler/testData/codegen/box/fir/publicMethodCallViaPackagePrivateCommon.kt"); + } + @TestMetadata("SamWithReceiverMavenProjectImportHandler.kt") public void testSamWithReceiverMavenProjectImportHandler() throws Exception { runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt");