Skip to content

Commit bc78c96

Browse files
committed
Unify walk_vis
1 parent d204037 commit bc78c96

File tree

1 file changed

+17
-24
lines changed

1 file changed

+17
-24
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,23 @@ macro_rules! make_ast_visitor {
10191019
return_result!(V)
10201020
}
10211021

1022+
pub fn walk_vis<$($lt,)? V: $trait$(<$lt>)?>(
1023+
vis: &mut V,
1024+
visibility: ref_t!(Visibility)
1025+
) -> result!(V) {
1026+
let Visibility { kind, span, tokens } = visibility;
1027+
match kind {
1028+
VisibilityKind::Public | VisibilityKind::Inherited => {}
1029+
VisibilityKind::Restricted { path, id, shorthand: _ } => {
1030+
try_v!(visit_id!(vis, id));
1031+
try_v!(vis.visit_path(path, *id));
1032+
}
1033+
}
1034+
visit_lazy_tts!(vis, tokens);
1035+
try_v!(visit_span!(vis, span));
1036+
return_result!(V)
1037+
}
1038+
10221039
make_walk_flat_map!{Arm, walk_flat_map_arm, visit_arm}
10231040
make_walk_flat_map!{Attribute, walk_flat_map_attribute, visit_attribute}
10241041
make_walk_flat_map!{ExprField, walk_flat_map_expr_field, visit_expr_field}
@@ -1715,17 +1732,6 @@ pub mod visit {
17151732
visitor.visit_expr_post(expression)
17161733
}
17171734

1718-
pub fn walk_vis<'a, V: Visitor<'a>>(visitor: &mut V, vis: &'a Visibility) -> V::Result {
1719-
let Visibility { kind, span: _, tokens: _ } = vis;
1720-
match kind {
1721-
VisibilityKind::Restricted { path, id, shorthand: _ } => {
1722-
try_visit!(visitor.visit_path(path, *id));
1723-
}
1724-
VisibilityKind::Public | VisibilityKind::Inherited => {}
1725-
}
1726-
V::Result::output()
1727-
}
1728-
17291735
pub fn walk_attribute<'a, V: Visitor<'a>>(visitor: &mut V, attr: &'a Attribute) -> V::Result {
17301736
let Attribute { kind, id: _, style: _, span: _ } = attr;
17311737
match kind {
@@ -2791,19 +2797,6 @@ pub mod mut_visit {
27912797
}
27922798
}
27932799

2794-
fn walk_vis<T: MutVisitor>(vis: &mut T, visibility: &mut Visibility) {
2795-
let Visibility { kind, span, tokens } = visibility;
2796-
match kind {
2797-
VisibilityKind::Public | VisibilityKind::Inherited => {}
2798-
VisibilityKind::Restricted { path, id, shorthand: _ } => {
2799-
vis.visit_id(id);
2800-
vis.visit_path(path, *id);
2801-
}
2802-
}
2803-
visit_lazy_tts(vis, tokens);
2804-
vis.visit_span(span);
2805-
}
2806-
28072800
/// Some value for the AST node that is valid but possibly meaningless. Similar
28082801
/// to `Default` but not intended for wide use. The value will never be used
28092802
/// meaningfully, it exists just to support unwinding in `visit_clobber` in the

0 commit comments

Comments
 (0)