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 2020/06/25 19:03:44 UTC
[groovy] branch GROOVY_3_0_X updated: moved "super" handling into
type chooser and removed redundant branch
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
new c25dfcc moved "super" handling into type chooser and removed redundant branch
c25dfcc is described below
commit c25dfccd8ead92359bc32749ce5ea9109b99ae71
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Thu Jun 25 13:24:51 2020 -0500
moved "super" handling into type chooser and removed redundant branch
(cherry picked from commit 2e3ea2ed8b4e1015c61f9d8d27774c38f74f330c)
---
src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java | 2 +-
.../org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java | 7 ++-----
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 0af38c0..eb181d8 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -1045,7 +1045,7 @@ public class AsmClassGenerator extends ClassGenerator {
if (isThisExpression(objectExpression)) return true;
if (objectExpression instanceof ClassExpression) return false;
- ClassNode objectExpressionType = isSuperExpression(objectExpression) ? controller.getClassNode().getSuperClass() : controller.getTypeChooser().resolveType(objectExpression, controller.getClassNode());
+ ClassNode objectExpressionType = controller.getTypeChooser().resolveType(objectExpression, controller.getClassNode());
if (objectExpressionType.equals(ClassHelper.OBJECT_TYPE)) objectExpressionType = objectExpression.getType();
return objectExpressionType.isDerivedFromGroovyObject();
}
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java b/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java
index 819dd17..f140d32 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/StatementMetaTypeChooser.java
@@ -20,7 +20,6 @@ package org.codehaus.groovy.classgen.asm;
import org.codehaus.groovy.ast.ClassHelper;
import org.codehaus.groovy.ast.ClassNode;
-import org.codehaus.groovy.ast.FieldNode;
import org.codehaus.groovy.ast.GenericsType;
import org.codehaus.groovy.ast.Variable;
import org.codehaus.groovy.ast.expr.ClassExpression;
@@ -48,10 +47,8 @@ public class StatementMetaTypeChooser implements TypeChooser {
if (exp instanceof VariableExpression) {
VariableExpression ve = (VariableExpression) exp;
if (ve.isClosureSharedVariable()) return ve.getType();
- if (ve.getAccessedVariable() instanceof FieldNode) {
- FieldNode fn = (FieldNode) ve.getAccessedVariable();
- if (!fn.getDeclaringClass().equals(current)) return fn.getOriginType();
- }
+ if (ve.isSuperExpression()) return current.getSuperClass();
+
type = ve.getOriginType();
} else if (exp instanceof Variable) {
Variable v = (Variable) exp;