From 3a0c4d1087a8b25ba7e9e46768eb9fe32b9f3576 Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Tue, 5 Sep 2023 16:25:25 +0200 Subject: [PATCH] KMP: Put "prohbit implicit Java actualization" under the flag ^KT-61668 Fixed Review: https://jetbrains.team/p/kt/reviews/12062/timeline --- ...dMPPDiagnosticsWithLightTreeTestGenerated.java | 6 ++++++ ...rontendMPPDiagnosticsWithPsiTestGenerated.java | 6 ++++++ .../checkers/ExpectedActualDeclarationChecker.kt | 1 + ...citJavaActualization_oldLanguageVersion.fir.kt | 15 +++++++++++++++ ...mplicitJavaActualization_oldLanguageVersion.kt | 15 +++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++++ 6 files changed, 49 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.fir.kt create mode 100644 compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.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 8563dfa249f..75ac8cc053a 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 @@ -1532,6 +1532,12 @@ public class FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated extends Abst runTest("compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_multipleActuals.kt"); } + @Test + @TestMetadata("implicitJavaActualization_oldLanguageVersion.kt") + public void testImplicitJavaActualization_oldLanguageVersion() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.kt"); + } + @Test @TestMetadata("inheritedJavaMembers.kt") public void testInheritedJavaMembers() 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 84b1236ab00..ee216cb8021 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 @@ -1532,6 +1532,12 @@ public class FirOldFrontendMPPDiagnosticsWithPsiTestGenerated extends AbstractFi runTest("compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_multipleActuals.kt"); } + @Test + @TestMetadata("implicitJavaActualization_oldLanguageVersion.kt") + public void testImplicitJavaActualization_oldLanguageVersion() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.kt"); + } + @Test @TestMetadata("inheritedJavaMembers.kt") public void testInheritedJavaMembers() throws Exception { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExpectedActualDeclarationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExpectedActualDeclarationChecker.kt index a731009d31a..1d04342b0e5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExpectedActualDeclarationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExpectedActualDeclarationChecker.kt @@ -124,6 +124,7 @@ class ExpectedActualDeclarationChecker( module: ModuleDescriptor, context: DeclarationCheckerContext ) { + if (!context.languageVersionSettings.supportsFeature(LanguageFeature.MultiplatformRestrictions)) return val actualMembers = actuals .filter { (compatibility, _) -> compatibility.isCompatibleOrWeaklyIncompatible } .flatMap { (_, members) -> members } diff --git a/compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.fir.kt new file mode 100644 index 00000000000..9020feb897e --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.fir.kt @@ -0,0 +1,15 @@ +// LANGUAGE: -MultiplatformRestrictions +// MODULE: m1-common +// FILE: common.kt + +expect class Foo() { + fun foo() +} + +// MODULE: m2-jvm()()(m1-common) +// FILE: Foo.java + +public class Foo { + public void foo() { + } +} diff --git a/compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.kt b/compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.kt new file mode 100644 index 00000000000..09939b21e72 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.kt @@ -0,0 +1,15 @@ +// LANGUAGE: -MultiplatformRestrictions +// MODULE: m1-common +// FILE: common.kt + +expect class Foo() { + fun foo() +} + +// MODULE: m2-jvm()()(m1-common) +// FILE: Foo.java + +public class Foo { + public void 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 93b68f81d4d..125d4be28c6 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 @@ -24527,6 +24527,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_multipleActuals.kt"); } + @Test + @TestMetadata("implicitJavaActualization_oldLanguageVersion.kt") + public void testImplicitJavaActualization_oldLanguageVersion() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_oldLanguageVersion.kt"); + } + @Test @TestMetadata("inheritedJavaMembers.kt") public void testInheritedJavaMembers() throws Exception {