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