if (!generated) {
appendCallElement(new DeferredCallElement(new DeferredCallback() {
@Override
public void doDeferred(final CallWriter writer, final Context context, final Statement statement) {
if (extendsBlock == null && (type.isAbstract() || type.isInterface() || type.isPrimitive()))
throw new InvalidTypeException("Cannot instantiate type:" + type, blame);
writer.reset();
final CallParameters callParameters = (parameters != null) ?
fromStatements(GenUtil.generateCallParameters(context, parameters)) : CallParameters.none();