Skip to content

Commit fc4ac15

Browse files
committed
Unify {visit,walk}_arm
1 parent 0525a01 commit fc4ac15

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ macro_rules! make_ast_visitor {
110110
};
111111
}
112112

113-
#[allow(unused)]
114113
macro_rules! visit_o {
115114
($opt: expr, $fn: expr) => {
116115
if let Some(elem) = $opt {
@@ -268,7 +267,6 @@ macro_rules! make_ast_visitor {
268267
/// or `ControlFlow<T>`.
269268
type Result: VisitorResult = ();
270269

271-
make_visit!{Arm; visit_arm, walk_arm}
272270
make_visit!{AssocItem, ctxt: AssocCtxt; visit_assoc_item, walk_assoc_item}
273271
make_visit!{FieldDef; visit_field_def, walk_field_def}
274272
make_visit!{ForeignItem; visit_foreign_item, walk_item}
@@ -306,6 +304,7 @@ macro_rules! make_ast_visitor {
306304

307305
make_visit!{AngleBracketedArgs; visit_angle_bracketed_parameter_data, walk_angle_bracketed_parameter_data}
308306
make_visit!{AnonConst; visit_anon_const, walk_anon_const}
307+
make_visit!{Arm; visit_arm, walk_arm}
309308
make_visit!{AssocItemConstraint; visit_assoc_item_constraint, walk_assoc_item_constraint}
310309
make_visit!{Attribute; visit_attribute, walk_attribute}
311310
make_visit!{CaptureBy; visit_capture_by, walk_capture_by}
@@ -371,6 +370,20 @@ macro_rules! make_ast_visitor {
371370
return_result!(V)
372371
}
373372

373+
pub fn walk_arm<$($lt,)? V: $trait$(<$lt>)?>(
374+
vis: &mut V,
375+
arm: ref_t!(Arm)
376+
) -> result!(V) {
377+
let Arm { attrs, pat, guard, body, span, id, is_placeholder: _ } = arm;
378+
try_v!(visit_id!(vis, id));
379+
visit_list!(vis, visit_attribute, attrs);
380+
try_v!(vis.visit_pat(pat));
381+
visit_o!(guard, |guard| vis.visit_expr(guard));
382+
visit_o!(body, |body| vis.visit_expr(body));
383+
try_v!(visit_span!(vis, span));
384+
return_result!(V)
385+
}
386+
374387
pub fn walk_capture_by<$($lt,)? V: $trait$(<$lt>)?>(
375388
vis: &mut V,
376389
capture_by: ref_t!(CaptureBy)
@@ -1509,15 +1522,6 @@ pub mod visit {
15091522
visitor.visit_expr_post(expression)
15101523
}
15111524

1512-
pub fn walk_arm<'a, V: Visitor<'a>>(visitor: &mut V, arm: &'a Arm) -> V::Result {
1513-
let Arm { attrs, pat, guard, body, span: _, id: _, is_placeholder: _ } = arm;
1514-
walk_list!(visitor, visit_attribute, attrs);
1515-
try_visit!(visitor.visit_pat(pat));
1516-
visit_opt!(visitor, visit_expr, guard);
1517-
visit_opt!(visitor, visit_expr, body);
1518-
V::Result::output()
1519-
}
1520-
15211525
pub fn walk_vis<'a, V: Visitor<'a>>(visitor: &mut V, vis: &'a Visibility) -> V::Result {
15221526
let Visibility { kind, span: _, tokens: _ } = vis;
15231527
match kind {
@@ -1705,13 +1709,7 @@ pub mod mut_visit {
17051709
}
17061710

17071711
pub fn walk_flat_map_arm<T: MutVisitor>(vis: &mut T, mut arm: Arm) -> SmallVec<[Arm; 1]> {
1708-
let Arm { attrs, pat, guard, body, span, id, is_placeholder: _ } = &mut arm;
1709-
vis.visit_id(id);
1710-
visit_attrs(vis, attrs);
1711-
vis.visit_pat(pat);
1712-
visit_opt(guard, |guard| vis.visit_expr(guard));
1713-
visit_opt(body, |body| vis.visit_expr(body));
1714-
vis.visit_span(span);
1712+
vis.visit_arm(&mut arm);
17151713
smallvec![arm]
17161714
}
17171715

0 commit comments

Comments
 (0)