Skip to content

Commit ac6ac03

Browse files
committed
Unify {visit,walk}_arm
1 parent 332e137 commit ac6ac03

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,6 @@ macro_rules! make_ast_visitor {
273273
/// or `ControlFlow<T>`.
274274
type Result: VisitorResult = ();
275275

276-
make_visit!{Arm; visit_arm, walk_arm}
277276
make_visit!{AssocItem, ctxt: AssocCtxt; visit_assoc_item, walk_assoc_item}
278277
make_visit!{FieldDef; visit_field_def, walk_field_def}
279278
make_visit!{ForeignItem; visit_foreign_item, walk_item}
@@ -311,6 +310,7 @@ macro_rules! make_ast_visitor {
311310

312311
make_visit!{AngleBracketedArgs; visit_angle_bracketed_parameter_data, walk_angle_bracketed_parameter_data}
313312
make_visit!{AnonConst; visit_anon_const, walk_anon_const}
313+
make_visit!{Arm; visit_arm, walk_arm}
314314
make_visit!{AssocItemConstraint; visit_assoc_item_constraint, walk_assoc_item_constraint}
315315
make_visit!{Attribute; visit_attribute, walk_attribute}
316316
make_visit!{CaptureBy; visit_capture_by, walk_capture_by}
@@ -376,6 +376,20 @@ macro_rules! make_ast_visitor {
376376
return_result!(V)
377377
}
378378

379+
pub fn walk_arm<$($lt,)? V: $trait$(<$lt>)?>(
380+
vis: &mut V,
381+
arm: ref_t!(Arm)
382+
) -> result!(V) {
383+
let Arm { attrs, pat, guard, body, span, id, is_placeholder: _ } = arm;
384+
try_v!(visit_id!(vis, id));
385+
visit_list!(vis, visit_attribute, attrs);
386+
try_v!(vis.visit_pat(pat));
387+
visit_o!(guard, |guard| vis.visit_expr(guard));
388+
visit_o!(body, |body| vis.visit_expr(body));
389+
try_v!(visit_span!(vis, span));
390+
return_result!(V)
391+
}
392+
379393
pub fn walk_capture_by<$($lt,)? V: $trait$(<$lt>)?>(
380394
vis: &mut V,
381395
capture_by: ref_t!(CaptureBy)
@@ -1514,15 +1528,6 @@ pub mod visit {
15141528
visitor.visit_expr_post(expression)
15151529
}
15161530

1517-
pub fn walk_arm<'a, V: Visitor<'a>>(visitor: &mut V, arm: &'a Arm) -> V::Result {
1518-
let Arm { attrs, pat, guard, body, span: _, id: _, is_placeholder: _ } = arm;
1519-
walk_list!(visitor, visit_attribute, attrs);
1520-
try_visit!(visitor.visit_pat(pat));
1521-
visit_opt!(visitor, visit_expr, guard);
1522-
visit_opt!(visitor, visit_expr, body);
1523-
V::Result::output()
1524-
}
1525-
15261531
pub fn walk_vis<'a, V: Visitor<'a>>(visitor: &mut V, vis: &'a Visibility) -> V::Result {
15271532
let Visibility { kind, span: _, tokens: _ } = vis;
15281533
match kind {
@@ -1710,13 +1715,7 @@ pub mod mut_visit {
17101715
}
17111716

17121717
pub fn walk_flat_map_arm<T: MutVisitor>(vis: &mut T, mut arm: Arm) -> SmallVec<[Arm; 1]> {
1713-
let Arm { attrs, pat, guard, body, span, id, is_placeholder: _ } = &mut arm;
1714-
vis.visit_id(id);
1715-
visit_attrs(vis, attrs);
1716-
vis.visit_pat(pat);
1717-
visit_opt(guard, |guard| vis.visit_expr(guard));
1718-
visit_opt(body, |body| vis.visit_expr(body));
1719-
vis.visit_span(span);
1718+
vis.visit_arm(&mut arm);
17201719
smallvec![arm]
17211720
}
17221721

0 commit comments

Comments
 (0)