groovy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sun...@apache.org
Subject groovy git commit: Minor refactoring
Date Thu, 30 Nov 2017 08:23:43 GMT
Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X fe10d3909 -> 8a8145ea6


Minor refactoring

(cherry picked from commit ea515f4)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/8a8145ea
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/8a8145ea
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/8a8145ea

Branch: refs/heads/GROOVY_2_6_X
Commit: 8a8145ea6dd095726438c65fe70c9d7d48d70401
Parents: fe10d39
Author: sunlan <sunlan@apache.org>
Authored: Thu Nov 30 16:15:43 2017 +0800
Committer: sunlan <sunlan@apache.org>
Committed: Thu Nov 30 16:23:38 2017 +0800

----------------------------------------------------------------------
 .../codehaus/groovy/classgen/asm/MopWriter.java |  6 +++---
 .../codehaus/groovy/runtime/CurriedClosure.java | 21 ++++++++++----------
 .../InheritConstructorsASTTransformation.java   |  9 ++-------
 3 files changed, 15 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/8a8145ea/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java b/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java
index 7231ca1..4f8f48c 100644
--- a/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java
+++ b/src/main/org/codehaus/groovy/classgen/asm/MopWriter.java
@@ -212,9 +212,9 @@ public class MopWriter {
         }
     }
 
-    private static boolean equalParameterTypes(Parameter[] p1, Parameter[] p2) {
-        if (p1.length!=p2.length) return false;
-        for (int i=0; i<p1.length; i++) {
+    public static boolean equalParameterTypes(Parameter[] p1, Parameter[] p2) {
+        if (p1.length != p2.length) return false;
+        for (int i = 0; i < p1.length; i++) {
             if (!p1[i].getType().equals(p2[i].getType())) return false;
         }
         return true;

http://git-wip-us.apache.org/repos/asf/groovy/blob/8a8145ea/src/main/org/codehaus/groovy/runtime/CurriedClosure.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/CurriedClosure.java b/src/main/org/codehaus/groovy/runtime/CurriedClosure.java
index 22a83cb..8700886 100644
--- a/src/main/org/codehaus/groovy/runtime/CurriedClosure.java
+++ b/src/main/org/codehaus/groovy/runtime/CurriedClosure.java
@@ -106,24 +106,23 @@ public final class CurriedClosure<V> extends Closure<V>
{
                 throw new IllegalArgumentException("When currying expected index range between
" +
                         (-arguments.length - curriedParams.length) + ".." + (arguments.length
+ curriedParams.length) + " but found " + index);
             }
-            final Object newCurriedParams[] = new Object[curriedParams.length + arguments.length];
-            System.arraycopy(arguments, 0, newCurriedParams, 0, normalizedIndex);
-            System.arraycopy(curriedParams, 0, newCurriedParams, normalizedIndex, curriedParams.length);
-            if (arguments.length - normalizedIndex > 0)
-                System.arraycopy(arguments, normalizedIndex, newCurriedParams, curriedParams.length
+ normalizedIndex, arguments.length - normalizedIndex);
-            return newCurriedParams;
+            return createNewCurriedParams(normalizedIndex, arguments);
         }
         if (curriedParams.length + arguments.length < minParamsExpected) {
             throw new IllegalArgumentException("When currying expected at least " + index
+ " argument(s) to be supplied before known curried arguments but found " + arguments.length);
         }
-        final Object newCurriedParams[] = new Object[curriedParams.length + arguments.length];
         int newIndex = Math.min(index, curriedParams.length + arguments.length - 1);
         // rcurried arguments are done lazily to allow normal method selection between overloaded
alternatives
         newIndex = Math.min(newIndex, arguments.length);
-        System.arraycopy(arguments, 0, newCurriedParams, 0, newIndex);
-        System.arraycopy(curriedParams, 0, newCurriedParams, newIndex, curriedParams.length);
-        if (arguments.length - newIndex > 0)
-            System.arraycopy(arguments, newIndex, newCurriedParams, curriedParams.length
+ newIndex, arguments.length - newIndex);
+        return createNewCurriedParams(newIndex, arguments);
+    }
+
+    private Object[] createNewCurriedParams(int normalizedIndex, Object[] arguments) {
+        Object[] newCurriedParams = new Object[curriedParams.length + arguments.length];
+        System.arraycopy(arguments, 0, newCurriedParams, 0, normalizedIndex);
+        System.arraycopy(curriedParams, 0, newCurriedParams, normalizedIndex, curriedParams.length);
+        if (arguments.length - normalizedIndex > 0)
+            System.arraycopy(arguments, normalizedIndex, newCurriedParams, curriedParams.length
+ normalizedIndex, arguments.length - normalizedIndex);
         return newCurriedParams;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/8a8145ea/src/main/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
b/src/main/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
index 5c6f3d0..f7db6e4 100644
--- a/src/main/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
+++ b/src/main/org/codehaus/groovy/transform/InheritConstructorsASTTransformation.java
@@ -26,6 +26,7 @@ import org.codehaus.groovy.ast.ClassNode;
 import org.codehaus.groovy.ast.ConstructorNode;
 import org.codehaus.groovy.ast.Parameter;
 import org.codehaus.groovy.ast.expr.Expression;
+import org.codehaus.groovy.classgen.asm.MopWriter;
 import org.codehaus.groovy.control.CompilePhase;
 import org.codehaus.groovy.control.SourceUnit;
 
@@ -126,12 +127,6 @@ public class InheritConstructorsASTTransformation extends AbstractASTTransformat
     }
 
     private static boolean matchingTypes(Parameter[] params, Parameter[] existingParams)
{
-        if (params.length != existingParams.length) return false;
-        for (int i = 0; i < params.length; i++) {
-            if (!params[i].getType().equals(existingParams[i].getType())) {
-                return false;
-            }
-        }
-        return true;
+        return MopWriter.equalParameterTypes(params, existingParams);
     }
 }


Mime
View raw message