anchor.diff:  // Copyright 2018 Google Inc. Use of this source code is governed by an
   // MIT-style license that can be found in the LICENSE file or at
   // https://opensource.org/licenses/MIT.
  +
  +import 'dart:collection';
   
   import 'ast/sass.dart';
   import 'import_cache.dart';
  
positive.code:   /// The canonical URL of [stylesheet].
    final Uri canonicalUrl;
  
    /// The stylesheets that [stylesheet] imports.
    final List<_StylesheetNode> upstream;
  
    /// The stylesheets that import [stylesheet].
    ///
  
negative.code:       var stylesheet = importCache.importCanonical(importer, canonicalUrl, url);
        if (stylesheet == null) return null;
  
        return new _StylesheetNode(stylesheet, importer, canonicalUrl,
            _upstreamNodes(stylesheet, importer, canonicalUrl));
      });
    }
  
    /// Returns a map from non-canonicalized imported URLs in [stylesheet], which
    /// appears within [baseUrl] imported by [baseImporter].
    Map<Uri, _StylesheetNode> _upstreamNodes(
        Stylesheet stylesheet, Importer baseImporter, Uri baseUrl) {
      var active = new Set<Uri>.from([baseUrl]);
      var upstream = <Uri, _StylesheetNode>{};
      for (var import in findImports(stylesheet)) {
        var url = Uri.parse(import.url);
        upstream[url] = _nodeFor(url, baseImporter, baseUrl, active);
      }
      return upstream;
    }
  
    /// Returns the [StylesheetNode] for the stylesheet at the given [url], which
  