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

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

commit 0bf28f0f2a122e4d36423850e19aa557d142716e
Author: Daniel Sun <[email protected]>
AuthorDate: Tue Sep 6 00:06:41 2022 +0800

    Trivial refactoring: use `ObjectUtil` to clone
    
    (cherry picked from commit 3d1641d62e7dd5c92a473e49ac2548180a42ac4c)
---
 .../apache/groovy/ast/tools/ImmutablePropertyUtils.java | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

diff --git 
a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java 
b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
index 298cae5a8b..a8ea396a30 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
@@ -19,22 +19,20 @@
 package org.apache.groovy.ast.tools;
 
 import groovy.transform.ImmutableOptions;
+import org.apache.groovy.runtime.ObjectUtil;
 import org.codehaus.groovy.ast.AnnotationNode;
 import org.codehaus.groovy.ast.ClassHelper;
 import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.GenericsType;
-import org.codehaus.groovy.ast.expr.ArrayExpression;
 import org.codehaus.groovy.ast.expr.ClassExpression;
 import org.codehaus.groovy.ast.expr.ConstantExpression;
 import org.codehaus.groovy.ast.expr.Expression;
 import org.codehaus.groovy.ast.expr.ListExpression;
-import org.codehaus.groovy.runtime.ReflectionMethodInvoker;
 import org.codehaus.groovy.transform.AbstractASTTransformation;
 
 import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
@@ -45,14 +43,13 @@ import static 
org.codehaus.groovy.ast.ClassHelper.makeWithoutCaching;
 import static org.codehaus.groovy.ast.tools.GeneralUtils.args;
 import static org.codehaus.groovy.ast.tools.GeneralUtils.callX;
 import static org.codehaus.groovy.ast.tools.GeneralUtils.castX;
-import static org.codehaus.groovy.ast.tools.GeneralUtils.constX;
 import static org.codehaus.groovy.ast.tools.GeneralUtils.ctorX;
 import static org.codehaus.groovy.ast.tools.GeneralUtils.isOrImplements;
 
 public class ImmutablePropertyUtils {
     private static final ClassNode CLONEABLE_TYPE = make(Cloneable.class);
     private static final ClassNode DATE_TYPE = make(Date.class);
-    private static final ClassNode REFLECTION_INVOKER_TYPE = 
make(ReflectionMethodInvoker.class);
+    private static final ClassNode OBJECT_UTIL_TYPE = make(ObjectUtil.class);
     private static final Class<? extends Annotation> IMMUTABLE_OPTIONS_CLASS = 
ImmutableOptions.class;
     public static final ClassNode IMMUTABLE_OPTIONS_TYPE = 
makeWithoutCaching(IMMUTABLE_OPTIONS_CLASS, false);
     private static final String MEMBER_KNOWN_IMMUTABLE_CLASSES = 
"knownImmutableClasses";
@@ -135,15 +132,7 @@ public class ImmutablePropertyUtils {
     private ImmutablePropertyUtils() { }
 
     public static Expression cloneArrayOrCloneableExpr(final Expression 
fieldExpr, final ClassNode type) {
-        Expression smce = callX(
-                REFLECTION_INVOKER_TYPE,
-                "invoke",
-                args(
-                        fieldExpr,
-                        constX("clone"),
-                        new 
ArrayExpression(ClassHelper.OBJECT_TYPE.makeArray(), Collections.emptyList())
-                )
-        );
+        Expression smce = callX(OBJECT_UTIL_TYPE, "cloneObject", 
args(fieldExpr));
         return castX(type, smce);
     }
 

Reply via email to