override TExpression VisitLoop(LoopExpressionAlias node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } var b = Visit(node.Body); var k = VisitIfNotNull(node.BreakLabel, VisitLabelTarget); var c = VisitIfNotNull(node.ContinueLabel, VisitLabelTarget); return(MakeLoop(node, b, k, c)); }
/// <summary> /// Makes an expression representing a LoopExpression with the given children. /// </summary> /// <param name="node">Original expression.</param> /// <param name="body">Body expression.</param> /// <param name="breakLabel">Break label.</param> /// <param name="continueLabel">Continue label.</param> /// <returns>Representation of the original expression.</returns> protected abstract TExpression MakeLoop(LoopExpressionAlias node, TExpression body, TLabelTarget breakLabel, TLabelTarget continueLabel);