anchor.diff:  // TODO(sigmund): rename to MeasurableTask
   abstract class CompilerTask {
     final Measurer _measurer;
  -  final Stopwatch _watch;
  +  final Stopwatch? _watch;
     final Map<String, GenericTask> _subtasks = {};
   
     int _asyncCount = 0;
   
     // Each task has a fixed, lazily computed, ZoneSpecification and zoneValues
     // for [_measureZoned].
  -  ZoneSpecification _zoneSpecification;
  -  Map _zoneValues;
  +  ZoneSpecification? _zoneSpecification;
  +  Map? _zoneValues;
   
     CompilerTask(this._measurer)
         : _watch = _measurer.enableTaskMeasurements ? Stopwatch() : null;
  
positive.code:   R _runBinary<R, T1, T2>(Zone self, ZoneDelegate parent, Zone zone,
        R f(T1 a1, T2 a2), T1 a1, T2 a2) {
      if (zone[_measurer] != this) return parent.runBinary(zone, f, a1, a2);
      CompilerTask previous = _start();
      try {
        return parent.runBinary(zone, f, a1, a2);
      } finally {
  
negative.code:   R _runUnary<R, T>(
        Zone self, ZoneDelegate parent, Zone zone, R f(T arg), T arg) {
      if (zone[_measurer] != this) return parent.runUnary(zone, f, arg);
      CompilerTask? previous = _start();
      try {
        return parent.runUnary(zone, f, arg);
      } finally {
  