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;