/// <summary>
/// Visits the children of the <see cref="LoopExpression" />.
/// </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 VisitLoop(LoopExpression node)
{
if (node == null)
{
throw new ArgumentNullException(nameof(node));
}
return(node.Update(VisitLabelTarget(node.BreakLabel), VisitLabelTarget(node.ContinueLabel), Visit(node.Body)));
}