/// <summary> /// Visits an invocation expression tree node. /// </summary> /// <param name="node">Node to visit.</param> /// <returns>Result of visiting the node.</returns> protected internal virtual ExpressionSlim VisitInvocation(InvocationExpressionSlim node) { var expression = Visit(node.Expression); var arguments = VisitArguments(node); if (expression != node.Expression || arguments != null) { return(node.Rewrite(expression, arguments)); } return(node); }
protected internal override ExpressionSlim VisitInvocation(InvocationExpressionSlim node) { Append("Invoke("); Visit(node.Expression); if (node.ArgumentCount > 0) { Append(", "); Visit(", ", node); } Append(')'); return(node); }
/// <summary> /// Visits an invocation expression slim tree node, produces an invocation expression. /// </summary> /// <param name="node">Node to visit.</param> /// <param name="expression">Function expression.</param> /// <param name="arguments">Argument expressions.</param> /// <returns>The invocation expression represented by the expression slim node.</returns> protected override Expression MakeInvocation(InvocationExpressionSlim node, Expression expression, ReadOnlyCollection <Expression> arguments) { return(_factory.Invoke(expression, arguments)); }