anchor.diff:        return bundle;
       }
   
  -    for (var path in options.buildSummaryInputs) {
  -      var bundle = addBundle(path);
  -      if (bundle.linkedLibraryUris.isEmpty &&
  -          bundle.unlinkedUnitUris.isNotEmpty) {
  -        throw new ArgumentError(
  -            'Got an unlinked summary for --build-summary-input at `$path`. '
  -            'Unlinked summaries should be provided with the '
  -            '--build-summary-unlinked-input argument.');
  -      }
  -    }
  -
  -    for (var path in options.buildSummaryUnlinkedInputs) {
  -      var bundle = addBundle(path);
  -      unlinkedBundles.add(bundle);
  -      if (bundle.linkedLibraryUris.isNotEmpty) {
  -        throw new ArgumentError(
  -            'Got a linked summary for --build-summary-input-unlinked at `$path`'
  -            '. Linked bundles should be provided with the '
  -            '--build-summary-input argument.');
  -      }
  -    }
  +    int numInputs = options.buildSummaryInputs.length +
  +        options.buildSummaryUnlinkedInputs.length;
  +    logger.run('Add $numInputs input summaries', () {
  +      for (var path in options.buildSummaryInputs) {
  +        var bundle = addBundle(path);
  +        if (bundle.linkedLibraryUris.isEmpty &&
  +            bundle.unlinkedUnitUris.isNotEmpty) {
  +          throw new ArgumentError(
  +              'Got an unlinked summary for --build-summary-input at `$path`. '
  +              'Unlinked summaries should be provided with the '
  +              '--build-summary-unlinked-input argument.');
  +        }
  +      }
  +
  +      for (var path in options.buildSummaryUnlinkedInputs) {
  +        var bundle = addBundle(path);
  +        unlinkedBundles.add(bundle);
  +        if (bundle.linkedLibraryUris.isNotEmpty) {
  +          throw new ArgumentError(
  +              'Got a linked summary for --build-summary-input-unlinked at `$path`'
  +              '. Linked bundles should be provided with the '
  +              '--build-summary-input argument.');
  +        }
  +      }
  +    });
   
       DartSdk sdk;
  -    PackageBundle sdkBundle;
  -    if (options.dartSdkSummaryPath != null) {
  -      SummaryBasedDartSdk summarySdk = new SummaryBasedDartSdk(
  -          options.dartSdkSummaryPath, options.strongMode);
  -      sdk = summarySdk;
  -      sdkBundle = summarySdk.bundle;
  -    } else {
  -      FolderBasedDartSdk dartSdk = new FolderBasedDartSdk(resourceProvider,
  -          resourceProvider.getFolder(options.dartSdkPath), options.strongMode);
  -      dartSdk.analysisOptions =
  -          Driver.createAnalysisOptionsForCommandLineOptions(
  -              resourceProvider, options);
  -      dartSdk.useSummary = !options.buildSummaryOnly;
  -      sdk = dartSdk;
  -      sdkBundle = dartSdk.getSummarySdkBundle(options.strongMode);
  -    }
  -
  -    // Include SDK bundle to avoid parsing SDK sources.
  -    summaryDataStore.addBundle(null, sdkBundle);
  +    logger.run('Add SDK bundle', () {
  +      PackageBundle sdkBundle;
  +      if (options.dartSdkSummaryPath != null) {
  +        SummaryBasedDartSdk summarySdk = new SummaryBasedDartSdk(
  +            options.dartSdkSummaryPath, options.strongMode);
  +        sdk = summarySdk;
  +        sdkBundle = summarySdk.bundle;
  +      } else {
  +        FolderBasedDartSdk dartSdk = new FolderBasedDartSdk(
  +            resourceProvider,
  +            resourceProvider.getFolder(options.dartSdkPath),
  +            options.strongMode);
  +        dartSdk.analysisOptions =
  +            Driver.createAnalysisOptionsForCommandLineOptions(
  +                resourceProvider, options);
  +        dartSdk.useSummary = !options.buildSummaryOnly;
  +        sdk = dartSdk;
  +        sdkBundle = dartSdk.getSummarySdkBundle(options.strongMode);
  +      }
  +
  +      // Include SDK bundle to avoid parsing SDK sources.
  +      summaryDataStore.addBundle(null, sdkBundle);
  +    });
   
       var sourceFactory = new SourceFactory(<UriResolver>[
         new DartUriResolver(sdk),
  
positive.code: 
    SummaryDataStore summaryDataStore;
    AnalysisOptions analysisOptions;
    AnalysisDriver analysisDriver;
    Map<Uri, File> uriToFileMap;
    final List<Source> explicitSources = <Source>[];
    final List<PackageBundle> unlinkedBundles = <PackageBundle>[];
  
    PackageBundleAssembler assembler;
    final Set<Source> processedSources = new Set<Source>();
    final Map<String, UnlinkedUnit> uriToUnit = <String, UnlinkedUnit>{};
  
negative.code:    * add them to  the [assembler].
     */
    void _computeLinkedLibraries(Set<String> libraryUris) {
      logger.run('Link output summary', () {
        LinkedLibrary getDependency(String absoluteUri) =>
            summaryDataStore.linkedMap[absoluteUri];
  
        UnlinkedUnit getUnit(String absoluteUri) =>
            summaryDataStore.unlinkedMap[absoluteUri] ?? uriToUnit[absoluteUri];
  
        Map<String, LinkedLibraryBuilder> linkResult = link(
            libraryUris,
            getDependency,
            getUnit,
            analysisDriver.declaredVariables.get,
            options.strongMode);
        linkResult.forEach(assembler.addLinkedLibrary);
      });
    }
  
    Future<ErrorSeverity> _computeMaxSeverity() async {
  