anchor.diff:      );
     }
   
  +  Future<ResolvedForCompletionResultImpl?> _resolveForCompletion(
  +    _ResolveForCompletionRequest request,
  +  ) async {
  +    final path = request.path;
  +    if (!_isAbsolutePath(path)) {
  +      return null;
  +    }
  +
  +    if (!_fsState.hasUri(path)) {
  +      return null;
  +    }
  +
  +    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,
  +      offset: request.offset,
  +      unitElement: unitElement,
  +      performance: request.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,
  +    );
  +  }
  +
     /// Serialize the given [resolvedUnit] errors and index into bytes.
     Uint8List _serializeResolvedUnit(
         CompilationUnit resolvedUnit, List<AnalysisError> errors) {
  
positive.code:     return true;
    }
  }
  
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.
  