protected Expression anonymousInnerClassDef(AST node) { ClassNode oldNode = classNode; ClassNode outerClass = getClassOrScript(oldNode); String fullName = outerClass.getName() + '$' + innerClassCounter; innerClassCounter++; if (enumConstantBeingDef) { classNode = new EnumConstantClassNode(outerClass, fullName, Opcodes.ACC_PUBLIC, ClassHelper.OBJECT_TYPE); } else { classNode = new InnerClassNode(outerClass, fullName, Opcodes.ACC_PUBLIC, ClassHelper.OBJECT_TYPE); } ((InnerClassNode) classNode).setAnonymous(true); classNode.setEnclosingMethod(methodNode); assertNodeType(OBJBLOCK, node); objectBlock(node); output.addClass(classNode); AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier(); ret.innerClass = classNode; classNode = oldNode; return ret; }
ClassNode type = argument.getType(); if (type instanceof InnerClassNode && ((InnerClassNode) type).isAnonymous()) { type.setEnclosingMethod(newMethod);
protected Expression anonymousInnerClassDef(AST node) { ClassNode oldNode = classNode; ClassNode outerClass = getClassOrScript(oldNode); String fullName = outerClass.getName() + '$' + innerClassCounter; innerClassCounter++; if (enumConstantBeingDef) { classNode = new EnumConstantClassNode(outerClass, fullName, Opcodes.ACC_PUBLIC, ClassHelper.OBJECT_TYPE); } else { classNode = new InnerClassNode(outerClass, fullName, Opcodes.ACC_PUBLIC, ClassHelper.OBJECT_TYPE); } ((InnerClassNode) classNode).setAnonymous(true); classNode.setEnclosingMethod(methodNode); assertNodeType(OBJBLOCK, node); objectBlock(node); output.addClass(classNode); AnonymousInnerClassCarrier ret = new AnonymousInnerClassCarrier(); ret.innerClass = classNode; classNode = oldNode; return ret; }
ClassNode type = argument.getType(); if (type instanceof InnerClassNode && ((InnerClassNode) type).isAnonymous()) { type.setEnclosingMethod(newMethod);