anchor.diff:  
     @override
     void visitArgumentList(ArgumentList node) {
  +    String context = _argumentListContext(node);
       for (var argument in node.arguments) {
         if (argument is NamedExpression) {
  -        _recordDataForNode('ArgumentList (named)', argument.expression,
  +        _recordDataForNode('ArgumentList (all, named)', argument.expression,
  +            allowedKeywords: expressionKeywords);
  +        _recordDataForNode(
  +            'ArgumentList ($context, named)', argument.expression,
               allowedKeywords: expressionKeywords);
           _recordTypeMatch(argument.expression);
         } else {
  -        _recordDataForNode('ArgumentList (unnamed)', argument,
  +        _recordDataForNode('ArgumentList (all, unnamed)', argument,
  +            allowedKeywords: expressionKeywords);
  +        _recordDataForNode('ArgumentList ($context, unnamed)', argument,
               allowedKeywords: expressionKeywords);
           _recordTypeMatch(argument);
         }
  
positive.code:       }
        if (firstTokenType != null) {
          _recordTypeRelationships(
              'argument (first token)', parameterType, firstTokenType);
        }
      }
    }
  
negative.code:     if (parameterType == null || parameterType.isDynamic) {
        return;
      }
      var context = _argumentListContext(argument.parent);
      var argumentType = argument.staticType;
      if (argumentType != null) {
        _recordTypeRelationships(
            'argument (all, whole)', parameterType, argumentType);
        _recordTypeRelationships(
            'argument ($context, whole)', parameterType, argumentType);
      }
      var identifier = _leftMostIdentifier(argument);
      if (identifier != null) {
  