Skip to content

Commit 67fe7fb

Browse files
committed
Unify walk_assoc_item_constraint
1 parent ae8e07b commit 67fe7fb

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
@@ -1236,6 +1236,33 @@ macro_rules! make_ast_visitor {
12361236
return_result!(V)
12371237
}
12381238

1239+
pub fn walk_assoc_item_constraint<$($lt,)? V: $trait$(<$lt>)?>(
1240+
vis: &mut V,
1241+
constraint: ref_t!(AssocItemConstraint)
1242+
) -> result!(V) {
1243+
let AssocItemConstraint { id, ident, gen_args, kind, span } = constraint;
1244+
try_v!(visit_id!(vis, id));
1245+
try_v!(visit_ident!(vis, ident));
1246+
visit_o!(gen_args, |gen_args| vis.visit_generic_args(gen_args));
1247+
match kind {
1248+
AssocItemConstraintKind::Equality { term } => {
1249+
match term {
1250+
Term::Ty(ty) => {
1251+
try_v!(vis.visit_ty(ty));
1252+
}
1253+
Term::Const(c) => {
1254+
try_v!(vis.visit_anon_const(c));
1255+
}
1256+
}
1257+
}
1258+
AssocItemConstraintKind::Bound { bounds } => {
1259+
visit_list!(vis, visit_param_bound, bounds; BoundKind::Bound);
1260+
}
1261+
}
1262+
try_v!(visit_span!(vis, span));
1263+
return_result!(V)
1264+
}
1265+
12391266
derive_copy_clone!{
12401267
#[derive(Debug)]
12411268
pub enum FnKind<'a> {
@@ -1561,25 +1588,6 @@ pub mod visit {
15611588

15621589
make_ast_visitor!(Visitor<'ast>);
15631590

1564-
pub fn walk_assoc_item_constraint<'a, V: Visitor<'a>>(
1565-
visitor: &mut V,
1566-
constraint: &'a AssocItemConstraint,
1567-
) -> V::Result {
1568-
let AssocItemConstraint { id: _, ident, gen_args, kind, span: _ } = constraint;
1569-
try_visit!(visitor.visit_ident(*ident));
1570-
visit_opt!(visitor, visit_generic_args, gen_args);
1571-
match kind {
1572-
AssocItemConstraintKind::Equality { term } => match term {
1573-
Term::Ty(ty) => try_visit!(visitor.visit_ty(ty)),
1574-
Term::Const(c) => try_visit!(visitor.visit_anon_const(c)),
1575-
},
1576-
AssocItemConstraintKind::Bound { bounds } => {
1577-
walk_list!(visitor, visit_param_bound, bounds, BoundKind::Bound);
1578-
}
1579-
}
1580-
V::Result::output()
1581-
}
1582-
15831591
pub fn walk_where_predicate<'a, V: Visitor<'a>>(
15841592
visitor: &mut V,
15851593
predicate: &'a WherePredicate,
@@ -2030,27 +2038,6 @@ pub mod mut_visit {
20302038
vis.visit_span(close);
20312039
}
20322040

2033-
fn walk_assoc_item_constraint<T: MutVisitor>(
2034-
vis: &mut T,
2035-
AssocItemConstraint { id, ident, gen_args, kind, span }: &mut AssocItemConstraint,
2036-
) {
2037-
vis.visit_id(id);
2038-
vis.visit_ident(ident);
2039-
if let Some(gen_args) = gen_args {
2040-
vis.visit_generic_args(gen_args);
2041-
}
2042-
match kind {
2043-
AssocItemConstraintKind::Equality { term } => match term {
2044-
Term::Ty(ty) => vis.visit_ty(ty),
2045-
Term::Const(c) => vis.visit_anon_const(c),
2046-
},
2047-
AssocItemConstraintKind::Bound { bounds } => {
2048-
visit_bounds(vis, bounds, BoundKind::Bound)
2049-
}
2050-
}
2051-
vis.visit_span(span);
2052-
}
2053-
20542041
fn walk_foreign_mod<T: MutVisitor>(vis: &mut T, foreign_mod: &mut ForeignMod) {
20552042
let ForeignMod { safety, abi: _, items } = foreign_mod;
20562043
visit_safety(vis, safety);

0 commit comments

Comments
 (0)