Skip to content

Commit 4673554

Browse files
committed
Unify walk_assoc_item_constraint
1 parent 28ac585 commit 4673554

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
@@ -400,6 +400,33 @@ macro_rules! make_ast_visitor {
400400
return_result!(V)
401401
}
402402

403+
pub fn walk_assoc_item_constraint<$($lt,)? V: $trait$(<$lt>)?>(
404+
vis: &mut V,
405+
constraint: ref_t!(AssocItemConstraint)
406+
) -> result!(V) {
407+
let AssocItemConstraint { id, ident, gen_args, kind, span } = constraint;
408+
try_v!(visit_id!(vis, id));
409+
try_v!(vis.visit_ident(ident));
410+
visit_o!(gen_args, |gen_args| vis.visit_generic_args(gen_args));
411+
match kind {
412+
AssocItemConstraintKind::Equality { term } => {
413+
match term {
414+
Term::Ty(ty) => {
415+
try_v!(vis.visit_ty(ty));
416+
}
417+
Term::Const(c) => {
418+
try_v!(vis.visit_anon_const(c));
419+
}
420+
}
421+
}
422+
AssocItemConstraintKind::Bound { bounds } => {
423+
visit_list!(vis, visit_param_bound, bounds; BoundKind::Bound);
424+
}
425+
}
426+
try_v!(visit_span!(vis, span));
427+
return_result!(V)
428+
}
429+
403430
pub fn walk_attr_args<$($lt,)? V: $trait$(<$lt>)?>(
404431
vis: &mut V,
405432
args: ref_t!(AttrArgs)
@@ -1358,25 +1385,6 @@ pub mod visit {
13581385
walk_assoc_item(visitor, item, AssocCtxt::Trait /*ignored*/)
13591386
}
13601387

1361-
pub fn walk_assoc_item_constraint<'a, V: Visitor<'a>>(
1362-
visitor: &mut V,
1363-
constraint: &'a AssocItemConstraint,
1364-
) -> V::Result {
1365-
let AssocItemConstraint { id: _, ident, gen_args, kind, span: _ } = constraint;
1366-
try_visit!(visitor.visit_ident(ident));
1367-
visit_opt!(visitor, visit_generic_args, gen_args);
1368-
match kind {
1369-
AssocItemConstraintKind::Equality { term } => match term {
1370-
Term::Ty(ty) => try_visit!(visitor.visit_ty(ty)),
1371-
Term::Const(c) => try_visit!(visitor.visit_anon_const(c)),
1372-
},
1373-
AssocItemConstraintKind::Bound { bounds } => {
1374-
walk_list!(visitor, visit_param_bound, bounds, BoundKind::Bound);
1375-
}
1376-
}
1377-
V::Result::output()
1378-
}
1379-
13801388
impl WalkItemKind for ForeignItemKind {
13811389
fn walk<'a, V: Visitor<'a>>(
13821390
&'a self,
@@ -1833,27 +1841,6 @@ pub mod mut_visit {
18331841
smallvec![arm]
18341842
}
18351843

1836-
fn walk_assoc_item_constraint<T: MutVisitor>(
1837-
vis: &mut T,
1838-
AssocItemConstraint { id, ident, gen_args, kind, span }: &mut AssocItemConstraint,
1839-
) {
1840-
vis.visit_id(id);
1841-
vis.visit_ident(ident);
1842-
if let Some(gen_args) = gen_args {
1843-
vis.visit_generic_args(gen_args);
1844-
}
1845-
match kind {
1846-
AssocItemConstraintKind::Equality { term } => match term {
1847-
Term::Ty(ty) => vis.visit_ty(ty),
1848-
Term::Const(c) => vis.visit_anon_const(c),
1849-
},
1850-
AssocItemConstraintKind::Bound { bounds } => {
1851-
visit_bounds(vis, bounds, BoundKind::Bound)
1852-
}
1853-
}
1854-
vis.visit_span(span);
1855-
}
1856-
18571844
fn walk_foreign_mod<T: MutVisitor>(vis: &mut T, foreign_mod: &mut ForeignMod) {
18581845
let ForeignMod { safety, abi: _, items } = foreign_mod;
18591846
vis.visit_safety(safety);

0 commit comments

Comments
 (0)