anchor.diff:        add(new ir.SetField(environment.lookup(location.box),
                             location.field,
                             initialValue));
  -    } else if (isInMutableVariable(variableElement)) {
  -      add(new ir.LetMutable(getMutableVariable(variableElement),
  -                            initialValue));
       } else {
         initialValue.useElementAsHint(variableElement);
         environment.extend(variableElement, initialValue);
  
positive.code: /// Captured variables are translated to ref cells (see [MutableVariable])
  /// using [GetMutableVariable] and [SetMutableVariable].
  class DartIrBuilder extends IrBuilder {
    final DartIrBuilderSharedState dartState = new DartIrBuilderSharedState();
  
    IrBuilder _makeInstance() => new DartIrBuilder._blank(dartState);
    DartIrBuilder._blank(this.dartState);
  
    DartIrBuilder(ConstantSystem constantSystem,
                  ExecutableElement currentElement,
                  Set<Local> capturedVariables) {
      _init(constantSystem, currentElement);
      capturedVariables.forEach(makeMutableVariable);
    }
  
    @override
    bool isInMutableVariable(Local local) {
      return mutableVariables.containsKey(local) &&
             !dartState.registerizedMutableVariables.contains(local);
    }
  
    void _enterScope(ClosureScope scope) {
  
negative.code: 
    final List<ir.Parameter> _parameters = <ir.Parameter>[];
  
    IrBuilderDelimitedState state;
  
    /// A map from variable indexes to their values.
    ///
    /// [BoxLocal]s map to their box. [LocalElement]s that are boxed are not
    /// in the map; look up their [BoxLocal] instead.
    Environment environment;
  
    // The IR builder maintains a context, which is an expression with a hole in
    // it.  The hole represents the focus where new expressions can be added.
  