You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2021/03/30 14:15:49 UTC

[groovy] branch master updated: minor stuff

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

emilles 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 e1e1e8a  minor stuff
e1e1e8a is described below

commit e1e1e8afef0da0a7158338b9a52db18555232106
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Tue Mar 30 09:00:48 2021 -0500

    minor stuff
---
 .../org/codehaus/groovy/ast/GroovyCodeVisitor.java | 18 ++++-----
 .../groovy/ast/GroovyCodeVisitorAdapter.java       |  3 ++
 .../groovy/classgen/EnumCompletionVisitor.java     |  2 +-
 .../org/codehaus/groovy/runtime/InvokerHelper.java |  3 +-
 .../transform/stc/StaticTypeCheckingSupport.java   | 45 +++++++++++-----------
 5 files changed, 36 insertions(+), 35 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java b/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java
index dcda3d8..a2f9c57 100644
--- a/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java
@@ -118,11 +118,11 @@ public interface GroovyCodeVisitor {
 
     void visitCatchStatement(CatchStatement statement);
 
-    default void visitEmptyStatement(EmptyStatement statement) {}
+    default void visitEmptyStatement(EmptyStatement statement) {
+    }
 
-    default void visit(Statement statement) {
-        if (null == statement) return;
-        statement.visit(this);
+    default void visit(final Statement statement) {
+        if (statement != null) statement.visit(this);
     }
 
     //--------------------------------------------------------------------------
@@ -202,14 +202,14 @@ public interface GroovyCodeVisitor {
 
     void visitBytecodeExpression(BytecodeExpression expression);
 
-    default void visitEmptyExpression(EmptyExpression expression) {}
+    default void visitEmptyExpression(EmptyExpression expression) {
+    }
 
-    default void visitListOfExpressions(List<? extends Expression> list) {
+    default void visitListOfExpressions(final List<? extends Expression> list) {
         if (list != null) list.forEach(expr -> expr.visit(this));
     }
 
-    default void visit(Expression expression) {
-        if (null == expression) return;
-        expression.visit(this);
+    default void visit(final Expression expression) {
+        if (expression != null) expression.visit(this);
     }
 }
diff --git a/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitorAdapter.java b/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitorAdapter.java
index fae8dbc..91091ee 100644
--- a/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitorAdapter.java
+++ b/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitorAdapter.java
@@ -74,6 +74,9 @@ import org.codehaus.groovy.ast.stmt.TryCatchStatement;
 import org.codehaus.groovy.ast.stmt.WhileStatement;
 import org.codehaus.groovy.classgen.BytecodeExpression;
 
+/**
+ * @since 4.0.0
+ */
 public class GroovyCodeVisitorAdapter implements GroovyCodeVisitor {
 
     // statements:
diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
index 8b24c4a..ce40b80 100644
--- a/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
@@ -92,7 +92,7 @@ public class EnumCompletionVisitor extends ClassCodeVisitorSupport {
                 return;
             }
         }
-        TupleConstructorASTTransformation.addSpecialMapConstructors(0, enumClass, "One of the enum constants for enum " +
+        TupleConstructorASTTransformation.addSpecialMapConstructors(ACC_PRIVATE, enumClass, "One of the enum constants for enum " +
                 enumClass.getName() + " was initialized with null. Please use a non-null value or define your own constructor.", true);
     }
 
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
index 03e2fb3..82a8868 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
@@ -995,12 +995,11 @@ public class InvokerHelper {
     public static Object invokeMethod(Object object, String methodName, Object arguments) {
         if (object == null) {
             object = NullObject.getNullObject();
-            //throw new NullPointerException("Cannot invoke method " + methodName + "() on null object");
         }
 
         // if the object is a Class, call a static method from that class
         if (object instanceof Class) {
-            Class theClass = (Class) object;
+            Class<?> theClass = (Class<?>) object;
             MetaClass metaClass = metaRegistry.getMetaClass(theClass);
             return metaClass.invokeStaticMethod(object, methodName, asArray(arguments));
         }
diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
index 2286ed6..462f519 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -212,29 +212,26 @@ public abstract class StaticTypeCheckingSupport {
      * from superclass or interface otherwise the system won't be able to select the correct method, resulting
      * in an ambiguous method selection for similar methods.
      */
-    protected static final Comparator<MethodNode> DGM_METHOD_NODE_COMPARATOR = new Comparator<MethodNode>() {
-        @Override
-        public int compare(final MethodNode o1, final MethodNode o2) {
-            if (o1.getName().equals(o2.getName())) {
-                Parameter[] o1ps = o1.getParameters();
-                Parameter[] o2ps = o2.getParameters();
-                if (o1ps.length == o2ps.length) {
-                    boolean allEqual = true;
-                    for (int i = 0; i < o1ps.length && allEqual; i++) {
-                        allEqual = o1ps[i].getType().equals(o2ps[i].getType());
-                    }
-                    if (allEqual) {
-                        if (o1 instanceof ExtensionMethodNode && o2 instanceof ExtensionMethodNode) {
-                            return compare(((ExtensionMethodNode) o1).getExtensionMethodNode(), ((ExtensionMethodNode) o2).getExtensionMethodNode());
-                        }
-                        return 0;
+    protected static final Comparator<MethodNode> DGM_METHOD_NODE_COMPARATOR = (mn1, mn2) -> {
+        if (mn1.getName().equals(mn2.getName())) {
+            Parameter[] pa1 = mn1.getParameters();
+            Parameter[] pa2 = mn2.getParameters();
+            if (pa1.length == pa2.length) {
+                boolean allEqual = true;
+                for (int i = 0, n = pa1.length; i < n && allEqual; i += 1) {
+                    allEqual = pa1[i].getType().equals(pa2[i].getType());
+                }
+                if (allEqual) {
+                    if (mn1 instanceof ExtensionMethodNode && mn2 instanceof ExtensionMethodNode) {
+                        return StaticTypeCheckingSupport.DGM_METHOD_NODE_COMPARATOR.compare(((ExtensionMethodNode) mn1).getExtensionMethodNode(), ((ExtensionMethodNode) mn2).getExtensionMethodNode());
                     }
-                } else {
-                    return o1ps.length - o2ps.length;
+                    return 0;
                 }
+            } else {
+                return pa1.length - pa2.length;
             }
-            return 1;
         }
+        return 1;
     };
 
     protected static final ExtensionMethodCache EXTENSION_METHOD_CACHE = ExtensionMethodCache.INSTANCE;
@@ -1810,10 +1807,12 @@ public abstract class StaticTypeCheckingSupport {
 
     private static GenericsType[] applyGenericsContext(final Map<GenericsTypeName, GenericsType> spec, final GenericsType[] gts) {
         if (gts == null) return null;
-        GenericsType[] newGTs = new GenericsType[gts.length];
-        for (int i = 0, n = gts.length; i < n; i += 1) {
-            GenericsType gt = gts[i];
-            newGTs[i] = applyGenericsContext(spec, gt);
+
+        int n = gts.length;
+        if (n == 0) return gts;
+        GenericsType[] newGTs = new GenericsType[n];
+        for (int i = 0; i < n; i += 1) {
+            newGTs[i] = applyGenericsContext(spec, gts[i]);
         }
         return newGTs;
     }