Skip to content

Commit 470dae5

Browse files
committed
Unify WalkItemKind
1 parent cda78be commit 470dae5

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,6 +1159,17 @@ macro_rules! make_ast_visitor {
11591159
}
11601160
}
11611161

1162+
pub trait WalkItemKind: Sized {
1163+
fn walk<$($lt,)? V: $trait$(<$lt>)?>(
1164+
&$($lt)? $($mut)? self,
1165+
id: NodeId,
1166+
span: Span,
1167+
vis: ref_t!(Visibility),
1168+
ident: ref_t!(Ident),
1169+
visitor: &mut V,
1170+
) -> result!(V);
1171+
}
1172+
11621173
make_walk_flat_map!{Arm, walk_flat_map_arm, visit_arm}
11631174
make_walk_flat_map!{Attribute, walk_flat_map_attribute, visit_attribute}
11641175
make_walk_flat_map!{ExprField, walk_flat_map_expr_field, visit_expr_field}
@@ -1278,17 +1289,6 @@ pub mod visit {
12781289
GenericArg,
12791290
}
12801291

1281-
pub trait WalkItemKind: Sized {
1282-
fn walk<'a, V: Visitor<'a>>(
1283-
&'a self,
1284-
id: NodeId,
1285-
span: Span,
1286-
vis: &'a Visibility,
1287-
ident: &'a Ident,
1288-
visitor: &mut V,
1289-
) -> V::Result;
1290-
}
1291-
12921292
make_ast_visitor!(Visitor<'ast>);
12931293

12941294
impl WalkItemKind for ItemKind {
@@ -1848,17 +1848,6 @@ pub mod mut_visit {
18481848
}
18491849
}
18501850

1851-
pub trait WalkItemKind {
1852-
fn walk(
1853-
&mut self,
1854-
id: NodeId,
1855-
span: Span,
1856-
vis: &mut Visibility,
1857-
ident: &mut Ident,
1858-
visitor: &mut impl MutVisitor
1859-
);
1860-
}
1861-
18621851
make_ast_visitor!(MutVisitor, mut);
18631852

18641853
/// Use a map-style function (`FnOnce(T) -> T`) to overwrite a `&mut T`. Useful
@@ -2272,13 +2261,13 @@ pub mod mut_visit {
22722261
}
22732262

22742263
impl WalkItemKind for ItemKind {
2275-
fn walk(
2264+
fn walk<V: MutVisitor>(
22762265
&mut self,
22772266
id: NodeId,
22782267
span: Span,
22792268
vis: &mut Visibility,
22802269
ident: &mut Ident,
2281-
visitor: &mut impl MutVisitor
2270+
visitor: &mut V
22822271
) {
22832272
match self {
22842273
ItemKind::ExternCrate(_orig_name) => {}
@@ -2520,13 +2509,14 @@ pub mod mut_visit {
25202509

25212510

25222511
impl WalkItemKind for ForeignItemKind {
2523-
fn walk(
2512+
fn walk<V: MutVisitor>(
25242513
&mut self,
25252514
id: NodeId,
25262515
span: Span,
25272516
vis: &mut Visibility,
25282517
ident: &mut Ident,
2529-
visitor: &mut impl MutVisitor) {
2518+
visitor: &mut V
2519+
) {
25302520
match self {
25312521
ForeignItemKind::Static(box StaticItem { ty, mutability: _, expr, safety: _ }) => {
25322522
visitor.visit_ty(ty);

0 commit comments

Comments
 (0)