@@ -253,34 +253,10 @@ macro_rules! make_ast_visitor {
253253 make_visit!{ MetaItem ; visit_meta_item, walk_meta_item}
254254 make_visit!{ MetaItemInner ; visit_meta_list_item, walk_meta_list_item}
255255
256- fn flat_map_foreign_item( & mut self , ni: P <ForeignItem >) -> SmallVec <[ P <ForeignItem >; 1 ] > {
257- walk_flat_map_foreign_item( self , ni)
258- }
259-
260- fn flat_map_item( & mut self , i: P <Item >) -> SmallVec <[ P <Item >; 1 ] > {
261- walk_flat_map_item( self , i)
262- }
263-
264- fn flat_map_field_def( & mut self , fd: FieldDef ) -> SmallVec <[ FieldDef ; 1 ] > {
265- walk_flat_map_field_def( self , fd)
266- }
267-
268- fn flat_map_assoc_item(
269- & mut self ,
270- i: P <AssocItem >,
271- ctxt: AssocCtxt ,
272- ) -> SmallVec <[ P <AssocItem >; 1 ] > {
273- walk_flat_map_assoc_item( self , i, ctxt)
274- }
275-
276256 fn flat_map_stmt( & mut self , s: Stmt ) -> SmallVec <[ Stmt ; 1 ] > {
277257 walk_flat_map_stmt( self , s)
278258 }
279259
280- fn flat_map_arm( & mut self , arm: Arm ) -> SmallVec <[ Arm ; 1 ] > {
281- walk_flat_map_arm( self , arm)
282- }
283-
284260 /// This method is a hack to workaround unstable of `stmt_expr_attributes`.
285261 /// It can be removed once that feature is stabilized.
286262 fn visit_method_receiver_expr( & mut self , ex: & mut P <Expr >) {
@@ -291,33 +267,13 @@ macro_rules! make_ast_visitor {
291267 noop_filter_map_expr( self , e)
292268 }
293269
294- fn flat_map_variant( & mut self , v: Variant ) -> SmallVec <[ Variant ; 1 ] > {
295- walk_flat_map_variant( self , v)
296- }
297-
298- fn flat_map_param( & mut self , param: Param ) -> SmallVec <[ Param ; 1 ] > {
299- walk_flat_map_param( self , param)
300- }
301-
302- fn flat_map_generic_param( & mut self , param: GenericParam ) -> SmallVec <[ GenericParam ; 1 ] > {
303- walk_flat_map_generic_param( self , param)
304- }
305-
306- fn flat_map_expr_field( & mut self , f: ExprField ) -> SmallVec <[ ExprField ; 1 ] > {
307- walk_flat_map_expr_field( self , f)
308- }
309-
310270 fn visit_id( & mut self , _id: & mut NodeId ) {
311271 // Do nothing.
312272 }
313273
314274 fn visit_span( & mut self , _sp: & mut Span ) {
315275 // Do nothing.
316276 }
317-
318- fn flat_map_pat_field( & mut self , fp: PatField ) -> SmallVec <[ PatField ; 1 ] > {
319- walk_flat_map_pat_field( self , fp)
320- }
321277 } else {
322278 /// The result type of the `visit_*` methods. Can be either `()`,
323279 /// or `ControlFlow<T>`.
@@ -334,7 +290,7 @@ macro_rules! make_ast_visitor {
334290
335291 make_visit!{ AngleBracketedArgs ; visit_angle_bracketed_parameter_data, walk_angle_bracketed_parameter_data}
336292 make_visit!{ AnonConst ; visit_anon_const, walk_anon_const}
337- make_visit!{ Arm ; visit_arm, walk_arm}
293+ make_visit!{ Arm ; visit_arm, walk_arm, flat_map_arm , walk_flat_map_arm }
338294 make_visit!{ AssocItemConstraint ; visit_assoc_item_constraint, walk_assoc_item_constraint}
339295 make_visit!{ AttrArgs ; visit_attr_args, walk_attr_args}
340296 make_visit!{ Attribute ; visit_attribute, walk_attribute}
@@ -346,8 +302,8 @@ macro_rules! make_ast_visitor {
346302 make_visit!{ Crate ; visit_crate, walk_crate}
347303 make_visit!{ Defaultness ; visit_defaultness, walk_defaultness}
348304 make_visit!{ EnumDef ; visit_enum_def, walk_enum_def}
349- make_visit!{ ExprField ; visit_expr_field, walk_expr_field}
350- make_visit!{ FieldDef ; visit_field_def, walk_field_def}
305+ make_visit!{ ExprField ; visit_expr_field, walk_expr_field, flat_map_expr_field , walk_flat_map_expr_field }
306+ make_visit!{ FieldDef ; visit_field_def, walk_field_def, flat_map_field_def , walk_flat_map_field_def }
351307 make_visit!{ FnDecl ; visit_fn_decl, walk_fn_decl}
352308 make_visit!{ FnHeader ; visit_fn_header, walk_fn_header}
353309 make_visit!{ FnRetTy ; visit_fn_ret_ty, walk_fn_ret_ty}
@@ -356,7 +312,7 @@ macro_rules! make_ast_visitor {
356312 make_visit!{ GenericArg ; visit_generic_arg, walk_generic_arg}
357313 make_visit!{ GenericArgs ; visit_generic_args, walk_generic_args}
358314 make_visit!{ GenericBound , _ ctxt: BoundKind ; visit_param_bound, walk_param_bound}
359- make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
315+ make_visit!{ GenericParam ; visit_generic_param, walk_generic_param, flat_map_generic_param , walk_flat_map_generic_param }
360316 make_visit!{ Generics ; visit_generics, walk_generics}
361317 make_visit!{ Ident ; visit_ident, walk_ident}
362318 make_visit!{ ImplPolarity ; visit_impl_polarity, walk_impl_polarity}
@@ -369,9 +325,9 @@ macro_rules! make_ast_visitor {
369325 make_visit!{ MacroDef , _ id: NodeId ; visit_macro_def, walk_macro_def}
370326 make_visit!{ MutTy ; visit_mt, walk_mt}
371327 make_visit!{ Option <P <QSelf >>; visit_qself, walk_qself}
372- make_visit!{ Param ; visit_param, walk_param}
328+ make_visit!{ Param ; visit_param, walk_param, flat_map_param , walk_flat_map_param }
373329 make_visit!{ ParenthesizedArgs ; visit_parenthesized_parameter_data, walk_parenthesized_parameter_data}
374- make_visit!{ PatField ; visit_pat_field, walk_pat_field}
330+ make_visit!{ PatField ; visit_pat_field, walk_pat_field, flat_map_pat_field , walk_flat_map_pat_field }
375331 make_visit!{ Path , _ id: NodeId ; visit_path, walk_path}
376332 make_visit!{ PathSegment ; visit_path_segment, walk_path_segment}
377333 make_visit!{ PolyTraitRef ; visit_poly_trait_ref, walk_poly_trait_ref}
@@ -380,7 +336,7 @@ macro_rules! make_ast_visitor {
380336 make_visit!{ TraitRef ; visit_trait_ref, walk_trait_ref}
381337 make_visit!{ TyAliasWhereClauses ; visit_ty_alias_where_clauses, walk_ty_alias_where_clauses}
382338 make_visit!{ UseTree , id: NodeId , _ nested: bool ; visit_use_tree, walk_use_tree}
383- make_visit!{ Variant ; visit_variant, walk_variant}
339+ make_visit!{ Variant ; visit_variant, walk_variant, flat_map_variant , walk_flat_map_variant }
384340 make_visit!{ VariantData ; visit_variant_data, walk_variant_data}
385341 make_visit!{ Visibility ; visit_vis, walk_vis}
386342 make_visit!{ WhereClause ; visit_where_clause, walk_where_clause}
@@ -391,9 +347,9 @@ macro_rules! make_ast_visitor {
391347 make_visit!{ P !( Ty ) ; visit_ty, walk_ty}
392348
393349 // Item variants
394- make_visit!{ Item ; visit_item, walk_item}
395- make_visit!{ AssocItem , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item}
396- make_visit!{ ForeignItem ; visit_foreign_item, walk_item}
350+ make_visit!{ P ! ( Item ) ; visit_item, walk_item, flat_map_item , walk_flat_map_item }
351+ make_visit!{ P ! ( AssocItem ) , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item, flat_map_assoc_item , walk_flat_map_assoc_item }
352+ make_visit!{ P ! ( ForeignItem ) ; visit_foreign_item, walk_item, flat_map_foreign_item , walk_flat_map_foreign_item }
397353
398354 fn visit_fn( & mut self , fn_kind: FnKind !( ) , _span: Span , _id: NodeId ) -> result!( ) {
399355 walk_fn( self , fn_kind)
0 commit comments