This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch GROOVY_4_0_X in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 13416517b9f0f0389aa897efa6502c2f3e5988df Author: Paul King <[email protected]> AuthorDate: Thu Jan 25 14:09:13 2024 +1000 GROOVY-11295: additional minor refactor --- src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java | 9 +++++++++ src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java | 8 +++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java index 59a33acd94..ee50cf1493 100644 --- a/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java +++ b/src/main/java/org/codehaus/groovy/ast/tools/GeneralUtils.java @@ -32,6 +32,7 @@ import org.codehaus.groovy.ast.PropertyNode; import org.codehaus.groovy.ast.Variable; import org.codehaus.groovy.ast.VariableScope; import org.codehaus.groovy.ast.expr.ArgumentListExpression; +import org.codehaus.groovy.ast.expr.ArrayExpression; import org.codehaus.groovy.ast.expr.AttributeExpression; import org.codehaus.groovy.ast.expr.BinaryExpression; import org.codehaus.groovy.ast.expr.BooleanExpression; @@ -51,6 +52,7 @@ import org.codehaus.groovy.ast.expr.MapExpression; import org.codehaus.groovy.ast.expr.MethodCallExpression; import org.codehaus.groovy.ast.expr.NotExpression; import org.codehaus.groovy.ast.expr.PropertyExpression; +import org.codehaus.groovy.ast.expr.SpreadExpression; import org.codehaus.groovy.ast.expr.StaticMethodCallExpression; import org.codehaus.groovy.ast.expr.TernaryExpression; import org.codehaus.groovy.ast.expr.VariableExpression; @@ -132,6 +134,9 @@ public class GeneralUtils { return args(Arrays.stream(names).map(GeneralUtils::varX).toArray(Expression[]::new)); } + public static ArrayExpression arrayX(final ClassNode elementType, List<Expression> initExpressions) { + return new ArrayExpression(elementType, initExpressions); + } public static CastExpression asX(final ClassNode type, final Expression expression) { return CastExpression.asExpression(type, expression); } @@ -845,6 +850,10 @@ public class GeneralUtils { return new ExpressionStatement(expr); } + public static SpreadExpression spreadX(final Expression expr) { + return new SpreadExpression(expr); + } + public static SwitchStatement switchS(final Expression expr) { return new SwitchStatement(expr); } diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java index 7d2a8b542a..6ac3c48b7e 100644 --- a/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java +++ b/src/main/java/org/codehaus/groovy/classgen/EnumVisitor.java @@ -29,14 +29,12 @@ import org.codehaus.groovy.ast.InnerClassNode; import org.codehaus.groovy.ast.MethodNode; import org.codehaus.groovy.ast.Parameter; import org.codehaus.groovy.ast.expr.ArgumentListExpression; -import org.codehaus.groovy.ast.expr.ArrayExpression; import org.codehaus.groovy.ast.expr.ClassExpression; import org.codehaus.groovy.ast.expr.ConstructorCallExpression; import org.codehaus.groovy.ast.expr.Expression; import org.codehaus.groovy.ast.expr.ListExpression; import org.codehaus.groovy.ast.expr.MapEntryExpression; import org.codehaus.groovy.ast.expr.MethodCallExpression; -import org.codehaus.groovy.ast.expr.SpreadExpression; import org.codehaus.groovy.ast.expr.VariableExpression; import org.codehaus.groovy.ast.stmt.Statement; import org.codehaus.groovy.control.CompilationUnit; @@ -181,7 +179,7 @@ public class EnumVisitor extends ClassCodeVisitorSupport { { // create valueOf Parameter stringParameter = param(ClassHelper.STRING_TYPE, "name"); - MethodNode valueOfMethod = new MethodNode("valueOf", ACC_PUBLIC | ACC_STATIC, enumRef, new Parameter[]{stringParameter}, ClassNode.EMPTY_ARRAY, null); + MethodNode valueOfMethod = new MethodNode("valueOf", ACC_PUBLIC | ACC_STATIC, enumRef, params(stringParameter), ClassNode.EMPTY_ARRAY, null); valueOfMethod.setCode(block(returnS( callX(ClassHelper.Enum_Type, "valueOf", args(classX(enumClass), varX("name"))) ))); @@ -206,7 +204,7 @@ public class EnumVisitor extends ClassCodeVisitorSupport { Parameter[] parameter = params(param(ClassHelper.OBJECT_TYPE.makeArray(), "para")); MethodNode initMethod = new MethodNode("$INIT", ACC_FINAL | ACC_PUBLIC | ACC_STATIC | ACC_SYNTHETIC, enumRef, parameter, ClassNode.EMPTY_ARRAY, null); initMethod.setSynthetic(true); - ConstructorCallExpression cce = ctorThisX(args(new SpreadExpression(varX("para")))); + ConstructorCallExpression cce = ctorThisX(args(spreadX(varX("para")))); initMethod.setCode(block(returnS(cce))); addGeneratedMethod(enumClass, initMethod); @@ -286,7 +284,7 @@ public class EnumVisitor extends ClassCodeVisitorSupport { enumClass.addField(maxValue); } - block.add(assignS(fieldX(values), new ArrayExpression(enumClass, arrayInit))); + block.add(assignS(fieldX(values), arrayX(enumClass, arrayInit))); enumClass.addField(values); } enumClass.addStaticInitializerStatements(block, true);
