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/12 00:38:35 UTC
[groovy] 05/07: GROOVY-9078: Inefficiency in MethodNode and
ConstructorNode
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 4f43fd92c8355f58fee6d4d3ea17010af50d9072
Author: Paul King <pa...@asert.com.au>
AuthorDate: Fri Apr 12 10:24:49 2019 +1000
GROOVY-9078: Inefficiency in MethodNode and ConstructorNode
remove redundant call
---
.../java/org/codehaus/groovy/ast/ConstructorNode.java | 16 ++++------------
src/main/java/org/codehaus/groovy/ast/MethodNode.java | 2 --
2 files changed, 4 insertions(+), 14 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java b/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java
index 66fbed4..da9a87f 100644
--- a/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ConstructorNode.java
@@ -23,27 +23,19 @@ import org.codehaus.groovy.ast.expr.Expression;
import org.codehaus.groovy.ast.stmt.ExpressionStatement;
import org.codehaus.groovy.ast.stmt.Statement;
-
/**
* Represents a constructor declaration
*/
public class ConstructorNode extends MethodNode {
-
+
public ConstructorNode(int modifiers, Statement code) {
this(modifiers, Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, code);
}
-
+
public ConstructorNode(int modifiers, Parameter[] parameters, ClassNode[] exceptions, Statement code) {
- super("<init>",modifiers,ClassHelper.VOID_TYPE,parameters,exceptions,code);
-
- // This variable scope is thrown out and replaced with a different one during semantic analysis.
- VariableScope scope = new VariableScope();
- for (int i = 0; i < parameters.length; i++) {
- scope.putDeclaredVariable(parameters[i]);
- }
- this.setVariableScope(scope);
+ super("<init>", modifiers, ClassHelper.VOID_TYPE, parameters, exceptions, code);
}
-
+
public boolean firstStatementIsSpecialConstructorCall() {
Statement code = getFirstStatement();
if (!(code instanceof ExpressionStatement)) return false;
diff --git a/src/main/java/org/codehaus/groovy/ast/MethodNode.java b/src/main/java/org/codehaus/groovy/ast/MethodNode.java
index 7a42f87..fc1c05e 100644
--- a/src/main/java/org/codehaus/groovy/ast/MethodNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/MethodNode.java
@@ -55,8 +55,6 @@ public class MethodNode extends AnnotatedNode implements Opcodes {
this.modifiers = modifiers;
this.code = code;
setReturnType(returnType);
- VariableScope scope = new VariableScope();
- setVariableScope(scope);
setParameters(parameters);
this.hasDefault = false;
this.exceptions = exceptions;