From 36dd9b6818c7eb91c969801c97c367ff0966384d Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 31 Jan 2024 10:11:03 +0100 Subject: [PATCH] K2: add BB tests for KT-59380 working properly (compiler error in K1) #KT-59380 As Designed --- ...LFirBlackBoxCodegenBasedTestGenerated.java | 18 +++++++ ...rsedBlackBoxCodegenBasedTestGenerated.java | 18 +++++++ ...LightTreeBlackBoxCodegenTestGenerated.java | 18 +++++++ ...hIrFakeOverrideGeneratorTestGenerated.java | 18 +++++++ .../FirPsiBlackBoxCodegenTestGenerated.java | 18 +++++++ .../fir/kotlinJavaStaticAccidentalOverride.kt | 21 ++++++++ .../kotlinJavaStaticAccidentalOverride2.kt | 53 +++++++++++++++++++ ...vaStaticFromInterfaceAccidentalOverride.kt | 19 +++++++ .../JvmAbiConsistencyTestBoxGenerated.java | 18 +++++++ .../IrBlackBoxCodegenTestGenerated.java | 18 +++++++ ...kBoxCodegenWithIrInlinerTestGenerated.java | 18 +++++++ .../LightAnalysisModeTestGenerated.java | 15 ++++++ 12 files changed, 252 insertions(+) create mode 100644 compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt create mode 100644 compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt create mode 100644 compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.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 73a668853ce..ddfafa114d8 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 @@ -20168,6 +20168,24 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 69096f7c0cc..ac1e562ea11 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 @@ -20168,6 +20168,24 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 aeb8c101018..0c0a795ff8c 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 @@ -19897,6 +19897,24 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 e09df94e78c..e3ed538e2be 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 @@ -19897,6 +19897,24 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 ab8ab564912..6c0f5e7d84c 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 @@ -19897,6 +19897,24 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() throws Exception { diff --git a/compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt b/compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt new file mode 100644 index 00000000000..7c94da078c0 --- /dev/null +++ b/compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt @@ -0,0 +1,21 @@ +// TARGET_BACKEND: JVM_IR +// IGNORE_BACKEND_K1: JVM_IR +// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION +// Both K1 and K2 with IR f/o generator report ACCIDENTAL_OVERRIDE on B.foo (see also KT-60283) +// ISSUE: KT-59380 + +// FILE: A.java + +public class A { + public static String foo() { + return "FAIL"; + } +} + +// FILE: box.kt + +class B : A() { + fun foo() = "OK" +} + +fun box() = B().foo() diff --git a/compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt b/compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt new file mode 100644 index 00000000000..a9e445602ed --- /dev/null +++ b/compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt @@ -0,0 +1,53 @@ +// TARGET_BACKEND: JVM_IR +// IGNORE_BACKEND_K1: JVM_IR +// IGNORE_CODEGEN_WITH_IR_FAKE_OVERRIDE_GENERATION +// Both K1 and K2 with IR f/o generator report ACCIDENTAL_OVERRIDE on B.foo (see also KT-60283) +// ISSUE: KT-59830 + +// FILE: A.java + +public class A { + public static void foo() {} + public static void baz(String s) {} +} + +// FILE: B.kt + +open class B : A() { +} + +// FILE: C.java + +public class C extends B { + public static void bar(int i) {} +} + +// FILE: K.kt + +open class K : C() { + fun foo() {} + fun foo(a: Any) {} + fun bar(i: Int) {} + fun bar(i: String) {} + fun baz(i: Int) {} + + companion object { + fun foo() {} + fun bar(i: Int) {} + } +} + +fun box(): String { + A.foo() + A.baz("") + C.bar(0) + K.foo() + K.bar(0) + val k = K() + k.foo() + k.foo(0.0) + k.bar(0) + k.bar("") + k.baz(0) + return "OK" +} diff --git a/compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt b/compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt new file mode 100644 index 00000000000..44f07e8f8ae --- /dev/null +++ b/compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt @@ -0,0 +1,19 @@ +// TARGET_BACKEND: JVM_IR +// JVM_TARGET: 1.8 +// ISSUE: KT-59380 + +// FILE: A.java + +public interface A { + static String foo() { + return "FAIL"; + } +} + +// FILE: box.kt + +class B : A { + fun foo() = "OK" +} + +fun box() = B().foo() 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 2f54b11bbae..4bc56538422 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 @@ -19897,6 +19897,24 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 4ec1a67fd94..02862b1c713 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 @@ -19897,6 +19897,24 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 500a5898530..f06aaeffd26 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 @@ -19897,6 +19897,24 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void testKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void testKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + + @Test + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @Test @TestMetadata("kt61856.kt") public void testKt61856() 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 00be27ddf17..e17335cd90d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -16397,6 +16397,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/fir/emptyIntersectionWarning.kt"); } + @TestMetadata("kotlinJavaStaticAccidentalOverride.kt") + public void ignoreKotlinJavaStaticAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride.kt"); + } + + @TestMetadata("kotlinJavaStaticAccidentalOverride2.kt") + public void ignoreKotlinJavaStaticAccidentalOverride2() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticAccidentalOverride2.kt"); + } + @TestMetadata("selectingLambdas.kt") public void ignoreSelectingLambdas() throws Exception { runTest("compiler/testData/codegen/box/fir/selectingLambdas.kt"); @@ -16630,6 +16640,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/fir/kotlinJavaKotlin.kt"); } + @TestMetadata("kotlinJavaStaticFromInterfaceAccidentalOverride.kt") + public void testKotlinJavaStaticFromInterfaceAccidentalOverride() throws Exception { + runTest("compiler/testData/codegen/box/fir/kotlinJavaStaticFromInterfaceAccidentalOverride.kt"); + } + @TestMetadata("kt61856.kt") public void testKt61856() throws Exception { runTest("compiler/testData/codegen/box/fir/kt61856.kt");