anchor.diff:  
     Duration get duration {
       if (_isDisabled) return Duration.zero;
  -    Duration total = _watch.elapsed;
  +    Duration total = _watch!.elapsed;
       for (GenericTask subtask in _subtasks.values) {
         total += subtask.duration;
       }
  
positive.code: 
    /// Helper method that starts measuring with this [CompilerTask], that is,
    /// make this task the currently measured task.
    CompilerTask _start() {
      if (_isDisabled) return null;
      CompilerTask previous = _measurer._currentTask;
      _measurer._currentTask = this;
      if (previous != null) previous._watch.stop();
      // Regardless of whether [previous] is `null` we've returned from the
      // eventloop.
      _measurer.stopAsyncWallClock();
      _watch.start();
      return previous;
    }
  
    /// Helper method that stops measuring with this [CompilerTask], that is,
    /// make [previous] the currently measured task.
    void _stop(CompilerTask previous) {
      if (_isDisabled) return;
      _watch.stop();
      if (previous != null) {
        previous._watch.start();
      } else {
        // If there's no previous task, we're about to return control to the
        // event loop. Start counting that as waiting asynchronous I/O.
  
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 {
  