You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/06/15 04:45:16 UTC

[groovy] branch GROOVY_2_5_X updated: GROOVY-9587: don't check for property for non-empty call args (port to 2_5_X)

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

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


The following commit(s) were added to refs/heads/GROOVY_2_5_X by this push:
     new 690d7f7  GROOVY-9587: don't check for property for non-empty call args (port to 2_5_X)
690d7f7 is described below

commit 690d7f77e25941299e812c7ec7c21c108792978a
Author: Paul King <pa...@asert.com.au>
AuthorDate: Mon Jun 15 14:45:01 2020 +1000

    GROOVY-9587: don't check for property for non-empty call args (port to 2_5_X)
---
 src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
index f979dbd..90b74a3 100644
--- a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
@@ -289,9 +289,10 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
                     lookForPossibleStaticMethod &= !foundInstanceMethod;
                     lookForPossibleStaticMethod |= inSpecialConstructorCall;
                     lookForPossibleStaticMethod &= !inInnerClass;
+                    boolean emptyArgs = args instanceof TupleExpression && ((TupleExpression) args).getExpressions().isEmpty();
                     if (!inClosure && lookForPossibleStaticMethod &&
-                            (hasPossibleStaticMethod(currentClass, methodName, args, true))
-                            || hasPossibleStaticProperty(currentClass, methodName)) {
+                            hasPossibleStaticMethod(currentClass, methodName, args, true)
+                            || (hasPossibleStaticProperty(currentClass, methodName) && emptyArgs)) {
                         StaticMethodCallExpression smce = new StaticMethodCallExpression(currentClass, methodName, args);
                         setSourcePosition(smce, mce);
                         return smce;
@@ -300,7 +301,7 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
                         if (currentClass.getOuterClass().hasPossibleMethod(methodName, args)) {
                             object = new PropertyExpression(new ClassExpression(currentClass.getOuterClass()), new ConstantExpression("this"));
                         } else if (hasPossibleStaticMethod(currentClass.getOuterClass(), methodName, args, true)
-                                || hasPossibleStaticProperty(currentClass.getOuterClass(), methodName)) {
+                                || (hasPossibleStaticProperty(currentClass.getOuterClass(), methodName) && emptyArgs)) {
                             StaticMethodCallExpression smce = new StaticMethodCallExpression(currentClass.getOuterClass(), methodName, args);
                             setSourcePosition(smce, mce);
                             return smce;