anchor.diff:      required int offset,
       required OperationPerformanceImpl performance,
     }) async {
  -    if (!_isAbsolutePath(path)) {
  -      return null;
  -    }
  -
  -    if (!_fsState.hasUri(path)) {
  -      return null;
  -    }
  -
  -    // Process pending changes.
  -    while (_fileTracker.verifyChangedFilesIfNeeded()) {}
  -
  -    var file = _fsState.getFileForPath(path);
  -
  -    var library = file.isPart ? file.library : file;
  -    if (library == null) {
  -      return null;
  -    }
  -
  -    await libraryContext.load(library);
  -    var unitElement = libraryContext.computeUnitElement(library, file)
  -        as CompilationUnitElementImpl;
  -
  -    var analysisResult = LibraryAnalyzer(
  -      analysisOptions as AnalysisOptionsImpl,
  -      declaredVariables,
  -      sourceFactory,
  -      libraryContext.elementFactory.libraryOfUri2(library.uriStr),
  -      libraryContext.elementFactory.analysisSession.inheritanceManager,
  -      library,
  -      testingData: testingData,
  -    ).analyzeForCompletion(
  -      file: file,
  +    final request = _ResolveForCompletionRequest(
  +      path: path,
         offset: offset,
  -      unitElement: unitElement,
         performance: performance,
       );
  -
  -    return ResolvedForCompletionResultImpl(
  -      analysisSession: currentSession,
  -      path: path,
  -      uri: file.uri,
  -      exists: file.exists,
  -      content: file.content,
  -      lineInfo: file.lineInfo,
  -      parsedUnit: analysisResult.parsedUnit,
  -      unitElement: unitElement,
  -      resolvedNodes: analysisResult.resolvedNodes,
  -    );
  +    _resolveForCompletionRequests.add(request);
  +    _scheduler.notify(this);
  +    return request.completer.future;
     }
   
     void _addDeclaredVariablesToSignature(ApiSignature buffer) {
  
positive.code:   generalChanged,
    changedFiles,
    priority,
    interactive
  }
  
  /// Instances of this class schedule work in multiple [AnalysisDriver]s so that
  
negative.code:     if (!_hasDartCoreDiscovered) {
        _hasDartCoreDiscovered = true;
        _discoverDartCore();
      }
  
      if (_resolveForCompletionRequests.isNotEmpty) {
        final request = _resolveForCompletionRequests.removeLast();
        try {
          final result = _resolveForCompletion(request);
          request.completer.complete(result);
        } catch (exception, stackTrace) {
          _reportException(request.path, exception, stackTrace);
          request.completer.completeError(exception, stackTrace);
          _clearLibraryContextAfterException();
        }
        return;
      }
  
      // Analyze a requested file.
  