From c42d19f0e503555a0de5e8f41b51eb198e0230df Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Tue, 22 Aug 2023 16:39:39 +0200 Subject: [PATCH] Cover KT-60646 with regression tests This behavior wasn't intended during KT-15470 coding. I only intended to prohibit `@get:` target on things different from properties. But I accidentally prohibited `@property` on things different from properties too But it's a bug fix anyway, so let's keep it. I also re-checked the implementation of KT-15470, I don't see any other unintentional prohibitions --- ...gnosticCompilerTestFE10TestdataTestGenerated.java | 12 ++++++++++++ ...dDiagnosticCompilerFE10TestDataTestGenerated.java | 12 ++++++++++++ ...LightTreeOldFrontendDiagnosticsTestGenerated.java | 12 ++++++++++++ .../FirPsiOldFrontendDiagnosticsTestGenerated.java | 12 ++++++++++++ .../propertyTargetOnEnumEntry_error.kt | 9 +++++++++ .../propertyTargetOnEnumEntry_warning.kt | 9 +++++++++ .../kotlin/test/runners/DiagnosticTestGenerated.java | 12 ++++++++++++ 7 files changed, 78 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt create mode 100644 compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index b780679ffb3..9ef515a7059 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -2937,6 +2937,18 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/PropertyAnnotations.kt"); } + @Test + @TestMetadata("propertyTargetOnEnumEntry_error.kt") + public void testPropertyTargetOnEnumEntry_error() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt"); + } + + @Test + @TestMetadata("propertyTargetOnEnumEntry_warning.kt") + public void testPropertyTargetOnEnumEntry_warning() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt"); + } + @Test @TestMetadata("ReceiverAnnotations.kt") public void testReceiverAnnotations() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index 5b65a844f96..5f9297a4c2f 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -2937,6 +2937,18 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/PropertyAnnotations.kt"); } + @Test + @TestMetadata("propertyTargetOnEnumEntry_error.kt") + public void testPropertyTargetOnEnumEntry_error() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt"); + } + + @Test + @TestMetadata("propertyTargetOnEnumEntry_warning.kt") + public void testPropertyTargetOnEnumEntry_warning() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt"); + } + @Test @TestMetadata("ReceiverAnnotations.kt") public void testReceiverAnnotations() 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 fe4cdbcaf02..ffa1f0d8719 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 @@ -2937,6 +2937,18 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/PropertyAnnotations.kt"); } + @Test + @TestMetadata("propertyTargetOnEnumEntry_error.kt") + public void testPropertyTargetOnEnumEntry_error() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt"); + } + + @Test + @TestMetadata("propertyTargetOnEnumEntry_warning.kt") + public void testPropertyTargetOnEnumEntry_warning() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt"); + } + @Test @TestMetadata("ReceiverAnnotations.kt") public void testReceiverAnnotations() 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 5489fca7452..bb40f23727e 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 @@ -2943,6 +2943,18 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/PropertyAnnotations.kt"); } + @Test + @TestMetadata("propertyTargetOnEnumEntry_error.kt") + public void testPropertyTargetOnEnumEntry_error() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt"); + } + + @Test + @TestMetadata("propertyTargetOnEnumEntry_warning.kt") + public void testPropertyTargetOnEnumEntry_warning() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt"); + } + @Test @TestMetadata("ReceiverAnnotations.kt") public void testReceiverAnnotations() throws Exception { diff --git a/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt new file mode 100644 index 00000000000..95d6cf2a867 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt @@ -0,0 +1,9 @@ +// FIR_IDENTICAL +// !LANGUAGE: +ProhibitUseSiteGetTargetAnnotations + +@Target(AnnotationTarget.PROPERTY) annotation class Annotation + +enum class Foo { + @property:Annotation + Entry +} diff --git a/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt new file mode 100644 index 00000000000..895fadf5326 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt @@ -0,0 +1,9 @@ +// FIR_IDENTICAL +// !LANGUAGE: -ProhibitUseSiteGetTargetAnnotations + +@Target(AnnotationTarget.PROPERTY) annotation class Annotation + +enum class Foo { + @property:Annotation + Entry +} 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 0afc629f0a3..762c6c44535 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 @@ -2943,6 +2943,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/PropertyAnnotations.kt"); } + @Test + @TestMetadata("propertyTargetOnEnumEntry_error.kt") + public void testPropertyTargetOnEnumEntry_error() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_error.kt"); + } + + @Test + @TestMetadata("propertyTargetOnEnumEntry_warning.kt") + public void testPropertyTargetOnEnumEntry_warning() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/propertyTargetOnEnumEntry_warning.kt"); + } + @Test @TestMetadata("ReceiverAnnotations.kt") public void testReceiverAnnotations() throws Exception {