anchor.diff:  
     /// Add the data from the given relevance [data] to this set of data.
     void addDataFrom(RelevanceData data) {
  +    _addToMap(byDistance, data.byDistance);
       _addToMap(byElementKind, data.byElementKind);
  +    _addToMap(byNodeClass, data.byNodeClass);
  +    _addToMap(byTokenType, data.byTokenType);
  +    _addToMap(byTypeMatch, data.byTypeMatch);
     }
   
     /// Record that a reference to an element was found and that the distance
  
positive.code:   @override
    void visitSwitchDefault(SwitchDefault node) {
      for (var statement in node.statements) {
        _recordElementKindAndTokenType('SwitchDefault (statement)', statement);
      }
      super.visitSwitchDefault(node);
    }
  
    @override
    void visitSwitchStatement(SwitchStatement node) {
      _recordElementKindAndTokenType(
          'SwitchStatement (expression)', node.expression);
      super.visitSwitchStatement(node);
    }
  
  
negative.code:   }
  
    /// Record the element kind of the element associated with the left-most
    /// identifier that is a child of the [node] in the given [context].
    void _recordElementKind(String context, AstNode node) {
      if (node != null) {
        var kind = _leftMostKind(node);
  