Skip to content

Commit 94b756b

Browse files
committed
Add back wrappers for walk_item
1 parent a767c7a commit 94b756b

File tree

21 files changed

+87
-65
lines changed

21 files changed

+87
-65
lines changed

compiler/rustc_ast/src/mut_visit.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,15 @@ pub trait MutVisitor: Sized {
105105
}
106106

107107
fn visit_foreign_item(&mut self, ni: &mut P<ForeignItem>) {
108-
walk_item(self, ni, ());
108+
walk_item(self, ni);
109109
}
110110

111111
fn flat_map_foreign_item(&mut self, ni: P<ForeignItem>) -> SmallVec<[P<ForeignItem>; 1]> {
112112
walk_flat_map_foreign_item(self, ni)
113113
}
114114

115115
fn visit_item(&mut self, i: &mut P<Item>) {
116-
walk_item(self, i, ());
116+
walk_item(self, i);
117117
}
118118

119119
fn flat_map_item(&mut self, i: P<Item>) -> SmallVec<[P<Item>; 1]> {
@@ -133,7 +133,7 @@ pub trait MutVisitor: Sized {
133133
}
134134

135135
fn visit_assoc_item(&mut self, i: &mut P<AssocItem>, ctxt: AssocCtxt) {
136-
walk_item(self, i, ctxt)
136+
walk_assoc_item(self, i, ctxt)
137137
}
138138

139139
fn flat_map_assoc_item(
@@ -1395,7 +1395,15 @@ pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
13951395
vis.visit_span(inject_use_span);
13961396
}
13971397

1398-
pub fn walk_item<K: WalkItemKind>(
1398+
pub fn walk_item(visitor: &mut impl MutVisitor, item: &mut P<Item<impl WalkItemKind<Ctxt = ()>>>) {
1399+
walk_item_ctxt(visitor, item, ())
1400+
}
1401+
1402+
pub fn walk_assoc_item(visitor: &mut impl MutVisitor, item: &mut P<AssocItem>, ctxt: AssocCtxt) {
1403+
walk_item_ctxt(visitor, item, ctxt)
1404+
}
1405+
1406+
fn walk_item_ctxt<K: WalkItemKind>(
13991407
visitor: &mut impl MutVisitor,
14001408
item: &mut P<Item<K>>,
14011409
ctxt: K::Ctxt,

compiler/rustc_ast/src/visit.rs

+19-4
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,10 @@ pub trait Visitor<'ast>: Sized {
143143
Self::Result::output()
144144
}
145145
fn visit_foreign_item(&mut self, i: &'ast ForeignItem) -> Self::Result {
146-
walk_item(self, i, ())
146+
walk_item(self, i)
147147
}
148148
fn visit_item(&mut self, i: &'ast Item) -> Self::Result {
149-
walk_item(self, i, ())
149+
walk_item(self, i)
150150
}
151151
fn visit_local(&mut self, l: &'ast Local) -> Self::Result {
152152
walk_local(self, l)
@@ -196,7 +196,7 @@ pub trait Visitor<'ast>: Sized {
196196
walk_fn(self, fk)
197197
}
198198
fn visit_assoc_item(&mut self, i: &'ast AssocItem, ctxt: AssocCtxt) -> Self::Result {
199-
walk_item(self, i, ctxt)
199+
walk_assoc_item(self, i, ctxt)
200200
}
201201
fn visit_trait_ref(&mut self, t: &'ast TraitRef) -> Self::Result {
202202
walk_trait_ref(self, t)
@@ -918,7 +918,22 @@ impl WalkItemKind for AssocItemKind {
918918
}
919919
}
920920

921-
pub fn walk_item<'a, V: Visitor<'a>, K: WalkItemKind>(
921+
pub fn walk_item<'a, V: Visitor<'a>>(
922+
visitor: &mut V,
923+
item: &'a Item<impl WalkItemKind<Ctxt = ()>>,
924+
) -> V::Result {
925+
walk_item_ctxt(visitor, item, ())
926+
}
927+
928+
pub fn walk_assoc_item<'a, V: Visitor<'a>>(
929+
visitor: &mut V,
930+
item: &'a AssocItem,
931+
ctxt: AssocCtxt,
932+
) -> V::Result {
933+
walk_item_ctxt(visitor, item, ctxt)
934+
}
935+
936+
fn walk_item_ctxt<'a, V: Visitor<'a>, K: WalkItemKind>(
922937
visitor: &mut V,
923938
item: &'a Item<K>,
924939
ctxt: K::Ctxt,

compiler/rustc_ast_lowering/src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -379,21 +379,21 @@ fn index_crate<'a>(
379379
fn visit_item(&mut self, item: &'a ast::Item) {
380380
let def_id = self.node_id_to_def_id[&item.id];
381381
*self.index.ensure_contains_elem(def_id, || AstOwner::NonOwner) = AstOwner::Item(item);
382-
visit::walk_item(self, item, ())
382+
visit::walk_item(self, item)
383383
}
384384

385385
fn visit_assoc_item(&mut self, item: &'a ast::AssocItem, ctxt: visit::AssocCtxt) {
386386
let def_id = self.node_id_to_def_id[&item.id];
387387
*self.index.ensure_contains_elem(def_id, || AstOwner::NonOwner) =
388388
AstOwner::AssocItem(item, ctxt);
389-
visit::walk_item(self, item, ctxt);
389+
visit::walk_assoc_item(self, item, ctxt);
390390
}
391391

392392
fn visit_foreign_item(&mut self, item: &'a ast::ForeignItem) {
393393
let def_id = self.node_id_to_def_id[&item.id];
394394
*self.index.ensure_contains_elem(def_id, || AstOwner::NonOwner) =
395395
AstOwner::ForeignItem(item);
396-
visit::walk_item(self, item, ());
396+
visit::walk_item(self, item);
397397
}
398398
}
399399
}

compiler/rustc_ast_passes/src/ast_validation.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -977,7 +977,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
977977
if abi.is_none() {
978978
this.maybe_lint_missing_abi(*extern_span, item.id);
979979
}
980-
visit::walk_item(this, item, ());
980+
visit::walk_item(this, item);
981981
this.extern_mod = old_item;
982982
});
983983
return; // Avoid visiting again.
@@ -1112,7 +1112,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11121112
_ => {}
11131113
}
11141114

