/// <summary>
/// Visits the children of the <see cref="IndexExpression" />.
/// </summary>
/// <param name="node">The expression to visit.</param>
/// <returns>The modified expression, if it or any subexpression was modified;
/// otherwise, returns the original expression.</returns>
protected internal virtual Expression VisitIndex(IndexExpression node)
{
Expression o = Visit(node.Object);
Expression[] a = VisitArguments(node);
if (o == node.Object && a == null)
{
return node;
}
return node.Rewrite(o, a);
}