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 2023/04/11 20:41:49 UTC

[groovy] branch master updated: Trivial refactoring: reuse `ArrayTypeUtils.dimension`

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 c6768a7d57 Trivial refactoring: reuse `ArrayTypeUtils.dimension`
c6768a7d57 is described below

commit c6768a7d57719f931ef88b82b8ee56a3545bb654
Author: Daniel Sun <su...@apache.org>
AuthorDate: Wed Apr 12 04:41:17 2023 +0800

    Trivial refactoring: reuse `ArrayTypeUtils.dimension`
---
 .../groovy/transform/stc/StaticTypeCheckingSupport.java      | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

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 0a6bbbcd1d..5fcfdb3b4a 100644
--- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
+++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingSupport.java
@@ -47,6 +47,7 @@ import org.codehaus.groovy.ast.tools.WideningCategories;
 import org.codehaus.groovy.control.CompilationUnit;
 import org.codehaus.groovy.control.CompilerConfiguration;
 import org.codehaus.groovy.control.Phases;
+import org.codehaus.groovy.runtime.ArrayTypeUtils;
 import org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl;
 import org.codehaus.groovy.syntax.Types;
 import org.codehaus.groovy.tools.GroovyClass;
@@ -1508,7 +1509,7 @@ public abstract class StaticTypeCheckingSupport {
 
     private static boolean inferenceCheck(final Set<GenericsTypeName> fixedPlaceHolders, final Map<GenericsTypeName, GenericsType> resolvedMethodGenerics, ClassNode type, final ClassNode wrappedArgument, final boolean lastArg) {
         // GROOVY-8090, GROOVY-11003: handle vararg generics like "T x = ...; Arrays.asList(x)"
-        if (lastArg && type.isArray() && dimensions(type) != dimensions(wrappedArgument)
+        if (lastArg && type.isArray() && ArrayTypeUtils.dimension(type) != ArrayTypeUtils.dimension(wrappedArgument)
                 && isUsingGenericsOrIsArrayUsingGenerics(type.getComponentType())) {
             type = type.getComponentType();
         }
@@ -1557,15 +1558,6 @@ public abstract class StaticTypeCheckingSupport {
         return !typeCheckMethodArgumentWithGenerics(resolvedType, wrappedArgument, lastArg);
     }
 
-    private static int dimensions(ClassNode cn) {
-        int dims = 0;
-        while (cn.isArray()) {
-            cn = cn.getComponentType();
-            dims += 1;
-        }
-        return dims;
-    }
-
     private static boolean compatibleConnection(final GenericsType resolved, final GenericsType connection) {
         if (resolved.isPlaceholder()
                 &&  resolved.getUpperBounds() != null