Skip to content

Commit 460b387

Browse files
committed
Use make_visit! to write flat maps
1 parent e87aa48 commit 460b387

File tree

1 file changed

+10
-54
lines changed

1 file changed

+10
-54
lines changed

compiler/rustc_ast/src/visitors.rs

+10-54
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)