[FIR] Don't ignore annotations on when subjects

^KT-53565 Fixed
This commit is contained in:
Nikolay Lunyak
2023-08-14 15:19:36 +03:00
committed by Space Team
parent 05ed134fbb
commit 97bbf69bdc
8 changed files with 44 additions and 0 deletions
@@ -711,6 +711,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/missingIteratorMissing.kt");
}
@Test
@TestMetadata("missingWrongAnnotationTarget.kt")
public void testMissingWrongAnnotationTarget() throws Exception {
runTest("compiler/testData/diagnostics/tests/missingWrongAnnotationTarget.kt");
}
@Test
@TestMetadata("MultilineStringTemplates.kt")
public void testMultilineStringTemplates() throws Exception {
@@ -711,6 +711,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/missingIteratorMissing.kt");
}
@Test
@TestMetadata("missingWrongAnnotationTarget.kt")
public void testMissingWrongAnnotationTarget() throws Exception {
runTest("compiler/testData/diagnostics/tests/missingWrongAnnotationTarget.kt");
}
@Test
@TestMetadata("MultilineStringTemplates.kt")
public void testMultilineStringTemplates() throws Exception {
@@ -711,6 +711,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
runTest("compiler/testData/diagnostics/tests/missingIteratorMissing.kt");
}
@Test
@TestMetadata("missingWrongAnnotationTarget.kt")
public void testMissingWrongAnnotationTarget() throws Exception {
runTest("compiler/testData/diagnostics/tests/missingWrongAnnotationTarget.kt");
}
@Test
@TestMetadata("MultilineStringTemplates.kt")
public void testMultilineStringTemplates() throws Exception {
@@ -711,6 +711,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
runTest("compiler/testData/diagnostics/tests/missingIteratorMissing.kt");
}
@Test
@TestMetadata("missingWrongAnnotationTarget.kt")
public void testMissingWrongAnnotationTarget() throws Exception {
runTest("compiler/testData/diagnostics/tests/missingWrongAnnotationTarget.kt");
}
@Test
@TestMetadata("MultilineStringTemplates.kt")
public void testMultilineStringTemplates() throws Exception {
@@ -728,6 +728,7 @@ class LightTreeRawFirExpressionBuilder(
symbol = FirPropertySymbol(variable.name)
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
annotations += variable.annotations
}
}
DESTRUCTURING_DECLARATION -> subjectExpression =
@@ -2384,6 +2384,7 @@ open class PsiRawFirBuilder(
symbol = FirPropertySymbol(name)
isLocal = true
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
ktSubjectExpression.extractAnnotationsTo(this)
}
}
else -> null
@@ -0,0 +1,12 @@
// FIR_IDENTICAL
// ISSUE: KT-53565
@Target(AnnotationTarget.CLASS)
annotation class InvalidAnn
fun wrongAnnotationTargetInWhenSubject() {
// Error expected on annotation
when(<!WRONG_ANNOTATION_TARGET!>@InvalidAnn<!> val x = 0) {
0 -> {}
}
}
@@ -711,6 +711,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/missingIteratorMissing.kt");
}
@Test
@TestMetadata("missingWrongAnnotationTarget.kt")
public void testMissingWrongAnnotationTarget() throws Exception {
runTest("compiler/testData/diagnostics/tests/missingWrongAnnotationTarget.kt");
}
@Test
@TestMetadata("MultilineStringTemplates.kt")
public void testMultilineStringTemplates() throws Exception {