/// <inheritdoc cref="UnaryExpression.Update(Expression)" select="summary"/> public ForExpression Update(ParameterExpression variable, Expression initializer, Expression test, Expression step, Expression body, LabelTarget breakTarget, LabelTarget continueTarget) { if (Variable == variable && Initializer == initializer && Test == test && Step == step && Body == body && BreakLabel == breakTarget && ContinueLabel == continueTarget) { return(this); } return(Expressive.For(variable, initializer, test, step, body, breakTarget, continueTarget)); }
/// <inheritdoc /> public override Expression VisitForLoopStatement(IForLoopStatement operation, LocalBinder argument) { LocalBinder binder = argument.Child(); ImmutableArray <IOperation> before = operation.Before; Expression[] expressions = new Expression[before.Length + 1]; for (int i = 0; i < before.Length; i++) { expressions[i] = before[i].Accept(this, argument); } expressions[before.Length] = Expressive.For( ); return(Expression.Block( expressions )); }