From c105e63bbbb720e4aedca98febb99c71ad8b3fa9 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Tue, 14 Mar 2023 10:25:02 +0000 Subject: [PATCH] [FIR] KT-57214: Check the annotations "if possible" ^KT-57214 Fixed Merge-request: KT-MR-9170 Merged-by: Nikolay Lunyak --- ...CompilerTestFE10TestdataTestGenerated.java | 6 ++++++ ...eeOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ ...siOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../fir/declarations/FirAnnotationUtils.kt | 2 +- .../testData/diagnostics/tests/kt57214.kt | 21 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++++ 6 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/kt57214.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 97d39671466..094ad8c5657 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -555,6 +555,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/kt57175.kt"); } + @Test + @TestMetadata("kt57214.kt") + public void testKt57214() throws Exception { + runTest("compiler/testData/diagnostics/tests/kt57214.kt"); + } + @Test @TestMetadata("LValueAssignment.kt") public void testLValueAssignment() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 5bce6bcab9c..0556f6da8c4 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -555,6 +555,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/kt57175.kt"); } + @Test + @TestMetadata("kt57214.kt") + public void testKt57214() throws Exception { + runTest("compiler/testData/diagnostics/tests/kt57214.kt"); + } + @Test @TestMetadata("LValueAssignment.kt") public void testLValueAssignment() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index eb21ecd18f1..4841a3e5970 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -555,6 +555,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/kt57175.kt"); } + @Test + @TestMetadata("kt57214.kt") + public void testKt57214() throws Exception { + runTest("compiler/testData/diagnostics/tests/kt57214.kt"); + } + @Test @TestMetadata("LValueAssignment.kt") public void testLValueAssignment() throws Exception { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt index 1c82e10f8b2..820c3050d28 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt @@ -78,7 +78,7 @@ fun FirAnnotation.isJvmFieldAnnotation(session: FirSession): Boolean = fun FirAnnotation.useSiteTargetsFromMetaAnnotation(session: FirSession): Set { return toAnnotationClass(session) ?.annotations - ?.find { it.toAnnotationClassId(session) == StandardClassIds.Annotations.Target } + ?.find { it.toAnnotationClassIdSafe(session) == StandardClassIds.Annotations.Target } ?.findUseSiteTargets() ?: DEFAULT_USE_SITE_TARGETS } diff --git a/compiler/testData/diagnostics/tests/kt57214.kt b/compiler/testData/diagnostics/tests/kt57214.kt new file mode 100644 index 00000000000..e6fb9f8ecf2 --- /dev/null +++ b/compiler/testData/diagnostics/tests/kt57214.kt @@ -0,0 +1,21 @@ +// FIR_IDENTICAL + +// MODULE: a +// FILE: A.kt + +//class FirstClass : SecondClass() +// +//open class SecondClass + +class ConfigurationTarget(@ConfigField val target: String) + +@Retention(AnnotationRetention.RUNTIME) +annotation class ConfigField() + +// MODULE: b +// FILE: B.kt + +@Retention(AnnotationRetention.RUNTIME) +annotation class ConfigField() + +class ConfigurationTarget(@ConfigField val target: String) 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 f6b157193a5..549c8b2e4e3 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 @@ -555,6 +555,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/kt57175.kt"); } + @Test + @TestMetadata("kt57214.kt") + public void testKt57214() throws Exception { + runTest("compiler/testData/diagnostics/tests/kt57214.kt"); + } + @Test @TestMetadata("LValueAssignment.kt") public void testLValueAssignment() throws Exception {