/// <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));
        }
Example #2
0
        /// <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));
        }