[FIR] KT-57214: Check the annotations "if possible"
^KT-57214 Fixed
Merge-request: KT-MR-9170
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
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 97d3967..094ad8c5 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
@@ -556,6 +556,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/tests/LValueAssignment.kt");
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 5bce6bc..0556f6d 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
@@ -556,6 +556,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/tests/LValueAssignment.kt");
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 eb21ecd..4841a3e 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
@@ -556,6 +556,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/tests/LValueAssignment.kt");
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 1c82e10..820c305 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.useSiteTargetsFromMetaAnnotation(session: FirSession): Set<AnnotationUseSiteTarget> {
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 0000000..e6fb9f8
--- /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 f6b1571..549c8b2 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
@@ -556,6 +556,12 @@
}
@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 {
runTest("compiler/testData/diagnostics/tests/LValueAssignment.kt");