anchor.diff:  import 'package:analyzer/src/generated/utilities_dart.dart';
   import 'package:analyzer/src/summary/base.dart';
   import 'package:analyzer/src/summary/idl.dart';
  +import 'package:analyzer/src/summary/package_bundle_reader.dart';
   
   /**
    * Collect the inferred types from all the summary files listed in [args] and
    * print them in alphabetical order.
    */
   main(List<String> args) {
  +  SummaryDataStore summaryDataStore = new SummaryDataStore(args);
     InferredTypeCollector collector = new InferredTypeCollector();
  -  for (String arg in args) {
  -    PackageBundle bundle =
  -        new PackageBundle.fromBuffer(new File(arg).readAsBytesSync());
  -    collector.visitPackageBundle(bundle, arg);
  -  }
  -  collector.dumpLibraryIndex();
  -  collector.dumpPartIndex();
  +  collector.visitSummaryDataStore(summaryDataStore);
     collector.dumpCollectedTypes();
   }
   
  
positive.code:   }
  
    /**
     * 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];
      }
      // 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) {
        Uri unitUri = Uri.parse(unitUriString);
        for (String relativePartUriString in unlinkedUnit.publicNamespace.parts) {
          partOfUris.add(
  
negative.code:   }
  
    /**
     * Interpret the given [param] as a parameter in a synthetic typedef, and
     * format it as a string.
     */
  