func (expr *IfExpr) Walk(v Visitor) Expr {
	c, changedC := WalkExpr(v, expr.Cond)
	t, changedT := WalkExpr(v, expr.True)
	e, changedE := WalkExpr(v, expr.Else)
	if changedC || changedT || changedE {
		exprCopy := *expr
		exprCopy.Cond = c
		exprCopy.True = t
		exprCopy.Else = e
		return &exprCopy
	}
	return expr
}
// Walk implements the Expr interface.
Walk implements the Expr interface.
// Walk implements the Expr interface .
func (expr *IfExpr) Walk(v Visitor) Expr {
	c, changedC := WalkExpr(v, expr.Cond)
	t, changedT := WalkExpr(v, expr.True)
	e, changedE := WalkExpr(v, expr.Else)
	if changedC || changedT || changedE {
		exprCopy := *expr
		exprCopy.Cond = c
		exprCopy.True = t
		exprCopy.Else = e
		return &exprCopy
	}
	return expr
}
func ( expr * IfExpr ) Walk ( v Visitor ) Expr { c , changedC := WalkExpr ( v , expr . Cond ) t , changedT := WalkExpr ( v , expr . True ) e , changedE := WalkExpr ( v , expr . Else ) if changedC || changedT || changedE { exprCopy := * expr exprCopy . Cond = c exprCopy . True = t exprCopy . Else = e return & exprCopy } return expr }
Walk implements the Expr interface.
Walk implements the Expr interface .