about summary refs log tree commit diff
path: root/src/rustc/syntax
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-03-20 18:35:59 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-03-20 18:37:09 -0700
commit237cd4455cdbf4984c6cffb081fbc3437c6950ca (patch)
tree9e03118b62f037f3ffcf36517e90faf5179b25c5 /src/rustc/syntax
parent084fe56ad528053cda5df1274b4e4452e7c0579c (diff)
downloadrust-237cd4455cdbf4984c6cffb081fbc3437c6950ca.tar.gz
rust-237cd4455cdbf4984c6cffb081fbc3437c6950ca.zip
rustc: Fix a few more instances of node ID stomping, due to AST folding incorrectly passing stuff through unchanged
Diffstat (limited to 'src/rustc/syntax')
-rw-r--r--src/rustc/syntax/fold.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/rustc/syntax/fold.rs b/src/rustc/syntax/fold.rs
index 0927c94887f..9b80775343e 100644
--- a/src/rustc/syntax/fold.rs
+++ b/src/rustc/syntax/fold.rs
@@ -334,7 +334,7 @@ fn noop_fold_pat(p: pat_, fld: ast_fold) -> pat_ {
           pat_ident(pth, sub) {
             pat_ident(fld.fold_path(pth), option::map(sub, fld.fold_pat))
           }
-          pat_lit(_) { p }
+          pat_lit(e) { pat_lit(fld.fold_expr(e)) }
           pat_enum(pth, pats) {
             pat_enum(fld.fold_path(pth), vec::map(pats, fld.fold_pat))
           }
@@ -348,7 +348,9 @@ fn noop_fold_pat(p: pat_, fld: ast_fold) -> pat_ {
           pat_tup(elts) { pat_tup(vec::map(elts, fld.fold_pat)) }
           pat_box(inner) { pat_box(fld.fold_pat(inner)) }
           pat_uniq(inner) { pat_uniq(fld.fold_pat(inner)) }
-          pat_range(_, _) { p }
+          pat_range(e1, e2) {
+            pat_range(fld.fold_expr(e1), fld.fold_expr(e2))
+          }
         };
 }
 
@@ -698,7 +700,7 @@ fn make_fold(afp: ast_fold_precursor) -> ast_fold {
     }
     fn f_ty(afp: ast_fold_precursor, f: ast_fold, &&x: @ty) -> @ty {
         let (n, s) = afp.fold_ty(x.node, x.span, f);
-        ret @{id: x.id, node: n, span: afp.new_span(s)};
+        ret @{id: afp.new_id(x.id), node: n, span: afp.new_span(s)};
     }
     fn f_constr(afp: ast_fold_precursor, f: ast_fold, &&x: @ast::constr) ->
        @ast::constr {