From a46e683c8597119b280563558e28d922e769f645 Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Tue, 18 Jan 2022 14:13:29 +0300 Subject: [PATCH] [MPP] Add tests for const vs non-const expect and actual properties KT-18856 --- .../constVals/nonConstExpectConstActual.kt | 56 +++++++++++++++++++ ...latformCompositeAnalysisTestGenerated.java | 16 ++++++ 2 files changed, 72 insertions(+) create mode 100644 compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals/nonConstExpectConstActual.kt diff --git a/compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals/nonConstExpectConstActual.kt b/compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals/nonConstExpectConstActual.kt new file mode 100644 index 00000000000..7b59cfd2dff --- /dev/null +++ b/compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals/nonConstExpectConstActual.kt @@ -0,0 +1,56 @@ +// MODULE: m1-common + +expect class NonConstNonConst { + companion object { + val prop: Int + } +} + +expect class NonConstConst { + companion object { + val prop: Int + } +} + +expect class ConstNonConst { + companion object { + const val prop: Int + } +} + +expect class ConstConst { + companion object { + const val prop: Int + } +} + +expect val NonConstNonConstTl: Int +expect val NonConstConstTl: Int +expect const val ConstNonConstTl: Int +expect const val ConstConstTl: Int + +// MODULE: m2-jvm()()(m1-common) + +class NonConstImpl { + companion object { + val prop: Int get() = 42 + } +} + +class ConstImpl { + companion object { + const val prop: Int = 42 + } +} + +// actuals + +actual typealias NonConstNonConst = NonConstImpl +actual typealias NonConstConst = ConstImpl +actual typealias ConstNonConst = NonConstImpl +actual typealias ConstConst = ConstImpl + +actual val NonConstNonConstTl: Int get() = 42 +actual const val NonConstConstTl: Int = 42 +actual val ConstNonConstTl: Int get() = 42 +actual const val ConstConstTl: Int = 42 diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsWithMultiplatformCompositeAnalysisTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsWithMultiplatformCompositeAnalysisTestGenerated.java index 111771c4776..4c85a645757 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsWithMultiplatformCompositeAnalysisTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsWithMultiplatformCompositeAnalysisTestGenerated.java @@ -24,6 +24,22 @@ public class DiagnosticsWithMultiplatformCompositeAnalysisTestGenerated extends KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Nested + @TestMetadata("compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals") + @TestDataPath("$PROJECT_ROOT") + public class ConstVals { + @Test + public void testAllFilesPresentInConstVals() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); + } + + @Test + @TestMetadata("nonConstExpectConstActual.kt") + public void testNonConstExpectConstActual() throws Exception { + runTest("compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/constVals/nonConstExpectConstActual.kt"); + } + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithMultiplatformCompositeAnalysis/defaultArguments") @TestDataPath("$PROJECT_ROOT")