Skip to content

Commit fafe93c

Browse files
committed
Unify walk_assoc_item_constraint
1 parent 247ee8d commit fafe93c

File tree

1 file changed

+27
-40
lines changed

1 file changed

+27
-40
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,33 @@ macro_rules! make_ast_visitor {
406406
return_result!(V)
407407
}
408408

409+
pub fn walk_assoc_item_constraint<$($lt,)? V: $trait$(<$lt>)?>(
410+
vis: &mut V,
411+
constraint: ref_t!(AssocItemConstraint)
412+
) -> result!(V) {
413+
let AssocItemConstraint { id, ident, gen_args, kind, span } = constraint;
414+
try_v!(visit_id!(vis, id));
415+
try_v!(vis.visit_ident(ident));
416+
visit_o!(gen_args, |gen_args| vis.visit_generic_args(gen_args));
417+
match kind {
418+
AssocItemConstraintKind::Equality { term } => {
419+
match term {
420+
Term::Ty(ty) => {
421+
try_v!(vis.visit_ty(ty));
422+
}
423+
Term::Const(c) => {
424+
try_v!(vis.visit_anon_const(c));
425+
}
426+
}
427+
}
428+
AssocItemConstraintKind::Bound { bounds } => {
429+
visit_list!(vis, visit_param_bound, bounds; BoundKind::Bound);
430+
}
431+
}
432+
try_v!(visit_span!(vis, span));
433+
return_result!(V)
434+
}
435+
409436
pub fn walk_attr_args<$($lt,)? V: $trait$(<$lt>)?>(
410437
vis: &mut V,
411438
args: ref_t!(AttrArgs)
@@ -1364,25 +1391,6 @@ pub mod visit {
13641391
walk_assoc_item(visitor, item, AssocCtxt::Trait /*ignored*/)
13651392
}
13661393

1367-
pub fn walk_assoc_item_constraint<'a, V: Visitor<'a>>(
1368-
visitor: &mut V,
1369-
constraint: &'a AssocItemConstraint,
1370-
) -> V::Result {
1371-
let AssocItemConstraint { id: _, ident, gen_args, kind, span: _ } = constraint;
1372-
try_visit!(visitor.visit_ident(ident));
1373-
visit_opt!(visitor, visit_generic_args, gen_args);
1374-
match kind {
1375-
AssocItemConstraintKind::Equality { term } => match term {
1376-
Term::Ty(ty) => try_visit!(visitor.visit_ty(ty)),
1377-
Term::Const(c) => try_visit!(visitor.visit_anon_const(c)),
1378-
},
1379-
AssocItemConstraintKind::Bound { bounds } => {
1380-
walk_list!(visitor, visit_param_bound, bounds, BoundKind::Bound);
1381-
}
1382-
}
1383-
V::Result::output()
1384-
}
1385-
13861394
impl WalkItemKind for ForeignItemKind {
13871395
fn walk<'a, V: Visitor<'a>>(
13881396
&'a self,
@@ -1839,27 +1847,6 @@ pub mod mut_visit {
18391847
smallvec![arm]
18401848
}
18411849

1842-
fn walk_assoc_item_constraint<T: MutVisitor>(
1843-
vis: &mut T,
1844-
AssocItemConstraint { id, ident, gen_args, kind, span }: &mut AssocItemConstraint,
1845-
) {
1846-
vis.visit_id(id);
1847-
vis.visit_ident(ident);
1848-
if let Some(gen_args) = gen_args {
1849-
vis.visit_generic_args(gen_args);
1850-
}
1851-
match kind {
1852-
AssocItemConstraintKind::Equality { term } => match term {
1853-
Term::Ty(ty) => vis.visit_ty(ty),
1854-
Term::Const(c) => vis.visit_anon_const(c),
1855-
},
1856-
AssocItemConstraintKind::Bound { bounds } => {
1857-
visit_bounds(vis, bounds, BoundKind::Bound)
1858-
}
1859-
}
1860-
vis.visit_span(span);
1861-
}
1862-
18631850
fn walk_foreign_mod<T: MutVisitor>(vis: &mut T, foreign_mod: &mut ForeignMod) {
18641851
let ForeignMod { safety, abi: _, items } = foreign_mod;
18651852
vis.visit_safety(safety);

0 commit comments

Comments
 (0)