anchor.diff:        _content = driver._contentCache.getContents(source);
         _content ??= source.contents.data;
       } catch (_) {
  +      // TODO(scheglov) Fix the bug with not existing sources.
  +      // We should not put "self URI" into cached _ReferencedUris.
  +      // Otherwise such not-existing/empty sources all have the same hash,
  +      // but their "self URIs" must be all different.
         _content = '';
       }
       // Compute the content hash.
  
positive.code:   }
  }
  
  class _LibraryNode {
    final AnalysisDriver driver;
    final Map<String, _LibraryNode> nodes;
  
negative.code:   @override
    String toString() => uri.toString();
  }
  
  /**
   * TODO(scheglov) document
   */
  class _ReferencedUris {
    bool isLibrary = true;
    final List<String> imported = <String>[];
    final List<String> exported = <String>[];
    final List<String> parted = <String>[];
  }
  