/// <inheritdoc cref="UnaryExpression.Update(Expression)" select="summary"/> public DoWhileExpression Update(Expression test, Expression body, LabelTarget breakTarget, LabelTarget continueTarget) { if (Test == test && Body == body && BreakLabel == breakTarget && ContinueLabel == continueTarget) { return(this); } return(Expressive.DoWhile(test, body, breakTarget, continueTarget)); }
/// <inheritdoc /> public override Expression VisitWhileUntilLoopStatement(IWhileUntilLoopStatement operation, LocalBinder argument) { Expression condition = operation.Condition.Accept(this, argument); Expression body = operation.Body.Accept(this, argument); return(operation.IsTopTest ? Expressive.While(condition, body) as Expression : Expressive.DoWhile(condition, body)); }