@@ -886,6 +886,59 @@ macro_rules! make_ast_visitor {
886886 }
887887 return_result!( V )
888888 }
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+ }
889942 }
890943}
891944
@@ -1201,48 +1254,6 @@ pub mod visit {
12011254 V :: Result :: output ( )
12021255 }
12031256
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-
12461257 impl WalkItemKind for ForeignItemKind {
12471258 fn walk < ' a , V : Visitor < ' a > > (
12481259 & ' a self ,
@@ -2436,49 +2447,6 @@ pub mod mut_visit {
24362447 }
24372448 }
24382449
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-
24822450 fn walk_inline_asm_sym < T : MutVisitor > (
24832451 vis : & mut T ,
24842452 InlineAsmSym { id, qself, path } : & mut InlineAsmSym ,
0 commit comments