anchor.diff:      required OperationPerformanceImpl performance,
     }) {
       var file = _pathToFile[path];
  -    if (file == null) {
  -      var fileUri = _resourceProvider.pathContext.toUri(path);
  -      var uri = _sourceFactory.restoreUri(
  -        _FakeSource(path, fileUri),
  -      );
  -      if (uri == null) {
  -        throw StateError('Unable to convert path to URI: $path');
  -      }
  -
  -      var source = _sourceFactory.forUri2(uri);
  -      if (source == null) {
  -        throw StateError('Unable to resolve URI: $uri, path: $path');
  -      }
  -
  -      var workspacePackage = _workspace.findPackageFor(path);
  -      var featureSet = contextFeatureSet(path, uri, workspacePackage);
  -      var packageLanguageVersion =
  -          contextLanguageVersion(path, uri, workspacePackage);
  -
  -      var location = _FileStateLocation._(this, path, uri, source,
  -          workspacePackage, featureSet, packageLanguageVersion);
  -      file = FileState._(
  -        _FileStateUnlinked(
  -          location: location,
  -          partOfLibrary: null,
  -          performance: performance,
  -        ),
  -      );
  -      _pathToFile[path] = file;
  -      _uriToFile[uri] = file;
  -
  -      // Recurse with recording performance.
  -      file.files(performance: performance);
  -    }
  -    return file;
  +    if (file != null) {
  +      return file;
  +    }
  +
  +    var fileUri = _resourceProvider.pathContext.toUri(path);
  +    var uri = _sourceFactory.restoreUri(
  +      _FakeSource(path, fileUri),
  +    );
  +    if (uri == null) {
  +      throw StateError('Unable to convert path to URI: $path');
  +    }
  +
  +    var source = _sourceFactory.forUri2(uri);
  +    if (source == null) {
  +      throw StateError('Unable to resolve URI: $uri, path: $path');
  +    }
  +
  +    return _newFile(
  +      source: source,
  +      performance: performance,
  +    );
     }
   
     FileState? getFileForUri({
  
positive.code:     }
  
      return removedFiles;
    }
  }
  
  
negative.code:     required OperationPerformanceImpl performance,
    }) {
      var file = _uriToFile[uri];
      if (file != null) {
        return file;
      }
  
      var source = _sourceFactory.forUri2(uri);
      if (source == null) {
        return null;
      }
  
      return _newFile(
        source: source,
        performance: performance,
      );
    }
  
    /// Returns a list of files whose contents contains the given string.
  