public override AbstractExpression AcceptRewriter(StatementRewriter rewriter) { var newCondition = Condition.AcceptRewriter(rewriter); var newWhenTrue = WhenTrue.AcceptRewriter(rewriter); var newWhenFalse = WhenFalse.AcceptRewriter(rewriter); if (newCondition != Condition || newWhenTrue != WhenTrue || newWhenFalse != WhenFalse) { return(new ConditionalExpression { Bindings = new BindingCollection(this.Bindings), Type = this.Type, Condition = newCondition, WhenTrue = newWhenTrue, WhenFalse = newWhenFalse }); } return(this); }