anchor.diff:    }
   
     /**
  +   * Ensure that the [UnlinkedUnit] for [absoluteUri] is available.
  +   *
  +   * If the unit is in the input [summaryDataStore], do nothing.
  +   *
  +   * Otherwise compute it and store into the [uriToUnit] and [assembler].
  +   */
  +  void _prepareUnlinkedUnit(String absoluteUri) {
  +    // Maybe an input package contains the source.
  +    if (summaryDataStore.unlinkedMap[absoluteUri] != null) {
  +      return;
  +    }
  +    // Parse the source and serialize its AST.
  +    Uri uri = Uri.parse(absoluteUri);
  +    Source source = context.sourceFactory.forUri2(uri);
  +    if (!source.exists()) {
  +      // TODO(paulberry): we should report a warning/error because DDC
  +      // compilations are unlikely to work.
  +      return;
  +    }
  +    CompilationUnit unit = context.computeResult(source, PARSED_UNIT);
  +    UnlinkedUnitBuilder unlinkedUnit = serializeAstUnlinked(unit);
  +    uriToUnit[absoluteUri] = unlinkedUnit;
  +    assembler.addUnlinkedUnit(source, unlinkedUnit);
  +  }
  +
  +  /**
      * Print errors for all explicit sources.  If [outputPath] is supplied, output
      * is sent to a new file at that path.
      */
  
positive.code:       _printErrors(outputPath: options.buildAnalysisOutput);
        return _computeMaxSeverity();
      }
    }
  
    ErrorSeverity _computeMaxSeverity() {
  
negative.code: 
    PackageBundleAssembler assembler;
    final Set<Source> processedSources = new Set<Source>();
    final Map<String, UnlinkedUnit> uriToUnit = <String, UnlinkedUnit>{};
  
    BuildMode(this.resourceProvider, this.options, this.stats);
  
  