public void doDeferred(CallWriter writer, Context context, Statement statement) {
GenUtil.assertIsIterable(statement);
final Variable loopVar = createForEachLoopVar(statement, loopVarName, loopVarType, context);
final String collection = writer.getCallString();
writer.reset();
writer.append(new ForeachLoop(loopVar, collection, body).generate(Context.create(context)));
}
}));
return createLoopBody(body);
}