1115-
visit::walk_item(self, item, ());
1115+
visit::walk_item(self, item);
11161116
}
11171117

11181118
fn visit_foreign_item(&mut self, fi: &'a ForeignItem) {
@@ -1145,7 +1145,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
11451145
ForeignItemKind::MacCall(..) => {}
11461146
}
11471147

1148-
visit::walk_item(self, fi, ())
1148+
visit::walk_item(self, fi)
11491149
}
11501150

11511151
// Mirrors `visit::walk_generic_args`, but tracks relevant state.
@@ -1491,10 +1491,10 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
14911491
None => TildeConstReason::InherentAssocTy { span: item.span },
14921492
});
14931493
self.with_tilde_const(disallowed, |this| {
1494-
this.with_in_trait_impl(None, |this| visit::walk_item(this, item, ctxt))
1494+
this.with_in_trait_impl(None, |this| visit::walk_assoc_item(this, item, ctxt))
14951495
})
14961496
}
1497-
_ => self.with_in_trait_impl(None, |this| visit::walk_item(this, item, ctxt)),
1497+
_ => self.with_in_trait_impl(None, |this| visit::walk_assoc_item(this, item, ctxt)),
14981498
}
14991499
}
15001500
}

compiler/rustc_ast_passes/src/feature_gate.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
299299
_ => {}
300300
}
301301

302-
visit::walk_item(self, i, ());
302+
visit::walk_item(self, i);
303303
}
304304

305305
fn visit_foreign_item(&mut self, i: &'a ast::ForeignItem) {
@@ -322,7 +322,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
322322
ast::ForeignItemKind::MacCall(..) => {}
323323
}
324324

325-
visit::walk_item(self, i, ())
325+
visit::walk_item(self, i)
326326
}
327327

328328
fn visit_ty(&mut self, ty: &'a ast::Ty) {
@@ -477,7 +477,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
477477
"specialization is unstable"
478478
);
479479
}
480-
visit::walk_item(self, i, ctxt)
480+
visit::walk_assoc_item(self, i, ctxt)
481481
}
482482
}
483483

