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 2019/04/21 23:42:28 UTC
[groovy] 02/02: minor refactor: remove duplication, improve clarify
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
commit 8f70d1b428da93a005a41d300cdd7ffc874198bc
Author: Paul King <pa...@asert.com.au>
AuthorDate: Mon Apr 22 08:02:28 2019 +1000
minor refactor: remove duplication, improve clarify
---
.../groovy/classgen/VariableScopeVisitor.java | 23 ++++++++++------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
index 1c1366b..18a94d5 100644
--- a/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/VariableScopeVisitor.java
@@ -61,7 +61,7 @@ import static java.lang.reflect.Modifier.isFinal;
import static org.apache.groovy.ast.tools.MethodNodeUtils.getPropertyName;
/**
- * goes through an AST and initializes the scopes
+ * Goes through an AST and initializes the scopes.
*/
public class VariableScopeVisitor extends ClassCodeVisitorSupport {
@@ -207,6 +207,10 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
return findClassMember(cn.getOuterClass(), name);
}
+ private static boolean isAnonymous(ClassNode node) {
+ return (!node.isEnum() && node instanceof InnerClassNode && ((InnerClassNode) node).isAnonymous());
+ }
+
// -------------------------------
// different Variable based checks
// -------------------------------
@@ -221,9 +225,8 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
boolean crossingStaticContext = false;
while (true) {
crossingStaticContext = crossingStaticContext || scope.isInStaticContext();
- Variable var1;
- var1 = scope.getDeclaredVariable(var.getName());
+ Variable var1 = scope.getDeclaredVariable(var.getName());
if (var1 != null) {
var = var1;
break;
@@ -268,7 +271,6 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
(end.isReferencedClassVariable(name) && end.getDeclaredVariable(name) == null)) {
scope.putReferencedClassVariable(var);
} else {
- //var.setClosureSharedVariable(var.isClosureSharedVariable() || inClosure);
scope.putReferencedLocalVariable(var);
}
scope = scope.getParent();
@@ -427,8 +429,7 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
expression.setVariableScope(currentScope);
if (expression.isParameterSpecified()) {
- Parameter[] parameters = expression.getParameters();
- for (Parameter parameter : parameters) {
+ for (Parameter parameter : expression.getParameters()) {
parameter.setInStaticContext(currentScope.isInStaticContext());
if (parameter.hasInitialExpression()) {
parameter.getInitialExpression().visit(this);
@@ -476,10 +477,7 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
public void visitClass(ClassNode node) {
// AIC are already done, doing them here again will lead to wrong scopes
- if (node instanceof InnerClassNode) {
- InnerClassNode in = (InnerClassNode) node;
- if (in.isAnonymous() && !in.isEnum()) return;
- }
+ if (isAnonymous(node)) return;
pushState();
@@ -496,8 +494,7 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
}
/**
- * Setup the current class node context.
- * @param node
+ * Sets the current class node context.
*/
public void prepareVisit(ClassNode node) {
currentClass = node;
@@ -509,7 +506,7 @@ public class VariableScopeVisitor extends ClassCodeVisitorSupport {
inConstructor = isConstructor;
node.setVariableScope(currentScope);
visitAnnotations(node);
-
+
// GROOVY-2156
Parameter[] parameters = node.getParameters();
for (Parameter parameter : parameters) {