Skip to content

Commit 2dfc990

Browse files
committed
Unify walk_crate
1 parent d63ca48 commit 2dfc990

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,20 @@ macro_rules! make_ast_visitor {
443443
return_result!(V)
444444
}
445445

446+
pub fn walk_crate<$($lt,)? V: $trait$(<$lt>)?>(
447+
vis: &mut V,
448+
krate: ref_t!(Crate)
449+
) -> result!(V) {
450+
let Crate { attrs, items, spans, id, is_placeholder: _ } = krate;
451+
try_v!(visit_id!(vis, id));
452+
visit_list!(vis, visit_attribute, attrs);
453+
visit_list!(vis, visit_item, flat_map_item, items);
454+
let ModSpans { inner_span, inject_use_span } = spans;
455+
try_v!(visit_span!(vis, inner_span));
456+
try_v!(visit_span!(vis, inject_use_span));
457+
return_result!(V)
458+
}
459+
446460
pub fn walk_enum_def<$($lt,)? V: $trait$(<$lt>)?>(
447461
vis: &mut V,
448462
enum_def: ref_t!(EnumDef)
@@ -1123,13 +1137,6 @@ pub mod visit {
11231137

11241138
make_ast_visitor!(Visitor<'ast>);
11251139

1126-
pub fn walk_crate<'a, V: Visitor<'a>>(visitor: &mut V, krate: &'a Crate) -> V::Result {
1127-
let Crate { attrs, items, spans: _, id: _, is_placeholder: _ } = krate;
1128-
walk_list!(visitor, visit_attribute, attrs);
1129-
walk_list!(visitor, visit_item, items);
1130-
V::Result::output()
1131-
}
1132-
11331140
impl WalkItemKind for ItemKind {
11341141
fn walk<'a, V: Visitor<'a>>(
11351142
&'a self,
@@ -2393,16 +2400,6 @@ pub mod mut_visit {
23932400
visit_safety(vis, safety);
23942401
}
23952402

2396-
pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
2397-
let Crate { attrs, items, spans, id, is_placeholder: _ } = krate;
2398-
vis.visit_id(id);
2399-
visit_attrs(vis, attrs);
2400-
items.flat_map_in_place(|item| vis.flat_map_item(item));
2401-
let ModSpans { inner_span, inject_use_span } = spans;
2402-
vis.visit_span(inner_span);
2403-
vis.visit_span(inject_use_span);
2404-
}
2405-
24062403
/// Mutates one item, returning the item again.
24072404
pub fn walk_flat_map_item<K: WalkItemKind>(
24082405
visitor: &mut impl MutVisitor,

0 commit comments

Comments
 (0)