Repository: groovy Updated Branches: refs/heads/master 2f96bcb71 -> 4869ffa73
Minor refactoring Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/4869ffa7 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/4869ffa7 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/4869ffa7 Branch: refs/heads/master Commit: 4869ffa7328ace4600ccaaeb81a2cbc299bdc904 Parents: 2f96bcb Author: sunlan <sun...@apache.org> Authored: Fri Aug 18 11:31:18 2017 +0800 Committer: sunlan <sun...@apache.org> Committed: Fri Aug 18 11:31:30 2017 +0800 ---------------------------------------------------------------------- src/main/org/codehaus/groovy/ast/ClassNode.java | 10 +++++++++- .../java/org/apache/groovy/parser/antlr4/AstBuilder.java | 10 +--------- 2 files changed, 10 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/4869ffa7/src/main/org/codehaus/groovy/ast/ClassNode.java ---------------------------------------------------------------------- diff --git a/src/main/org/codehaus/groovy/ast/ClassNode.java b/src/main/org/codehaus/groovy/ast/ClassNode.java index 702a0a8..283e86f 100644 --- a/src/main/org/codehaus/groovy/ast/ClassNode.java +++ b/src/main/org/codehaus/groovy/ast/ClassNode.java @@ -19,7 +19,10 @@ package org.codehaus.groovy.ast; import org.codehaus.groovy.GroovyBugError; -import org.codehaus.groovy.ast.expr.*; +import org.codehaus.groovy.ast.expr.BinaryExpression; +import org.codehaus.groovy.ast.expr.Expression; +import org.codehaus.groovy.ast.expr.FieldExpression; +import org.codehaus.groovy.ast.expr.TupleExpression; import org.codehaus.groovy.ast.stmt.BlockStatement; import org.codehaus.groovy.ast.stmt.ExpressionStatement; import org.codehaus.groovy.ast.stmt.Statement; @@ -389,6 +392,11 @@ public class ClassNode extends AnnotatedNode implements Opcodes { return redirect().mixins; } + + public void setMixins(MixinNode[] mixins) { + redirect().mixins = mixins; + } + /** * @return the list of methods associated with this ClassNode */ http://git-wip-us.apache.org/repos/asf/groovy/blob/4869ffa7/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java ---------------------------------------------------------------------- diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java index b596511..05d123f 100644 --- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java +++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java @@ -122,7 +122,6 @@ import org.objectweb.asm.Opcodes; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; -import java.lang.reflect.Field; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; @@ -4121,14 +4120,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov // the mixins of interface and annotation should be null private void hackMixins(ClassNode classNode) { - try { - // FIXME Hack with visibility. - Field field = ClassNode.class.getDeclaredField("mixins"); - field.setAccessible(true); - field.set(classNode, null); - } catch (IllegalAccessException | NoSuchFieldException e) { - throw new GroovyBugError("Failed to access mixins field", e); - } + classNode.setMixins(null); } private static final Map<ClassNode, Object> TYPE_DEFAULT_VALUE_MAP = Maps.of(