anchor.diff:        return b.offset - a.offset;
       });
       return edits;
  -  }
  -
  -  Future<void> _withProgress(String message, FutureOr<void> callback()) async {
  -    var progress = logger.progress(message);
  -    try {
  -      await callback();
  -      progress.finish(showTiming: true);
  -    } finally {
  -      progress.cancel();
  -    }
     }
   
     static ArgParser createParser({bool hide = true}) {
  
positive.code:       error.errorCode == CompileTimeErrorCode.URI_DOES_NOT_EXIST;
  
    Future<void> _rerunFunction() async {
      _dartFixListener.reset();
      _fixCodeProcessor.prepareToRerun();
      await _fixCodeProcessor.runFirstPhase();
  
negative.code:     List<String> previewUrls;
      NonNullableFix nonNullableFix;
  
      logger.stdout(ansi.emphasized('Analyzing project...'));
      _fixCodeProcessor = _FixCodeProcessor(context, this);
      _dartFixListener = DartFixListener(
          DriverProviderImpl(resourceProvider, context), _exceptionReported);
      nonNullableFix = createNonNullableFix(
          _dartFixListener, resourceProvider, _fixCodeProcessor.getLineInfo,
          included: [options.directory],
          preferredPort: options.previewPort,
          summaryPath: options.summary);
      nonNullableFix.rerunFunction = _rerunFunction;
      _fixCodeProcessor.registerCodeTask(nonNullableFix);
      _fixCodeProcessor.nonNullableFixTask = nonNullableFix;
  
      try {
        await _fixCodeProcessor.runFirstPhase(singlePhaseProgress: true);
        _checkForErrors();
      } on ExperimentStatusException catch (e) {
        logger.stdout(e.toString());
        final sdkPathVar = _environmentVariables['SDK_PATH'];
        if (sdkPathVar != null) {
          logger.stdout('$sdkPathEnvironmentVariableSet: $sdkPathVar');
        }
        exitCode = 1;
      }
      if (exitCode != null) return;
  
      logger.stdout('');
      logger.stdout(ansi.emphasized('Generating migration suggestions...'));
      previewUrls = await _fixCodeProcessor.runLaterPhases(resetProgress: true);
  
      if (exitCode != null) return;
  
      if (options.applyChanges) {
  