compiler/rustc_ast_passes/src/node_count.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ impl<'ast> Visitor<'ast> for NodeCounter {
2121
}
2222
fn visit_foreign_item(&mut self, i: &ForeignItem) {
2323
self.count += 1;
24-
walk_item(self, i, ())
24+
walk_item(self, i)
2525
}
2626
fn visit_item(&mut self, i: &Item) {
2727
self.count += 1;
28-
walk_item(self, i, ())
28+
walk_item(self, i)
2929
}
3030
fn visit_local(&mut self, l: &Local) {
3131
self.count += 1;
@@ -69,7 +69,7 @@ impl<'ast> Visitor<'ast> for NodeCounter {
6969
}
7070
fn visit_assoc_item(&mut self, ti: &AssocItem, ctxt: AssocCtxt) {
7171
self.count += 1;
72-
walk_item(self, ti, ctxt);
72+
walk_assoc_item(self, ti, ctxt);
7373
}
7474
fn visit_trait_ref(&mut self, t: &TraitRef) {
7575
self.count += 1;

compiler/rustc_builtin_macros/src/proc_macro_harness.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ impl<'a> Visitor<'a> for CollectProcMacros<'a> {
210210
let Some(attr) = found_attr else {
211211
self.check_not_pub_in_root(&item.vis, self.source_map.guess_head_span(item.span));
212212
let prev_in_root = mem::replace(&mut self.in_root, false);
213-
visit::walk_item(self, item, ());
213+
visit::walk_item(self, item);
214214
self.in_root = prev_in_root;
215215
return;
216216
};
@@ -248,7 +248,7 @@ impl<'a> Visitor<'a> for CollectProcMacros<'a> {
248248
};
249249

250250
let prev_in_root = mem::replace(&mut self.in_root, false);
251-
visit::walk_item(self, item, ());
251+
visit::walk_item(self, item);
252252
self.in_root = prev_in_root;
253253
}
254254
}

compiler/rustc_builtin_macros/src/test_harness.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ impl<'a> MutVisitor for TestHarnessGenerator<'a> {
157157
self.add_test_cases(item.id, span, prev_tests);
158158
} else {
159159
// But in those cases, we emit a lint to warn the user of these missing tests.
160-
walk_item(&mut InnerItemLinter { sess: self.cx.ext_cx.sess }, &item, ());
160+
walk_item(&mut InnerItemLinter { sess: self.cx.ext_cx.sess }, &item);
161161
}
162162
}
163163
}
@@ -200,7 +200,7 @@ struct EntryPointCleaner<'a> {
200200
impl<'a> MutVisitor for EntryPointCleaner<'a> {
201201
fn visit_item(&mut self, item: &mut P<ast::Item>) {
202202
self.depth += 1;
203-
ast::mut_visit::walk_item(self, item, ());
203+
ast::mut_visit::walk_item(self, item);
204204
self.depth -= 1;
205205

206206
// Remove any #[rustc_main] or #[start] from the AST so it doesn't

compiler/rustc_expand/src/expand.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -902,7 +902,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
902902
_ => {}
903903
}
904904

905-
visit::walk_item(self, item, ());
905+
visit::walk_item(self, item);
906906
}
907907
}
908908

compiler/rustc_lint/src/early.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,14 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
8282
fn visit_item(&mut self, it: &'a ast::Item) {
8383
self.with_lint_attrs(it.id, &it.attrs, |cx| {
8484
lint_callback!(cx, check_item, it);
85-
ast_visit::walk_item(cx, it, ());
85+
ast_visit::walk_item(cx, it);
8686
lint_callback!(cx, check_item_post, it);
8787
})
8888
}
8989

9090
fn visit_foreign_item(&mut self, it: &'a ast::ForeignItem) {
9191
self.with_lint_attrs(it.id, &it.attrs, |cx| {
92-
ast_visit::walk_item(cx, it, ());
92+
ast_visit::walk_item(cx, it);
9393
})
9494
}
9595

@@ -239,7 +239,7 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
239239
lint_callback!(cx, check_impl_item, item);
240240
}
241241
}
242-
ast_visit::walk_item(cx, item, ctxt);
242+
ast_visit::walk_assoc_item(cx, item, ctxt);
243243
});
244244
}
245245

compiler/rustc_metadata/src/creader.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1105,7 +1105,7 @@ fn global_allocator_spans(krate: &ast::Crate) -> Vec<Span> {
11051105
{
11061106
self.spans.push(item.span);
11071107
}
1108-
visit::walk_item(self, item, ())
1108+
visit::walk_item(self, item)
11091109
}
11101110
}
11111111

@@ -1127,7 +1127,7 @@ fn alloc_error_handler_spans(krate: &ast::Crate) -> Vec<Span> {
11271127
{
11281128
self.spans.push(item.span);
11291129
}
1130-
visit::walk_item(self, item, ())
1130+
visit::walk_item(self, item)
11311131
}
11321132
}
11331133

