public void cacheClosure(BaseBodyCompiler method, String closureMethod, int arity, StaticScope scope, boolean hasMultipleArgsHead, NodeType argsNodeId, ASTInspector inspector) {
String closureFieldName = scriptCompiler.getNewConstant(ci(BlockBody.class), "closure");
String closureMethodName = "getClosure_" + closureFieldName;
ClassVisitor cv = scriptCompiler.getClassVisitor();
{
SkinnyMethodAdapter closureGetter = new SkinnyMethodAdapter(
cv.visitMethod(Opcodes.ACC_PRIVATE | Opcodes.ACC_SYNTHETIC, closureMethodName,
sig(BlockBody.class, ThreadContext.class), null, null));
closureGetter.aload(0);
closureGetter.getfield(scriptCompiler.getClassname(), closureFieldName, ci(BlockBody.class));
closureGetter.dup();