minor edits
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 0888a3b..1f84b60 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -26,7 +26,6 @@
import org.codehaus.groovy.ast.AnnotationNode;
import org.codehaus.groovy.ast.ClassHelper;
import org.codehaus.groovy.ast.ClassNode;
-import org.codehaus.groovy.ast.CompileUnit;
import org.codehaus.groovy.ast.ConstructorNode;
import org.codehaus.groovy.ast.FieldNode;
import org.codehaus.groovy.ast.InnerClassNode;
@@ -122,6 +121,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Optional;
import static org.apache.groovy.util.BeanUtils.capitalize;
@@ -380,7 +380,8 @@
}
// add parameter names to the MethodVisitor (jdk8+ only)
- if (getCompileUnit().getConfig().getParameters()) {
+ if (Optional.ofNullable(controller.getClassNode().getCompileUnit())
+ .orElseGet(context::getCompileUnit).getConfig().getParameters()) {
for (Parameter parameter : parameters) {
// TODO: handle ACC_SYNTHETIC for enum method parameters?
mv.visitParameter(parameter.getName(), 0);
@@ -432,7 +433,7 @@
final ClassNode superClass = controller.getClassNode().getSuperClass();
if (isConstructor && (code == null || !((ConstructorNode) node).firstStatementIsSpecialConstructorCall())) {
boolean hasCallToSuper = false;
- if (code!=null && controller.getClassNode() instanceof InnerClassNode) {
+ if (code != null && controller.getClassNode() instanceof InnerClassNode) {
// if the class not is an inner class node, there are chances that the call to super is already added
// so we must ensure not to add it twice (see GROOVY-4471)
if (code instanceof BlockStatement) {
@@ -464,8 +465,7 @@
if (node.isVoidMethod()) {
mv.visitInsn(RETURN);
} else {
- // we make a dummy return for label ranges that reach here
- ClassNode type = node.getReturnType().redirect();
+ ClassNode type = node.getReturnType();
if (ClassHelper.isPrimitiveType(type)) {
mv.visitLdcInsn(0);
controller.getOperandStack().push(ClassHelper.int_TYPE);
@@ -1058,7 +1058,7 @@
}
PropertyExpression staticOuterField = new PropertyExpression(new ClassExpression(outer), expression.getProperty());
staticOuterField.getObjectExpression().setSourcePosition(objectExpression);
- staticOuterField.visit(controller.getAcg());
+ staticOuterField.visit(this);
return;
}
outer = outer.getSuperClass();
@@ -2137,14 +2137,6 @@
return (params.length > 0 && params[params.length - 1].getType().isArray());
}
- private CompileUnit getCompileUnit() {
- CompileUnit answer = controller.getClassNode().getCompileUnit();
- if (answer == null) {
- answer = context.getCompileUnit();
- }
- return answer;
- }
-
public boolean addInnerClass(final ClassNode innerClass) {
ModuleNode mn = controller.getClassNode().getModule();
innerClass.setModule(mn);