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/01/16 08:36:25 UTC

[groovy] branch GROOVY_3_0_X updated: Refine some code

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 5f10e36  Refine some code
5f10e36 is described below

commit 5f10e361d5e5f833579c1a720f7b767323574743
Author: Bo Zhang <zh...@gmail.com>
AuthorDate: Thu Jan 16 10:30:40 2020 +0800

    Refine some code
    
    (cherry picked from commit 1e03566d709f849102f7e49909577a4cdd45586c)
---
 src/main/java/groovy/grape/Grape.java              |  6 ++---
 src/main/java/groovy/lang/GroovyClassLoader.java   |  7 +++---
 src/main/java/groovy/lang/MetaClassImpl.java       |  6 ++---
 src/main/java/groovy/lang/NumberRange.java         | 21 +++++++++--------
 .../groovy/transform/stc/MapEntryOrKeyValue.java   |  2 +-
 src/main/java/groovy/util/Node.java                |  2 +-
 .../groovy/ast/tools/ImmutablePropertyUtils.java   |  2 +-
 .../groovy/internal/util/UncheckedThrow.java       |  2 +-
 src/main/java/org/apache/groovy/util/Maps.java     |  2 +-
 .../ConcurrentLinkedHashMap.java                   |  6 ++---
 .../concurrentlinkedhashmap/Weighers.java          |  2 +-
 .../codehaus/groovy/antlr/AntlrParserPlugin.java   |  8 +++----
 .../org/codehaus/groovy/antlr/GroovySourceAST.java |  8 +------
 .../groovy/antlr/treewalker/CompositeVisitor.java  |  2 +-
 .../codehaus/groovy/classgen/BytecodeSequence.java |  2 +-
 .../groovy/classgen/DummyClassGenerator.java       |  2 +-
 .../classgen/asm/OptimizingStatementWriter.java    |  2 +-
 .../control/customizers/SecureASTCustomizer.java   | 12 ++++++----
 .../groovy/runtime/DefaultGroovyMethods.java       | 27 ++++++++++------------
 .../codehaus/groovy/runtime/MetaClassHelper.java   | 17 +++++++-------
 .../runtime/callsite/ConstructorMetaClassSite.java |  2 +-
 .../typehandling/DefaultTypeTransformation.java    |  2 +-
 .../groovy/transform/ASTTransformationVisitor.java |  1 -
 .../transformers/BinaryExpressionTransformer.java  |  2 +-
 .../transformers/ConstructorCallTransformer.java   |  2 +-
 .../groovy/transform/trait/TraitComposer.java      |  2 +-
 .../groovy/util/AbstractConcurrentMapBase.java     |  4 ++--
 .../vmplugin/v8/PluginDefaultGroovyMethods.java    |  8 +++----
 28 files changed, 78 insertions(+), 83 deletions(-)

