}
private BlockBuilder<StatementEnd> foreach(final String loopVarName, final MetaClass loopVarType) {
final BlockStatement body = new BlockStatement();
appendCallElement(new DeferredCallElement(new DeferredCallback() {
@Override
public void doDeferred(CallWriter writer, Context context, Statement statement) {
GenUtil.assertIsIterable(statement);
Variable loopVar = createForEachLoopVar(statement, loopVarName, loopVarType);
String collection = writer.getCallString();