anchor.diff:    /// Asset ID where this source can be found.
     final AssetId assetId;
   
  -  /// The resolver this is being used in.
  -  final AnalyzerResolver _resolver;
  -
     /// Cache of dependent asset IDs, to avoid re-parsing the AST.
     Iterable<AssetId> _dependentAssets;
   
  
positive.code:       visiting.add(buildStep.readAsString(assetId).then((contents) {
          var source = sources[assetId];
          if (source == null) {
            source = new AssetBasedSource(assetId, this);
            sources[assetId] = source;
          }
          source.updateDependencies(contents);
  
negative.code:   /// The file contents.
    String _contents;
  
    AssetBasedSource(this.assetId);
  
    /// Update the dependencies of this source. This parses [contents] but avoids
    /// any analyzer resolution.
  