aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/fold.rs
diff options
context:
space:
mode:
authorBrian Anderson <[email protected]>2011-01-31 23:06:02 -0500
committerBrian Anderson <[email protected]>2011-02-01 00:08:47 -0500
commit3fedb18c0af0bd9fa5e4973936003c0b57e4d3e8 (patch)
tree69adf95963fda1fedd3338d30f095f73d1c37c77 /src/comp/middle/fold.rs
parentMerge branch 'master' into forgraydon-elseif (diff)
downloadrust-3fedb18c0af0bd9fa5e4973936003c0b57e4d3e8.tar.xz
rust-3fedb18c0af0bd9fa5e4973936003c0b57e4d3e8.zip
Allow the else part of an expr_if to be either expr_if or expr_block
Diffstat (limited to 'src/comp/middle/fold.rs')
-rw-r--r--src/comp/middle/fold.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs
index 67c26014..ca10e79f 100644
--- a/src/comp/middle/fold.rs
+++ b/src/comp/middle/fold.rs
@@ -100,7 +100,7 @@ type ast_fold[ENV] =
(fn(&ENV e, &span sp,
@expr cond, &block thn,
- &option.t[block] els,
+ &option.t[@expr] els,
ann a) -> @expr) fold_expr_if,
(fn(&ENV e, &span sp,
@@ -504,10 +504,10 @@ fn fold_expr[ENV](&ENV env, ast_fold[ENV] fld, &@expr e) -> @expr {
case (ast.expr_if(?cnd, ?thn, ?els, ?t)) {
auto ccnd = fold_expr(env_, fld, cnd);
auto tthn = fold_block(env_, fld, thn);
- auto eels = none[block];
+ auto eels = none[@expr];
alt (els) {
- case (some[block](?b)) {
- eels = some(fold_block(env_, fld, b));
+ case (some[@expr](?e)) {
+ eels = some(fold_expr(env_, fld, e));
}
case (_) { /* fall through */ }
}
@@ -961,7 +961,7 @@ fn identity_fold_expr_cast[ENV](&ENV env, &span sp, @ast.expr e,
fn identity_fold_expr_if[ENV](&ENV env, &span sp,
@expr cond, &block thn,
- &option.t[block] els, ann a) -> @expr {
+ &option.t[@expr] els, ann a) -> @expr {
ret @respan(sp, ast.expr_if(cond, thn, els, a));
}