anchor.diff:          !clientSupportedCodeActionKinds.contains(CodeActionKind.QuickFix)) {
         return const [];
       }
  -    // Keep trying until we run without getting an `InconsistentAnalysisException`.
  -    while (true) {
  -      final lineInfo = unit.lineInfo;
  -      final codeActions = <Either2<Command, CodeAction>>[];
  -      final fixContributor = new DartFixContributor();
  -      try {
  -        for (final error in unit.errors) {
  -          // Server lineNumber is one-based so subtract one.
  -          int errorLine = lineInfo.getLocation(error.offset).lineNumber - 1;
  -          if (errorLine >= range.start.line && errorLine <= range.end.line) {
  -            var context = new DartFixContextImpl(unit, error);
  -            final fixes = await fixContributor.computeFixes(context);
  -            if (fixes.isNotEmpty) {
  -              fixes.sort(Fix.SORT_BY_RELEVANCE);
  -
  -              final diagnostic = toDiagnostic(lineInfo, error);
  -              codeActions.addAll(
  -                fixes.map((fix) => _createFixAction(fix, diagnostic)),
  -              );
  -            }
  +
  +    final lineInfo = unit.lineInfo;
  +    final codeActions = <Either2<Command, CodeAction>>[];
  +    final fixContributor = new DartFixContributor();
  +
  +    try {
  +      for (final error in unit.errors) {
  +        // Server lineNumber is one-based so subtract one.
  +        int errorLine = lineInfo.getLocation(error.offset).lineNumber - 1;
  +        if (errorLine >= range.start.line && errorLine <= range.end.line) {
  +          var context = new DartFixContextImpl(unit, error);
  +          final fixes = await fixContributor.computeFixes(context);
  +          if (fixes.isNotEmpty) {
  +            fixes.sort(Fix.SORT_BY_RELEVANCE);
  +
  +            final diagnostic = toDiagnostic(lineInfo, error);
  +            codeActions.addAll(
  +              fixes.map((fix) => _createFixAction(fix, diagnostic)),
  +            );
             }
           }
  -
  -        return codeActions;
  -      } on InconsistentAnalysisException {
  -        // Loop around to try again to compute the fixes.
         }
  +      return codeActions;
  +    } on InconsistentAnalysisException {
  +      // If an InconsistentAnalysisException occurs, it's likely the user modified
  +      // the source and therefore is no longer interested in the results, so
  +      // just return an empty set.
  +      return [];
       }
     }
   
  
positive.code:       return const [];
      }
  
      // TODO(dantup): Implement refactors.
      return [];
    }
  
    /// Gets "Source" CodeActions, which are actions that apply to whole files of
  
negative.code:       assists.sort(Assist.SORT_BY_RELEVANCE);
  
        return assists.map(_createAssistAction).toList();
      } on InconsistentAnalysisException {
        // If an InconsistentAnalysisException occurs, it's likely the user modified
        // the source and therefore is no longer interested in the results, so
        // just return an empty set.
        return [];
      }
    }
  