@@ -222,7 +222,6 @@ macro_rules! make_ast_visitor {
222
222
// field access version will continue working and it would be easy to
223
223
// forget to add handling for it.
224
224
225
- make_visit!{ CoroutineKind ; visit_coroutine_kind, walk_coroutine_kind}
226
225
make_visit!{ FnHeader ; visit_fn_header, walk_fn_header}
227
226
make_visit!{ MetaItem ; visit_meta_item, walk_meta_item}
228
227
make_visit!{ MetaItemInner ; visit_meta_list_item, walk_meta_list_item}
@@ -330,6 +329,7 @@ macro_rules! make_ast_visitor {
330
329
make_visit!{ Block ; visit_block, walk_block}
331
330
make_visit!{ CaptureBy ; visit_capture_by, walk_capture_by}
332
331
make_visit!{ ClosureBinder ; visit_closure_binder, walk_closure_binder}
332
+ make_visit!{ CoroutineKind ; visit_coroutine_kind, walk_coroutine_kind}
333
333
make_visit!{ Crate ; visit_crate, walk_crate}
334
334
make_visit!{ EnumDef ; visit_enum_def, walk_enum_def}
335
335
make_visit!{ ExprField ; visit_expr_field, walk_expr_field}
@@ -531,6 +531,22 @@ macro_rules! make_ast_visitor {
531
531
return_result!( V )
532
532
}
533
533
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
+
534
550
pub fn walk_crate<$( $lt, ) ? V : $trait$( <$lt>) ?>(
535
551
vis: & mut V ,
536
552
krate: ref_t!( Crate )
@@ -2092,18 +2108,6 @@ pub mod mut_visit {
2092
2108
}
2093
2109
}
2094
2110
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
-
2107
2111
fn walk_fn < T : MutVisitor > ( vis : & mut T , kind : FnKind < ' _ > ) {
2108
2112
match kind {
2109
2113
FnKind :: Fn ( _, _, FnSig { header, decl, span } , _, generics, body) => {
0 commit comments