aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/middle')
-rw-r--r--src/comp/middle/fold.rs9
-rw-r--r--src/comp/middle/trans.rs2
-rw-r--r--src/comp/middle/typeck.rs5
3 files changed, 7 insertions, 9 deletions
diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs
index d533082c..c7041b26 100644
--- a/src/comp/middle/fold.rs
+++ b/src/comp/middle/fold.rs
@@ -157,7 +157,7 @@ type ast_fold[ENV] =
(fn(&ENV e, &span sp,
&path p, vec[@expr] args,
option.t[@expr] body,
- option.t[@expr] expanded,
+ @expr expanded,
ann a) -> @expr) fold_expr_ext,
(fn(&ENV e, &span sp) -> @expr) fold_expr_fail,
@@ -653,10 +653,9 @@ fn fold_expr[ENV](&ENV env, ast_fold[ENV] fld, &@expr e) -> @expr {
case (ast.expr_ext(?p, ?args, ?body, ?expanded, ?t)) {
// Only fold the expanded expression, not the
// expressions involved in syntax extension
- auto exp = option.get[@expr](expanded);
- auto exp_ = fold_expr(env_, fld, exp);
+ auto exp = fold_expr(env_, fld, expanded);
ret fld.fold_expr_ext(env_, e.span, p, args, body,
- some[@ast.expr](exp_), t);
+ exp, t);
}
case (ast.expr_fail) {
@@ -1184,7 +1183,7 @@ fn identity_fold_expr_path[ENV](&ENV env, &span sp,
fn identity_fold_expr_ext[ENV](&ENV env, &span sp,
&path p, vec[@expr] args,
option.t[@expr] body,
- option.t[@expr] expanded,
+ @expr expanded,
ann a) -> @expr {
ret @respan(sp, ast.expr_ext(p, args, body, expanded, a));
}
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 9fee3dab..2594590a 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -3694,7 +3694,7 @@ fn trans_expr(@block_ctxt cx, @ast.expr e) -> result {
}
case (ast.expr_ext(_, _, _, ?expanded, _)) {
- ret trans_expr(cx, option.get[@ast.expr](expanded));
+ ret trans_expr(cx, expanded);
}
case (ast.expr_fail) {
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs
index 5cccc4d7..f8f7fc72 100644
--- a/src/comp/middle/typeck.rs
+++ b/src/comp/middle/typeck.rs
@@ -1514,11 +1514,10 @@ fn check_expr(&@fn_ctxt fcx, @ast.expr expr) -> @ast.expr {
}
case (ast.expr_ext(?p, ?args, ?body, ?expanded, _)) {
- auto exp_ = check_expr(fcx, option.get[@ast.expr](expanded));
+ auto exp_ = check_expr(fcx, expanded);
auto t = expr_ty(exp_);
ret @fold.respan[ast.expr_](expr.span,
- ast.expr_ext(p, args, body,
- some[@ast.expr](exp_),
+ ast.expr_ext(p, args, body, exp_,
ast.ann_type(t)));
}