@@ -886,6 +886,59 @@ macro_rules! make_ast_visitor {
886
886
}
887
887
return_result!( V )
888
888
}
889
+
890
+ pub fn walk_pat<$( $lt, ) ? V : $trait$( <$lt>) ?>(
891
+ vis: & mut V ,
892
+ pattern: ref_t!( Pat )
893
+ ) -> result!( V ) {
894
+ let Pat { id, kind, span, tokens } = pattern;
895
+ try_v!( visit_id!( vis, id) ) ;
896
+ match kind {
897
+ PatKind :: Err ( _guar) => { }
898
+ PatKind :: Wild | PatKind :: Rest | PatKind :: Never => { }
899
+ PatKind :: Ident ( _binding_mode, ident, sub) => {
900
+ try_v!( vis. visit_ident( ident) ) ;
901
+ visit_o!( sub, |sub| vis. visit_pat( sub) ) ;
902
+ }
903
+ PatKind :: Lit ( e) => {
904
+ try_v!( vis. visit_expr( e) ) ;
905
+ }
906
+ PatKind :: TupleStruct ( qself, path, elems) => {
907
+ try_v!( vis. visit_qself( qself) ) ;
908
+ try_v!( vis. visit_path( path, * id) ) ;
909
+ visit_list!( vis, visit_pat, elems) ;
910
+ }
911
+ PatKind :: Path ( qself, path) => {
912
+ try_v!( vis. visit_qself( qself) ) ;
913
+ try_v!( vis. visit_path( path, * id) ) ;
914
+ }
915
+ PatKind :: Struct ( qself, path, fields, _etc) => {
916
+ try_v!( vis. visit_qself( qself) ) ;
917
+ try_v!( vis. visit_path( path, * id) ) ;
918
+ visit_list!( vis, visit_pat_field, flat_map_pat_field, fields) ;
919
+ }
920
+ PatKind :: Box ( inner) | PatKind :: Deref ( inner) | PatKind :: Paren ( inner) => {
921
+ try_v!( vis. visit_pat( inner) ) ;
922
+ }
923
+ PatKind :: Ref ( inner, _mutbl) => {
924
+ try_v!( vis. visit_pat( inner) ) ;
925
+ }
926
+ PatKind :: Range ( e1, e2, Spanned { span, node: _ } ) => {
927
+ visit_o!( e1, |e| vis. visit_expr( e) ) ;
928
+ visit_o!( e2, |e| vis. visit_expr( e) ) ;
929
+ try_v!( visit_span!( vis, span) ) ;
930
+ }
931
+ PatKind :: Tuple ( elems) | PatKind :: Slice ( elems) | PatKind :: Or ( elems) => {
932
+ visit_list!( vis, visit_pat, elems) ;
933
+ }
934
+ PatKind :: MacCall ( mac) => {
935
+ try_v!( vis. visit_mac_call( mac) ) ;
936
+ }
937
+ }
938
+ visit_lazy_tts!( vis, tokens) ;
939
+ try_v!( visit_span!( vis, span) ) ;
940
+ return_result!( V )
941
+ }
889
942
}
890
943
}
891
944
@@ -1201,48 +1254,6 @@ pub mod visit {
1201
1254
V :: Result :: output ( )
1202
1255
}
1203
1256
1204
- pub fn walk_pat < ' a , V : Visitor < ' a > > ( visitor : & mut V , pattern : & ' a Pat ) -> V :: Result {
1205
- let Pat { id, kind, span : _, tokens : _ } = pattern;
1206
- match kind {
1207
- PatKind :: TupleStruct ( opt_qself, path, elems) => {
1208
- try_visit ! ( visitor. visit_qself( opt_qself) ) ;
1209
- try_visit ! ( visitor. visit_path( path, * id) ) ;
1210
- walk_list ! ( visitor, visit_pat, elems) ;
1211
- }
1212
- PatKind :: Path ( opt_qself, path) => {
1213
- try_visit ! ( visitor. visit_qself( opt_qself) ) ;
1214
- try_visit ! ( visitor. visit_path( path, * id) )
1215
- }
1216
- PatKind :: Struct ( opt_qself, path, fields, _rest) => {
1217
- try_visit ! ( visitor. visit_qself( opt_qself) ) ;
1218
- try_visit ! ( visitor. visit_path( path, * id) ) ;
1219
- walk_list ! ( visitor, visit_pat_field, fields) ;
1220
- }
1221
- PatKind :: Box ( subpattern) | PatKind :: Deref ( subpattern) | PatKind :: Paren ( subpattern) => {
1222
- try_visit ! ( visitor. visit_pat( subpattern) ) ;
1223
- }
1224
- PatKind :: Ref ( subpattern, _ /*mutbl*/ ) => {
1225
- try_visit ! ( visitor. visit_pat( subpattern) ) ;
1226
- }
1227
- PatKind :: Ident ( _bmode, ident, optional_subpattern) => {
1228
- try_visit ! ( visitor. visit_ident( ident) ) ;
1229
- visit_opt ! ( visitor, visit_pat, optional_subpattern) ;
1230
- }
1231
- PatKind :: Lit ( expression) => try_visit ! ( visitor. visit_expr( expression) ) ,
1232
- PatKind :: Range ( lower_bound, upper_bound, _end) => {
1233
- visit_opt ! ( visitor, visit_expr, lower_bound) ;
1234
- visit_opt ! ( visitor, visit_expr, upper_bound) ;
1235
- }
1236
- PatKind :: Wild | PatKind :: Rest | PatKind :: Never => { }
1237
- PatKind :: Err ( _guar) => { }
1238
- PatKind :: Tuple ( elems) | PatKind :: Slice ( elems) | PatKind :: Or ( elems) => {
1239
- walk_list ! ( visitor, visit_pat, elems) ;
1240
- }
1241
- PatKind :: MacCall ( mac) => try_visit ! ( visitor. visit_mac_call( mac) ) ,
1242
- }
1243
- V :: Result :: output ( )
1244
- }
1245
-
1246
1257
impl WalkItemKind for ForeignItemKind {
1247
1258
fn walk < ' a , V : Visitor < ' a > > (
1248
1259
& ' a self ,
@@ -2436,49 +2447,6 @@ pub mod mut_visit {
2436
2447
}
2437
2448
}
2438
2449
2439
- pub fn walk_pat < T : MutVisitor > ( vis : & mut T , pat : & mut P < Pat > ) {
2440
- let Pat { id, kind, span, tokens } = pat. deref_mut ( ) ;
2441
- vis. visit_id ( id) ;
2442
- match kind {
2443
- PatKind :: Err ( _guar) => { }
2444
- PatKind :: Wild | PatKind :: Rest | PatKind :: Never => { }
2445
- PatKind :: Ident ( _binding_mode, ident, sub) => {
2446
- vis. visit_ident ( ident) ;
2447
- visit_opt ( sub, |sub| vis. visit_pat ( sub) ) ;
2448
- }
2449
- PatKind :: Lit ( e) => vis. visit_expr ( e) ,
2450
- PatKind :: TupleStruct ( qself, path, elems) => {
2451
- vis. visit_qself ( qself) ;
2452
- vis. visit_path ( path, * id) ;
2453
- visit_thin_vec ( elems, |elem| vis. visit_pat ( elem) ) ;
2454
- }
2455
- PatKind :: Path ( qself, path) => {
2456
- vis. visit_qself ( qself) ;
2457
- vis. visit_path ( path, * id) ;
2458
- }
2459
- PatKind :: Struct ( qself, path, fields, _etc) => {
2460
- vis. visit_qself ( qself) ;
2461
- vis. visit_path ( path, * id) ;
2462
- fields. flat_map_in_place ( |field| vis. flat_map_pat_field ( field) ) ;
2463
- }
2464
- PatKind :: Box ( inner) => vis. visit_pat ( inner) ,
2465
- PatKind :: Deref ( inner) => vis. visit_pat ( inner) ,
2466
- PatKind :: Ref ( inner, _mutbl) => vis. visit_pat ( inner) ,
2467
- PatKind :: Range ( e1, e2, Spanned { span : _, node : _ } ) => {
2468
- visit_opt ( e1, |e| vis. visit_expr ( e) ) ;
2469
- visit_opt ( e2, |e| vis. visit_expr ( e) ) ;
2470
- vis. visit_span ( span) ;
2471
- }
2472
- PatKind :: Tuple ( elems) | PatKind :: Slice ( elems) | PatKind :: Or ( elems) => {
2473
- visit_thin_vec ( elems, |elem| vis. visit_pat ( elem) )
2474
- }
2475
- PatKind :: Paren ( inner) => vis. visit_pat ( inner) ,
2476
- PatKind :: MacCall ( mac) => vis. visit_mac_call ( mac) ,
2477
- }
2478
- visit_lazy_tts ( vis, tokens) ;
2479
- vis. visit_span ( span) ;
2480
- }
2481
-
2482
2450
fn walk_inline_asm_sym < T : MutVisitor > (
2483
2451
vis : & mut T ,
2484
2452
InlineAsmSym { id, qself, path } : & mut InlineAsmSym ,
0 commit comments