diff --git a/src/main/java/groovy/grape/Grape.java b/src/main/java/groovy/grape/Grape.java
index 4b2f22d..a8dcc88 100644
--- a/src/main/java/groovy/grape/Grape.java
+++ b/src/main/java/groovy/grape/Grape.java
@@ -37,9 +37,9 @@ public class Grape {
     private static final URI[] EMPTY_URI_ARRAY = new URI[0];
     private static final Map[] EMPTY_MAP_ARRAY = new Map[0];
 
-    private static boolean enableGrapes = Boolean.valueOf(System.getProperty("groovy.grape.enable", "true"));
-    private static boolean enableAutoDownload = Boolean.valueOf(System.getProperty("groovy.grape.autoDownload", "true"));
-    private static boolean disableChecksums = Boolean.valueOf(System.getProperty("groovy.grape.disableChecksums", "false"));
+    private static boolean enableGrapes = Boolean.parseBoolean(System.getProperty("groovy.grape.enable", "true"));
+    private static boolean enableAutoDownload = Boolean.parseBoolean(System.getProperty("groovy.grape.autoDownload", "true"));
+    private static boolean disableChecksums = Boolean.parseBoolean(System.getProperty("groovy.grape.disableChecksums", "false"));
     protected static GrapeEngine instance;
 
     /**
diff --git a/src/main/java/groovy/lang/GroovyClassLoader.java b/src/main/java/groovy/lang/GroovyClassLoader.java
index cda6ad7..8cc7d6e 100644
--- a/src/main/java/groovy/lang/GroovyClassLoader.java
+++ b/src/main/java/groovy/lang/GroovyClassLoader.java
@@ -705,7 +705,7 @@ public class GroovyClassLoader extends URLClassLoader {
                 SourceUnit msu = null;
                 if (mn != null) msu = mn.getContext();
                 ClassNode main = null;
-                if (mn != null) main = (ClassNode) mn.getClasses().get(0);
+                if (mn != null) main = mn.getClasses().get(0);
                 if (msu == su && main == classNode) generatedClass = theClass;
             }
 
@@ -816,8 +816,7 @@ public class GroovyClassLoader extends URLClassLoader {
         if (recompile != null && !recompile) return false;
         if (!GroovyObject.class.isAssignableFrom(cls)) return false;
         long timestamp = getTimeStamp(cls);
-        if (timestamp == Long.MAX_VALUE) return false;
-        return true;
+        return timestamp != Long.MAX_VALUE;
     }
 
     /**
@@ -1204,7 +1203,7 @@ public class GroovyClassLoader extends URLClassLoader {
                 node.addField(timeTagField);
 
                 timeTagField = new FieldNode(
-                        Verifier.__TIMESTAMP__ + String.valueOf(System.currentTimeMillis()),
+                        Verifier.__TIMESTAMP__ + System.currentTimeMillis(),
                         ACC_PUBLIC | ACC_STATIC | ACC_SYNTHETIC,
                         ClassHelper.long_TYPE,
                         //"",
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index 1484ac3..7bd3adb 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -1027,11 +1027,11 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         return invokeMethod(theClass, object, methodName, originalArguments, false, false);
     }
 
-    private Object invokeMethodClosure(Object object, String methodName, Object[] arguments) {
+    private Object invokeMethodClosure(Object object, Object[] arguments) {
         final MethodClosure mc = (MethodClosure) object;
         final Object owner = mc.getOwner();
 
-        methodName = mc.getMethod();
+        String methodName = mc.getMethod();
         final Class ownerClass = owner instanceof Class ? (Class) owner : owner.getClass();
         final MetaClass ownerMetaClass = registry.getMetaClass(ownerClass);
 
@@ -1131,7 +1131,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             if (CLOSURE_CALL_METHOD.equals(methodName) || CLOSURE_DO_CALL_METHOD.equals(methodName)) {
                 final Class objectClass = object.getClass();
                 if (objectClass == MethodClosure.class) {
-                    return this.invokeMethodClosure(object, methodName, arguments);
+                    return this.invokeMethodClosure(object, arguments);
                 } else if (objectClass == CurriedClosure.class) {
                     final CurriedClosure cc = (CurriedClosure) object;
                     // change the arguments for an uncurried call
diff --git a/src/main/java/groovy/lang/NumberRange.java b/src/main/java/groovy/lang/NumberRange.java
index f533a56..74eb4b7 100644
--- a/src/main/java/groovy/lang/NumberRange.java
+++ b/src/main/java/groovy/lang/NumberRange.java
@@ -25,6 +25,7 @@ import org.codehaus.groovy.runtime.RangeInfo;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.math.RoundingMode;
 import java.util.AbstractList;
 import java.util.Iterator;
 import java.util.List;
@@ -95,7 +96,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
      * @param from the first value in the range
      * @param to   the last value in the range
      */
-    public <T extends Number & Comparable, U extends Number & Comparable>
+    public <T extends Number, U extends Number>
     NumberRange(T from, U to) {
         this(from, to, null, true);
     }
@@ -108,7 +109,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
      * @param to   end of the range
      * @param inclusive whether the range is inclusive
      */
-    public <T extends Number & Comparable, U extends Number & Comparable>
+    public <T extends Number, U extends Number>
     NumberRange(T from, U to, boolean inclusive) {
         this(from, to, null, inclusive);
     }
@@ -121,7 +122,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
      * @param to   end of the range
      * @param stepSize the gap between discrete elements in the range
      */
-    public <T extends Number & Comparable, U extends Number & Comparable, V extends
+    public <T extends Number, U extends Number, V extends
             Number & Comparable<? super Number>>
     NumberRange(T from, U to, V stepSize) {
         this(from, to, stepSize, true);
@@ -136,8 +137,8 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
      * @param stepSize the gap between discrete elements in the range
      * @param inclusive whether the range is inclusive
      */
-    public <T extends Number & Comparable, U extends Number & Comparable, V extends
-            Number & Comparable>
+    public <T extends Number, U extends Number, V extends
+            Number>
     NumberRange(T from, U to, V stepSize, boolean inclusive) {
         if (from == null) {
             throw new IllegalArgumentException("Must specify a non-null value for the 'from' index in a Range");
@@ -200,7 +201,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
      * @param stepSize the desired step size
      * @return a new NumberRange
      */
-    public <T extends Number & Comparable> NumberRange by(T stepSize) {
+    public <T extends Number> NumberRange by(T stepSize) {
         if (!Integer.valueOf(1).equals(this.stepSize)) {
             throw new IllegalStateException("by only allowed on ranges with original stepSize = 1 but found " + this.stepSize);
         }
@@ -208,12 +209,12 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
     }
 
     @SuppressWarnings("unchecked")
-    /* package private */ static <T extends Number & Comparable> T comparableNumber(Comparable c) {
+    /* package private */ static <T extends Number> T comparableNumber(Comparable c) {
         return (T) c;
     }
 
     @SuppressWarnings("unchecked")
-    /* package private */ static <T extends Number & Comparable> T comparableNumber(Number n) {
+    /* package private */ static <T extends Number> T comparableNumber(Number n) {
         return (T) n;
     }
 
@@ -417,7 +418,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
                 final BigInteger fromNum = new BigInteger(from.toString());
                 final BigInteger toTemp = new BigInteger(to.toString());
                 final BigInteger toNum = inclusive ? toTemp : toTemp.subtract(BigInteger.ONE);
-                final BigInteger sizeNum = new BigDecimal(toNum.subtract(fromNum)).divide(new BigDecimal(stepSize.longValue()), BigDecimal.ROUND_DOWN).toBigInteger().add(BigInteger.ONE);
+                final BigInteger sizeNum = new BigDecimal(toNum.subtract(fromNum)).divide(new BigDecimal(stepSize.longValue()), RoundingMode.DOWN).toBigInteger().add(BigInteger.ONE);
                 tempsize = sizeNum.compareTo(BigInteger.valueOf(Integer.MAX_VALUE)) < 0 ? sizeNum.intValue() : Integer.MAX_VALUE;
                 shortcut = true;
             } else if (((from instanceof BigDecimal || from instanceof BigInteger) && to instanceof Number) ||
@@ -426,7 +427,7 @@ public class NumberRange extends AbstractList<Comparable> implements Range<Compa
                 final BigDecimal fromNum = new BigDecimal(from.toString());
                 final BigDecimal toTemp = new BigDecimal(to.toString());
                 final BigDecimal toNum = inclusive ? toTemp : toTemp.subtract(new BigDecimal("1.0"));
-                final BigInteger sizeNum = toNum.subtract(fromNum).divide(new BigDecimal(stepSize.longValue()), BigDecimal.ROUND_DOWN).toBigInteger().add(BigInteger.ONE);
+                final BigInteger sizeNum = toNum.subtract(fromNum).divide(new BigDecimal(stepSize.longValue()), RoundingMode.DOWN).toBigInteger().add(BigInteger.ONE);
                 tempsize = sizeNum.compareTo(BigInteger.valueOf(Integer.MAX_VALUE)) < 0 ? sizeNum.intValue() : Integer.MAX_VALUE;
                 shortcut = true;
             }
diff --git a/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java b/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java
index a53d14e..b24a209 100644
--- a/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java
+++ b/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java
@@ -105,7 +105,7 @@ public class MapEntryOrKeyValue extends ClosureSignatureHint {
                     if ("argNum".equals(key)) {
                         pIndex = Integer.parseInt(value);
                     } else if ("index".equals(key)) {
-                        generateIndex = Boolean.valueOf(value);
+                        generateIndex = Boolean.parseBoolean(value);
                     } else {
                         throw new IncorrectTypeHintException(mn, "Unrecognized option: "+key, source.getLineNumber(), source.getColumnNumber());
                     }
diff --git a/src/main/java/groovy/util/Node.java b/src/main/java/groovy/util/Node.java
index 2adc8ea..5576d57 100644
--- a/src/main/java/groovy/util/Node.java
+++ b/src/main/java/groovy/util/Node.java
@@ -607,7 +607,7 @@ public class Node implements Serializable, Cloneable {
      * @since 2.5.0
      */
     public void depthFirst(Map<String, Object> options, Closure c) {
-        boolean preorder = Boolean.valueOf(options.get("preorder").toString());
+        boolean preorder = Boolean.parseBoolean(options.get("preorder").toString());
         if (preorder) callClosureForNode(c, this, 1);
         depthFirstRest(preorder, 2, c);
         if (!preorder) callClosureForNode(c, this, 1);
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 c04c545..7ee64a6 100644
--- a/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
+++ b/src/main/java/org/apache/groovy/ast/tools/ImmutablePropertyUtils.java
@@ -127,7 +127,7 @@ public class ImmutablePropertyUtils {
                 args(
                         fieldExpr,
                         constX("clone"),
-                        new ArrayExpression(ClassHelper.OBJECT_TYPE.makeArray(), Collections.<Expression>emptyList())
+                        new ArrayExpression(ClassHelper.OBJECT_TYPE.makeArray(), Collections.emptyList())
                 )
         );
         return castX(type, smce);
diff --git a/src/main/java/org/apache/groovy/internal/util/UncheckedThrow.java b/src/main/java/org/apache/groovy/internal/util/UncheckedThrow.java
index 7f6cc8a..23348d3 100644
--- a/src/main/java/org/apache/groovy/internal/util/UncheckedThrow.java
+++ b/src/main/java/org/apache/groovy/internal/util/UncheckedThrow.java
@@ -28,7 +28,7 @@ import org.apache.groovy.lang.annotation.Incubating;
 @Incubating
 public class UncheckedThrow {
     public static void rethrow( final Throwable checkedException ) {
-        UncheckedThrow.<RuntimeException>thrownInsteadOf( checkedException );
+        UncheckedThrow.thrownInsteadOf( checkedException );
     }
     @SuppressWarnings("unchecked")
     private static <T extends Throwable> void thrownInsteadOf(Throwable t) throws T {
diff --git a/src/main/java/org/apache/groovy/util/Maps.java b/src/main/java/org/apache/groovy/util/Maps.java
index e145fdd..164dbb1 100644
--- a/src/main/java/org/apache/groovy/util/Maps.java
+++ b/src/main/java/org/apache/groovy/util/Maps.java
@@ -5815,7 +5815,7 @@ public class Maps {
             resultMap.put(value, entry.getKey());
         }
 
-        return Collections.<V, K>unmodifiableMap(resultMap);
+        return Collections.unmodifiableMap(resultMap);
     }
 
     private Maps() {}
diff --git a/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java b/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
index db1c6c2..ee59e1e 100644
--- a/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
+++ b/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
@@ -1665,7 +1665,7 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
      */
     public Builder<K, V> weigher(Weigher<? super V> weigher) {
       this.weigher = (weigher == org.apache.groovy.util.concurrent.concurrentlinkedhashmap.Weighers.singleton())
-          ? org.apache.groovy.util.concurrent.concurrentlinkedhashmap.Weighers.<K, V>entrySingleton()
+          ? org.apache.groovy.util.concurrent.concurrentlinkedhashmap.Weighers.entrySingleton()
           : new BoundedEntryWeigher<K, V>(org.apache.groovy.util.concurrent.concurrentlinkedhashmap.Weighers.asEntryWeigher(weigher));
       return this;
     }
@@ -1680,8 +1680,8 @@ public final class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V>
      */
     public Builder<K, V> weigher(EntryWeigher<? super K, ? super V> weigher) {
       this.weigher = (weigher == org.apache.groovy.util.concurrent.concurrentlinkedhashmap.Weighers.entrySingleton())
-          ? Weighers.<K, V>entrySingleton()
-          : new BoundedEntryWeigher<K, V>(weigher);
+          ? Weighers.entrySingleton()
+          : new BoundedEntryWeigher<>(weigher);
       return this;
     }
 
diff --git a/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/Weighers.java b/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/Weighers.java
index 10c2fa1..ea2bd54 100644
--- a/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/Weighers.java
+++ b/src/main/java/org/apache/groovy/util/concurrent/concurrentlinkedhashmap/Weighers.java
@@ -43,7 +43,7 @@ public final class Weighers {
   public static <K, V> EntryWeigher<K, V> asEntryWeigher(
       final org.apache.groovy.util.concurrent.concurrentlinkedhashmap.Weigher<? super V> weigher) {
     return (weigher == singleton())
-        ? Weighers.<K, V>entrySingleton()
+        ? Weighers.entrySingleton()
         : new EntryWeigherView<K, V>(weigher);
   }
 
diff --git a/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java b/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
index cd96348..bcd3866 100644
--- a/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
+++ b/src/main/java/org/codehaus/groovy/antlr/AntlrParserPlugin.java
@@ -2361,14 +2361,14 @@ public class AntlrParserPlugin extends ASTHelper implements ParserPlugin, Groovy
             } else if (leftExpression instanceof BinaryExpression) {
                 int lefttype = ((BinaryExpression) leftExpression).getOperation().getType();
                 if (!Types.ofType(lefttype, Types.ASSIGNMENT_OPERATOR) && lefttype != Types.LEFT_SQUARE_BRACKET) {
-                    throw new ASTRuntimeException(node, "\n" + ((BinaryExpression) leftExpression).getText() + " is a binary expression, but it should be a variable expression");
+                    throw new ASTRuntimeException(node, "\n" + leftExpression.getText() + " is a binary expression, but it should be a variable expression");
                 }
             } else if (leftExpression instanceof GStringExpression) {
-                throw new ASTRuntimeException(node, "\n\"" + ((GStringExpression) leftExpression).getText() + "\" is a GString expression, but it should be a variable expression");
+                throw new ASTRuntimeException(node, "\n\"" + leftExpression.getText() + "\" is a GString expression, but it should be a variable expression");
             } else if (leftExpression instanceof MethodCallExpression) {
-                throw new ASTRuntimeException(node, "\n\"" + ((MethodCallExpression) leftExpression).getText() + "\" is a method call expression, but it should be a variable expression");
+                throw new ASTRuntimeException(node, "\n\"" + leftExpression.getText() + "\" is a method call expression, but it should be a variable expression");
             } else if (leftExpression instanceof MapExpression) {
-                throw new ASTRuntimeException(node, "\n'" + ((MapExpression) leftExpression).getText() + "' is a map expression, but it should be a variable expression");
+                throw new ASTRuntimeException(node, "\n'" + leftExpression.getText() + "' is a map expression, but it should be a variable expression");
             } else {
                 throw new ASTRuntimeException(node, "\n" + leftExpression.getClass() + ", with its value '" + leftExpression.getText() + "', is a bad expression as the left hand side of an assignment operator");
             }
diff --git a/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java b/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
index 1f0d8b5..ae57409 100644
--- a/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
+++ b/src/main/java/org/codehaus/groovy/antlr/GroovySourceAST.java
@@ -129,14 +129,8 @@ public class GroovySourceAST extends CommonAST implements Comparable, SourceInfo
             return 1;
         }
 
-        if (this.getColumn() < that.getColumn()) {
-            return -1;
-        }
-        if (this.getColumn() > that.getColumn()) {
-            return 1;
-        }
+        return Integer.compare(this.getColumn(), that.getColumn());
 
-        return 0;
     }
 
     public GroovySourceAST childAt(int position) {
diff --git a/src/main/java/org/codehaus/groovy/antlr/treewalker/CompositeVisitor.java b/src/main/java/org/codehaus/groovy/antlr/treewalker/CompositeVisitor.java
index 87e242f..b5b8d6c 100644
--- a/src/main/java/org/codehaus/groovy/antlr/treewalker/CompositeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/antlr/treewalker/CompositeVisitor.java
@@ -1174,7 +1174,7 @@ public class CompositeVisitor implements Visitor{
     public GroovySourceAST pop() {
         GroovySourceAST lastNodePopped = null;
         for (Object backToFrontVisitor : backToFrontVisitors) {
-            lastNodePopped = (GroovySourceAST) ((Visitor) backToFrontVisitor).pop();
+            lastNodePopped = ((Visitor) backToFrontVisitor).pop();
         }
         return lastNodePopped;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java b/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
index b70b855..6efe9fa 100644
--- a/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
+++ b/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
@@ -66,7 +66,7 @@ public class BytecodeSequence extends Statement {
             return;
         }
         for (BytecodeInstruction instruction : instructions) {
-            Object part = (Object) instruction;
+            Object part = instruction;
             if (part instanceof ASTNode) {
                 ((ASTNode) part).visit(visitor);
             }
diff --git a/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
index 8b7e05d..f6c71dd 100644
--- a/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
@@ -75,7 +75,7 @@ public class DummyClassGenerator extends ClassGenerator {
                     Opcodes.V1_3,
                     classNode.getModifiers(),
                     internalClassName,
-                    (String) null,
+                    null,
                     internalBaseClassName,
                     BytecodeHelper.getClassInternalNames(classNode.getInterfaces())
             );
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
index 4377263..f394ebb 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/OptimizingStatementWriter.java
@@ -506,7 +506,7 @@ public class OptimizingStatementWriter extends StatementWriter {
         public String toString() {
             StringBuilder ret = new StringBuilder();
             if (current.shouldOptimize) {
-                ret.append("should optimize, can = " + current.canOptimize);
+                ret.append("should optimize, can = ").append(current.canOptimize);
             } else if (current.canOptimize) {
                 ret.append("can optimize");
             } else {
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
index 0a743ba..ce899de 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/SecureASTCustomizer.java
@@ -668,7 +668,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
                 return;
             }
             if (starImportsWhitelist != null) {
-                String packageName = className.substring(0, className.lastIndexOf('.') + 1) + "*";
+                String packageName = getWildCardImport(className);
                 if (starImportsWhitelist.contains(packageName)
                         || starImportsWhitelist.stream().filter(it -> it.endsWith(".")).anyMatch(packageName::startsWith)) {
                     return;
@@ -680,7 +680,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
                 throw new SecurityException("Importing [" + className + "] is not allowed");
             }
             if (starImportsBlacklist != null) {
-                String packageName = className.substring(0, className.lastIndexOf('.') + 1) + "*";
+                String packageName = getWildCardImport(className);
                 if (starImportsBlacklist.contains(packageName) ||
                         starImportsBlacklist.stream().filter(it -> it.endsWith(".")).anyMatch(packageName::startsWith)) {
                     throw new SecurityException("Importing [" + className + "] is not allowed");
@@ -689,12 +689,16 @@ public class SecureASTCustomizer extends CompilationCustomizer {
         }
     }
 
+    private String getWildCardImport(String className) {
+        return className.substring(0, className.lastIndexOf('.') + 1) + "*";
+    }
+
     protected void assertStaticImportIsAllowed(final String member, final String className) {
         final String fqn = member.equals(className) ? member : className + "." + member;
         if (staticImportsWhitelist != null && !staticImportsWhitelist.contains(fqn)) {
             if (staticStarImportsWhitelist != null) {
                 // we should now check if the import is in the star imports
-                String packageName = className.substring(0, className.lastIndexOf('.') + 1) + "*";
+                String packageName = getWildCardImport(className);
                 if (!staticStarImportsWhitelist.contains(className + ".*")
                         && !staticStarImportsWhitelist.stream().filter(it -> it.endsWith(".")).anyMatch(packageName::startsWith)) {
                     throw new SecurityException("Importing [" + fqn + "] is not allowed");
@@ -708,7 +712,7 @@ public class SecureASTCustomizer extends CompilationCustomizer {
         }
         // check that there's no star import blacklist
         if (staticStarImportsBlacklist != null) {
-            String packageName = className.substring(0, className.lastIndexOf('.') + 1) + "*";
+            String packageName = getWildCardImport(className);
             if (staticStarImportsBlacklist.contains(className + ".*")
                     || staticStarImportsBlacklist.stream().filter(it -> it.endsWith(".")).anyMatch(packageName::startsWith)) {
                 throw new SecurityException("Importing [" + fqn + "] is not allowed");
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index b398ba7..1d91ada 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -3635,7 +3635,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.5.0
      */
     public static <S,T> List<T> collect(Iterable<S> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> transform) {
-        return (List<T>) collect(self.iterator(), transform);
+        return collect(self.iterator(), transform);
     }
 
     /**
@@ -6274,7 +6274,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.2
      */
     public static long sum(long[] self) {
-        return sum(self, (long) 0);
+        return sum(self, 0);
     }
 
     /**
@@ -6310,7 +6310,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.4.2
      */
     public static double sum(double[] self) {
-        return sum(self, (double) 0);
+        return sum(self, 0);
     }
 
     /**
@@ -9342,7 +9342,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.5.5
      */
     public static <T> Iterator<T> sort(Iterator<T> self, Comparator<? super T> comparator) {
-        return sort((Iterable<T>) toList(self), true, comparator).listIterator();
+        return sort(toList(self), true, comparator).listIterator();
     }
 
     /**
@@ -10534,7 +10534,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 1.8.7
      */
     public static <T> Collection<T> take(Iterable<T> self, int num) {
-        Collection<T> result = self instanceof Collection ? createSimilarCollection((Collection<T>) self, num < 0 ? 0 : num) : new ArrayList<T>();
+        Collection<T> result = self instanceof Collection ? createSimilarCollection((Collection<T>) self, Math.max(num, 0)) : new ArrayList<T>();
         addAll(result, take(self.iterator(), num));
         return result;
     }
@@ -12015,7 +12015,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
                 Method samMethod = CachedSAMClass.getSAMMethod(clazz);
                 if (samMethod!=null) {
                     Map impl = Collections.singletonMap(samMethod.getName(),cl);
-                    return (T) ProxyGenerator.INSTANCE.instantiateAggregate(impl, Collections.<Class>singletonList(clazz));
+                    return (T) ProxyGenerator.INSTANCE.instantiateAggregate(impl, Collections.singletonList(clazz));
                 }
             }
             return (T) Proxy.newProxyInstance(
@@ -12346,7 +12346,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     @SuppressWarnings("unchecked")
     public static <T> T[] plus(T[] left, T[] right) {
-        return (T[]) plus((List<T>) toList(left), (Collection<T>) toList(right)).toArray();
+        return (T[]) plus((List<T>) toList(left), toList(right)).toArray();
     }
 
     /**
@@ -12382,7 +12382,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     @SuppressWarnings("unchecked")
     public static <T> T[] plus(T[] left, Collection<T> right) {
-        return (T[]) plus((List<T>) toList(left), (Collection<T>) right).toArray();
+        return (T[]) plus((List<T>) toList(left), right).toArray();
     }
 
     /**
@@ -12404,7 +12404,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     @SuppressWarnings("unchecked")
     public static <T> T[] plus(T[] left, Iterable<T> right) {
-        return (T[]) plus((List<T>) toList(left), (Collection<T>) toList(right)).toArray();
+        return (T[]) plus((List<T>) toList(left), toList(right)).toArray();
     }
 
     /**
@@ -13003,7 +13003,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     @Deprecated
     public static boolean disjoint(Collection left, Collection right) {
-        return disjoint((Iterable) left, (Iterable) right);
+        return disjoint(left, right);
     }
 
     /**
@@ -17884,15 +17884,12 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> Iterator<T> iterator(final Enumeration<T> enumeration) {
         return new Iterator<T>() {
-            private T last;
-
             public boolean hasNext() {
                 return enumeration.hasMoreElements();
             }
 
             public T next() {
-                last = enumeration.nextElement();
-                return last;
+                return enumeration.nextElement();
             }
 
             public void remove() {
@@ -18290,7 +18287,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      * @since 2.6.0
      */
     public static groovy.lang.groovydoc.Groovydoc getGroovydoc(AnnotatedElement holder) {
-        Groovydoc groovydocAnnotation = holder.<Groovydoc>getAnnotation(Groovydoc.class);
+        Groovydoc groovydocAnnotation = holder.getAnnotation(Groovydoc.class);
 
         return null == groovydocAnnotation
                     ? EMPTY_GROOVYDOC
diff --git a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
index 55888bd..8649052 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MetaClassHelper.java
@@ -744,10 +744,7 @@ public class MetaClassHelper {
                     || classToTransformFrom == BigInteger.class)
                 return true;
         } else if (classToTransformTo == BigInteger.class) {
-            if (classToTransformFrom == Integer.class
-                    || classToTransformFrom == Long.class
-                    || classToTransformFrom == Short.class
-                    || classToTransformFrom == Byte.class)
+            if (isIntegerLongShortByte(classToTransformFrom))
                 return true;
         } else if (classToTransformTo == Long.class) {
             if (classToTransformFrom == Integer.class
@@ -755,10 +752,7 @@ public class MetaClassHelper {
                     || classToTransformFrom == Byte.class)
                 return true;
         } else if (classToTransformTo == Float.class) {
-            if (classToTransformFrom == Integer.class
-                    || classToTransformFrom == Long.class
-                    || classToTransformFrom == Short.class
-                    || classToTransformFrom == Byte.class)
+            if (isIntegerLongShortByte(classToTransformFrom))
                 return true;
         } else if (classToTransformTo == Short.class) {
             if (classToTransformFrom == Byte.class)
@@ -772,6 +766,13 @@ public class MetaClassHelper {
         return ReflectionCache.isAssignableFrom(classToTransformTo, classToTransformFrom);
     }
 
+    private static boolean isIntegerLongShortByte(Class classToTransformFrom) {
+        return classToTransformFrom == Integer.class
+                || classToTransformFrom == Long.class
+                || classToTransformFrom == Short.class
+                || classToTransformFrom == Byte.class;
+    }
+
     public static boolean isGenericSetMethod(MetaMethod method) {
         return (method.getName().equals("set"))
                 && method.getParameterTypes().length == 2;
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java
index 2309fe6..714561e 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java
@@ -35,7 +35,7 @@ public class ConstructorMetaClassSite extends MetaClassSite {
                 throw ScriptBytecodeAdapter.unwrap(gre);
             }
         } else {
-          return CallSiteArray.defaultCallConstructor(this, (Class)receiver, args);
+          return CallSiteArray.defaultCallConstructor(this, receiver, args);
         }
     }
 }
diff --git a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
index 0b40fd0..ed83ddc 100644
--- a/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
+++ b/src/main/java/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
@@ -480,7 +480,7 @@ public class DefaultTypeTransformation {
     }
 
     public static <T> Collection<T> arrayAsCollection(T[] value) {
-        return Arrays.asList((T[]) value);
+        return Arrays.asList(value);
     }
 
     /**
diff --git a/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java b/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
index b8348c6..f3f90a7 100644
--- a/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
+++ b/src/main/java/org/codehaus/groovy/transform/ASTTransformationVisitor.java
@@ -286,7 +286,6 @@ public final class ASTTransformationVisitor extends ClassCodeVisitorSupport {
                             compilationUnit.getErrorCollector().addError(new SimpleMessage(
                                     "IOException reading the service definition at "
                                             + service.toExternalForm() + " because of exception " + ioe.toString(), null));
-                            continue;
                         }
                     }
                 }
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
index f17bf7e..6d870fb 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/BinaryExpressionTransformer.java
@@ -294,7 +294,7 @@ public class BinaryExpressionTransformer {
 
     private static Expression convertInOperatorToTernary(final BinaryExpression bin, final Expression rightExpression, final Expression leftExpression) {
         MethodCallExpression call = callX(rightExpression, "isCase", leftExpression);
-        call.setMethodTarget((MethodNode) bin.getNodeMetaData(StaticTypesMarker.DIRECT_METHOD_CALL_TARGET));
+        call.setMethodTarget(bin.getNodeMetaData(StaticTypesMarker.DIRECT_METHOD_CALL_TARGET));
         call.setSourcePosition(bin);
         call.copyNodeMetaData(bin);
         Expression tExp = ternaryX(
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java
index 6c42e78..f04b0ca 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/ConstructorCallTransformer.java
@@ -55,7 +55,7 @@ public class ConstructorCallTransformer {
     }
 
     Expression transformConstructorCall(final ConstructorCallExpression expr) {
-        ConstructorNode node = (ConstructorNode) expr.getNodeMetaData(DIRECT_METHOD_CALL_TARGET);
+        ConstructorNode node = expr.getNodeMetaData(DIRECT_METHOD_CALL_TARGET);
         if (node == null) return expr;
         Parameter[] params = node.getParameters();
         if ((params.length == 1 || params.length == 2) // 2 is for inner class case
diff --git a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
index f7dae0a..506044d 100644
--- a/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
+++ b/src/main/java/org/codehaus/groovy/transform/trait/TraitComposer.java
@@ -169,7 +169,7 @@ public abstract class TraitComposer {
                 new Parameter[] {new Parameter(ClassHelper.CLASS_Type,"clazz")}, ClassNode.EMPTY_ARRAY, EmptyStatement.INSTANCE);
         staticInitMethod.setDeclaringClass(helperClassNode);
         staticInitCall.setMethodTarget(staticInitMethod);
-        cNode.addStaticInitializerStatements(Collections.<Statement>singletonList(new ExpressionStatement(
+        cNode.addStaticInitializerStatements(Collections.singletonList(new ExpressionStatement(
                 staticInitCall
         )), false);
         if (fieldHelperClassNode != null && !cNode.declaresInterface(fieldHelperClassNode)) {
diff --git a/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java b/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java
index 500e3d4..d592b9b 100644
--- a/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java
+++ b/src/main/java/org/codehaus/groovy/util/AbstractConcurrentMapBase.java
@@ -288,7 +288,7 @@ public abstract class AbstractConcurrentMapBase {
                 if (o instanceof Entry) {
                     Object arr [] = new Object [2];
                     arr [0] = ee;
-                    arr [1] = (Entry) o;
+                    arr [1] = o;
                     tab[index] = arr;
                     return;
                 }
@@ -309,7 +309,7 @@ public abstract class AbstractConcurrentMapBase {
                 if (o instanceof Entry) {
                     Object arr [] = new Object [2];
                     arr [0] = ee;
-                    arr [1] = (Entry) o;
+                    arr [1] = o;
                     return arr;
                 }
                 else {
diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
index d81df24..305ac26 100644
--- a/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/PluginDefaultGroovyMethods.java
@@ -398,7 +398,7 @@ public class PluginDefaultGroovyMethods {
      * @since 2.5.0
      */
     public static <T> List<T> toList(final Stream<T> self) {
-        return self.collect(Collectors.<T>toList());
+        return self.collect(Collectors.toList());
     }
 
     /**
@@ -410,7 +410,7 @@ public class PluginDefaultGroovyMethods {
      * @since 2.5.0
      */
     public static <T> Set<T> toSet(final Stream<T> self) {
-        return self.collect(Collectors.<T>toSet());
+        return self.collect(Collectors.toSet());
     }
 
     /**
@@ -422,7 +422,7 @@ public class PluginDefaultGroovyMethods {
      * @since 2.5.0
      */
     public static <T> List<T> toList(final BaseStream<T, ? extends BaseStream> self) {
-        return stream(self.iterator()).collect(Collectors.<T>toList());
+        return stream(self.iterator()).collect(Collectors.toList());
     }
 
     /**
@@ -434,7 +434,7 @@ public class PluginDefaultGroovyMethods {
      * @since 2.5.0
      */
     public static <T> Set<T> toSet(final BaseStream<T, ? extends BaseStream> self) {
-        return stream(self.iterator()).collect(Collectors.<T>toSet());
+        return stream(self.iterator()).collect(Collectors.toSet());
     }
 
     /**