@@ -55,7 +55,7 @@ pub trait MutVisitor: Sized {
55
55
// Methods in this trait have one of three forms:
56
56
//
57
57
// fn visit_t(&mut self, t: &mut T); // common
58
- // fn flat_map_t (&mut self, t: T) -> SmallVec<[T; 1]>; // rare
58
+ // fn visit_t (&mut self, t: T) -> SmallVec<[T; 1]>; // rare
59
59
// fn filter_map_t(&mut self, t: T) -> Option<T>; // rarest
60
60
//
61
61
// Any additions to this trait should happen in form of a call to a public
@@ -101,23 +101,23 @@ pub trait MutVisitor: Sized {
101
101
walk_use_tree ( self , use_tree) ;
102
102
}
103
103
104
- fn flat_map_foreign_item ( & mut self , ni : P < ForeignItem > ) -> SmallVec < [ P < ForeignItem > ; 1 ] > {
104
+ fn visit_foreign_item ( & mut self , ni : P < ForeignItem > ) -> SmallVec < [ P < ForeignItem > ; 1 ] > {
105
105
walk_item ( self , ni, None )
106
106
}
107
107
108
- fn flat_map_item ( & mut self , i : P < Item > ) -> SmallVec < [ P < Item > ; 1 ] > {
108
+ fn visit_item ( & mut self , i : P < Item > ) -> SmallVec < [ P < Item > ; 1 ] > {
109
109
walk_item ( self , i, None )
110
110
}
111
111
112
112
fn visit_fn_header ( & mut self , header : & mut FnHeader ) {
113
113
walk_fn_header ( self , header) ;
114
114
}
115
115
116
- fn flat_map_field_def ( & mut self , fd : FieldDef ) -> SmallVec < [ FieldDef ; 1 ] > {
116
+ fn visit_field_def ( & mut self , fd : FieldDef ) -> SmallVec < [ FieldDef ; 1 ] > {
117
117
walk_field_def ( self , fd)
118
118
}
119
119
120
- fn flat_map_assoc_item (
120
+ fn visit_assoc_item (
121
121
& mut self ,
122
122
i : P < AssocItem > ,
123
123
ctxt : AssocCtxt ,
@@ -146,11 +146,11 @@ pub trait MutVisitor: Sized {
146
146
walk_block ( self , b) ;
147
147
}
148
148
149
- fn flat_map_stmt ( & mut self , s : Stmt ) -> SmallVec < [ Stmt ; 1 ] > {
149
+ fn visit_stmt ( & mut self , s : Stmt ) -> SmallVec < [ Stmt ; 1 ] > {
150
150
walk_stmt ( self , s)
151
151
}
152
152
153
- fn flat_map_arm ( & mut self , arm : Arm ) -> SmallVec < [ Arm ; 1 ] > {
153
+ fn visit_arm ( & mut self , arm : Arm ) -> SmallVec < [ Arm ; 1 ] > {
154
154
walk_arm ( self , arm)
155
155
}
156
156
@@ -196,7 +196,7 @@ pub trait MutVisitor: Sized {
196
196
walk_foreign_mod ( self , nm) ;
197
197
}
198
198
199
- fn flat_map_variant ( & mut self , v : Variant ) -> SmallVec < [ Variant ; 1 ] > {
199
+ fn visit_variant ( & mut self , v : Variant ) -> SmallVec < [ Variant ; 1 ] > {
200
200
walk_variant ( self , v)
201
201
}
202
202
@@ -208,7 +208,7 @@ pub trait MutVisitor: Sized {
208
208
walk_path ( self , p) ;
209
209
}
210
210
211
- fn flat_map_path_segment ( & mut self , p : PathSegment ) -> SmallVec < [ PathSegment ; 1 ] > {
211
+ fn visit_path_segment ( & mut self , p : PathSegment ) -> SmallVec < [ PathSegment ; 1 ] > {
212
212
walk_path_segment ( p, self )
213
213
}
214
214
@@ -248,7 +248,7 @@ pub trait MutVisitor: Sized {
248
248
walk_attribute ( self , at) ;
249
249
}
250
250
251
- fn flat_map_param ( & mut self , param : Param ) -> SmallVec < [ Param ; 1 ] > {
251
+ fn visit_param ( & mut self , param : Param ) -> SmallVec < [ Param ; 1 ] > {
252
252
walk_param ( self , param)
253
253
}
254
254
@@ -268,7 +268,7 @@ pub trait MutVisitor: Sized {
268
268
walk_variant_data ( self , vdata) ;
269
269
}
270
270
271
- fn flat_map_generic_param ( & mut self , param : GenericParam ) -> SmallVec < [ GenericParam ; 1 ] > {
271
+ fn visit_generic_param ( & mut self , param : GenericParam ) -> SmallVec < [ GenericParam ; 1 ] > {
272
272
walk_generic_param ( self , param)
273
273
}
274
274
@@ -284,7 +284,7 @@ pub trait MutVisitor: Sized {
284
284
walk_mt ( self , mt) ;
285
285
}
286
286
287
- fn flat_map_expr_field ( & mut self , f : ExprField ) -> SmallVec < [ ExprField ; 1 ] > {
287
+ fn visit_expr_field ( & mut self , f : ExprField ) -> SmallVec < [ ExprField ; 1 ] > {
288
288
walk_expr_field ( self , f)
289
289
}
290
290
@@ -308,7 +308,7 @@ pub trait MutVisitor: Sized {
308
308
// Do nothing.
309
309
}
310
310
311
- fn flat_map_pat_field ( & mut self , fp : PatField ) -> SmallVec < [ PatField ; 1 ] > {
311
+ fn visit_pat_field ( & mut self , fp : PatField ) -> SmallVec < [ PatField ; 1 ] > {
312
312
walk_pat_field ( self , fp)
313
313
}
314
314
@@ -506,7 +506,7 @@ pub fn walk_ty<T: MutVisitor>(vis: &mut T, ty: &mut P<Ty>) {
506
506
TyKind :: BareFn ( bft) => {
507
507
let BareFnTy { safety, ext : _, generic_params, decl, decl_span } = bft. deref_mut ( ) ;
508
508
visit_safety ( vis, safety) ;
509
- generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
509
+ generic_params. flat_map_in_place ( |param| vis. visit_generic_param ( param) ) ;
510
510
vis. visit_fn_decl ( decl) ;
511
511
vis. visit_span ( decl_span) ;
512
512
}
@@ -535,7 +535,7 @@ pub fn walk_ty<T: MutVisitor>(vis: &mut T, ty: &mut P<Ty>) {
535
535
TyKind :: MacCall ( mac) => vis. visit_mac_call ( mac) ,
536
536
TyKind :: AnonStruct ( id, fields) | TyKind :: AnonUnion ( id, fields) => {
537
537
vis. visit_id ( id) ;
538
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
538
+ fields. flat_map_in_place ( |field| vis. visit_field_def ( field) ) ;
539
539
}
540
540
}
541
541
visit_lazy_tts ( vis, tokens) ;
@@ -545,7 +545,7 @@ pub fn walk_ty<T: MutVisitor>(vis: &mut T, ty: &mut P<Ty>) {
545
545
fn walk_foreign_mod < T : MutVisitor > ( vis : & mut T , foreign_mod : & mut ForeignMod ) {
546
546
let ForeignMod { safety, abi : _, items } = foreign_mod;
547
547
visit_safety ( vis, safety) ;
548
- items. flat_map_in_place ( |item| vis. flat_map_foreign_item ( item) ) ;
548
+ items. flat_map_in_place ( |item| vis. visit_foreign_item ( item) ) ;
549
549
}
550
550
551
551
pub fn walk_variant < T : MutVisitor > (
@@ -579,7 +579,7 @@ fn walk_path_segment<T: MutVisitor>(
579
579
}
580
580
581
581
fn walk_path < T : MutVisitor > ( vis : & mut T , Path { segments, span, tokens } : & mut Path ) {
582
- segments. flat_map_in_place ( |segment| vis. flat_map_path_segment ( segment) ) ;
582
+ segments. flat_map_in_place ( |segment| vis. visit_path_segment ( segment) ) ;
583
583
visit_lazy_tts ( vis, tokens) ;
584
584
vis. visit_span ( span) ;
585
585
}
@@ -820,13 +820,13 @@ fn visit_nonterminal<T: MutVisitor>(vis: &mut T, nt: &mut token::Nonterminal) {
820
820
// This is probably okay, because the only visitors likely to
821
821
// peek inside interpolated nodes will be renamings/markings,
822
822
// which map single items to single items.
823
- vis. flat_map_item ( item) . expect_one ( "expected visitor to produce exactly one item" )
823
+ vis. visit_item ( item) . expect_one ( "expected visitor to produce exactly one item" )
824
824
} ) ,
825
825
token:: NtBlock ( block) => vis. visit_block ( block) ,
826
826
token:: NtStmt ( stmt) => visit_clobber ( stmt, |stmt| {
827
827
// See reasoning above.
828
828
stmt. map ( |stmt| {
829
- vis. flat_map_stmt ( stmt) . expect_one ( "expected visitor to produce exactly one item" )
829
+ vis. visit_stmt ( stmt) . expect_one ( "expected visitor to produce exactly one item" )
830
830
} )
831
831
} ) ,
832
832
token:: NtPat ( pat) => vis. visit_pat ( pat) ,
@@ -881,7 +881,7 @@ fn walk_closure_binder<T: MutVisitor>(vis: &mut T, binder: &mut ClosureBinder) {
881
881
match binder {
882
882
ClosureBinder :: NotPresent => { }
883
883
ClosureBinder :: For { span : _, generic_params } => {
884
- generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
884
+ generic_params. flat_map_in_place ( |param| vis. visit_generic_param ( param) ) ;
885
885
}
886
886
}
887
887
}
@@ -920,7 +920,7 @@ fn walk_fn<T: MutVisitor>(vis: &mut T, kind: FnKind<'_>) {
920
920
921
921
fn walk_fn_decl < T : MutVisitor > ( vis : & mut T , decl : & mut P < FnDecl > ) {
922
922
let FnDecl { inputs, output } = decl. deref_mut ( ) ;
923
- inputs. flat_map_in_place ( |param| vis. flat_map_param ( param) ) ;
923
+ inputs. flat_map_in_place ( |param| vis. visit_param ( param) ) ;
924
924
walk_fn_ret_ty ( vis, output) ;
925
925
}
926
926
@@ -992,7 +992,7 @@ fn walk_lifetime<T: MutVisitor>(vis: &mut T, Lifetime { id, ident }: &mut Lifeti
992
992
993
993
fn walk_generics < T : MutVisitor > ( vis : & mut T , generics : & mut Generics ) {
994
994
let Generics { params, where_clause, span } = generics;
995
- params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
995
+ params. flat_map_in_place ( |param| vis. visit_generic_param ( param) ) ;
996
996
vis. visit_where_clause ( where_clause) ;
997
997
vis. visit_span ( span) ;
998
998
}
@@ -1015,7 +1015,7 @@ fn walk_where_predicate<T: MutVisitor>(vis: &mut T, pred: &mut WherePredicate) {
1015
1015
match pred {
1016
1016
WherePredicate :: BoundPredicate ( bp) => {
1017
1017
let WhereBoundPredicate { span, bound_generic_params, bounded_ty, bounds } = bp;
1018
- bound_generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
1018
+ bound_generic_params. flat_map_in_place ( |param| vis. visit_generic_param ( param) ) ;
1019
1019
vis. visit_ty ( bounded_ty) ;
1020
1020
visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: Bound ) ) ;
1021
1021
vis. visit_span ( span) ;
@@ -1038,11 +1038,11 @@ fn walk_where_predicate<T: MutVisitor>(vis: &mut T, pred: &mut WherePredicate) {
1038
1038
fn walk_variant_data < T : MutVisitor > ( vis : & mut T , vdata : & mut VariantData ) {
1039
1039
match vdata {
1040
1040
VariantData :: Struct { fields, recovered : _ } => {
1041
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
1041
+ fields. flat_map_in_place ( |field| vis. visit_field_def ( field) ) ;
1042
1042
}
1043
1043
VariantData :: Tuple ( fields, id) => {
1044
1044
vis. visit_id ( id) ;
1045
- fields. flat_map_in_place ( |field| vis. flat_map_field_def ( field) ) ;
1045
+ fields. flat_map_in_place ( |field| vis. visit_field_def ( field) ) ;
1046
1046
}
1047
1047
VariantData :: Unit ( id) => vis. visit_id ( id) ,
1048
1048
}
@@ -1055,7 +1055,7 @@ fn walk_trait_ref<T: MutVisitor>(vis: &mut T, TraitRef { path, ref_id }: &mut Tr
1055
1055
1056
1056
fn walk_poly_trait_ref < T : MutVisitor > ( vis : & mut T , p : & mut PolyTraitRef ) {
1057
1057
let PolyTraitRef { bound_generic_params, trait_ref, span } = p;
1058
- bound_generic_params. flat_map_in_place ( |param| vis. flat_map_generic_param ( param) ) ;
1058
+ bound_generic_params. flat_map_in_place ( |param| vis. visit_generic_param ( param) ) ;
1059
1059
vis. visit_trait_ref ( trait_ref) ;
1060
1060
vis. visit_span ( span) ;
1061
1061
}
@@ -1088,7 +1088,7 @@ fn walk_mt<T: MutVisitor>(vis: &mut T, MutTy { ty, mutbl: _ }: &mut MutTy) {
1088
1088
pub fn walk_block < T : MutVisitor > ( vis : & mut T , block : & mut P < Block > ) {
1089
1089
let Block { id, stmts, rules : _, span, tokens, could_be_bare_literal : _ } = block. deref_mut ( ) ;
1090
1090
vis. visit_id ( id) ;
1091
- stmts. flat_map_in_place ( |stmt| vis. flat_map_stmt ( stmt) ) ;
1091
+ stmts. flat_map_in_place ( |stmt| vis. visit_stmt ( stmt) ) ;
1092
1092
visit_lazy_tts ( vis, tokens) ;
1093
1093
vis. visit_span ( span) ;
1094
1094
}
@@ -1131,7 +1131,7 @@ impl NoopVisitItemKind for ItemKind {
1131
1131
visit_safety ( vis, safety) ;
1132
1132
match mod_kind {
1133
1133
ModKind :: Loaded ( items, _inline, ModSpans { inner_span, inject_use_span } ) => {
1134
- items. flat_map_in_place ( |item| vis. flat_map_item ( item) ) ;
1134
+ items. flat_map_in_place ( |item| vis. visit_item ( item) ) ;
1135
1135
vis. visit_span ( inner_span) ;
1136
1136
vis. visit_span ( inject_use_span) ;
1137
1137
}
@@ -1149,7 +1149,7 @@ impl NoopVisitItemKind for ItemKind {
1149
1149
}
1150
1150
ItemKind :: Enum ( EnumDef { variants } , generics) => {
1151
1151
vis. visit_generics ( generics) ;
1152
- variants. flat_map_in_place ( |variant| vis. flat_map_variant ( variant) ) ;
1152
+ variants. flat_map_in_place ( |variant| vis. visit_variant ( variant) ) ;
1153
1153
}
1154
1154
ItemKind :: Struct ( variant_data, generics) | ItemKind :: Union ( variant_data, generics) => {
1155
1155
vis. visit_generics ( generics) ;
@@ -1172,13 +1172,13 @@ impl NoopVisitItemKind for ItemKind {
1172
1172
visit_polarity ( vis, polarity) ;
1173
1173
visit_opt ( of_trait, |trait_ref| vis. visit_trait_ref ( trait_ref) ) ;
1174
1174
vis. visit_ty ( self_ty) ;
1175
- items. flat_map_in_place ( |item| vis. flat_map_assoc_item ( item, AssocCtxt :: Impl ) ) ;
1175
+ items. flat_map_in_place ( |item| vis. visit_assoc_item ( item, AssocCtxt :: Impl ) ) ;
1176
1176
}
1177
1177
ItemKind :: Trait ( box Trait { safety, is_auto : _, generics, bounds, items } ) => {
1178
1178
visit_safety ( vis, safety) ;
1179
1179
vis. visit_generics ( generics) ;
1180
1180
visit_bounds ( vis, bounds, BoundKind :: Bound ) ;
1181
- items. flat_map_in_place ( |item| vis. flat_map_assoc_item ( item, AssocCtxt :: Trait ) ) ;
1181
+ items. flat_map_in_place ( |item| vis. visit_assoc_item ( item, AssocCtxt :: Trait ) ) ;
1182
1182
}
1183
1183
ItemKind :: TraitAlias ( generics, bounds) => {
1184
1184
vis. visit_generics ( generics) ;
@@ -1317,7 +1317,7 @@ pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
1317
1317
let Crate { attrs, items, spans, id, is_placeholder : _ } = krate;
1318
1318
vis. visit_id ( id) ;
1319
1319
visit_attrs ( vis, attrs) ;
1320
- items. flat_map_in_place ( |item| vis. flat_map_item ( item) ) ;
1320
+ items. flat_map_in_place ( |item| vis. visit_item ( item) ) ;
1321
1321
let ModSpans { inner_span, inject_use_span } = spans;
1322
1322
vis. visit_span ( inner_span) ;
1323
1323
vis. visit_span ( inject_use_span) ;
@@ -1400,7 +1400,7 @@ pub fn walk_pat<T: MutVisitor>(vis: &mut T, pat: &mut P<Pat>) {
1400
1400
PatKind :: Struct ( qself, path, fields, _etc) => {
1401
1401
vis. visit_qself ( qself) ;
1402
1402
vis. visit_path ( path) ;
1403
- fields. flat_map_in_place ( |field| vis. flat_map_pat_field ( field) ) ;
1403
+ fields. flat_map_in_place ( |field| vis. visit_pat_field ( field) ) ;
1404
1404
}
1405
1405
PatKind :: Box ( inner) => vis. visit_pat ( inner) ,
1406
1406
PatKind :: Deref ( inner) => vis. visit_pat ( inner) ,
@@ -1551,7 +1551,7 @@ pub fn walk_expr<T: MutVisitor>(vis: &mut T, Expr { kind, id, span, attrs, token
1551
1551
}
1552
1552
ExprKind :: Match ( expr, arms, _kind) => {
1553
1553
vis. visit_expr ( expr) ;
1554
- arms. flat_map_in_place ( |arm| vis. flat_map_arm ( arm) ) ;
1554
+ arms. flat_map_in_place ( |arm| vis. visit_arm ( arm) ) ;
1555
1555
}
1556
1556
ExprKind :: Closure ( box Closure {
1557
1557
binder,
@@ -1637,7 +1637,7 @@ pub fn walk_expr<T: MutVisitor>(vis: &mut T, Expr { kind, id, span, attrs, token
1637
1637
let StructExpr { qself, path, fields, rest } = se. deref_mut ( ) ;
1638
1638
vis. visit_qself ( qself) ;
1639
1639
vis. visit_path ( path) ;
1640
- fields. flat_map_in_place ( |field| vis. flat_map_expr_field ( field) ) ;
1640
+ fields. flat_map_in_place ( |field| vis. visit_expr_field ( field) ) ;
1641
1641
match rest {
1642
1642
StructRest :: Base ( expr) => vis. visit_expr ( expr) ,
1643
1643
StructRest :: Rest ( _span) => { }
@@ -1691,7 +1691,7 @@ fn walk_stmt_kind<T: MutVisitor>(vis: &mut T, kind: StmtKind) -> SmallVec<[StmtK
1691
1691
vis. visit_local( & mut local) ;
1692
1692
local
1693
1693
} ) ] ,
1694
- StmtKind :: Item ( item) => vis. flat_map_item ( item) . into_iter ( ) . map ( StmtKind :: Item ) . collect ( ) ,
1694
+ StmtKind :: Item ( item) => vis. visit_item ( item) . into_iter ( ) . map ( StmtKind :: Item ) . collect ( ) ,
1695
1695
StmtKind :: Expr ( expr) => vis. filter_map_expr ( expr) . into_iter ( ) . map ( StmtKind :: Expr ) . collect ( ) ,
1696
1696
StmtKind :: Semi ( expr) => vis. filter_map_expr ( expr) . into_iter ( ) . map ( StmtKind :: Semi ) . collect ( ) ,
1697
1697
StmtKind :: Empty => smallvec ! [ StmtKind :: Empty ] ,
0 commit comments