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 2018/02/18 11:29:34 UTC

[1/2] groovy git commit: Trivial refactoring: cleanup code of `ClassHelper`

Repository: groovy
Updated Branches:
  refs/heads/master ee6060bee -> 5217a582a


Trivial refactoring: cleanup code of `ClassHelper`


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

Branch: refs/heads/master
Commit: 273340db8aba42f8774b431c64f05279f25fab2a
Parents: ee6060b
Author: danielsun1106 <re...@hotmail.com>
Authored: Sun Feb 18 19:17:22 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Sun Feb 18 19:17:22 2018 +0800

----------------------------------------------------------------------
 src/main/java/org/codehaus/groovy/ast/ClassHelper.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/273340db/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
index 8362d8d..b81c969 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
@@ -103,7 +103,7 @@ public class ClassHelper {
             Annotation_TYPE = makeCached(Annotation.class),
             ELEMENT_TYPE_TYPE = makeCached(ElementType.class),
 
-    FunctionalInterface_Type = ClassHelper.makeCached(FunctionalInterface.class),
+//    FunctionalInterface_Type = ClassHelper.makeCached(FunctionalInterface.class),
 
     // uncached constants.
     CLASS_Type = makeWithoutCaching(Class.class), COMPARABLE_TYPE = makeWithoutCaching(Comparable.class),


[2/2] groovy git commit: Trivial refactoring: remove duplicated code of `ClassHelper` and fix typo

Posted by su...@apache.org.
Trivial refactoring: remove duplicated code of `ClassHelper` and fix typo


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

Branch: refs/heads/master
Commit: 5217a582a709cb91936cd4c66e5bbfac127430f1
Parents: 273340d
Author: danielsun1106 <re...@hotmail.com>
Authored: Sun Feb 18 19:29:28 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Sun Feb 18 19:29:28 2018 +0800

----------------------------------------------------------------------
 .../org/codehaus/groovy/ast/ClassHelper.java    | 24 ++++++++++++--------
 .../classgen/asm/util/TypeDescriptionUtil.java  | 12 +++++-----
 2 files changed, 20 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/5217a582/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
index b81c969..7081b01 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassHelper.java
@@ -45,9 +45,11 @@ import java.lang.ref.SoftReference;
 import java.lang.reflect.Modifier;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.regex.Pattern;
 
 /**
@@ -69,10 +71,12 @@ public class ClassHelper {
             Iterator.class, GeneratedClosure.class, GeneratedLambda.class, GroovyObjectSupport.class
     };
 
-    private static final String[] primitiveClassNames = new String[]{
-            "", "boolean", "char", "byte", "short",
-            "int", "long", "double", "float", "void"
-    };
+    private static final String[] PRIMITIVE_CLASS_NAMES;
+    static {
+        Set<String> primitiveClassNameSet = new HashSet<>(TypeDescriptionUtil.NAME_TO_PRIMITIVE_TYPE_MAP.keySet());
+        primitiveClassNameSet.add(""); // TODO confirm why should we need the empty string?
+        PRIMITIVE_CLASS_NAMES = primitiveClassNameSet.toArray(new String[0]);
+    }
 
     public static final ClassNode
             DYNAMIC_TYPE = makeCached(Object.class), OBJECT_TYPE = DYNAMIC_TYPE,
@@ -238,8 +242,8 @@ public class ClassHelper {
     public static ClassNode make(String name) {
         if (name == null || name.length() == 0) return DYNAMIC_TYPE;
 
-        for (int i = 0; i < primitiveClassNames.length; i++) {
-            if (primitiveClassNames[i].equals(name)) return types[i];
+        for (int i = 0; i < PRIMITIVE_CLASS_NAMES.length; i++) {
+            if (PRIMITIVE_CLASS_NAMES[i].equals(name)) return types[i];
         }
 
         for (int i = 0; i < classes.length; i++) {
@@ -249,7 +253,7 @@ public class ClassHelper {
         return makeWithoutCaching(name);
     }
 
-    private static final Map<ClassNode, ClassNode> PRIMARY_TYPE_TO_WRAPPER_TYPE_MAP = Maps.of(
+    private static final Map<ClassNode, ClassNode> PRIMITIVE_TYPE_TO_WRAPPER_TYPE_MAP = Maps.of(
             boolean_TYPE, Boolean_TYPE,
             byte_TYPE, Byte_TYPE,
             char_TYPE, Character_TYPE,
@@ -282,7 +286,7 @@ public class ClassHelper {
         cn = cn.redirect();
         if (!isPrimitiveType(cn)) return cn;
 
-        ClassNode result = PRIMARY_TYPE_TO_WRAPPER_TYPE_MAP.get(cn);
+        ClassNode result = PRIMITIVE_TYPE_TO_WRAPPER_TYPE_MAP.get(cn);
 
         if (null != result) {
             return result;
@@ -291,13 +295,13 @@ public class ClassHelper {
         return cn;
     }
 
-    private static final Map<ClassNode, ClassNode> WRAPPER_TYPE_TO_PRIMARY_TYPE_MAP = Maps.inverse(PRIMARY_TYPE_TO_WRAPPER_TYPE_MAP);
+    private static final Map<ClassNode, ClassNode> WRAPPER_TYPE_TO_PRIMITIVE_TYPE_MAP = Maps.inverse(PRIMITIVE_TYPE_TO_WRAPPER_TYPE_MAP);
 
     public static ClassNode getUnwrapper(ClassNode cn) {
         cn = cn.redirect();
         if (isPrimitiveType(cn)) return cn;
 
-        ClassNode result = WRAPPER_TYPE_TO_PRIMARY_TYPE_MAP.get(cn);
+        ClassNode result = WRAPPER_TYPE_TO_PRIMITIVE_TYPE_MAP.get(cn);
 
         if (null != result) {
             return result;

http://git-wip-us.apache.org/repos/asf/groovy/blob/5217a582/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeDescriptionUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeDescriptionUtil.java b/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeDescriptionUtil.java
index 2f7349a..56a2e06 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeDescriptionUtil.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/util/TypeDescriptionUtil.java
@@ -40,7 +40,7 @@ import static org.codehaus.groovy.ast.ClassHelper.short_TYPE;
  */
 public class TypeDescriptionUtil {
     private static final String REF_DESCRIPTION = "L";
-    private static final Map<ClassNode, String> TYPE_TO_DESCRIPTION_MAP = Maps.of(
+    private static final Map<ClassNode, String> PRIMITIVE_TYPE_TO_DESCRIPTION_MAP = Maps.of(
             int_TYPE, "I",
             VOID_TYPE,"V",
             boolean_TYPE, "Z",
@@ -52,7 +52,7 @@ public class TypeDescriptionUtil {
             long_TYPE, "J"
     );
 
-    private static final Map<String, ClassNode> NAME_TO_TYPE_MAP = Maps.of(
+    public static final Map<String, ClassNode> NAME_TO_PRIMITIVE_TYPE_MAP = Maps.of(
             "int", int_TYPE,
             "void", VOID_TYPE,
             "boolean", boolean_TYPE,
@@ -65,15 +65,15 @@ public class TypeDescriptionUtil {
     );
 
     public static boolean isPrimitiveType(String name) {
-        return NAME_TO_TYPE_MAP.containsKey(name);
+        return NAME_TO_PRIMITIVE_TYPE_MAP.containsKey(name);
     }
 
     public static boolean isPrimitiveType(ClassNode type) {
-        return TYPE_TO_DESCRIPTION_MAP.containsKey(type);
+        return PRIMITIVE_TYPE_TO_DESCRIPTION_MAP.containsKey(type);
     }
 
     public static String getDescriptionByType(ClassNode type) {
-        String desc = TYPE_TO_DESCRIPTION_MAP.get(type);
+        String desc = PRIMITIVE_TYPE_TO_DESCRIPTION_MAP.get(type);
 
         if (null == desc) { // reference type
             if (!type.isArray()) {
@@ -95,7 +95,7 @@ public class TypeDescriptionUtil {
     }
 
     public static String getDescriptionByName(String name) {
-        ClassNode type = NAME_TO_TYPE_MAP.get(name);
+        ClassNode type = NAME_TO_PRIMITIVE_TYPE_MAP.get(name);
 
         if (null == type) {
             return makeRefDescription(name);