@@ -197,7 +197,6 @@ macro_rules! make_ast_visitor {
197
197
make_visit!{ Path ; visit_path, walk_path}
198
198
make_visit!{ PreciseCapturingArg ; visit_precise_capturing_arg, walk_precise_capturing_arg}
199
199
make_visit!{ UseTree ; visit_use_tree, walk_use_tree}
200
- make_visit!{ VariantData ; visit_variant_data, walk_variant_data}
201
200
202
201
fn flat_map_foreign_item( & mut self , ni: P <ForeignItem >) -> SmallVec <[ P <ForeignItem >; 1 ] > {
203
202
walk_flat_map_item( self , ni)
@@ -285,7 +284,6 @@ macro_rules! make_ast_visitor {
285
284
make_visit!{ Stmt ; visit_stmt, walk_stmt}
286
285
make_visit!{ UseTree , id: NodeId , _ nested: bool ; visit_use_tree, walk_use_tree}
287
286
make_visit!{ Variant ; visit_variant, walk_variant}
288
- make_visit!{ VariantData ; visit_variant_data, walk_struct_def}
289
287
290
288
/// This method is a hack to workaround unstable of `stmt_expr_attributes`.
291
289
/// It can be removed once that feature is stabilized.
@@ -341,6 +339,7 @@ macro_rules! make_ast_visitor {
341
339
make_visit!{ PathSegment ; visit_path_segment, walk_path_segment}
342
340
make_visit!{ PolyTraitRef ; visit_poly_trait_ref, walk_poly_trait_ref}
343
341
make_visit!{ TraitRef ; visit_trait_ref, walk_trait_ref}
342
+ make_visit!{ VariantData ; visit_variant_data, walk_variant_data}
344
343
make_visit!{ Visibility ; visit_vis, walk_vis}
345
344
make_visit!{ WhereClause ; visit_where_clause, walk_where_clause}
346
345
make_visit!{ WherePredicate ; visit_where_predicate, walk_where_predicate}
@@ -573,6 +572,25 @@ macro_rules! make_ast_visitor {
573
572
return_result!( V )
574
573
}
575
574
575
+ pub fn walk_variant_data<$( $lt, ) ? V : $trait$( <$lt>) ?>(
576
+ vis: & mut V ,
577
+ vdata: ref_t!( VariantData )
578
+ ) -> result!( V ) {
579
+ match vdata {
580
+ VariantData :: Struct { fields, recovered: _ } => {
581
+ visit_list!( vis, visit_field_def, flat_map_field_def, fields) ;
582
+ }
583
+ VariantData :: Tuple ( fields, id) => {
584
+ try_v!( visit_id!( vis, id) ) ;
585
+ visit_list!( vis, visit_field_def, flat_map_field_def, fields) ;
586
+ }
587
+ VariantData :: Unit ( id) => {
588
+ try_v!( visit_id!( vis, id) ) ;
589
+ }
590
+ }
591
+ return_result!( V )
592
+ }
593
+
576
594
pub fn walk_where_clause<$( $lt, ) ? V : $trait$( <$lt>) ?>(
577
595
vis: & mut V ,
578
596
wc: ref_t!( WhereClause )
@@ -1254,14 +1272,6 @@ pub mod visit {
1254
1272
V :: Result :: output ( )
1255
1273
}
1256
1274
1257
- pub fn walk_struct_def < ' a , V : Visitor < ' a > > (
1258
- visitor : & mut V ,
1259
- struct_definition : & ' a VariantData ,
1260
- ) -> V :: Result {
1261
- walk_list ! ( visitor, visit_field_def, struct_definition. fields( ) ) ;
1262
- V :: Result :: output ( )
1263
- }
1264
-
1265
1275
pub fn walk_field_def < ' a , V : Visitor < ' a > > ( visitor : & mut V , field : & ' a FieldDef ) -> V :: Result {
1266
1276
let FieldDef { attrs, id : _, span : _, vis, ident, ty, is_placeholder : _ } = field;
1267
1277
walk_list ! ( visitor, visit_attribute, attrs) ;
@@ -2176,19 +2186,6 @@ pub mod mut_visit {
2176
2186
vis. visit_span ( span_after) ;
2177
2187
}
2178
2188
2179
- fn walk_variant_data < T : MutVisitor > ( vis : & mut T , vdata : & mut VariantData ) {
2180
- match vdata {
2181
- VariantData :: Struct { fields, recovered : _ } => {
2182
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
2183
- }
2184
- VariantData :: Tuple ( fields, id) => {
2185
- vis. visit_id ( id) ;
2186
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
2187
- }
2188
- VariantData :: Unit ( id) => vis. visit_id ( id) ,
2189
- }
2190
- }
2191
-
2192
2189
fn walk_trait_ref < T : MutVisitor > ( vis : & mut T , TraitRef { path, ref_id } : & mut TraitRef ) {
2193
2190
vis. visit_id ( ref_id) ;
2194
2191
vis. visit_path ( path) ;
0 commit comments