compiler/rustc_parse/src/parser/tests.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2438,7 +2438,7 @@ fn get_spans_of_pat_idents(src: &str) -> Vec<Span> {
24382438
}
24392439
}
24402440
let mut v = PatIdentVisitor { spans: Vec::new() };
2441-
visit::walk_item(&mut v, &item, ());
2441+
visit::walk_item(&mut v, &item);
24422442
return v.spans;
24432443
}
24442444

compiler/rustc_passes/src/hir_stats.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ impl<'v> ast_visit::Visitor<'v> for StatCollector<'v> {
477477
record_variants!((self, i, i.kind, None, ast, ForeignItem, ForeignItemKind), [
478478
Static, Fn, TyAlias, MacCall
479479
]);
480-
ast_visit::walk_item(self, i, ())
480+
ast_visit::walk_item(self, i)
481481
}
482482

483483
fn visit_item(&mut self, i: &'v ast::Item) {
@@ -502,7 +502,7 @@ impl<'v> ast_visit::Visitor<'v> for StatCollector<'v> {
502502
Delegation,
503503
DelegationMac
504504
]);
505-
ast_visit::walk_item(self, i, ())
505+
ast_visit::walk_item(self, i)
506506
}
507507

508508
fn visit_local(&mut self, l: &'v ast::Local) {
@@ -626,7 +626,7 @@ impl<'v> ast_visit::Visitor<'v> for StatCollector<'v> {
626626
Delegation,
627627
DelegationMac
628628
]);
629-
ast_visit::walk_item(self, i, ctxt);
629+
ast_visit::walk_assoc_item(self, i, ctxt);
630630
}
631631

632632
fn visit_param_bound(&mut self, b: &'v ast::GenericBound, _ctxt: BoundKind) {

compiler/rustc_passes/src/lang_items.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ impl<'ast, 'tcx> visit::Visitor<'ast> for LanguageItemCollector<'ast, 'tcx> {
299299
);
300300

301301
let parent_item = self.parent_item.replace(i);
302-
visit::walk_item(self, i, ());
302+
visit::walk_item(self, i);
303303
self.parent_item = parent_item;
304304
}
305305

@@ -355,7 +355,7 @@ impl<'ast, 'tcx> visit::Visitor<'ast> for LanguageItemCollector<'ast, 'tcx> {
355355
generics,
356356
);
357357

358-
visit::walk_item(self, i, ctxt);
358+
visit::walk_assoc_item(self, i, ctxt);
359359
}
360360
}
361361

compiler/rustc_resolve/src/build_reduced_graph.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1311,7 +1311,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
13111311
self.parent_scope.macro_rules = match item.kind {
13121312
ItemKind::MacroDef(..) => {
13131313
let macro_rules_scope = self.define_macro(item);
1314-
visit::walk_item(self, item, ());
1314+
visit::walk_item(self, item);
13151315
macro_rules_scope
13161316
}
13171317
ItemKind::MacCall(..) => self.visit_invoc_in_module(item.id),
@@ -1327,7 +1327,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
13271327
item.kind.walk(item.span, item.id, &item.ident, &item.vis, (), self);
13281328
visit::walk_list!(self, visit_attribute, &item.attrs);
13291329
}
1330-
_ => visit::walk_item(self, item, ()),
1330+
_ => visit::walk_item(self, item),
13311331
}
13321332
match item.kind {
13331333
ItemKind::Mod(..) if self.contains_macro_use(&item.attrs) => {
@@ -1355,7 +1355,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
13551355
}
13561356

13571357
self.build_reduced_graph_for_foreign_item(foreign_item);
1358-
visit::walk_item(self, foreign_item, ());
1358+
visit::walk_item(self, foreign_item);
13591359
}
13601360

13611361
fn visit_block(&mut self, block: &'a Block) {
@@ -1420,7 +1420,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
14201420
self.r.impl_binding_keys.entry(impl_def_id).or_default().insert(key);
14211421
}
14221422

1423-
visit::walk_item(self, item, ctxt);
1423+
visit::walk_assoc_item(self, item, ctxt);
14241424
}
14251425

14261426
fn visit_attribute(&mut self, attr: &'a ast::Attribute) {

compiler/rustc_resolve/src/check_unused.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for UnusedImportCheckVisitor<'a, 'ra, 'tcx> {
235235
}
236236

237237
self.item_span = item.span_with_attributes();
238-
visit::walk_item(self, item, ());
238+
visit::walk_item(self, item);
239239
}
240240

241241
fn visit_use_tree(&mut self, use_tree: &'a ast::UseTree, id: ast::NodeId, nested: bool) {

0 commit comments

Comments
 (0)