From d6acba1c33c88208daab602ab4e86c45373cce02 Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Mon, 11 Sep 2023 16:07:16 +0200 Subject: [PATCH] Add regression tests for final expect classes overrides that change modality KT-61840 Specifically see the comment: https://youtrack.jetbrains.com/issue/KT-61840/K2-support-changes-in-overrides-of-fake-overrides-of-expect-declarations#focus=Comments-27-8077580.0-0 Review: https://jetbrains.team/p/kt/reviews/12147/timeline --- ...MPPDiagnosticsWithLightTreeTestGenerated.java | 12 ++++++++++++ ...ontendMPPDiagnosticsWithPsiTestGenerated.java | 12 ++++++++++++ ...Override_finalExpectClass_finalActualClass.kt | 16 ++++++++++++++++ ...nOverride_finalExpectClass_openActualClass.kt | 16 ++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 12 ++++++++++++ 5 files changed, 68 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt create mode 100644 compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java index 0d76f9de0f6..824a480aa0b 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java @@ -109,6 +109,18 @@ public class FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated extends Abst runTest("compiler/testData/diagnostics/tests/multiplatform/callConflictsOnExpectAndActualWeaklyCompatible.kt"); } + @Test + @TestMetadata("changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt") + public void testChangeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt"); + } + + @Test + @TestMetadata("changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt") + public void testChangeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt"); + } + @Test @TestMetadata("checkNoActualForExpectInLastModule.kt") public void testCheckNoActualForExpectInLastModule() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java index 8c891e0404e..ab023bde0be 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java @@ -109,6 +109,18 @@ public class FirOldFrontendMPPDiagnosticsWithPsiTestGenerated extends AbstractFi runTest("compiler/testData/diagnostics/tests/multiplatform/callConflictsOnExpectAndActualWeaklyCompatible.kt"); } + @Test + @TestMetadata("changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt") + public void testChangeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt"); + } + + @Test + @TestMetadata("changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt") + public void testChangeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt"); + } + @Test @TestMetadata("checkNoActualForExpectInLastModule.kt") public void testCheckNoActualForExpectInLastModule() throws Exception { diff --git a/compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt b/compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt new file mode 100644 index 00000000000..862a37cb710 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt @@ -0,0 +1,16 @@ +// FIR_IDENTICAL +// MODULE: m1-common +// FILE: common.kt + +open class Base { + open fun foo() {} +} + +expect class Foo : Base + +// MODULE: m2-jvm()()(m1-common) +// FILE: jvm.kt + +actual class Foo : Base() { + final override fun foo() {} +} diff --git a/compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt b/compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt new file mode 100644 index 00000000000..51e0e9ab387 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt @@ -0,0 +1,16 @@ +// FIR_IDENTICAL +// MODULE: m1-common +// FILE: common.kt + +open class Base { + open fun foo() {} +} + +expect class Foo : Base + +// MODULE: m2-jvm()()(m1-common) +// FILE: jvm.kt + +actual open class Foo : Base() { + final override fun foo() {} +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 1278329ddd1..d1e210dc6ff 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -23476,6 +23476,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/multiplatform/callConflictsOnExpectAndActualWeaklyCompatible.kt"); } + @Test + @TestMetadata("changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt") + public void testChangeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_finalActualClass.kt"); + } + + @Test + @TestMetadata("changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt") + public void testChangeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/changeModalityFromOpenToFinalInOverride_finalExpectClass_openActualClass.kt"); + } + @Test @TestMetadata("checkNoActualForExpectInLastModule.kt") public void testCheckNoActualForExpectInLastModule() throws Exception {