anchor.diff:      super.shimSelectors(selector);
     }
   
  +  @override
     void visitTree(StyleSheet tree) {
       tree.visit(this);
       _unscopedSelectorGroups.clear();
     }
   
  +  @override
     void visitDeclarationGroup(DeclarationGroup node) {
  -    shimPolyfillNextSelector(node.declarations);
  +    _shimPolyfillNextSelector(node.declarations);
       super.visitDeclarationGroup(node);
     }
   
  +  @override
     void visitMediaDirective(MediaDirective node) {
  -    shimPolyfillNextSelector(node.rules);
  +    _shimPolyfillNextSelector(node.rules);
       super.visitMediaDirective(node);
     }
   
  +  @override
     void visitRuleSet(RuleSet node) {
  -    shimPolyfillUnscopedRule(node);
  +    _shimPolyfillUnscopedRule(node);
       super.visitRuleSet(node);
     }
   
  +  @override
     void visitSelectorGroup(SelectorGroup node) {
       if (!_unscopedSelectorGroups.contains(node)) {
         super.visitSelectorGroup(node);
       }
     }
   
  +  @override
     void visitStyleSheet(StyleSheet node) {
  -    shimPolyfillNextSelector(node.topLevels);
  +    _shimPolyfillNextSelector(node.topLevels);
       super.visitStyleSheet(node);
     }
   }
  
positive.code:         } else if (_isHost(selector)) {
            // Replace :host with host class.
            compoundSelector._sequences[j] =
                _createClassSelectorSequence(hostClass);
          }
        }
      }
    }
  
    void visitSelectorGroup(SelectorGroup node) {
      var complexSelectors = <_ComplexSelector>[];
      for (var selector in node.selectors) {
  
negative.code:     }
    }
  
    @override
    void shimDeepCombinators(_ComplexSelector selector, _Indices indices) {
      for (var i = selector.compoundSelectors.length - 1; i >= 0; i--) {
        var compoundSelector = selector.compoundSelectors[i];
  