Skip to content

Commit 5c4c2ae

Browse files
committed
Unify walk_block
1 parent d637962 commit 5c4c2ae

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,9 @@ macro_rules! make_ast_visitor {
279279
make_visit!{Local, visit_local, walk_local}
280280
make_visit!{P!(Pat), visit_pat, walk_pat}
281281
make_visit!{P!(Expr), visit_expr, walk_expr}
282-
make_visit!{P!(Block), visit_block, walk_block}
283282
make_visit!{P!(Ty), visit_ty, walk_ty}
283+
// TODO: Remove P! on implementers
284+
make_visit!{P!(Block), visit_block, walk_block}
284285

285286
// flat_maps
286287
make_visit!{Arm, visit_arm, walk_arm, flat_map_arm, walk_flat_map_arm}
@@ -942,6 +943,18 @@ macro_rules! make_ast_visitor {
942943
return_result!(V)
943944
}
944945

946+
pub fn walk_block<$($lt,)? V: $trait$(<$lt>)?>(
947+
vis: &mut V,
948+
block: ref_t!(Block)
949+
) -> result!(V) {
950+
let Block { id, stmts, rules: _, span, tokens, could_be_bare_literal: _ } = block;
951+
try_v!(visit_id!(vis, id));
952+
visit_list!(vis, visit_stmt, flat_map_stmt, stmts);
953+
visit_lazy_tts!(vis, tokens);
954+
try_v!(visit_span!(vis, span));
955+
return_result!(V)
956+
}
957+
945958
make_walk_flat_map!{Arm, walk_flat_map_arm, visit_arm}
946959
make_walk_flat_map!{Attribute, walk_flat_map_attribute, visit_attribute}
947960
make_walk_flat_map!{ExprField, walk_flat_map_expr_field, visit_expr_field}
@@ -1500,12 +1513,6 @@ pub mod visit {
15001513
walk_variant_data(visitor, struct_definition)
15011514
}
15021515

1503-
pub fn walk_block<'a, V: Visitor<'a>>(visitor: &mut V, block: &'a Block) -> V::Result {
1504-
let Block { stmts, id: _, rules: _, span: _, tokens: _, could_be_bare_literal: _ } = block;
1505-
walk_list!(visitor, visit_stmt, stmts);
1506-
V::Result::output()
1507-
}
1508-
15091516
pub fn walk_stmt<'a, V: Visitor<'a>>(visitor: &mut V, statement: &'a Stmt) -> V::Result {
15101517
let Stmt { id: _, kind, span: _ } = statement;
15111518
match kind {
@@ -2267,15 +2274,6 @@ pub mod mut_visit {
22672274
}
22682275
}
22692276

2270-
pub fn walk_block<T: MutVisitor>(vis: &mut T, block: &mut P<Block>) {
2271-
let Block { id, stmts, rules: _, span, tokens, could_be_bare_literal: _ } =
2272-
block.deref_mut();
2273-
vis.visit_id(id);
2274-
stmts.flat_map_in_place(|stmt| vis.flat_map_stmt(stmt));
2275-
visit_lazy_tts(vis, tokens);
2276-
vis.visit_span(span);
2277-
}
2278-
22792277
pub fn walk_item_kind(
22802278
kind: &mut impl WalkItemKind,
22812279
span: Span,

0 commit comments

Comments
 (0)