anchor.diff:    @override
     bool operator ==(Object other) {
       return other is FileState && other.uri == uri;
  -  }
  -
  -  /// Collect all files that are transitively referenced by this file via
  -  /// imports, exports, and parts.
  -  void collectAllReferencedFiles(Set<String> referencedFiles) {
  -    for (final file in directReferencedFiles) {
  -      if (referencedFiles.add(file.path)) {
  -        file.collectAllReferencedFiles(referencedFiles);
  -      }
  -    }
     }
   
     /// Return a new parsed unresolved [CompilationUnit].
  
positive.code:   }
  
    @override
    void discoverReferencedFiles() {
      super.discoverReferencedFiles();
      parts;
  
negative.code:   }
  
    /// Computes the set of [FileState]'s used/not used to analyze the given
    /// [paths]. Removes the [FileState]'s of the files not used for analysis from
    /// the cache. Returns the set of unused [FileState]'s.
    Set<FileState> removeUnusedFiles(List<String> paths) {
      final referenced = <FileState>{};
      for (final path in paths) {
        final library = _pathToFile[path]?.kind.library;
        library?.collectTransitive(referenced);
      }
  
      final removed = <FileState>{};
      for (final file in _pathToFile.values.toList()) {
        if (!referenced.contains(file)) {
          changeFile(file.path, removed);
        }
      }
  
      return removed;
    }
  
    /// Clear all [FileState] data - all maps from path or URI, etc.
  