You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/02/03 19:37:33 UTC

[groovy] 01/04: GROOVY-10352: class model: load anno enum value as property expression

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

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

commit 40b49a8b100d730844d11471a0c5b2ec6c14d288
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Thu Feb 3 12:59:42 2022 -0600

    GROOVY-10352: class model: load anno enum value as property expression
---
 src/main/java/org/codehaus/groovy/vmplugin/v5/Java5.java | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v5/Java5.java b/src/main/java/org/codehaus/groovy/vmplugin/v5/Java5.java
index 70d487c..7ecd263 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v5/Java5.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v5/Java5.java
@@ -301,14 +301,16 @@ public class Java5 implements VMPlugin {
             return new ConstantExpression(value);
 
         if (value instanceof Class)
-            return new ClassExpression(ClassHelper.makeWithoutCaching((Class)value));
+            return new ClassExpression(ClassHelper.makeWithoutCaching((Class<?>)value));
+
+        if (value instanceof Enum )
+            return new PropertyExpression(new ClassExpression(ClassHelper.makeWithoutCaching(value.getClass())), value.toString());
 
         if (value.getClass().isArray()) {
-            ListExpression elementExprs = new ListExpression();
-            int len = Array.getLength(value);
-            for (int i = 0; i != len; ++i)
-                elementExprs.addExpression(annotationValueToExpression(Array.get(value, i)));
-            return elementExprs;
+            ListExpression values = new ListExpression();
+            for (int i = 0, n = Array.getLength(value); i < n; i += 1)
+                values.addExpression(annotationValueToExpression(Array.get(value, i)));
+            return values;
         }
 
         return null;