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