From 1dcdcee452aae8ec20eb66ee0e96af9a760ea155 Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Fri, 23 Jun 2023 16:07:48 +0200 Subject: [PATCH] [FE] Add test for intrinsic const evaluation in KMP annotation matching ^KT-58551 --- ...DiagnosticsWithLightTreeTestGenerated.java | 6 +++++ ...endMPPDiagnosticsWithPsiTestGenerated.java | 6 +++++ .../instrinsicConstEvaluation.fir.kt | 22 +++++++++++++++++++ .../instrinsicConstEvaluation.kt | 22 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 +++++ 5 files changed, 62 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.fir.kt create mode 100644 compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.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 63c10a481df..2166e4d9a8c 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 @@ -268,6 +268,12 @@ public class FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated extends Abst runTest("compiler/testData/diagnostics/tests/multiplatform/annotationMatching/floatNumbersComparison.kt"); } + @Test + @TestMetadata("instrinsicConstEvaluation.kt") + public void testInstrinsicConstEvaluation() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.kt"); + } + @Test @TestMetadata("kclassArgWithExpectClass.kt") public void testKclassArgWithExpectClass() 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 23cb7095875..ba4c6c07833 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 @@ -268,6 +268,12 @@ public class FirOldFrontendMPPDiagnosticsWithPsiTestGenerated extends AbstractFi runTest("compiler/testData/diagnostics/tests/multiplatform/annotationMatching/floatNumbersComparison.kt"); } + @Test + @TestMetadata("instrinsicConstEvaluation.kt") + public void testInstrinsicConstEvaluation() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.kt"); + } + @Test @TestMetadata("kclassArgWithExpectClass.kt") public void testKclassArgWithExpectClass() throws Exception { diff --git a/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.fir.kt new file mode 100644 index 00000000000..d32bcdf3ba5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.fir.kt @@ -0,0 +1,22 @@ +// !LANGUAGE: +IntrinsicConstEvaluation +// MODULE: m1-common +// FILE: common.kt +enum class MyEnum { + FOO +} + +annotation class Ann(val p: String) + +@Ann("FOO") +expect fun matching() + +@Ann("not FOO") +expect fun nonMatching() + +// MODULE: m1-jvm()()(m1-common) +// FILE: jvm.kt +@Ann(MyEnum.FOO.name) +actual fun matching() {} + +@Ann(MyEnum.FOO.name) +actual fun nonMatching() {} diff --git a/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.kt b/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.kt new file mode 100644 index 00000000000..c6f8d18cec7 --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.kt @@ -0,0 +1,22 @@ +// !LANGUAGE: +IntrinsicConstEvaluation +// MODULE: m1-common +// FILE: common.kt +enum class MyEnum { + FOO +} + +annotation class Ann(val p: String) + +@Ann("FOO") +expect fun matching() + +@Ann("not FOO") +expect fun nonMatching() + +// MODULE: m1-jvm()()(m1-common) +// FILE: jvm.kt +@Ann(MyEnum.FOO.name) +actual fun matching() {} + +@Ann(MyEnum.FOO.name) +actual fun nonMatching() {} 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 ba26948435b..fc5431d771a 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 @@ -22813,6 +22813,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/multiplatform/annotationMatching/floatNumbersComparison.kt"); } + @Test + @TestMetadata("instrinsicConstEvaluation.kt") + public void testInstrinsicConstEvaluation() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/annotationMatching/instrinsicConstEvaluation.kt"); + } + @Test @TestMetadata("kclassArgWithExpectClass.kt") public void testKclassArgWithExpectClass() throws Exception {