Skip to content

Commit 9b3bcd5

Browse files
committed
Unify walk_fn_decl
1 parent fe558d7 commit 9b3bcd5

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ macro_rules! make_ast_visitor {
326326
make_visit!{Attribute; visit_attribute, walk_attribute}
327327
make_visit!{ClosureBinder; visit_closure_binder, walk_closure_binder}
328328
make_visit!{Crate; visit_crate, walk_crate}
329+
make_visit!{FnDecl; visit_fn_decl, walk_fn_decl}
329330
make_visit!{FnRetTy; visit_fn_ret_ty, walk_fn_ret_ty}
330331
make_visit!{FormatArgs; visit_format_args, walk_format_args}
331332
make_visit!{GenericArg; visit_generic_arg, walk_generic_arg}
@@ -349,7 +350,6 @@ macro_rules! make_ast_visitor {
349350

350351
make_visit!{P!(Block); visit_block, walk_block}
351352
make_visit!{P!(Expr); visit_expr, walk_expr}
352-
make_visit!{P!(FnDecl); visit_fn_decl, walk_fn_decl}
353353
make_visit!{P!(Local); visit_local, walk_local}
354354
make_visit!{P!(Pat); visit_pat, walk_pat}
355355
make_visit!{P!(Ty); visit_ty, walk_ty}
@@ -394,6 +394,16 @@ macro_rules! make_ast_visitor {
394394
return_result!(V)
395395
}
396396

397+
pub fn walk_fn_decl<$($lt,)? V: $trait$(<$lt>)?>(
398+
vis: &mut V,
399+
decl: ref_t!(FnDecl)
400+
) -> result!(V) {
401+
let FnDecl { inputs, output } = decl;
402+
visit_list!(vis, visit_param, flat_map_param, inputs);
403+
try_v!(vis.visit_fn_ret_ty(output));
404+
return_result!(V)
405+
}
406+
397407
pub fn walk_fn_ret_ty<$($lt,)? V: $trait$(<$lt>)?>(
398408
vis: &mut V,
399409
ret_ty: ref_t!(FnRetTy)
@@ -1099,14 +1109,6 @@ pub mod visit {
10991109
V::Result::output()
11001110
}
11011111

1102-
pub fn walk_fn_decl<'a, V: Visitor<'a>>(
1103-
visitor: &mut V,
1104-
FnDecl { inputs, output }: &'a FnDecl,
1105-
) -> V::Result {
1106-
walk_list!(visitor, visit_param, inputs);
1107-
visitor.visit_fn_ret_ty(output)
1108-
}
1109-
11101112
pub fn walk_fn<'a, V: Visitor<'a>>(visitor: &mut V, kind: FnKind<'a>) -> V::Result {
11111113
match kind {
11121114
FnKind::Fn(_ctxt, _ident, FnSig { header, decl, span: _ }, _vis, generics, body) => {
@@ -2088,12 +2090,6 @@ pub mod mut_visit {
20882090
}
20892091
}
20902092

2091-
fn walk_fn_decl<T: MutVisitor>(vis: &mut T, decl: &mut P<FnDecl>) {
2092-
let FnDecl { inputs, output } = decl.deref_mut();
2093-
inputs.flat_map_in_place(|param| vis.flat_map_param(param));
2094-
vis.visit_fn_ret_ty(output);
2095-
}
2096-
20972093
fn walk_param_bound<T: MutVisitor>(vis: &mut T, pb: &mut GenericBound) {
20982094
match pb {
20992095
GenericBound::Trait(ty, _modifier) => vis.visit_poly_trait_ref(ty),

0 commit comments

Comments
 (0)