Skip to content

Commit 5acc907

Browse files
committed
Unify walk_assoc_item_constraint
1 parent 243b669 commit 5acc907

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
@@ -1228,6 +1228,33 @@ macro_rules! make_ast_visitor {
12281228
return_result!(V)
12291229
}
12301230

1231+
pub fn walk_assoc_item_constraint<$($lt,)? V: $trait$(<$lt>)?>(
1232+
vis: &mut V,
1233+
constraint: ref_t!(AssocItemConstraint)
1234+
) -> result!(V) {
1235+
let AssocItemConstraint { id, ident, gen_args, kind, span } = constraint;
1236+
try_v!(visit_id!(vis, id));
1237+
try_v!(visit_ident!(vis, ident));
1238+
visit_o!(gen_args, |gen_args| vis.visit_generic_args(gen_args));
1239+
match kind {
1240+
AssocItemConstraintKind::Equality { term } => {
1241+
match term {
1242+
Term::Ty(ty) => {
1243+
try_v!(vis.visit_ty(ty));
1244+
}
1245+
Term::Const(c) => {
1246+
try_v!(vis.visit_anon_const(c));
1247+
}
1248+
}
1249+
}
1250+
AssocItemConstraintKind::Bound { bounds } => {
1251+
visit_list!(vis, visit_param_bound, bounds; BoundKind::Bound);
1252+
}
1253+
}
1254+
try_v!(visit_span!(vis, span));
1255+
return_result!(V)
1256+
}
1257+
12311258
derive_copy_clone!{
12321259
#[derive(Debug)]
12331260
pub enum FnKind<'a> {
@@ -1563,25 +1590,6 @@ pub mod visit {
15631590
V::Result::output()
15641591
}
15651592

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

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

0 commit comments

Comments
 (0)