You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2020/05/16 00:11:22 UTC

[groovy] branch GROOVY_3_0_X updated: Trivial refactoring: extract common variable

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

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


The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
     new 9e1e790  Trivial refactoring: extract common variable
9e1e790 is described below

commit 9e1e7909f223b13d120a22254cc0e57ec96ba735
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sat May 16 00:26:01 2020 +0800

    Trivial refactoring: extract common variable
    
    (cherry picked from commit d58db7f415d3c04549f283d88b10ef02f3595dea)
---
 .../org/codehaus/groovy/runtime/MetaClassHelper.java  | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
index 8649052..0545ca1 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
@@ -349,10 +349,11 @@ public class MetaClassHelper {
 
     public static long calculateParameterDistance(Class[] arguments, ParameterTypes pt) {
         CachedClass[] parameters = pt.getParameterTypes();
-        if (parameters.length == 0) return 0;
+        final int parametersLength = parameters.length;
+        if (parametersLength == 0) return 0;
 
         long ret = 0;
-        int noVargsLength = parameters.length - 1;
+        int noVargsLength = parametersLength - 1;
 
         // if the number of parameters does not match we have 
         // a vargs usage
@@ -444,7 +445,8 @@ public class MetaClassHelper {
             ret += calculateParameterDistance(arguments[i], parameters[i]);
         }
 
-        if (arguments.length == parameters.length) {
+        final int argumentsLength = arguments.length;
+        if (argumentsLength == parametersLength) {
             // case C&D, we use baseType to calculate and set it
             // to the value we need according to case C and D
             CachedClass baseType = parameters[noVargsLength]; // case C
@@ -453,13 +455,13 @@ public class MetaClassHelper {
                 ret += 2L << VARGS_SHIFT; // penalty for vargs
             }
             ret += calculateParameterDistance(arguments[noVargsLength], baseType);
-        } else if (arguments.length > parameters.length) {
+        } else if (argumentsLength > parametersLength) {
             // case B
             // we give our a vargs penalty for each exceeding argument and iterate
             // by using parameters[noVargsLength].getComponentType()
-            ret += (2L + arguments.length - parameters.length) << VARGS_SHIFT; // penalty for vargs
+            ret += (2L + argumentsLength - parametersLength) << VARGS_SHIFT; // penalty for vargs
             CachedClass vargsType = ReflectionCache.getCachedClass(parameters[noVargsLength].getTheClass().getComponentType());
-            for (int i = noVargsLength; i < arguments.length; i++) {
+            for (int i = noVargsLength; i < argumentsLength; i++) {
                 ret += calculateParameterDistance(arguments[i], vargsType);
             }
         } else {
@@ -787,8 +789,9 @@ public class MetaClassHelper {
     }
 
     public static boolean parametersAreCompatible(Class[] arguments, Class[] parameters) {
-        if (arguments.length != parameters.length) return false;
-        for (int i = 0; i < arguments.length; i++) {
+        final int argumentsLength = arguments.length;
+        if (argumentsLength != parameters.length) return false;
+        for (int i = 0; i < argumentsLength; i++) {
             if (!isAssignableFrom(parameters[i], arguments[i])) return false;
         }
         return true;