anchor.diff:    }
   
     /**
  -   * Collect all the inferred types contained in [bundle].
  -   */
  -  void visitPackageBundle(PackageBundle bundle, String summaryPath) {
  -    Map<String, LinkedLibrary> linkedLibraries = <String, LinkedLibrary>{};
  -    Map<String, UnlinkedUnit> unlinkedUnits = <String, UnlinkedUnit>{};
  -    for (int i = 0; i < bundle.linkedLibraryUris.length; i++) {
  -      linkedLibraries[bundle.linkedLibraryUris[i]] = bundle.linkedLibraries[i];
  -    }
  -    for (int i = 0; i < bundle.unlinkedUnitUris.length; i++) {
  -      String unitUriString = bundle.unlinkedUnitUris[i];
  -      partIndex
  -          .putIfAbsent(unitUriString, () => new Set<String>())
  -          .add(summaryPath);
  -      unlinkedUnits[unitUriString] = bundle.unlinkedUnits[i];
  -    }
  +   * Collect all the inferred types contained in [summaryDataStore].
  +   */
  +  void visitSummaryDataStore(SummaryDataStore summaryDataStore) {
       // Figure out which unlinked units are a part of another library so we won't
       // visit them redundantly.
       Set<String> partOfUris = new Set<String>();
  -    unlinkedUnits.forEach((String unitUriString, UnlinkedUnit unlinkedUnit) {
  +    summaryDataStore.unlinkedMap
  +        .forEach((String unitUriString, UnlinkedUnit unlinkedUnit) {
         Uri unitUri = Uri.parse(unitUriString);
         for (String relativePartUriString in unlinkedUnit.publicNamespace.parts) {
           partOfUris.add(
  
positive.code:               Uri.parse(definingUnlinkedUnit.publicNamespace.parts[i]);
            String unitUriString =
                resolveRelativeUri(libraryUri, relativePartUri).toString();
            UnlinkedUnit unlinkedUnit = unlinkedUnits[unitUriString];
            if (unlinkedUnit != null) {
              visitUnit(
                  unlinkedUnit, linkedLibrary.units[i + 1], libraryUriString);
  
negative.code:   }
  
    /**
     * Interpret the given [param] as a parameter in a synthetic typedef, and
     * format it as a string.
     */
  