Skip to content

Commit 7299c60

Browse files
committed
Make mut_visit::WalkItemKind the same as visit::WalkItemKind
1 parent 7f58c24 commit 7299c60

File tree

2 files changed

+80
-62
lines changed

2 files changed

+80
-62
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 79 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1797,7 +1797,14 @@ pub mod mut_visit {
17971797
}
17981798

17991799
pub trait WalkItemKind {
1800-
fn walk(&mut self, span: Span, id: NodeId, visitor: &mut impl MutVisitor);
1800+
fn walk(
1801+
&mut self,
1802+
id: NodeId,
1803+
span: Span,
1804+
vis: &mut Visibility,
1805+
ident: &mut Ident,
1806+
visitor: &mut impl MutVisitor
1807+
);
18011808
}
18021809

18031810
make_ast_visitor!(MutVisitor, mut);
@@ -2287,69 +2294,67 @@ pub mod mut_visit {
22872294
}
22882295
}
22892296

2290-
pub fn walk_item_kind(
2291-
kind: &mut impl WalkItemKind,
2292-
span: Span,
2293-
id: NodeId,
2294-
vis: &mut impl MutVisitor,
2295-
) {
2296-
kind.walk(span, id, vis)
2297-
}
2298-
22992297
impl WalkItemKind for ItemKind {
2300-
fn walk(&mut self, span: Span, id: NodeId, vis: &mut impl MutVisitor) {
2298+
fn walk(
2299+
&mut self,
2300+
id: NodeId,
2301+
span: Span,
2302+
_vis: &mut Visibility,
2303+
_ident: &mut Ident,
2304+
visitor: &mut impl MutVisitor
2305+
) {
23012306
match self {
23022307
ItemKind::ExternCrate(_orig_name) => {}
2303-
ItemKind::Use(use_tree) => vis.visit_use_tree(use_tree, id, false),
2308+
ItemKind::Use(use_tree) => visitor.visit_use_tree(use_tree, id, false),
23042309
ItemKind::Static(box StaticItem { ty, safety: _, mutability: _, expr }) => {
2305-
vis.visit_ty(ty);
2306-
visit_opt(expr, |expr| vis.visit_expr(expr));
2310+
visitor.visit_ty(ty);
2311+
visit_opt(expr, |expr| visitor.visit_expr(expr));
23072312
}
23082313
ItemKind::Const(item) => {
2309-
visit_const_item(item, vis);
2314+
visit_const_item(item, visitor);
23102315
}
23112316
ItemKind::Fn(box Fn { defaultness, generics, sig, body }) => {
2312-
visit_defaultness(vis, defaultness);
2313-
vis.visit_fn(FnKind::Fn(sig, generics, body), span, id);
2317+
visit_defaultness(visitor, defaultness);
2318+
visitor.visit_fn(FnKind::Fn(sig, generics, body), span, id);
23142319
}
23152320
ItemKind::Mod(safety, mod_kind) => {
2316-
visit_safety(vis, safety);
2321+
visit_safety(visitor, safety);
23172322
match mod_kind {
23182323
ModKind::Loaded(
23192324
items,
23202325
_inline,
23212326
ModSpans { inner_span, inject_use_span },
23222327
) => {
2323-
items.flat_map_in_place(|item| vis.flat_map_item(item));
2324-
vis.visit_span(inner_span);
2325-
vis.visit_span(inject_use_span);
2328+
items.flat_map_in_place(|item| visitor.flat_map_item(item));
2329+
visitor.visit_span(inner_span);
2330+
visitor.visit_span(inject_use_span);
23262331
}
23272332
ModKind::Unloaded => {}
23282333
}
23292334
}
2330-
ItemKind::ForeignMod(nm) => vis.visit_foreign_mod(nm),
2331-
ItemKind::GlobalAsm(asm) => vis.visit_inline_asm(asm),
2335+
ItemKind::ForeignMod(nm) => visitor.visit_foreign_mod(nm),
2336+
ItemKind::GlobalAsm(asm) => visitor.visit_inline_asm(asm),
23322337
ItemKind::TyAlias(box TyAlias {
23332338
defaultness,
23342339
generics,
23352340
where_clauses,
23362341
bounds,
23372342
ty,
23382343
}) => {
2339-
visit_defaultness(vis, defaultness);
2340-
vis.visit_generics(generics);
2341-
visit_bounds(vis, bounds, BoundKind::Bound);
2342-
visit_opt(ty, |ty| vis.visit_ty(ty));
2343-
walk_ty_alias_where_clauses(vis, where_clauses);
2344+
visit_defaultness(visitor, defaultness);
2345+
visitor.visit_generics(generics);
2346+
visit_bounds(visitor, bounds, BoundKind::Bound);
2347+
visit_opt(ty, |ty| visitor.visit_ty(ty));
2348+
walk_ty_alias_where_clauses(visitor, where_clauses);
23442349
}
23452350
ItemKind::Enum(enum_def, generics) => {
2346-
vis.visit_generics(generics);
2347-
vis.visit_enum_def(enum_def);
2351+
visitor.visit_generics(generics);
2352+
visitor.visit_enum_def(enum_def);
23482353
}
23492354
ItemKind::Struct(variant_data, generics)
23502355
| ItemKind::Union(variant_data, generics) => {
2351-
vis.visit_generics(generics);
2352-
vis.visit_variant_data(variant_data);
2356+
visitor.visit_generics(generics);
2357+
visitor.visit_variant_data(variant_data);
23532358
}
23542359
ItemKind::Impl(box Impl {
23552360
defaultness,
@@ -2361,27 +2366,27 @@ pub mod mut_visit {
23612366
self_ty,
23622367
items,
23632368
}) => {
2364-
visit_defaultness(vis, defaultness);
2365-
visit_safety(vis, safety);
2366-
vis.visit_generics(generics);
2367-
visit_constness(vis, constness);
2368-
visit_polarity(vis, polarity);
2369-
visit_opt(of_trait, |trait_ref| vis.visit_trait_ref(trait_ref));
2370-
vis.visit_ty(self_ty);
2371-
items.flat_map_in_place(|item| vis.flat_map_assoc_item(item, AssocCtxt::Impl));
2369+
visit_defaultness(visitor, defaultness);
2370+
visit_safety(visitor, safety);
2371+
visitor.visit_generics(generics);
2372+
visit_constness(visitor, constness);
2373+
visit_polarity(visitor, polarity);
2374+
visit_opt(of_trait, |trait_ref| visitor.visit_trait_ref(trait_ref));
2375+
visitor.visit_ty(self_ty);
2376+
items.flat_map_in_place(|item| visitor.flat_map_assoc_item(item, AssocCtxt::Impl));
23722377
}
23732378
ItemKind::Trait(box Trait { safety, is_auto: _, generics, bounds, items }) => {
2374-
visit_safety(vis, safety);
2375-
vis.visit_generics(generics);
2376-
visit_bounds(vis, bounds, BoundKind::Bound);
2377-
items.flat_map_in_place(|item| vis.flat_map_assoc_item(item, AssocCtxt::Trait));
2379+
visit_safety(visitor, safety);
2380+
visitor.visit_generics(generics);
2381+
visit_bounds(visitor, bounds, BoundKind::Bound);
2382+
items.flat_map_in_place(|item| visitor.flat_map_assoc_item(item, AssocCtxt::Trait));
23782383
}
23792384
ItemKind::TraitAlias(generics, bounds) => {
2380-
vis.visit_generics(generics);
2381-
visit_bounds(vis, bounds, BoundKind::Bound);
2385+
visitor.visit_generics(generics);
2386+
visit_bounds(visitor, bounds, BoundKind::Bound);
23822387
}
2383-
ItemKind::MacCall(m) => vis.visit_mac_call(m),
2384-
ItemKind::MacroDef(def) => vis.visit_macro_def(def),
2388+
ItemKind::MacCall(m) => visitor.visit_mac_call(m),
2389+
ItemKind::MacroDef(def) => visitor.visit_macro_def(def),
23852390
ItemKind::Delegation(box Delegation {
23862391
id,
23872392
qself,
@@ -2390,37 +2395,44 @@ pub mod mut_visit {
23902395
body,
23912396
from_glob: _,
23922397
}) => {
2393-
vis.visit_id(id);
2394-
vis.visit_qself(qself);
2395-
vis.visit_path(path, *id);
2398+
visitor.visit_id(id);
2399+
visitor.visit_qself(qself);
2400+
visitor.visit_path(path, *id);
23962401
if let Some(rename) = rename {
2397-
vis.visit_ident(rename);
2402+
visitor.visit_ident(rename);
23982403
}
23992404
if let Some(body) = body {
2400-
vis.visit_block(body);
2405+
visitor.visit_block(body);
24012406
}
24022407
}
24032408
ItemKind::DelegationMac(box DelegationMac { qself, prefix, suffixes, body }) => {
2404-
vis.visit_qself(qself);
2405-
vis.visit_path(prefix, id);
2409+
visitor.visit_qself(qself);
2410+
visitor.visit_path(prefix, id);
24062411
if let Some(suffixes) = suffixes {
24072412
for (ident, rename) in suffixes {
2408-
vis.visit_ident(ident);
2413+
visitor.visit_ident(ident);
24092414
if let Some(rename) = rename {
2410-
vis.visit_ident(rename);
2415+
visitor.visit_ident(rename);
24112416
}
24122417
}
24132418
}
24142419
if let Some(body) = body {
2415-
vis.visit_block(body);
2420+
visitor.visit_block(body);
24162421
}
24172422
}
24182423
}
24192424
}
24202425
}
24212426

24222427
impl WalkItemKind for AssocItemKind {
2423-
fn walk(&mut self, span: Span, id: NodeId, visitor: &mut impl MutVisitor) {
2428+
fn walk(
2429+
&mut self,
2430+
id: NodeId,
2431+
span: Span,
2432+
_vis: &mut Visibility,
2433+
_ident: &mut Ident,
2434+
visitor: &mut impl MutVisitor
2435+
) {
24242436
match self {
24252437
AssocItemKind::Const(item) => {
24262438
visit_const_item(item, visitor);
@@ -2512,14 +2524,20 @@ pub mod mut_visit {
25122524
visit_attrs(visitor, attrs);
25132525
visitor.visit_vis(vis);
25142526
visitor.visit_ident(ident);
2515-
kind.walk(*span, *id, visitor);
2527+
kind.walk(*id, *span, vis, ident, visitor);
25162528
visit_lazy_tts(visitor, tokens);
25172529
visitor.visit_span(span);
25182530
smallvec![item]
25192531
}
25202532

25212533
impl WalkItemKind for ForeignItemKind {
2522-
fn walk(&mut self, span: Span, id: NodeId, visitor: &mut impl MutVisitor) {
2534+
fn walk(
2535+
&mut self,
2536+
id: NodeId,
2537+
span: Span,
2538+
_vis: &mut Visibility,
2539+
_ident: &mut Ident,
2540+
visitor: &mut impl MutVisitor) {
25232541
match self {
25242542
ForeignItemKind::Static(box StaticItem { ty, mutability: _, expr, safety: _ }) => {
25252543
visitor.visit_ty(ty);

compiler/rustc_builtin_macros/src/test_harness.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ impl<'a> MutVisitor for TestHarnessGenerator<'a> {
144144
item.kind
145145
{
146146
let prev_tests = mem::take(&mut self.tests);
147-
walk_item_kind(&mut item.kind, item.span, item.id, self);
147+
item.kind.walk(item.id, item.span, &mut item.vis, &mut item.ident, self);
148148
self.add_test_cases(item.id, span, prev_tests);
149149
} else {
150150
// But in those cases, we emit a lint to warn the user of these missing tests.

0 commit comments

Comments
 (0)