Skip to content

Commit 237cd44

Browse files
committed
rustc: Fix a few more instances of node ID stomping, due to AST folding incorrectly passing stuff through unchanged
1 parent 084fe56 commit 237cd44

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/rustc/syntax/fold.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ fn noop_fold_pat(p: pat_, fld: ast_fold) -> pat_ {
334334
pat_ident(pth, sub) {
335335
pat_ident(fld.fold_path(pth), option::map(sub, fld.fold_pat))
336336
}
337-
pat_lit(_) { p }
337+
pat_lit(e) { pat_lit(fld.fold_expr(e)) }
338338
pat_enum(pth, pats) {
339339
pat_enum(fld.fold_path(pth), vec::map(pats, fld.fold_pat))
340340
}
@@ -348,7 +348,9 @@ fn noop_fold_pat(p: pat_, fld: ast_fold) -> pat_ {
348348
pat_tup(elts) { pat_tup(vec::map(elts, fld.fold_pat)) }
349349
pat_box(inner) { pat_box(fld.fold_pat(inner)) }
350350
pat_uniq(inner) { pat_uniq(fld.fold_pat(inner)) }
351-
pat_range(_, _) { p }
351+
pat_range(e1, e2) {
352+
pat_range(fld.fold_expr(e1), fld.fold_expr(e2))
353+
}
352354
};
353355
}
354356

@@ -698,7 +700,7 @@ fn make_fold(afp: ast_fold_precursor) -> ast_fold {
698700
}
699701
fn f_ty(afp: ast_fold_precursor, f: ast_fold, &&x: @ty) -> @ty {
700702
let (n, s) = afp.fold_ty(x.node, x.span, f);
701-
ret @{id: x.id, node: n, span: afp.new_span(s)};
703+
ret @{id: afp.new_id(x.id), node: n, span: afp.new_span(s)};
702704
}
703705
fn f_constr(afp: ast_fold_precursor, f: ast_fold, &&x: @ast::constr) ->
704706
@ast::constr {

0 commit comments

Comments
 (0)