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 2019/02/04 18:41:03 UTC

[groovy] branch master updated: Trivial refactoring: remove unnecessary boxing and unboxing for simplicity(closes #862)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 12f0a09  Trivial refactoring: remove unnecessary boxing and unboxing for simplicity(closes #862)
12f0a09 is described below

commit 12f0a099d046b9ed49464626d823237d5efca3fc
Author: Daniel Sun <su...@apache.org>
AuthorDate: Tue Feb 5 02:40:49 2019 +0800

    Trivial refactoring: remove unnecessary boxing and unboxing for simplicity(closes #862)
---
 .../groovy/groovy/lang/BenchmarkInterceptor.java   |  10 +-
 src/main/groovy/groovy/lang/MetaClassImpl.java     |   2 +-
 src/main/groovy/groovy/util/Expando.java           |   4 +-
 .../groovy/groovy/util/ObjectGraphBuilder.java     |   6 +-
 src/main/groovy/groovy/util/ObservableList.java    |   2 +-
 .../groovy/classgen/AsmClassGenerator.java         |   2 +-
 .../groovy/reflection/ReflectionCache.java         | 196 +++++++--------
 .../reflection/stdclasses/NumberCachedClass.java   |   2 +-
 .../groovy/runtime/DefaultGroovyMethods.java       |   6 +-
 .../org/codehaus/groovy/runtime/InvokerHelper.java |   6 +-
 .../groovy/runtime/ScriptBytecodeAdapter.java      |  14 +-
 .../callsite/BooleanReturningMethodInvoker.java    |   4 +-
 .../java/org/codehaus/groovy/syntax/Numbers.java   |  12 +-
 .../org/codehaus/groovy/util/HashCodeHelper.java   | 262 ++++++++++-----------
 14 files changed, 264 insertions(+), 264 deletions(-)

diff --git a/src/main/groovy/groovy/lang/BenchmarkInterceptor.java b/src/main/groovy/groovy/lang/BenchmarkInterceptor.java
index 77bcb64..793286d 100644
--- a/src/main/groovy/groovy/lang/BenchmarkInterceptor.java
+++ b/src/main/groovy/groovy/lang/BenchmarkInterceptor.java
@@ -74,7 +74,7 @@ public class BenchmarkInterceptor implements Interceptor {
      */
     public Object beforeInvoke(Object object, String methodName, Object[] arguments) {
         if (!calls.containsKey(methodName)) calls.put(methodName, new LinkedList());
-        ((List) calls.get(methodName)).add(Long.valueOf(System.currentTimeMillis()));
+        ((List) calls.get(methodName)).add(System.currentTimeMillis());
 
         return null;
     }
@@ -87,7 +87,7 @@ public class BenchmarkInterceptor implements Interceptor {
      * @return result
      */
     public Object afterInvoke(Object object, String methodName, Object[] arguments, Object result) {
-        ((List) calls.get(methodName)).add(Long.valueOf(System.currentTimeMillis()));
+        ((List) calls.get(methodName)).add(System.currentTimeMillis());
         return result;
     }
 
@@ -112,14 +112,14 @@ public class BenchmarkInterceptor implements Interceptor {
             result.add(line);
             line[0] = iter.next();
             List times = (List) calls.get(line[0]);
-            line[1] = Integer.valueOf(times.size() / 2);
+            line[1] = times.size() / 2;
             int accTime = 0;
             for (Iterator it = times.iterator(); it.hasNext();) {
                 Long start = (Long) it.next();
                 Long end = (Long) it.next();
-                accTime += end.longValue() - start.longValue();
+                accTime += end - start;
             }
-            line[2] = Long.valueOf(accTime);
+            line[2] = (long) accTime;
         }
         return result;
     }
diff --git a/src/main/groovy/groovy/lang/MetaClassImpl.java b/src/main/groovy/groovy/lang/MetaClassImpl.java
index e4cb082..cf9c3ef 100644
--- a/src/main/groovy/groovy/lang/MetaClassImpl.java
+++ b/src/main/groovy/groovy/lang/MetaClassImpl.java
@@ -1096,7 +1096,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             // try to invoke method with adjusted arguments(first argument is the actual owner) again.
             // otherwise throw the MissingMethodExceptionNoStack.
             if (!(owner instanceof Class
-                    && ((Boolean) mc.getProperty(MethodClosure.ANY_INSTANCE_METHOD_EXISTS)).booleanValue())) {
+                    && (Boolean) mc.getProperty(MethodClosure.ANY_INSTANCE_METHOD_EXISTS))) {
 
                 throw e;
             }
diff --git a/src/main/groovy/groovy/util/Expando.java b/src/main/groovy/groovy/util/Expando.java
index 21a2931..a156fdb 100644
--- a/src/main/groovy/groovy/util/Expando.java
+++ b/src/main/groovy/groovy/util/Expando.java
@@ -134,7 +134,7 @@ public class Expando extends GroovyObjectSupport {
             Closure closure = (Closure) method;
             closure.setDelegate(this);
             Boolean ret = (Boolean) closure.call(obj);
-            return ret.booleanValue();
+            return ret;
         } else {
             return super.equals(obj);
         }
@@ -153,7 +153,7 @@ public class Expando extends GroovyObjectSupport {
             Closure closure = (Closure) method;
             closure.setDelegate(this);
             Integer ret = (Integer) closure.call();
-            return ret.intValue();
+            return ret;
         } else {
             return super.hashCode();
         }
diff --git a/src/main/groovy/groovy/util/ObjectGraphBuilder.java b/src/main/groovy/groovy/util/ObjectGraphBuilder.java
index b26a966..b6b6b48 100644
--- a/src/main/groovy/groovy/util/ObjectGraphBuilder.java
+++ b/src/main/groovy/groovy/util/ObjectGraphBuilder.java
@@ -801,7 +801,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
             context.put(ObjectGraphBuilder.NODE_NAME, name);
             context.put(ObjectGraphBuilder.LAZY_REF, lazy);
 
-            if (lazy.booleanValue()) {
+            if (lazy) {
                 Map parentContext = ogbuilder.getParentContext();
 
                 Object parent = null;
@@ -824,12 +824,12 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
 
         public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
             Boolean lazy = (Boolean) builder.getContext().get(ObjectGraphBuilder.LAZY_REF);
-            if (!lazy.booleanValue()) super.setChild(builder, parent, child);
+            if (!lazy) super.setChild(builder, parent, child);
         }
 
         public void setParent(FactoryBuilderSupport builder, Object parent, Object child) {
             Boolean lazy = (Boolean) builder.getContext().get(ObjectGraphBuilder.LAZY_REF);
-            if (!lazy.booleanValue()) super.setParent(builder, parent, child);
+            if (!lazy) super.setParent(builder, parent, child);
         }
     }
 
diff --git a/src/main/groovy/groovy/util/ObservableList.java b/src/main/groovy/groovy/util/ObservableList.java
index 7684596..84a9c89 100644
--- a/src/main/groovy/groovy/util/ObservableList.java
+++ b/src/main/groovy/groovy/util/ObservableList.java
@@ -321,7 +321,7 @@ public class ObservableList implements List {
         Object oldValue = delegate.set(index, element);
         if (test != null) {
             Object result = test.call(element);
-            if (result instanceof Boolean && ((Boolean) result).booleanValue()) {
+            if (result instanceof Boolean && (Boolean) result) {
                 fireElementUpdatedEvent(index, oldValue, element);
             }
         } else {
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 9f33680..203c518 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -1630,7 +1630,7 @@ public class AsmClassGenerator extends ClassGenerator {
             if (!(expr instanceof SpreadExpression)) {
                 normalArguments.add(expr);
             } else {
-                spreadIndexes.add(new ConstantExpression(Integer.valueOf(i - spreadExpressions.size()),true));
+                spreadIndexes.add(new ConstantExpression(i - spreadExpressions.size(),true));
                 spreadExpressions.add(((SpreadExpression) expr).getExpression());
             }
         }
diff --git a/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java b/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
index 1ae2f27..7f6c525 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ReflectionCache.java
@@ -1,98 +1,98 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.codehaus.groovy.reflection;
-
-import org.codehaus.groovy.classgen.asm.util.TypeUtil;
-import org.codehaus.groovy.util.TripleKeyHashMap;
-
-public class ReflectionCache {
-    public static Class autoboxType(Class type) {
-        return TypeUtil.autoboxType(type);
-    }
-
-    static TripleKeyHashMap mopNames = new TripleKeyHashMap();
-
-    public static String getMOPMethodName(CachedClass declaringClass, String name, boolean useThis) {
-        TripleKeyHashMap.Entry mopNameEntry = mopNames.getOrPut(declaringClass, name, Boolean.valueOf(useThis));
-        if (mopNameEntry.value == null) {
-            mopNameEntry.value = (useThis ? "this$" : "super$") + declaringClass.getSuperClassDistance() + "$" + name;
-        }
-        return (String) mopNameEntry.value;
-    }
-    
-    static final CachedClass STRING_CLASS = getCachedClass(String.class);
-
-    public static boolean isArray(Class klazz) {
-      return klazz.isArray();
-    }
-
-    static void setAssignableFrom(Class klazz, Class aClass) {
-        // FIXME no implementation?
-//        SoftDoubleKeyMap.Entry val = (SoftDoubleKeyMap.Entry) assignableMap.getOrPut(klazz, aClass, null);
-//        if (val.getValue() == null) {
-//            val.setValue(Boolean.TRUE);
-//        }
-    }
-
-    public static boolean isAssignableFrom(Class klazz, Class aClass) {
-        if (klazz == aClass)
-          return true;
-
-//        SoftDoubleKeyMap.Entry val = (SoftDoubleKeyMap.Entry) assignableMap.getOrPut(klazz, aClass, null);
-//        if (val.getValue() == null) {
-//            val.setValue(Boolean.valueOf(klazz.isAssignableFrom(aClass)));
-//        }
-//        return ((Boolean)val.getValue()).booleanValue();
-        return klazz.isAssignableFrom(aClass);
-    }
-
-    static boolean arrayContentsEq(Object[] a1, Object[] a2) {
-        if (a1 == null) {
-            return a2 == null || a2.length == 0;
-        }
-
-        if (a2 == null) {
-            return a1.length == 0;
-        }
-
-        if (a1.length != a2.length) {
-            return false;
-        }
-
-        for (int i = 0; i < a1.length; i++) {
-            if (a1[i] != a2[i]) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    public static final CachedClass OBJECT_CLASS = getCachedClass(Object.class);
-
-    public static final CachedClass OBJECT_ARRAY_CLASS = getCachedClass(Object[].class);
-
-    public static CachedClass getCachedClass(Class klazz) {
-        if (klazz == null)
-          return null;
-        
-        return ClassInfo.getClassInfo(klazz).getCachedClass();
-    }
-
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.codehaus.groovy.reflection;
+
+import org.codehaus.groovy.classgen.asm.util.TypeUtil;
+import org.codehaus.groovy.util.TripleKeyHashMap;
+
+public class ReflectionCache {
+    public static Class autoboxType(Class type) {
+        return TypeUtil.autoboxType(type);
+    }
+
+    static TripleKeyHashMap mopNames = new TripleKeyHashMap();
+
+    public static String getMOPMethodName(CachedClass declaringClass, String name, boolean useThis) {
+        TripleKeyHashMap.Entry mopNameEntry = mopNames.getOrPut(declaringClass, name, useThis);
+        if (mopNameEntry.value == null) {
+            mopNameEntry.value = (useThis ? "this$" : "super$") + declaringClass.getSuperClassDistance() + "$" + name;
+        }
+        return (String) mopNameEntry.value;
+    }
+    
+    static final CachedClass STRING_CLASS = getCachedClass(String.class);
+
+    public static boolean isArray(Class klazz) {
+      return klazz.isArray();
+    }
+
+    static void setAssignableFrom(Class klazz, Class aClass) {
+        // FIXME no implementation?
+//        SoftDoubleKeyMap.Entry val = (SoftDoubleKeyMap.Entry) assignableMap.getOrPut(klazz, aClass, null);
+//        if (val.getValue() == null) {
+//            val.setValue(Boolean.TRUE);
+//        }
+    }
+
+    public static boolean isAssignableFrom(Class klazz, Class aClass) {
+        if (klazz == aClass)
+          return true;
+
+//        SoftDoubleKeyMap.Entry val = (SoftDoubleKeyMap.Entry) assignableMap.getOrPut(klazz, aClass, null);
+//        if (val.getValue() == null) {
+//            val.setValue(Boolean.valueOf(klazz.isAssignableFrom(aClass)));
+//        }
+//        return ((Boolean)val.getValue()).booleanValue();
+        return klazz.isAssignableFrom(aClass);
+    }
+
+    static boolean arrayContentsEq(Object[] a1, Object[] a2) {
+        if (a1 == null) {
+            return a2 == null || a2.length == 0;
+        }
+
+        if (a2 == null) {
+            return a1.length == 0;
+        }
+
+        if (a1.length != a2.length) {
+            return false;
+        }
+
+        for (int i = 0; i < a1.length; i++) {
+            if (a1[i] != a2[i]) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    public static final CachedClass OBJECT_CLASS = getCachedClass(Object.class);
+
+    public static final CachedClass OBJECT_ARRAY_CLASS = getCachedClass(Object[].class);
+
+    public static CachedClass getCachedClass(Class klazz) {
+        if (klazz == null)
+          return null;
+        
+        return ClassInfo.getClassInfo(klazz).getCachedClass();
+    }
+
+}
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java
index 70a9a35..df3e6d0 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java
@@ -52,7 +52,7 @@ public class NumberCachedClass extends CachedClass {
     private Object coerceNumber(Object argument) {
         Class param = getTheClass();
         if (param == Byte.class /*|| param == Byte.TYPE*/) {
-            argument = Byte.valueOf(((Number) argument).byteValue());
+            argument = ((Number) argument).byteValue();
         } else if (param == BigInteger.class) {
             argument = new BigInteger(String.valueOf((Number) argument));
         }
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index db43fd2..6368600 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -16106,7 +16106,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static long abs(Long number) {
-        return Math.abs(number.longValue());
+        return Math.abs(number);
     }
 
     /**
@@ -16117,7 +16117,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static float abs(Float number) {
-        return Math.abs(number.floatValue());
+        return Math.abs(number);
     }
 
     /**
@@ -16139,7 +16139,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.0
      */
     public static int round(Float number) {
-        return Math.round(number.floatValue());
+        return Math.round(number);
     }
 
     /**
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
index 77674dd..1e6781f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
@@ -263,7 +263,7 @@ public class InvokerHelper {
     public static Object unaryMinus(Object value) {
         if (value instanceof Integer) {
             Integer number = (Integer) value;
-            return Integer.valueOf(-number.intValue());
+            return -number;
         }
         if (value instanceof Long) {
             Long number = (Long) value;
@@ -285,11 +285,11 @@ public class InvokerHelper {
         }
         if (value instanceof Short) {
             Short number = (Short) value;
-            return Short.valueOf((short) -number.shortValue());
+            return (short) -number;
         }
         if (value instanceof Byte) {
             Byte number = (Byte) value;
-            return Byte.valueOf((byte) -number.byteValue());
+            return (byte) -number;
         }
         if (value instanceof ArrayList) {
             // value is a list.
diff --git a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
index 39473d2..df1a4c4 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ScriptBytecodeAdapter.java
@@ -51,9 +51,9 @@ import java.util.regex.Pattern;
  */
 public class ScriptBytecodeAdapter {
     public static final Object[] EMPTY_ARGS = {};
-    private static final Integer ZERO = Integer.valueOf(0);
-    private static final Integer MINUS_ONE = Integer.valueOf(-1);
-    private static final Integer ONE = Integer.valueOf(1);
+    private static final Integer ZERO = 0;
+    private static final Integer MINUS_ONE = -1;
+    private static final Integer ONE = 1;
 
     //  --------------------------------------------------------
     //                   exception handling
@@ -733,7 +733,7 @@ public class ScriptBytecodeAdapter {
         if (leftClass ==Long.class && rightClass==Long.class) {
             return (Long) left < (Long) right;
         }
-        return compareTo(left, right).intValue() < 0;
+        return compareTo(left, right) < 0;
     }
 
     public static boolean compareLessThanEqual(Object left, Object right) {
@@ -748,7 +748,7 @@ public class ScriptBytecodeAdapter {
         if (leftClass ==Long.class && rightClass==Long.class) {
             return (Long) left <= (Long) right;
         }
-        return compareTo(left, right).intValue() <= 0;
+        return compareTo(left, right) <= 0;
     }
 
     public static boolean compareGreaterThan(Object left, Object right) {
@@ -763,7 +763,7 @@ public class ScriptBytecodeAdapter {
         if (leftClass ==Long.class && rightClass==Long.class) {
             return (Long) left > (Long) right;
         }
-        return compareTo(left, right).intValue() > 0;
+        return compareTo(left, right) > 0;
     }
 
     public static boolean compareGreaterThanEqual(Object left, Object right) {
@@ -778,7 +778,7 @@ public class ScriptBytecodeAdapter {
         if (leftClass ==Long.class && rightClass==Long.class) {
             return (Long) left >= (Long) right;
         }
-        return compareTo(left, right).intValue() >= 0;
+        return compareTo(left, right) >= 0;
     }
 
     //regexpr
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/BooleanReturningMethodInvoker.java b/src/main/java/org/codehaus/groovy/runtime/callsite/BooleanReturningMethodInvoker.java
index 7865f05..9a36700 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/BooleanReturningMethodInvoker.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/BooleanReturningMethodInvoker.java
@@ -59,7 +59,7 @@ public class BooleanReturningMethodInvoker {
         // handle conversion to boolean
         if (arg == null) return false;
         if (arg instanceof Boolean) {
-            return ((Boolean) arg).booleanValue();
+            return (Boolean) arg;
         }
         // it was not null and not boolean, so call asBoolean
         try {
@@ -68,7 +68,7 @@ public class BooleanReturningMethodInvoker {
             // UncheckedThrow allows throwing checked exceptions without declaring a throws
             UncheckedThrow.rethrow(t);
         }
-        return ((Boolean) arg).booleanValue();
+        return (Boolean) arg;
     }
 
 }
diff --git a/src/main/java/org/codehaus/groovy/syntax/Numbers.java b/src/main/java/org/codehaus/groovy/syntax/Numbers.java
index d08a2f3..be43e69 100644
--- a/src/main/java/org/codehaus/groovy/syntax/Numbers.java
+++ b/src/main/java/org/codehaus/groovy/syntax/Numbers.java
@@ -202,13 +202,13 @@ public class Numbers {
                 if (radix == 10 && (value.compareTo(MAX_INTEGER) > 0 || value.compareTo(MIN_INTEGER) < 0)) {
                     throw new ASTRuntimeException(reportNode, "Number of value " + value + " does not fit in the range of int, but int was enforced.");
                 } else {
-                    return Integer.valueOf(value.intValue());
+                    return value.intValue();
                 }
             case 'l':
                 if (radix == 10 && (value.compareTo(MAX_LONG) > 0 || value.compareTo(MIN_LONG) < 0)) {
                     throw new ASTRuntimeException(reportNode, "Number of value " + value + " does not fit in the range of long, but long was enforced.");
                 } else {
-                    return Long.valueOf(value.longValue());
+                    return value.longValue();
                 }
             case 'g':
                 return value;
@@ -216,9 +216,9 @@ public class Numbers {
                 // If not specified, we will return the narrowest possible
                 // of Integer, Long, and BigInteger.
                 if (value.compareTo(MAX_INTEGER) <= 0 && value.compareTo(MIN_INTEGER) >= 0) {
-                    return Integer.valueOf(value.intValue());
+                    return value.intValue();
                 } else if (value.compareTo(MAX_LONG) <= 0 && value.compareTo(MIN_LONG) >= 0) {
-                    return Long.valueOf(value.longValue());
+                    return value.longValue();
                 }
                 return value;
         }
@@ -257,13 +257,13 @@ public class Numbers {
         switch (type) {
             case 'f':
                 if (value.compareTo(MAX_FLOAT) <= 0 && value.compareTo(MIN_FLOAT) >= 0) {
-                    return new Float(text);
+                    return Float.parseFloat(text);
                 }
                 throw new NumberFormatException("out of range");
 
             case 'd':
                 if (value.compareTo(MAX_DOUBLE) <= 0 && value.compareTo(MIN_DOUBLE) >= 0) {
-                    return new Double(text);
+                    return Double.parseDouble(text);
                 }
                 throw new NumberFormatException("out of range");
 
diff --git a/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java b/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java
index 9e7afc9..8554f27 100644
--- a/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java
+++ b/src/main/java/org/codehaus/groovy/util/HashCodeHelper.java
@@ -1,131 +1,131 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.codehaus.groovy.util;
-
-import java.util.Arrays;
-
-/**
- * A utility class to help calculate hashcode values
- * using an algorithm similar to that outlined in
- * "Effective Java, Joshua Bloch, 2nd Edition".
- */
-public class HashCodeHelper {
-    private static final int SEED = 127;
-    private static final int MULT = 59;
-
-    public static int initHash() {
-        return SEED;
-    }
-
-    public static int updateHash(int current, boolean var) {
-        return shift(current) + (var ? 79 : 97);
-    }
-
-    public static int updateHash(int current, char var) {
-        return shift(current) + (int) var;
-    }
-
-    public static int updateHash(int current, Character var) {
-        return updateHash(current, var == null ? 0 : var.charValue());
-    }
-
-    public static int updateHash(int current, int var) {
-        return shift(current) + var;
-    }
-
-    public static int updateHash(int current, Integer var) {
-        return updateHash(current, var == null ? 0 : var.intValue());
-    }
-
-    public static int updateHash(int current, long var) {
-        return shift(current) + (int) (var ^ (var >>> 32));
-    }
-
-    public static int updateHash(int current, Long var) {
-        return updateHash(current, var == null ? 0L : var.longValue());
-    }
-
-    public static int updateHash(int current, float var) {
-        return updateHash(current, Float.floatToIntBits(var));
-    }
-
-    public static int updateHash(int current, Float var) {
-        return updateHash(current, var == null ? 0f : var.floatValue());
-    }
-
-    public static int updateHash(int current, double var) {
-        return updateHash(current, Double.doubleToLongBits(var));
-    }
-
-    public static int updateHash(int current, Double var) {
-        return updateHash(current, var == null ? 0d : var.doubleValue());
-    }
-
-    public static int updateHash(int current, Object var) {
-        if (var == null) return updateHash(current, 0);
-        if (var.getClass().isArray())
-            return shift(current) + Arrays.hashCode((Object[]) var);
-        return updateHash(current, var.hashCode());
-    }
-
-    public static int updateHash(int current, boolean[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, char[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, byte[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, short[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, int[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, long[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, float[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    public static int updateHash(int current, double[] var) {
-        if (var == null) return updateHash(current, 0);
-        return shift(current) + Arrays.hashCode(var);
-    }
-
-    private static int shift(int current) {
-        return MULT * current;
-    }
-
-}
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.codehaus.groovy.util;
+
+import java.util.Arrays;
+
+/**
+ * A utility class to help calculate hashcode values
+ * using an algorithm similar to that outlined in
+ * "Effective Java, Joshua Bloch, 2nd Edition".
+ */
+public class HashCodeHelper {
+    private static final int SEED = 127;
+    private static final int MULT = 59;
+
+    public static int initHash() {
+        return SEED;
+    }
+
+    public static int updateHash(int current, boolean var) {
+        return shift(current) + (var ? 79 : 97);
+    }
+
+    public static int updateHash(int current, char var) {
+        return shift(current) + (int) var;
+    }
+
+    public static int updateHash(int current, Character var) {
+        return updateHash(current, var == null ? 0 : var);
+    }
+
+    public static int updateHash(int current, int var) {
+        return shift(current) + var;
+    }
+
+    public static int updateHash(int current, Integer var) {
+        return updateHash(current, var == null ? 0 : var);
+    }
+
+    public static int updateHash(int current, long var) {
+        return shift(current) + (int) (var ^ (var >>> 32));
+    }
+
+    public static int updateHash(int current, Long var) {
+        return updateHash(current, var == null ? 0L : var);
+    }
+
+    public static int updateHash(int current, float var) {
+        return updateHash(current, Float.floatToIntBits(var));
+    }
+
+    public static int updateHash(int current, Float var) {
+        return updateHash(current, var == null ? 0f : var);
+    }
+
+    public static int updateHash(int current, double var) {
+        return updateHash(current, Double.doubleToLongBits(var));
+    }
+
+    public static int updateHash(int current, Double var) {
+        return updateHash(current, var == null ? 0d : var);
+    }
+
+    public static int updateHash(int current, Object var) {
+        if (var == null) return updateHash(current, 0);
+        if (var.getClass().isArray())
+            return shift(current) + Arrays.hashCode((Object[]) var);
+        return updateHash(current, var.hashCode());
+    }
+
+    public static int updateHash(int current, boolean[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, char[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, byte[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, short[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, int[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, long[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, float[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    public static int updateHash(int current, double[] var) {
+        if (var == null) return updateHash(current, 0);
+        return shift(current) + Arrays.hashCode(var);
+    }
+
+    private static int shift(int current) {
+        return MULT * current;
+    }
+
+}