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 2018/04/06 06:15:00 UTC
[2/3] groovy git commit: Fix "Minor refactoring: remove duplicated
code of `ResolveVisitor`"
Fix "Minor refactoring: remove duplicated code of `ResolveVisitor`"
(cherry picked from commit 0c7c6b1)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/0b30e808
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/0b30e808
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/0b30e808
Branch: refs/heads/GROOVY_2_6_X
Commit: 0b30e808120f9d3eea79f1886fc24198d49bbf53
Parents: 84930c1
Author: danielsun1106 <re...@hotmail.com>
Authored: Fri Apr 6 13:09:57 2018 +0800
Committer: danielsun1106 <re...@hotmail.com>
Committed: Fri Apr 6 14:14:40 2018 +0800
----------------------------------------------------------------------
.../codehaus/groovy/control/ResolveVisitor.java | 25 +++++++++++++-------
1 file changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/0b30e808/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
index 2f82009..653e11c 100644
--- a/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/ResolveVisitor.java
@@ -18,6 +18,7 @@
*/
package org.codehaus.groovy.control;
+import groovy.lang.Tuple2;
import org.codehaus.groovy.GroovyBugError;
import org.codehaus.groovy.ast.ASTNode;
import org.codehaus.groovy.ast.AnnotatedNode;
@@ -790,8 +791,10 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
return null;
}
String varName = ve.getName();
- name = getClassName(doInitialClassTest, name, varName);
- if (name == null) return null;
+ Tuple2<StringBuilder, Boolean> classNameInfo = makeClassName(doInitialClassTest, name, varName);
+ name = classNameInfo.getFirst();
+ doInitialClassTest = classNameInfo.getSecond();
+
break;
}
// anything other than PropertyExpressions or
@@ -805,7 +808,9 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
if (propertyPart == null || propertyPart.equals("class")) {
return null;
}
- name = getClassName(doInitialClassTest, name, propertyPart);
+ Tuple2<StringBuilder, Boolean> classNameInfo = makeClassName(doInitialClassTest, name, propertyPart);
+ name = classNameInfo.getFirst();
+ doInitialClassTest = classNameInfo.getSecond();
}
}
@@ -814,7 +819,7 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
return name.toString();
}
- private static StringBuilder getClassName(boolean doInitialClassTest, StringBuilder name, String varName) {
+ private static Tuple2<StringBuilder, Boolean> makeClassName(boolean doInitialClassTest, StringBuilder name, String varName) {
if (doInitialClassTest) {
// we are at the first name part. This is the right most part.
// If this part is in lower case, then we do not need a class
@@ -822,13 +827,17 @@ public class ResolveVisitor extends ClassCodeExpressionTransformer {
// by a different method call to this method, so foo.Bar.bar
// can still be resolved to the class foo.Bar and the static
// field bar.
- if (!testVanillaNameForClass(varName)) return null;
- doInitialClassTest = false;
- name = new StringBuilder(varName);
+ if (!testVanillaNameForClass(varName)) {
+ name = null;
+ } else {
+ doInitialClassTest = false;
+ name = new StringBuilder(varName);
+ }
} else {
name.insert(0, varName + ".");
}
- return name;
+
+ return new Tuple2<StringBuilder, Boolean>(name, doInitialClassTest);
}
// iterate from the inner most to the outer and check for classes