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