This is an automated email from the ASF dual-hosted git repository.

emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 71b6eb9a534f67b68d08953562c2a02f30217d1c
Author: Eric Milles <[email protected]>
AuthorDate: Sun Mar 1 12:49:31 2026 -0600

    GROOVY-11838: `TYPE_USE` and `TYPE_PARAMETER` not in default targets
---
 src/main/java/org/codehaus/groovy/ast/AnnotationNode.java   |  6 +-----
 .../org/codehaus/groovy/ast/AnnotationNodeTest.groovy       | 13 +++++++++++++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java 
b/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
index 4dc697a1b6..b39906a136 100644
--- a/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/AnnotationNode.java
@@ -47,13 +47,9 @@ public class AnnotationNode extends ASTNode {
     public static final int RECORD_COMPONENT_TARGET = 1 << 10;
     public static final int TYPE_TARGET             = ANNOTATION_TARGET | 1; 
// GROOVY-7151
 
-    private static final int ALL_TARGETS = TYPE_TARGET | CONSTRUCTOR_TARGET | 
METHOD_TARGET
-            | FIELD_TARGET | PARAMETER_TARGET | LOCAL_VARIABLE_TARGET | 
ANNOTATION_TARGET
-            | PACKAGE_TARGET | TYPE_PARAMETER_TARGET | TYPE_USE_TARGET | 
RECORD_COMPONENT_TARGET;
-
     private final ClassNode classNode;
     private Map<String, Expression> members;
-    private int allowedTargets = ALL_TARGETS;
+    private int allowedTargets = 0x4FF; // GROOVY-11838: JLS 9.6.4.1
     private boolean runtimeRetention = false, sourceRetention = false, 
/*explicit*/ classRetention = false;
 
     public AnnotationNode(final ClassNode type) {
diff --git a/src/test/groovy/org/codehaus/groovy/ast/AnnotationNodeTest.groovy 
b/src/test/groovy/org/codehaus/groovy/ast/AnnotationNodeTest.groovy
index 862d9b7bc6..aa33bcdcc7 100644
--- a/src/test/groovy/org/codehaus/groovy/ast/AnnotationNodeTest.groovy
+++ b/src/test/groovy/org/codehaus/groovy/ast/AnnotationNodeTest.groovy
@@ -25,6 +25,19 @@ import static org.junit.jupiter.api.Assertions.*
 
 final class AnnotationNodeTest {
 
+    // GROOVY-11838
+    @Test
+    void testIsTargetAllowed() {
+        def node = new AnnotationNode(ClassHelper.OVERRIDE_TYPE)
+
+        assertTrue(node.isTargetAllowed(AnnotationNode.TYPE_TARGET))
+        assertTrue(node.isTargetAllowed(AnnotationNode.FIELD_TARGET))
+        assertTrue(node.isTargetAllowed(AnnotationNode.METHOD_TARGET))
+
+        assertFalse(node.isTargetAllowed(AnnotationNode.TYPE_USE_TARGET))
+        assertFalse(node.isTargetAllowed(AnnotationNode.TYPE_PARAMETER_TARGET))
+    }
+
     @Test
     void testGetText() {
         def node = new AnnotationNode(ClassHelper.OVERRIDE_TYPE)

Reply via email to