Skip to content

Commit 8851ae0

Browse files
committed
rustc: Allow walking over patterns
1 parent 6e058ff commit 8851ae0

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/comp/middle/walk.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ type ast_visitor =
2828
fn (&@ast::stmt s) visit_stmt_post,
2929
fn (&ast::arm a) visit_arm_pre,
3030
fn (&ast::arm a) visit_arm_post,
31+
fn (&@ast::pat p) visit_pat_pre,
32+
fn (&@ast::pat p) visit_pat_post,
3133
fn (&@ast::decl d) visit_decl_pre,
3234
fn (&@ast::decl d) visit_decl_post,
3335
fn (&@ast::expr e) visit_expr_pre,
@@ -193,6 +195,7 @@ fn walk_ty(&ast_visitor v, @ast::ty t) {
193195
}
194196

195197
fn walk_pat(&ast_visitor v, &@ast::pat p) {
198+
v.visit_pat_pre(p);
196199
alt (p.node) {
197200
case (ast::pat_tag(?path, ?children, _)) {
198201
for (@ast::ty tp in path.node.types) {
@@ -204,6 +207,7 @@ fn walk_pat(&ast_visitor v, &@ast::pat p) {
204207
}
205208
case (_) {}
206209
}
210+
v.visit_pat_post(p);
207211
}
208212

209213
fn walk_native_mod(&ast_visitor v, &ast::native_mod nm) {
@@ -500,6 +504,7 @@ fn def_visit_method(&@ast::method m) { }
500504
fn def_visit_block(&ast::block b) { }
501505
fn def_visit_stmt(&@ast::stmt s) { }
502506
fn def_visit_arm(&ast::arm a) { }
507+
fn def_visit_pat(&@ast::pat p) { }
503508
fn def_visit_decl(&@ast::decl d) { }
504509
fn def_visit_expr(&@ast::expr e) { }
505510
fn def_visit_ty(&@ast::ty t) { }
@@ -519,6 +524,7 @@ fn default_visitor() -> ast_visitor {
519524
auto d_visit_block = def_visit_block;
520525
auto d_visit_stmt = def_visit_stmt;
521526
auto d_visit_arm = def_visit_arm;
527+
auto d_visit_pat = def_visit_pat;
522528
auto d_visit_decl = def_visit_decl;
523529
auto d_visit_expr = def_visit_expr;
524530
auto d_visit_ty = def_visit_ty;
@@ -544,6 +550,8 @@ fn default_visitor() -> ast_visitor {
544550
visit_stmt_post = d_visit_stmt,
545551
visit_arm_pre = d_visit_arm,
546552
visit_arm_post = d_visit_arm,
553+
visit_pat_pre = d_visit_pat,
554+
visit_pat_post = d_visit_pat,
547555
visit_decl_pre = d_visit_decl,
548556
visit_decl_post = d_visit_decl,
549557
visit_expr_pre = d_visit_expr,

0 commit comments

Comments
 (0)