@@ -192,7 +192,6 @@ macro_rules! make_ast_visitor {
192
192
make_visit!{ Path ; visit_path, walk_path}
193
193
make_visit!{ PreciseCapturingArg ; visit_precise_capturing_arg, walk_precise_capturing_arg}
194
194
make_visit!{ UseTree ; visit_use_tree, walk_use_tree}
195
- make_visit!{ VariantData ; visit_variant_data, walk_variant_data}
196
195
197
196
fn flat_map_foreign_item( & mut self , ni: P <ForeignItem >) -> SmallVec <[ P <ForeignItem >; 1 ] > {
198
197
walk_flat_map_item( self , ni)
@@ -280,7 +279,6 @@ macro_rules! make_ast_visitor {
280
279
make_visit!{ Stmt ; visit_stmt, walk_stmt}
281
280
make_visit!{ UseTree , id: NodeId , _ nested: bool ; visit_use_tree, walk_use_tree}
282
281
make_visit!{ Variant ; visit_variant, walk_variant}
283
- make_visit!{ VariantData ; visit_variant_data, walk_struct_def}
284
282
285
283
/// This method is a hack to workaround unstable of `stmt_expr_attributes`.
286
284
/// It can be removed once that feature is stabilized.
@@ -336,6 +334,7 @@ macro_rules! make_ast_visitor {
336
334
make_visit!{ PathSegment ; visit_path_segment, walk_path_segment}
337
335
make_visit!{ PolyTraitRef ; visit_poly_trait_ref, walk_poly_trait_ref}
338
336
make_visit!{ TraitRef ; visit_trait_ref, walk_trait_ref}
337
+ make_visit!{ VariantData ; visit_variant_data, walk_variant_data}
339
338
make_visit!{ Visibility ; visit_vis, walk_vis}
340
339
make_visit!{ WhereClause ; visit_where_clause, walk_where_clause}
341
340
make_visit!{ WherePredicate ; visit_where_predicate, walk_where_predicate}
@@ -568,6 +567,25 @@ macro_rules! make_ast_visitor {
568
567
return_result!( V )
569
568
}
570
569
570
+ pub fn walk_variant_data<$( $lt, ) ? V : $trait$( <$lt>) ?>(
571
+ vis: & mut V ,
572
+ vdata: ref_t!( VariantData )
573
+ ) -> result!( V ) {
574
+ match vdata {
575
+ VariantData :: Struct { fields, recovered: _ } => {
576
+ visit_list!( vis, visit_field_def, flat_map_field_def, fields) ;
577
+ }
578
+ VariantData :: Tuple ( fields, id) => {
579
+ try_v!( visit_id!( vis, id) ) ;
580
+ visit_list!( vis, visit_field_def, flat_map_field_def, fields) ;
581
+ }
582
+ VariantData :: Unit ( id) => {
583
+ try_v!( visit_id!( vis, id) ) ;
584
+ }
585
+ }
586
+ return_result!( V )
587
+ }
588
+
571
589
pub fn walk_where_clause<$( $lt, ) ? V : $trait$( <$lt>) ?>(
572
590
vis: & mut V ,
573
591
wc: ref_t!( WhereClause )
@@ -1249,14 +1267,6 @@ pub mod visit {
1249
1267
V :: Result :: output ( )
1250
1268
}
1251
1269
1252
- pub fn walk_struct_def < ' a , V : Visitor < ' a > > (
1253
- visitor : & mut V ,
1254
- struct_definition : & ' a VariantData ,
1255
- ) -> V :: Result {
1256
- walk_list ! ( visitor, visit_field_def, struct_definition. fields( ) ) ;
1257
- V :: Result :: output ( )
1258
- }
1259
-
1260
1270
pub fn walk_field_def < ' a , V : Visitor < ' a > > ( visitor : & mut V , field : & ' a FieldDef ) -> V :: Result {
1261
1271
let FieldDef { attrs, id : _, span : _, vis, ident, ty, is_placeholder : _ } = field;
1262
1272
walk_list ! ( visitor, visit_attribute, attrs) ;
@@ -2171,19 +2181,6 @@ pub mod mut_visit {
2171
2181
vis. visit_span ( span_after) ;
2172
2182
}
2173
2183
2174
- fn walk_variant_data < T : MutVisitor > ( vis : & mut T , vdata : & mut VariantData ) {
2175
- match vdata {
2176
- VariantData :: Struct { fields, recovered : _ } => {
2177
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
2178
- }
2179
- VariantData :: Tuple ( fields, id) => {
2180
- vis. visit_id ( id) ;
2181
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
2182
- }
2183
- VariantData :: Unit ( id) => vis. visit_id ( id) ,
2184
- }
2185
- }
2186
-
2187
2184
fn walk_trait_ref < T : MutVisitor > ( vis : & mut T , TraitRef { path, ref_id } : & mut TraitRef ) {
2188
2185
vis. visit_id ( ref_id) ;
2189
2186
vis. visit_path ( path) ;
0 commit comments