@@ -275,7 +275,6 @@ macro_rules! make_ast_visitor {
275
275
make_visit!{ Path , _ id: NodeId ; visit_path, walk_path}
276
276
make_visit!{ Stmt ; visit_stmt, walk_stmt}
277
277
make_visit!{ UseTree , id: NodeId , _ nested: bool ; visit_use_tree, walk_use_tree}
278
- make_visit!{ Variant ; visit_variant, walk_variant}
279
278
280
279
/// This method is a hack to workaround unstable of `stmt_expr_attributes`.
281
280
/// It can be removed once that feature is stabilized.
@@ -330,6 +329,7 @@ macro_rules! make_ast_visitor {
330
329
make_visit!{ PathSegment ; visit_path_segment, walk_path_segment}
331
330
make_visit!{ PolyTraitRef ; visit_poly_trait_ref, walk_poly_trait_ref}
332
331
make_visit!{ TraitRef ; visit_trait_ref, walk_trait_ref}
332
+ make_visit!{ Variant ; visit_variant, walk_variant}
333
333
make_visit!{ VariantData ; visit_variant_data, walk_variant_data}
334
334
make_visit!{ Visibility ; visit_vis, walk_vis}
335
335
make_visit!{ WhereClause ; visit_where_clause, walk_where_clause}
@@ -595,6 +595,21 @@ macro_rules! make_ast_visitor {
595
595
return_result!( V )
596
596
}
597
597
598
+ pub fn walk_variant<$( $lt, ) ? V : $trait$( <$lt>) ?>(
599
+ visitor: & mut V ,
600
+ variant: ref_t!( Variant )
601
+ ) -> result!( V ) {
602
+ let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder: _ } = variant;
603
+ try_v!( visit_id!( visitor, id) ) ;
604
+ visit_list!( visitor, visit_attribute, attrs) ;
605
+ try_v!( visitor. visit_vis( vis) ) ;
606
+ try_v!( visitor. visit_ident( ident) ) ;
607
+ try_v!( visitor. visit_variant_data( data) ) ;
608
+ visit_o!( disr_expr, |disr_expr| visitor. visit_variant_discr( disr_expr) ) ;
609
+ try_v!( visit_span!( visitor, span) ) ;
610
+ return_result!( V )
611
+ }
612
+
598
613
pub fn walk_variant_data<$( $lt, ) ? V : $trait$( <$lt>) ?>(
599
614
vis: & mut V ,
600
615
vdata: ref_t!( VariantData )
@@ -922,20 +937,6 @@ pub mod visit {
922
937
walk_assoc_item ( visitor, item, AssocCtxt :: Trait /*ignored*/ )
923
938
}
924
939
925
- pub fn walk_variant < ' a , V : Visitor < ' a > > ( visitor : & mut V , variant : & ' a Variant ) -> V :: Result
926
- where
927
- V : Visitor < ' a > ,
928
- {
929
- let Variant { attrs, id : _, span : _, vis, ident, data, disr_expr, is_placeholder : _ } =
930
- variant;
931
- walk_list ! ( visitor, visit_attribute, attrs) ;
932
- try_visit ! ( visitor. visit_vis( vis) ) ;
933
- try_visit ! ( visitor. visit_ident( ident) ) ;
934
- try_visit ! ( visitor. visit_variant_data( data) ) ;
935
- visit_opt ! ( visitor, visit_variant_discr, disr_expr) ;
936
- V :: Result :: output ( )
937
- }
938
-
939
940
pub fn walk_ty < ' a , V : Visitor < ' a > > ( visitor : & mut V , typ : & ' a Ty ) -> V :: Result {
940
941
let Ty { id, kind, span : _, tokens : _ } = typ;
941
942
match kind {
@@ -1797,15 +1798,7 @@ pub mod mut_visit {
1797
1798
visitor : & mut T ,
1798
1799
mut variant : Variant ,
1799
1800
) -> SmallVec < [ Variant ; 1 ] > {
1800
- let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder : _ } =
1801
- & mut variant;
1802
- visitor. visit_id ( id) ;
1803
- visit_attrs ( visitor, attrs) ;
1804
- visitor. visit_vis ( vis) ;
1805
- visitor. visit_ident ( ident) ;
1806
- visitor. visit_variant_data ( data) ;
1807
- visit_opt ( disr_expr, |disr_expr| visitor. visit_anon_const ( disr_expr) ) ;
1808
- visitor. visit_span ( span) ;
1801
+ visitor. visit_variant ( & mut variant) ;
1809
1802
smallvec ! [ variant]
1810
1803
}
1811
1804
0 commit comments