anchor.diff:        }
         if (firstTokenType != null) {
           _recordTypeRelationships(
  -            'argument (first token)', parameterType, firstTokenType);
  +            'argument (all, first token)', parameterType, firstTokenType);
  +        _recordTypeRelationships(
  +            'argument ($context, first token)', parameterType, firstTokenType);
         }
       }
     }
  
positive.code:     if (parameterType == null || parameterType.isDynamic) {
        return;
      }
      var argumentType = argument.staticType;
      if (argumentType != null) {
        _recordTypeRelationships('argument (whole)', parameterType, argumentType);
      }
      var identifier = _leftMostIdentifier(argument);
      if (identifier != null) {
  
negative.code:     _recordDataForNode('YieldStatement (expression)', node.expression,
          allowedKeywords: expressionKeywords);
      super.visitYieldStatement(node);
    }
  
    /// Return the context in which the [node] occurs. The [node] is expected to
    /// be the parent of the argument expression.
    String _argumentListContext(AstNode node) {
      if (node is ArgumentList) {
        var parent = node.parent;
        if (parent is InstanceCreationExpression) {
          return 'constructor';
        } else if (parent is MethodInvocation) {
          return 'method';
        } else if (parent is FunctionExpressionInvocation) {
          return 'function';
        } else if (parent is SuperConstructorInvocation ||
            parent is RedirectingConstructorInvocation) {
          return 'constructor redirect';
        } else if (parent is Annotation) {
          return 'annotation';
        }
      } else if (node is IndexExpression) {
        return 'index';
      } else if (node is AssignmentExpression ||
          node is BinaryExpression ||
          node is PrefixExpression ||
          node is PostfixExpression) {
        return 'binary/unary';
      }
      return 'unknown';
    }
  
    /// Return the depth of the given [element]. For example:
  