anchor.diff:    }
   
     /**
  +   * Return the [Source] for the given [path] in [_sourceFactory].
  +   */
  +  Source _sourceForPath(String path) {
  +    Source fileSource = _resourceProvider.getFile(path).createSource();
  +    Uri uri = _sourceFactory.restoreUri(fileSource);
  +    return _resourceProvider.getFile(path).createSource(uri);
  +  }
  +
  +  /**
      * Verify the API signature for the file with the given [path], and decide
      * which linked libraries should be invalidated, and files reanalyzed.
      *
  
positive.code:    */
    final CompilationUnit unit;
  
    factory _File.forLinking(AnalysisDriver driver, Source source) {
      // If we have enough cached information, use it.
      String contentHash = driver._fileContentHashMap[source.fullName];
      if (contentHash != null) {
        String key = '$contentHash.unlinked';
        List<int> bytes = driver._byteStore.get(key);
        if (bytes != null) {
          PackageBundle unlinked = new PackageBundle.fromBuffer(bytes);
          return new _File._(driver, source, null, contentHash, unlinked, null);
        }
      }
      // Otherwise, read the source, parse and build a new unlinked bundle.
      return new _File.forResolution(driver, source);
    }
  
    factory _File.forResolution(AnalysisDriver driver, Source source) {
      String path = source.fullName;
      // Read the content.
      String content;
  
negative.code:           bool analyzed = false;
            for (String path in _priorityFiles) {
              if (_filesToAnalyze.remove(path)) {
                AnalysisResult result =
                    _computeAnalysisResult(path, withUnit: true);
                yield result;
                break;
              }
  