anchor.diff:            new SsaConstantFolder(constantSystem, backend, work, types),
             new SsaTypeConversionInserter(compiler),
             new SsaTypePropagator(compiler, types),
  -          new SsaCheckInserter(backend, types, context.boundsChecked),
  +          new SsaCheckInserter(backend, work, types, context.boundsChecked),
             new SsaConstantFolder(constantSystem, backend, work, types),
             new SsaRedundantPhiEliminator(),
             new SsaDeadPhiEliminator(),
  
positive.code:       // Also run the type propagator, to please the codegen in case
        // no other optimization is run.
        runPhases(graph, <OptimizationPhase>[
            new SsaCheckInserter(backend, types, context.boundsChecked),
            new SsaTypePropagator(compiler, types)]);
      });
    }
  
negative.code:           // Then run the [SsaCheckInserter] because the type propagator also
            // propagated types non-speculatively. For example, it might have
            // propagated the type array for a call to the List constructor.
            new SsaCheckInserter(backend, work, types, context.boundsChecked)];
        runPhases(graph, phases);
        return !work.guards.isEmpty;
      });
  