Skip to content

Commit ee02879

Browse files
committed
Unify {visit,walk}_coroutine_kind
1 parent 3438131 commit ee02879

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,6 @@ macro_rules! make_ast_visitor {
222222
// field access version will continue working and it would be easy to
223223
// forget to add handling for it.
224224

225-
make_visit!{CoroutineKind; visit_coroutine_kind, walk_coroutine_kind}
226225
make_visit!{FnHeader; visit_fn_header, walk_fn_header}
227226
make_visit!{MetaItem; visit_meta_item, walk_meta_item}
228227
make_visit!{MetaItemInner; visit_meta_list_item, walk_meta_list_item}
@@ -330,6 +329,7 @@ macro_rules! make_ast_visitor {
330329
make_visit!{Block; visit_block, walk_block}
331330
make_visit!{CaptureBy; visit_capture_by, walk_capture_by}
332331
make_visit!{ClosureBinder; visit_closure_binder, walk_closure_binder}
332+
make_visit!{CoroutineKind; visit_coroutine_kind, walk_coroutine_kind}
333333
make_visit!{Crate; visit_crate, walk_crate}
334334
make_visit!{EnumDef; visit_enum_def, walk_enum_def}
335335
make_visit!{ExprField; visit_expr_field, walk_expr_field}
@@ -531,6 +531,22 @@ macro_rules! make_ast_visitor {
531531
return_result!(V)
532532
}
533533

534+
pub fn walk_coroutine_kind<$($lt,)? V: $trait$(<$lt>)?>(
535+
vis: &mut V,
536+
coroutine_kind: ref_t!(CoroutineKind)
537+
) -> result!(V) {
538+
match coroutine_kind {
539+
CoroutineKind::Async { span, closure_id, return_impl_trait_id }
540+
| CoroutineKind::Gen { span, closure_id, return_impl_trait_id }
541+
| CoroutineKind::AsyncGen { span, closure_id, return_impl_trait_id } => {
542+
try_v!(visit_id!(vis, closure_id));
543+
try_v!(visit_id!(vis, return_impl_trait_id));
544+
try_v!(visit_span!(vis, span));
545+
}
546+
}
547+
return_result!(V)
548+
}
549+
534550
pub fn walk_crate<$($lt,)? V: $trait$(<$lt>)?>(
535551
vis: &mut V,
536552
krate: ref_t!(Crate)
@@ -2092,18 +2108,6 @@ pub mod mut_visit {
20922108
}
20932109
}
20942110

2095-
fn walk_coroutine_kind<T: MutVisitor>(vis: &mut T, coroutine_kind: &mut CoroutineKind) {
2096-
match coroutine_kind {
2097-
CoroutineKind::Async { span, closure_id, return_impl_trait_id }
2098-
| CoroutineKind::Gen { span, closure_id, return_impl_trait_id }
2099-
| CoroutineKind::AsyncGen { span, closure_id, return_impl_trait_id } => {
2100-
vis.visit_id(closure_id);
2101-
vis.visit_id(return_impl_trait_id);
2102-
vis.visit_span(span);
2103-
}
2104-
}
2105-
}
2106-
21072111
fn walk_fn<T: MutVisitor>(vis: &mut T, kind: FnKind<'_>) {
21082112
match kind {
21092113
FnKind::Fn(_, _, FnSig { header, decl, span }, _, generics, body) => {

0 commit comments

Comments
 (0)