• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // This file is @generated by syn-internal-codegen.
2 // It is not intended for manual editing.
3 
4 #![allow(unused_variables)]
5 #![allow(clippy::needless_pass_by_ref_mut)]
6 #[cfg(any(feature = "full", feature = "derive"))]
7 use crate::punctuated::Punctuated;
8 use crate::*;
9 use proc_macro2::Span;
10 #[cfg(feature = "full")]
11 macro_rules! full {
12     ($e:expr) => {
13         $e
14     };
15 }
16 #[cfg(all(feature = "derive", not(feature = "full")))]
17 macro_rules! full {
18     ($e:expr) => {
19         unreachable!()
20     };
21 }
22 macro_rules! skip {
23     ($($tt:tt)*) => {};
24 }
25 /// Syntax tree traversal to walk a shared borrow of a syntax tree.
26 ///
27 /// See the [module documentation] for details.
28 ///
29 /// [module documentation]: self
30 pub trait Visit<'ast> {
31     #[cfg(any(feature = "derive", feature = "full"))]
visit_abi(&mut self, i: &'ast Abi)32     fn visit_abi(&mut self, i: &'ast Abi) {
33         visit_abi(self, i);
34     }
35     #[cfg(any(feature = "derive", feature = "full"))]
visit_angle_bracketed_generic_arguments( &mut self, i: &'ast AngleBracketedGenericArguments, )36     fn visit_angle_bracketed_generic_arguments(
37         &mut self,
38         i: &'ast AngleBracketedGenericArguments,
39     ) {
40         visit_angle_bracketed_generic_arguments(self, i);
41     }
42     #[cfg(feature = "full")]
visit_arm(&mut self, i: &'ast Arm)43     fn visit_arm(&mut self, i: &'ast Arm) {
44         visit_arm(self, i);
45     }
46     #[cfg(any(feature = "derive", feature = "full"))]
visit_assoc_const(&mut self, i: &'ast AssocConst)47     fn visit_assoc_const(&mut self, i: &'ast AssocConst) {
48         visit_assoc_const(self, i);
49     }
50     #[cfg(any(feature = "derive", feature = "full"))]
visit_assoc_type(&mut self, i: &'ast AssocType)51     fn visit_assoc_type(&mut self, i: &'ast AssocType) {
52         visit_assoc_type(self, i);
53     }
54     #[cfg(any(feature = "derive", feature = "full"))]
visit_attr_style(&mut self, i: &'ast AttrStyle)55     fn visit_attr_style(&mut self, i: &'ast AttrStyle) {
56         visit_attr_style(self, i);
57     }
58     #[cfg(any(feature = "derive", feature = "full"))]
visit_attribute(&mut self, i: &'ast Attribute)59     fn visit_attribute(&mut self, i: &'ast Attribute) {
60         visit_attribute(self, i);
61     }
62     #[cfg(any(feature = "derive", feature = "full"))]
visit_bare_fn_arg(&mut self, i: &'ast BareFnArg)63     fn visit_bare_fn_arg(&mut self, i: &'ast BareFnArg) {
64         visit_bare_fn_arg(self, i);
65     }
66     #[cfg(any(feature = "derive", feature = "full"))]
visit_bare_variadic(&mut self, i: &'ast BareVariadic)67     fn visit_bare_variadic(&mut self, i: &'ast BareVariadic) {
68         visit_bare_variadic(self, i);
69     }
70     #[cfg(any(feature = "derive", feature = "full"))]
visit_bin_op(&mut self, i: &'ast BinOp)71     fn visit_bin_op(&mut self, i: &'ast BinOp) {
72         visit_bin_op(self, i);
73     }
74     #[cfg(feature = "full")]
visit_block(&mut self, i: &'ast Block)75     fn visit_block(&mut self, i: &'ast Block) {
76         visit_block(self, i);
77     }
78     #[cfg(any(feature = "derive", feature = "full"))]
visit_bound_lifetimes(&mut self, i: &'ast BoundLifetimes)79     fn visit_bound_lifetimes(&mut self, i: &'ast BoundLifetimes) {
80         visit_bound_lifetimes(self, i);
81     }
82     #[cfg(any(feature = "derive", feature = "full"))]
visit_const_param(&mut self, i: &'ast ConstParam)83     fn visit_const_param(&mut self, i: &'ast ConstParam) {
84         visit_const_param(self, i);
85     }
86     #[cfg(any(feature = "derive", feature = "full"))]
visit_constraint(&mut self, i: &'ast Constraint)87     fn visit_constraint(&mut self, i: &'ast Constraint) {
88         visit_constraint(self, i);
89     }
90     #[cfg(feature = "derive")]
visit_data(&mut self, i: &'ast Data)91     fn visit_data(&mut self, i: &'ast Data) {
92         visit_data(self, i);
93     }
94     #[cfg(feature = "derive")]
visit_data_enum(&mut self, i: &'ast DataEnum)95     fn visit_data_enum(&mut self, i: &'ast DataEnum) {
96         visit_data_enum(self, i);
97     }
98     #[cfg(feature = "derive")]
visit_data_struct(&mut self, i: &'ast DataStruct)99     fn visit_data_struct(&mut self, i: &'ast DataStruct) {
100         visit_data_struct(self, i);
101     }
102     #[cfg(feature = "derive")]
visit_data_union(&mut self, i: &'ast DataUnion)103     fn visit_data_union(&mut self, i: &'ast DataUnion) {
104         visit_data_union(self, i);
105     }
106     #[cfg(feature = "derive")]
visit_derive_input(&mut self, i: &'ast DeriveInput)107     fn visit_derive_input(&mut self, i: &'ast DeriveInput) {
108         visit_derive_input(self, i);
109     }
110     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr(&mut self, i: &'ast Expr)111     fn visit_expr(&mut self, i: &'ast Expr) {
112         visit_expr(self, i);
113     }
114     #[cfg(feature = "full")]
visit_expr_array(&mut self, i: &'ast ExprArray)115     fn visit_expr_array(&mut self, i: &'ast ExprArray) {
116         visit_expr_array(self, i);
117     }
118     #[cfg(feature = "full")]
visit_expr_assign(&mut self, i: &'ast ExprAssign)119     fn visit_expr_assign(&mut self, i: &'ast ExprAssign) {
120         visit_expr_assign(self, i);
121     }
122     #[cfg(feature = "full")]
visit_expr_async(&mut self, i: &'ast ExprAsync)123     fn visit_expr_async(&mut self, i: &'ast ExprAsync) {
124         visit_expr_async(self, i);
125     }
126     #[cfg(feature = "full")]
visit_expr_await(&mut self, i: &'ast ExprAwait)127     fn visit_expr_await(&mut self, i: &'ast ExprAwait) {
128         visit_expr_await(self, i);
129     }
130     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_binary(&mut self, i: &'ast ExprBinary)131     fn visit_expr_binary(&mut self, i: &'ast ExprBinary) {
132         visit_expr_binary(self, i);
133     }
134     #[cfg(feature = "full")]
visit_expr_block(&mut self, i: &'ast ExprBlock)135     fn visit_expr_block(&mut self, i: &'ast ExprBlock) {
136         visit_expr_block(self, i);
137     }
138     #[cfg(feature = "full")]
visit_expr_break(&mut self, i: &'ast ExprBreak)139     fn visit_expr_break(&mut self, i: &'ast ExprBreak) {
140         visit_expr_break(self, i);
141     }
142     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_call(&mut self, i: &'ast ExprCall)143     fn visit_expr_call(&mut self, i: &'ast ExprCall) {
144         visit_expr_call(self, i);
145     }
146     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_cast(&mut self, i: &'ast ExprCast)147     fn visit_expr_cast(&mut self, i: &'ast ExprCast) {
148         visit_expr_cast(self, i);
149     }
150     #[cfg(feature = "full")]
visit_expr_closure(&mut self, i: &'ast ExprClosure)151     fn visit_expr_closure(&mut self, i: &'ast ExprClosure) {
152         visit_expr_closure(self, i);
153     }
154     #[cfg(feature = "full")]
visit_expr_const(&mut self, i: &'ast ExprConst)155     fn visit_expr_const(&mut self, i: &'ast ExprConst) {
156         visit_expr_const(self, i);
157     }
158     #[cfg(feature = "full")]
visit_expr_continue(&mut self, i: &'ast ExprContinue)159     fn visit_expr_continue(&mut self, i: &'ast ExprContinue) {
160         visit_expr_continue(self, i);
161     }
162     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_field(&mut self, i: &'ast ExprField)163     fn visit_expr_field(&mut self, i: &'ast ExprField) {
164         visit_expr_field(self, i);
165     }
166     #[cfg(feature = "full")]
visit_expr_for_loop(&mut self, i: &'ast ExprForLoop)167     fn visit_expr_for_loop(&mut self, i: &'ast ExprForLoop) {
168         visit_expr_for_loop(self, i);
169     }
170     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_group(&mut self, i: &'ast ExprGroup)171     fn visit_expr_group(&mut self, i: &'ast ExprGroup) {
172         visit_expr_group(self, i);
173     }
174     #[cfg(feature = "full")]
visit_expr_if(&mut self, i: &'ast ExprIf)175     fn visit_expr_if(&mut self, i: &'ast ExprIf) {
176         visit_expr_if(self, i);
177     }
178     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_index(&mut self, i: &'ast ExprIndex)179     fn visit_expr_index(&mut self, i: &'ast ExprIndex) {
180         visit_expr_index(self, i);
181     }
182     #[cfg(feature = "full")]
visit_expr_infer(&mut self, i: &'ast ExprInfer)183     fn visit_expr_infer(&mut self, i: &'ast ExprInfer) {
184         visit_expr_infer(self, i);
185     }
186     #[cfg(feature = "full")]
visit_expr_let(&mut self, i: &'ast ExprLet)187     fn visit_expr_let(&mut self, i: &'ast ExprLet) {
188         visit_expr_let(self, i);
189     }
190     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_lit(&mut self, i: &'ast ExprLit)191     fn visit_expr_lit(&mut self, i: &'ast ExprLit) {
192         visit_expr_lit(self, i);
193     }
194     #[cfg(feature = "full")]
visit_expr_loop(&mut self, i: &'ast ExprLoop)195     fn visit_expr_loop(&mut self, i: &'ast ExprLoop) {
196         visit_expr_loop(self, i);
197     }
198     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_macro(&mut self, i: &'ast ExprMacro)199     fn visit_expr_macro(&mut self, i: &'ast ExprMacro) {
200         visit_expr_macro(self, i);
201     }
202     #[cfg(feature = "full")]
visit_expr_match(&mut self, i: &'ast ExprMatch)203     fn visit_expr_match(&mut self, i: &'ast ExprMatch) {
204         visit_expr_match(self, i);
205     }
206     #[cfg(feature = "full")]
visit_expr_method_call(&mut self, i: &'ast ExprMethodCall)207     fn visit_expr_method_call(&mut self, i: &'ast ExprMethodCall) {
208         visit_expr_method_call(self, i);
209     }
210     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_paren(&mut self, i: &'ast ExprParen)211     fn visit_expr_paren(&mut self, i: &'ast ExprParen) {
212         visit_expr_paren(self, i);
213     }
214     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_path(&mut self, i: &'ast ExprPath)215     fn visit_expr_path(&mut self, i: &'ast ExprPath) {
216         visit_expr_path(self, i);
217     }
218     #[cfg(feature = "full")]
visit_expr_range(&mut self, i: &'ast ExprRange)219     fn visit_expr_range(&mut self, i: &'ast ExprRange) {
220         visit_expr_range(self, i);
221     }
222     #[cfg(feature = "full")]
visit_expr_reference(&mut self, i: &'ast ExprReference)223     fn visit_expr_reference(&mut self, i: &'ast ExprReference) {
224         visit_expr_reference(self, i);
225     }
226     #[cfg(feature = "full")]
visit_expr_repeat(&mut self, i: &'ast ExprRepeat)227     fn visit_expr_repeat(&mut self, i: &'ast ExprRepeat) {
228         visit_expr_repeat(self, i);
229     }
230     #[cfg(feature = "full")]
visit_expr_return(&mut self, i: &'ast ExprReturn)231     fn visit_expr_return(&mut self, i: &'ast ExprReturn) {
232         visit_expr_return(self, i);
233     }
234     #[cfg(feature = "full")]
visit_expr_struct(&mut self, i: &'ast ExprStruct)235     fn visit_expr_struct(&mut self, i: &'ast ExprStruct) {
236         visit_expr_struct(self, i);
237     }
238     #[cfg(feature = "full")]
visit_expr_try(&mut self, i: &'ast ExprTry)239     fn visit_expr_try(&mut self, i: &'ast ExprTry) {
240         visit_expr_try(self, i);
241     }
242     #[cfg(feature = "full")]
visit_expr_try_block(&mut self, i: &'ast ExprTryBlock)243     fn visit_expr_try_block(&mut self, i: &'ast ExprTryBlock) {
244         visit_expr_try_block(self, i);
245     }
246     #[cfg(feature = "full")]
visit_expr_tuple(&mut self, i: &'ast ExprTuple)247     fn visit_expr_tuple(&mut self, i: &'ast ExprTuple) {
248         visit_expr_tuple(self, i);
249     }
250     #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_unary(&mut self, i: &'ast ExprUnary)251     fn visit_expr_unary(&mut self, i: &'ast ExprUnary) {
252         visit_expr_unary(self, i);
253     }
254     #[cfg(feature = "full")]
visit_expr_unsafe(&mut self, i: &'ast ExprUnsafe)255     fn visit_expr_unsafe(&mut self, i: &'ast ExprUnsafe) {
256         visit_expr_unsafe(self, i);
257     }
258     #[cfg(feature = "full")]
visit_expr_while(&mut self, i: &'ast ExprWhile)259     fn visit_expr_while(&mut self, i: &'ast ExprWhile) {
260         visit_expr_while(self, i);
261     }
262     #[cfg(feature = "full")]
visit_expr_yield(&mut self, i: &'ast ExprYield)263     fn visit_expr_yield(&mut self, i: &'ast ExprYield) {
264         visit_expr_yield(self, i);
265     }
266     #[cfg(any(feature = "derive", feature = "full"))]
visit_field(&mut self, i: &'ast Field)267     fn visit_field(&mut self, i: &'ast Field) {
268         visit_field(self, i);
269     }
270     #[cfg(any(feature = "derive", feature = "full"))]
visit_field_mutability(&mut self, i: &'ast FieldMutability)271     fn visit_field_mutability(&mut self, i: &'ast FieldMutability) {
272         visit_field_mutability(self, i);
273     }
274     #[cfg(feature = "full")]
visit_field_pat(&mut self, i: &'ast FieldPat)275     fn visit_field_pat(&mut self, i: &'ast FieldPat) {
276         visit_field_pat(self, i);
277     }
278     #[cfg(feature = "full")]
visit_field_value(&mut self, i: &'ast FieldValue)279     fn visit_field_value(&mut self, i: &'ast FieldValue) {
280         visit_field_value(self, i);
281     }
282     #[cfg(any(feature = "derive", feature = "full"))]
visit_fields(&mut self, i: &'ast Fields)283     fn visit_fields(&mut self, i: &'ast Fields) {
284         visit_fields(self, i);
285     }
286     #[cfg(any(feature = "derive", feature = "full"))]
visit_fields_named(&mut self, i: &'ast FieldsNamed)287     fn visit_fields_named(&mut self, i: &'ast FieldsNamed) {
288         visit_fields_named(self, i);
289     }
290     #[cfg(any(feature = "derive", feature = "full"))]
visit_fields_unnamed(&mut self, i: &'ast FieldsUnnamed)291     fn visit_fields_unnamed(&mut self, i: &'ast FieldsUnnamed) {
292         visit_fields_unnamed(self, i);
293     }
294     #[cfg(feature = "full")]
visit_file(&mut self, i: &'ast File)295     fn visit_file(&mut self, i: &'ast File) {
296         visit_file(self, i);
297     }
298     #[cfg(feature = "full")]
visit_fn_arg(&mut self, i: &'ast FnArg)299     fn visit_fn_arg(&mut self, i: &'ast FnArg) {
300         visit_fn_arg(self, i);
301     }
302     #[cfg(feature = "full")]
visit_foreign_item(&mut self, i: &'ast ForeignItem)303     fn visit_foreign_item(&mut self, i: &'ast ForeignItem) {
304         visit_foreign_item(self, i);
305     }
306     #[cfg(feature = "full")]
visit_foreign_item_fn(&mut self, i: &'ast ForeignItemFn)307     fn visit_foreign_item_fn(&mut self, i: &'ast ForeignItemFn) {
308         visit_foreign_item_fn(self, i);
309     }
310     #[cfg(feature = "full")]
visit_foreign_item_macro(&mut self, i: &'ast ForeignItemMacro)311     fn visit_foreign_item_macro(&mut self, i: &'ast ForeignItemMacro) {
312         visit_foreign_item_macro(self, i);
313     }
314     #[cfg(feature = "full")]
visit_foreign_item_static(&mut self, i: &'ast ForeignItemStatic)315     fn visit_foreign_item_static(&mut self, i: &'ast ForeignItemStatic) {
316         visit_foreign_item_static(self, i);
317     }
318     #[cfg(feature = "full")]
visit_foreign_item_type(&mut self, i: &'ast ForeignItemType)319     fn visit_foreign_item_type(&mut self, i: &'ast ForeignItemType) {
320         visit_foreign_item_type(self, i);
321     }
322     #[cfg(any(feature = "derive", feature = "full"))]
visit_generic_argument(&mut self, i: &'ast GenericArgument)323     fn visit_generic_argument(&mut self, i: &'ast GenericArgument) {
324         visit_generic_argument(self, i);
325     }
326     #[cfg(any(feature = "derive", feature = "full"))]
visit_generic_param(&mut self, i: &'ast GenericParam)327     fn visit_generic_param(&mut self, i: &'ast GenericParam) {
328         visit_generic_param(self, i);
329     }
330     #[cfg(any(feature = "derive", feature = "full"))]
visit_generics(&mut self, i: &'ast Generics)331     fn visit_generics(&mut self, i: &'ast Generics) {
332         visit_generics(self, i);
333     }
visit_ident(&mut self, i: &'ast Ident)334     fn visit_ident(&mut self, i: &'ast Ident) {
335         visit_ident(self, i);
336     }
337     #[cfg(feature = "full")]
visit_impl_item(&mut self, i: &'ast ImplItem)338     fn visit_impl_item(&mut self, i: &'ast ImplItem) {
339         visit_impl_item(self, i);
340     }
341     #[cfg(feature = "full")]
visit_impl_item_const(&mut self, i: &'ast ImplItemConst)342     fn visit_impl_item_const(&mut self, i: &'ast ImplItemConst) {
343         visit_impl_item_const(self, i);
344     }
345     #[cfg(feature = "full")]
visit_impl_item_fn(&mut self, i: &'ast ImplItemFn)346     fn visit_impl_item_fn(&mut self, i: &'ast ImplItemFn) {
347         visit_impl_item_fn(self, i);
348     }
349     #[cfg(feature = "full")]
visit_impl_item_macro(&mut self, i: &'ast ImplItemMacro)350     fn visit_impl_item_macro(&mut self, i: &'ast ImplItemMacro) {
351         visit_impl_item_macro(self, i);
352     }
353     #[cfg(feature = "full")]
visit_impl_item_type(&mut self, i: &'ast ImplItemType)354     fn visit_impl_item_type(&mut self, i: &'ast ImplItemType) {
355         visit_impl_item_type(self, i);
356     }
357     #[cfg(feature = "full")]
visit_impl_restriction(&mut self, i: &'ast ImplRestriction)358     fn visit_impl_restriction(&mut self, i: &'ast ImplRestriction) {
359         visit_impl_restriction(self, i);
360     }
361     #[cfg(any(feature = "derive", feature = "full"))]
visit_index(&mut self, i: &'ast Index)362     fn visit_index(&mut self, i: &'ast Index) {
363         visit_index(self, i);
364     }
365     #[cfg(feature = "full")]
visit_item(&mut self, i: &'ast Item)366     fn visit_item(&mut self, i: &'ast Item) {
367         visit_item(self, i);
368     }
369     #[cfg(feature = "full")]
visit_item_const(&mut self, i: &'ast ItemConst)370     fn visit_item_const(&mut self, i: &'ast ItemConst) {
371         visit_item_const(self, i);
372     }
373     #[cfg(feature = "full")]
visit_item_enum(&mut self, i: &'ast ItemEnum)374     fn visit_item_enum(&mut self, i: &'ast ItemEnum) {
375         visit_item_enum(self, i);
376     }
377     #[cfg(feature = "full")]
visit_item_extern_crate(&mut self, i: &'ast ItemExternCrate)378     fn visit_item_extern_crate(&mut self, i: &'ast ItemExternCrate) {
379         visit_item_extern_crate(self, i);
380     }
381     #[cfg(feature = "full")]
visit_item_fn(&mut self, i: &'ast ItemFn)382     fn visit_item_fn(&mut self, i: &'ast ItemFn) {
383         visit_item_fn(self, i);
384     }
385     #[cfg(feature = "full")]
visit_item_foreign_mod(&mut self, i: &'ast ItemForeignMod)386     fn visit_item_foreign_mod(&mut self, i: &'ast ItemForeignMod) {
387         visit_item_foreign_mod(self, i);
388     }
389     #[cfg(feature = "full")]
visit_item_impl(&mut self, i: &'ast ItemImpl)390     fn visit_item_impl(&mut self, i: &'ast ItemImpl) {
391         visit_item_impl(self, i);
392     }
393     #[cfg(feature = "full")]
visit_item_macro(&mut self, i: &'ast ItemMacro)394     fn visit_item_macro(&mut self, i: &'ast ItemMacro) {
395         visit_item_macro(self, i);
396     }
397     #[cfg(feature = "full")]
visit_item_mod(&mut self, i: &'ast ItemMod)398     fn visit_item_mod(&mut self, i: &'ast ItemMod) {
399         visit_item_mod(self, i);
400     }
401     #[cfg(feature = "full")]
visit_item_static(&mut self, i: &'ast ItemStatic)402     fn visit_item_static(&mut self, i: &'ast ItemStatic) {
403         visit_item_static(self, i);
404     }
405     #[cfg(feature = "full")]
visit_item_struct(&mut self, i: &'ast ItemStruct)406     fn visit_item_struct(&mut self, i: &'ast ItemStruct) {
407         visit_item_struct(self, i);
408     }
409     #[cfg(feature = "full")]
visit_item_trait(&mut self, i: &'ast ItemTrait)410     fn visit_item_trait(&mut self, i: &'ast ItemTrait) {
411         visit_item_trait(self, i);
412     }
413     #[cfg(feature = "full")]
visit_item_trait_alias(&mut self, i: &'ast ItemTraitAlias)414     fn visit_item_trait_alias(&mut self, i: &'ast ItemTraitAlias) {
415         visit_item_trait_alias(self, i);
416     }
417     #[cfg(feature = "full")]
visit_item_type(&mut self, i: &'ast ItemType)418     fn visit_item_type(&mut self, i: &'ast ItemType) {
419         visit_item_type(self, i);
420     }
421     #[cfg(feature = "full")]
visit_item_union(&mut self, i: &'ast ItemUnion)422     fn visit_item_union(&mut self, i: &'ast ItemUnion) {
423         visit_item_union(self, i);
424     }
425     #[cfg(feature = "full")]
visit_item_use(&mut self, i: &'ast ItemUse)426     fn visit_item_use(&mut self, i: &'ast ItemUse) {
427         visit_item_use(self, i);
428     }
429     #[cfg(feature = "full")]
visit_label(&mut self, i: &'ast Label)430     fn visit_label(&mut self, i: &'ast Label) {
431         visit_label(self, i);
432     }
visit_lifetime(&mut self, i: &'ast Lifetime)433     fn visit_lifetime(&mut self, i: &'ast Lifetime) {
434         visit_lifetime(self, i);
435     }
436     #[cfg(any(feature = "derive", feature = "full"))]
visit_lifetime_param(&mut self, i: &'ast LifetimeParam)437     fn visit_lifetime_param(&mut self, i: &'ast LifetimeParam) {
438         visit_lifetime_param(self, i);
439     }
visit_lit(&mut self, i: &'ast Lit)440     fn visit_lit(&mut self, i: &'ast Lit) {
441         visit_lit(self, i);
442     }
visit_lit_bool(&mut self, i: &'ast LitBool)443     fn visit_lit_bool(&mut self, i: &'ast LitBool) {
444         visit_lit_bool(self, i);
445     }
visit_lit_byte(&mut self, i: &'ast LitByte)446     fn visit_lit_byte(&mut self, i: &'ast LitByte) {
447         visit_lit_byte(self, i);
448     }
visit_lit_byte_str(&mut self, i: &'ast LitByteStr)449     fn visit_lit_byte_str(&mut self, i: &'ast LitByteStr) {
450         visit_lit_byte_str(self, i);
451     }
visit_lit_char(&mut self, i: &'ast LitChar)452     fn visit_lit_char(&mut self, i: &'ast LitChar) {
453         visit_lit_char(self, i);
454     }
visit_lit_float(&mut self, i: &'ast LitFloat)455     fn visit_lit_float(&mut self, i: &'ast LitFloat) {
456         visit_lit_float(self, i);
457     }
visit_lit_int(&mut self, i: &'ast LitInt)458     fn visit_lit_int(&mut self, i: &'ast LitInt) {
459         visit_lit_int(self, i);
460     }
visit_lit_str(&mut self, i: &'ast LitStr)461     fn visit_lit_str(&mut self, i: &'ast LitStr) {
462         visit_lit_str(self, i);
463     }
464     #[cfg(feature = "full")]
visit_local(&mut self, i: &'ast Local)465     fn visit_local(&mut self, i: &'ast Local) {
466         visit_local(self, i);
467     }
468     #[cfg(feature = "full")]
visit_local_init(&mut self, i: &'ast LocalInit)469     fn visit_local_init(&mut self, i: &'ast LocalInit) {
470         visit_local_init(self, i);
471     }
472     #[cfg(any(feature = "derive", feature = "full"))]
visit_macro(&mut self, i: &'ast Macro)473     fn visit_macro(&mut self, i: &'ast Macro) {
474         visit_macro(self, i);
475     }
476     #[cfg(any(feature = "derive", feature = "full"))]
visit_macro_delimiter(&mut self, i: &'ast MacroDelimiter)477     fn visit_macro_delimiter(&mut self, i: &'ast MacroDelimiter) {
478         visit_macro_delimiter(self, i);
479     }
480     #[cfg(any(feature = "derive", feature = "full"))]
visit_member(&mut self, i: &'ast Member)481     fn visit_member(&mut self, i: &'ast Member) {
482         visit_member(self, i);
483     }
484     #[cfg(any(feature = "derive", feature = "full"))]
visit_meta(&mut self, i: &'ast Meta)485     fn visit_meta(&mut self, i: &'ast Meta) {
486         visit_meta(self, i);
487     }
488     #[cfg(any(feature = "derive", feature = "full"))]
visit_meta_list(&mut self, i: &'ast MetaList)489     fn visit_meta_list(&mut self, i: &'ast MetaList) {
490         visit_meta_list(self, i);
491     }
492     #[cfg(any(feature = "derive", feature = "full"))]
visit_meta_name_value(&mut self, i: &'ast MetaNameValue)493     fn visit_meta_name_value(&mut self, i: &'ast MetaNameValue) {
494         visit_meta_name_value(self, i);
495     }
496     #[cfg(any(feature = "derive", feature = "full"))]
visit_parenthesized_generic_arguments( &mut self, i: &'ast ParenthesizedGenericArguments, )497     fn visit_parenthesized_generic_arguments(
498         &mut self,
499         i: &'ast ParenthesizedGenericArguments,
500     ) {
501         visit_parenthesized_generic_arguments(self, i);
502     }
503     #[cfg(feature = "full")]
visit_pat(&mut self, i: &'ast Pat)504     fn visit_pat(&mut self, i: &'ast Pat) {
505         visit_pat(self, i);
506     }
507     #[cfg(feature = "full")]
visit_pat_ident(&mut self, i: &'ast PatIdent)508     fn visit_pat_ident(&mut self, i: &'ast PatIdent) {
509         visit_pat_ident(self, i);
510     }
511     #[cfg(feature = "full")]
visit_pat_or(&mut self, i: &'ast PatOr)512     fn visit_pat_or(&mut self, i: &'ast PatOr) {
513         visit_pat_or(self, i);
514     }
515     #[cfg(feature = "full")]
visit_pat_paren(&mut self, i: &'ast PatParen)516     fn visit_pat_paren(&mut self, i: &'ast PatParen) {
517         visit_pat_paren(self, i);
518     }
519     #[cfg(feature = "full")]
visit_pat_reference(&mut self, i: &'ast PatReference)520     fn visit_pat_reference(&mut self, i: &'ast PatReference) {
521         visit_pat_reference(self, i);
522     }
523     #[cfg(feature = "full")]
visit_pat_rest(&mut self, i: &'ast PatRest)524     fn visit_pat_rest(&mut self, i: &'ast PatRest) {
525         visit_pat_rest(self, i);
526     }
527     #[cfg(feature = "full")]
visit_pat_slice(&mut self, i: &'ast PatSlice)528     fn visit_pat_slice(&mut self, i: &'ast PatSlice) {
529         visit_pat_slice(self, i);
530     }
531     #[cfg(feature = "full")]
visit_pat_struct(&mut self, i: &'ast PatStruct)532     fn visit_pat_struct(&mut self, i: &'ast PatStruct) {
533         visit_pat_struct(self, i);
534     }
535     #[cfg(feature = "full")]
visit_pat_tuple(&mut self, i: &'ast PatTuple)536     fn visit_pat_tuple(&mut self, i: &'ast PatTuple) {
537         visit_pat_tuple(self, i);
538     }
539     #[cfg(feature = "full")]
visit_pat_tuple_struct(&mut self, i: &'ast PatTupleStruct)540     fn visit_pat_tuple_struct(&mut self, i: &'ast PatTupleStruct) {
541         visit_pat_tuple_struct(self, i);
542     }
543     #[cfg(feature = "full")]
visit_pat_type(&mut self, i: &'ast PatType)544     fn visit_pat_type(&mut self, i: &'ast PatType) {
545         visit_pat_type(self, i);
546     }
547     #[cfg(feature = "full")]
visit_pat_wild(&mut self, i: &'ast PatWild)548     fn visit_pat_wild(&mut self, i: &'ast PatWild) {
549         visit_pat_wild(self, i);
550     }
551     #[cfg(any(feature = "derive", feature = "full"))]
visit_path(&mut self, i: &'ast Path)552     fn visit_path(&mut self, i: &'ast Path) {
553         visit_path(self, i);
554     }
555     #[cfg(any(feature = "derive", feature = "full"))]
visit_path_arguments(&mut self, i: &'ast PathArguments)556     fn visit_path_arguments(&mut self, i: &'ast PathArguments) {
557         visit_path_arguments(self, i);
558     }
559     #[cfg(any(feature = "derive", feature = "full"))]
visit_path_segment(&mut self, i: &'ast PathSegment)560     fn visit_path_segment(&mut self, i: &'ast PathSegment) {
561         visit_path_segment(self, i);
562     }
563     #[cfg(any(feature = "derive", feature = "full"))]
visit_predicate_lifetime(&mut self, i: &'ast PredicateLifetime)564     fn visit_predicate_lifetime(&mut self, i: &'ast PredicateLifetime) {
565         visit_predicate_lifetime(self, i);
566     }
567     #[cfg(any(feature = "derive", feature = "full"))]
visit_predicate_type(&mut self, i: &'ast PredicateType)568     fn visit_predicate_type(&mut self, i: &'ast PredicateType) {
569         visit_predicate_type(self, i);
570     }
571     #[cfg(any(feature = "derive", feature = "full"))]
visit_qself(&mut self, i: &'ast QSelf)572     fn visit_qself(&mut self, i: &'ast QSelf) {
573         visit_qself(self, i);
574     }
575     #[cfg(feature = "full")]
visit_range_limits(&mut self, i: &'ast RangeLimits)576     fn visit_range_limits(&mut self, i: &'ast RangeLimits) {
577         visit_range_limits(self, i);
578     }
579     #[cfg(feature = "full")]
visit_receiver(&mut self, i: &'ast Receiver)580     fn visit_receiver(&mut self, i: &'ast Receiver) {
581         visit_receiver(self, i);
582     }
583     #[cfg(any(feature = "derive", feature = "full"))]
visit_return_type(&mut self, i: &'ast ReturnType)584     fn visit_return_type(&mut self, i: &'ast ReturnType) {
585         visit_return_type(self, i);
586     }
587     #[cfg(feature = "full")]
visit_signature(&mut self, i: &'ast Signature)588     fn visit_signature(&mut self, i: &'ast Signature) {
589         visit_signature(self, i);
590     }
visit_span(&mut self, i: &Span)591     fn visit_span(&mut self, i: &Span) {
592         visit_span(self, i);
593     }
594     #[cfg(feature = "full")]
visit_static_mutability(&mut self, i: &'ast StaticMutability)595     fn visit_static_mutability(&mut self, i: &'ast StaticMutability) {
596         visit_static_mutability(self, i);
597     }
598     #[cfg(feature = "full")]
visit_stmt(&mut self, i: &'ast Stmt)599     fn visit_stmt(&mut self, i: &'ast Stmt) {
600         visit_stmt(self, i);
601     }
602     #[cfg(feature = "full")]
visit_stmt_macro(&mut self, i: &'ast StmtMacro)603     fn visit_stmt_macro(&mut self, i: &'ast StmtMacro) {
604         visit_stmt_macro(self, i);
605     }
606     #[cfg(any(feature = "derive", feature = "full"))]
visit_trait_bound(&mut self, i: &'ast TraitBound)607     fn visit_trait_bound(&mut self, i: &'ast TraitBound) {
608         visit_trait_bound(self, i);
609     }
610     #[cfg(any(feature = "derive", feature = "full"))]
visit_trait_bound_modifier(&mut self, i: &'ast TraitBoundModifier)611     fn visit_trait_bound_modifier(&mut self, i: &'ast TraitBoundModifier) {
612         visit_trait_bound_modifier(self, i);
613     }
614     #[cfg(feature = "full")]
visit_trait_item(&mut self, i: &'ast TraitItem)615     fn visit_trait_item(&mut self, i: &'ast TraitItem) {
616         visit_trait_item(self, i);
617     }
618     #[cfg(feature = "full")]
visit_trait_item_const(&mut self, i: &'ast TraitItemConst)619     fn visit_trait_item_const(&mut self, i: &'ast TraitItemConst) {
620         visit_trait_item_const(self, i);
621     }
622     #[cfg(feature = "full")]
visit_trait_item_fn(&mut self, i: &'ast TraitItemFn)623     fn visit_trait_item_fn(&mut self, i: &'ast TraitItemFn) {
624         visit_trait_item_fn(self, i);
625     }
626     #[cfg(feature = "full")]
visit_trait_item_macro(&mut self, i: &'ast TraitItemMacro)627     fn visit_trait_item_macro(&mut self, i: &'ast TraitItemMacro) {
628         visit_trait_item_macro(self, i);
629     }
630     #[cfg(feature = "full")]
visit_trait_item_type(&mut self, i: &'ast TraitItemType)631     fn visit_trait_item_type(&mut self, i: &'ast TraitItemType) {
632         visit_trait_item_type(self, i);
633     }
634     #[cfg(any(feature = "derive", feature = "full"))]
visit_type(&mut self, i: &'ast Type)635     fn visit_type(&mut self, i: &'ast Type) {
636         visit_type(self, i);
637     }
638     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_array(&mut self, i: &'ast TypeArray)639     fn visit_type_array(&mut self, i: &'ast TypeArray) {
640         visit_type_array(self, i);
641     }
642     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_bare_fn(&mut self, i: &'ast TypeBareFn)643     fn visit_type_bare_fn(&mut self, i: &'ast TypeBareFn) {
644         visit_type_bare_fn(self, i);
645     }
646     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_group(&mut self, i: &'ast TypeGroup)647     fn visit_type_group(&mut self, i: &'ast TypeGroup) {
648         visit_type_group(self, i);
649     }
650     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_impl_trait(&mut self, i: &'ast TypeImplTrait)651     fn visit_type_impl_trait(&mut self, i: &'ast TypeImplTrait) {
652         visit_type_impl_trait(self, i);
653     }
654     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_infer(&mut self, i: &'ast TypeInfer)655     fn visit_type_infer(&mut self, i: &'ast TypeInfer) {
656         visit_type_infer(self, i);
657     }
658     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_macro(&mut self, i: &'ast TypeMacro)659     fn visit_type_macro(&mut self, i: &'ast TypeMacro) {
660         visit_type_macro(self, i);
661     }
662     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_never(&mut self, i: &'ast TypeNever)663     fn visit_type_never(&mut self, i: &'ast TypeNever) {
664         visit_type_never(self, i);
665     }
666     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_param(&mut self, i: &'ast TypeParam)667     fn visit_type_param(&mut self, i: &'ast TypeParam) {
668         visit_type_param(self, i);
669     }
670     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_param_bound(&mut self, i: &'ast TypeParamBound)671     fn visit_type_param_bound(&mut self, i: &'ast TypeParamBound) {
672         visit_type_param_bound(self, i);
673     }
674     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_paren(&mut self, i: &'ast TypeParen)675     fn visit_type_paren(&mut self, i: &'ast TypeParen) {
676         visit_type_paren(self, i);
677     }
678     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_path(&mut self, i: &'ast TypePath)679     fn visit_type_path(&mut self, i: &'ast TypePath) {
680         visit_type_path(self, i);
681     }
682     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_ptr(&mut self, i: &'ast TypePtr)683     fn visit_type_ptr(&mut self, i: &'ast TypePtr) {
684         visit_type_ptr(self, i);
685     }
686     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_reference(&mut self, i: &'ast TypeReference)687     fn visit_type_reference(&mut self, i: &'ast TypeReference) {
688         visit_type_reference(self, i);
689     }
690     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_slice(&mut self, i: &'ast TypeSlice)691     fn visit_type_slice(&mut self, i: &'ast TypeSlice) {
692         visit_type_slice(self, i);
693     }
694     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_trait_object(&mut self, i: &'ast TypeTraitObject)695     fn visit_type_trait_object(&mut self, i: &'ast TypeTraitObject) {
696         visit_type_trait_object(self, i);
697     }
698     #[cfg(any(feature = "derive", feature = "full"))]
visit_type_tuple(&mut self, i: &'ast TypeTuple)699     fn visit_type_tuple(&mut self, i: &'ast TypeTuple) {
700         visit_type_tuple(self, i);
701     }
702     #[cfg(any(feature = "derive", feature = "full"))]
visit_un_op(&mut self, i: &'ast UnOp)703     fn visit_un_op(&mut self, i: &'ast UnOp) {
704         visit_un_op(self, i);
705     }
706     #[cfg(feature = "full")]
visit_use_glob(&mut self, i: &'ast UseGlob)707     fn visit_use_glob(&mut self, i: &'ast UseGlob) {
708         visit_use_glob(self, i);
709     }
710     #[cfg(feature = "full")]
visit_use_group(&mut self, i: &'ast UseGroup)711     fn visit_use_group(&mut self, i: &'ast UseGroup) {
712         visit_use_group(self, i);
713     }
714     #[cfg(feature = "full")]
visit_use_name(&mut self, i: &'ast UseName)715     fn visit_use_name(&mut self, i: &'ast UseName) {
716         visit_use_name(self, i);
717     }
718     #[cfg(feature = "full")]
visit_use_path(&mut self, i: &'ast UsePath)719     fn visit_use_path(&mut self, i: &'ast UsePath) {
720         visit_use_path(self, i);
721     }
722     #[cfg(feature = "full")]
visit_use_rename(&mut self, i: &'ast UseRename)723     fn visit_use_rename(&mut self, i: &'ast UseRename) {
724         visit_use_rename(self, i);
725     }
726     #[cfg(feature = "full")]
visit_use_tree(&mut self, i: &'ast UseTree)727     fn visit_use_tree(&mut self, i: &'ast UseTree) {
728         visit_use_tree(self, i);
729     }
730     #[cfg(feature = "full")]
visit_variadic(&mut self, i: &'ast Variadic)731     fn visit_variadic(&mut self, i: &'ast Variadic) {
732         visit_variadic(self, i);
733     }
734     #[cfg(any(feature = "derive", feature = "full"))]
visit_variant(&mut self, i: &'ast Variant)735     fn visit_variant(&mut self, i: &'ast Variant) {
736         visit_variant(self, i);
737     }
738     #[cfg(any(feature = "derive", feature = "full"))]
visit_vis_restricted(&mut self, i: &'ast VisRestricted)739     fn visit_vis_restricted(&mut self, i: &'ast VisRestricted) {
740         visit_vis_restricted(self, i);
741     }
742     #[cfg(any(feature = "derive", feature = "full"))]
visit_visibility(&mut self, i: &'ast Visibility)743     fn visit_visibility(&mut self, i: &'ast Visibility) {
744         visit_visibility(self, i);
745     }
746     #[cfg(any(feature = "derive", feature = "full"))]
visit_where_clause(&mut self, i: &'ast WhereClause)747     fn visit_where_clause(&mut self, i: &'ast WhereClause) {
748         visit_where_clause(self, i);
749     }
750     #[cfg(any(feature = "derive", feature = "full"))]
visit_where_predicate(&mut self, i: &'ast WherePredicate)751     fn visit_where_predicate(&mut self, i: &'ast WherePredicate) {
752         visit_where_predicate(self, i);
753     }
754 }
755 #[cfg(any(feature = "derive", feature = "full"))]
visit_abi<'ast, V>(v: &mut V, node: &'ast Abi) where V: Visit<'ast> + ?Sized,756 pub fn visit_abi<'ast, V>(v: &mut V, node: &'ast Abi)
757 where
758     V: Visit<'ast> + ?Sized,
759 {
760     skip!(node.extern_token);
761     if let Some(it) = &node.name {
762         v.visit_lit_str(it);
763     }
764 }
765 #[cfg(any(feature = "derive", feature = "full"))]
visit_angle_bracketed_generic_arguments<'ast, V>( v: &mut V, node: &'ast AngleBracketedGenericArguments, ) where V: Visit<'ast> + ?Sized,766 pub fn visit_angle_bracketed_generic_arguments<'ast, V>(
767     v: &mut V,
768     node: &'ast AngleBracketedGenericArguments,
769 )
770 where
771     V: Visit<'ast> + ?Sized,
772 {
773     skip!(node.colon2_token);
774     skip!(node.lt_token);
775     for el in Punctuated::pairs(&node.args) {
776         let it = el.value();
777         v.visit_generic_argument(it);
778     }
779     skip!(node.gt_token);
780 }
781 #[cfg(feature = "full")]
visit_arm<'ast, V>(v: &mut V, node: &'ast Arm) where V: Visit<'ast> + ?Sized,782 pub fn visit_arm<'ast, V>(v: &mut V, node: &'ast Arm)
783 where
784     V: Visit<'ast> + ?Sized,
785 {
786     for it in &node.attrs {
787         v.visit_attribute(it);
788     }
789     v.visit_pat(&node.pat);
790     if let Some(it) = &node.guard {
791         skip!((it).0);
792         v.visit_expr(&*(it).1);
793     }
794     skip!(node.fat_arrow_token);
795     v.visit_expr(&*node.body);
796     skip!(node.comma);
797 }
798 #[cfg(any(feature = "derive", feature = "full"))]
visit_assoc_const<'ast, V>(v: &mut V, node: &'ast AssocConst) where V: Visit<'ast> + ?Sized,799 pub fn visit_assoc_const<'ast, V>(v: &mut V, node: &'ast AssocConst)
800 where
801     V: Visit<'ast> + ?Sized,
802 {
803     v.visit_ident(&node.ident);
804     if let Some(it) = &node.generics {
805         v.visit_angle_bracketed_generic_arguments(it);
806     }
807     skip!(node.eq_token);
808     v.visit_expr(&node.value);
809 }
810 #[cfg(any(feature = "derive", feature = "full"))]
visit_assoc_type<'ast, V>(v: &mut V, node: &'ast AssocType) where V: Visit<'ast> + ?Sized,811 pub fn visit_assoc_type<'ast, V>(v: &mut V, node: &'ast AssocType)
812 where
813     V: Visit<'ast> + ?Sized,
814 {
815     v.visit_ident(&node.ident);
816     if let Some(it) = &node.generics {
817         v.visit_angle_bracketed_generic_arguments(it);
818     }
819     skip!(node.eq_token);
820     v.visit_type(&node.ty);
821 }
822 #[cfg(any(feature = "derive", feature = "full"))]
visit_attr_style<'ast, V>(v: &mut V, node: &'ast AttrStyle) where V: Visit<'ast> + ?Sized,823 pub fn visit_attr_style<'ast, V>(v: &mut V, node: &'ast AttrStyle)
824 where
825     V: Visit<'ast> + ?Sized,
826 {
827     match node {
828         AttrStyle::Outer => {}
829         AttrStyle::Inner(_binding_0) => {
830             skip!(_binding_0);
831         }
832     }
833 }
834 #[cfg(any(feature = "derive", feature = "full"))]
visit_attribute<'ast, V>(v: &mut V, node: &'ast Attribute) where V: Visit<'ast> + ?Sized,835 pub fn visit_attribute<'ast, V>(v: &mut V, node: &'ast Attribute)
836 where
837     V: Visit<'ast> + ?Sized,
838 {
839     skip!(node.pound_token);
840     v.visit_attr_style(&node.style);
841     skip!(node.bracket_token);
842     v.visit_meta(&node.meta);
843 }
844 #[cfg(any(feature = "derive", feature = "full"))]
visit_bare_fn_arg<'ast, V>(v: &mut V, node: &'ast BareFnArg) where V: Visit<'ast> + ?Sized,845 pub fn visit_bare_fn_arg<'ast, V>(v: &mut V, node: &'ast BareFnArg)
846 where
847     V: Visit<'ast> + ?Sized,
848 {
849     for it in &node.attrs {
850         v.visit_attribute(it);
851     }
852     if let Some(it) = &node.name {
853         v.visit_ident(&(it).0);
854         skip!((it).1);
855     }
856     v.visit_type(&node.ty);
857 }
858 #[cfg(any(feature = "derive", feature = "full"))]
visit_bare_variadic<'ast, V>(v: &mut V, node: &'ast BareVariadic) where V: Visit<'ast> + ?Sized,859 pub fn visit_bare_variadic<'ast, V>(v: &mut V, node: &'ast BareVariadic)
860 where
861     V: Visit<'ast> + ?Sized,
862 {
863     for it in &node.attrs {
864         v.visit_attribute(it);
865     }
866     if let Some(it) = &node.name {
867         v.visit_ident(&(it).0);
868         skip!((it).1);
869     }
870     skip!(node.dots);
871     skip!(node.comma);
872 }
873 #[cfg(any(feature = "derive", feature = "full"))]
visit_bin_op<'ast, V>(v: &mut V, node: &'ast BinOp) where V: Visit<'ast> + ?Sized,874 pub fn visit_bin_op<'ast, V>(v: &mut V, node: &'ast BinOp)
875 where
876     V: Visit<'ast> + ?Sized,
877 {
878     match node {
879         BinOp::Add(_binding_0) => {
880             skip!(_binding_0);
881         }
882         BinOp::Sub(_binding_0) => {
883             skip!(_binding_0);
884         }
885         BinOp::Mul(_binding_0) => {
886             skip!(_binding_0);
887         }
888         BinOp::Div(_binding_0) => {
889             skip!(_binding_0);
890         }
891         BinOp::Rem(_binding_0) => {
892             skip!(_binding_0);
893         }
894         BinOp::And(_binding_0) => {
895             skip!(_binding_0);
896         }
897         BinOp::Or(_binding_0) => {
898             skip!(_binding_0);
899         }
900         BinOp::BitXor(_binding_0) => {
901             skip!(_binding_0);
902         }
903         BinOp::BitAnd(_binding_0) => {
904             skip!(_binding_0);
905         }
906         BinOp::BitOr(_binding_0) => {
907             skip!(_binding_0);
908         }
909         BinOp::Shl(_binding_0) => {
910             skip!(_binding_0);
911         }
912         BinOp::Shr(_binding_0) => {
913             skip!(_binding_0);
914         }
915         BinOp::Eq(_binding_0) => {
916             skip!(_binding_0);
917         }
918         BinOp::Lt(_binding_0) => {
919             skip!(_binding_0);
920         }
921         BinOp::Le(_binding_0) => {
922             skip!(_binding_0);
923         }
924         BinOp::Ne(_binding_0) => {
925             skip!(_binding_0);
926         }
927         BinOp::Ge(_binding_0) => {
928             skip!(_binding_0);
929         }
930         BinOp::Gt(_binding_0) => {
931             skip!(_binding_0);
932         }
933         BinOp::AddAssign(_binding_0) => {
934             skip!(_binding_0);
935         }
936         BinOp::SubAssign(_binding_0) => {
937             skip!(_binding_0);
938         }
939         BinOp::MulAssign(_binding_0) => {
940             skip!(_binding_0);
941         }
942         BinOp::DivAssign(_binding_0) => {
943             skip!(_binding_0);
944         }
945         BinOp::RemAssign(_binding_0) => {
946             skip!(_binding_0);
947         }
948         BinOp::BitXorAssign(_binding_0) => {
949             skip!(_binding_0);
950         }
951         BinOp::BitAndAssign(_binding_0) => {
952             skip!(_binding_0);
953         }
954         BinOp::BitOrAssign(_binding_0) => {
955             skip!(_binding_0);
956         }
957         BinOp::ShlAssign(_binding_0) => {
958             skip!(_binding_0);
959         }
960         BinOp::ShrAssign(_binding_0) => {
961             skip!(_binding_0);
962         }
963     }
964 }
965 #[cfg(feature = "full")]
visit_block<'ast, V>(v: &mut V, node: &'ast Block) where V: Visit<'ast> + ?Sized,966 pub fn visit_block<'ast, V>(v: &mut V, node: &'ast Block)
967 where
968     V: Visit<'ast> + ?Sized,
969 {
970     skip!(node.brace_token);
971     for it in &node.stmts {
972         v.visit_stmt(it);
973     }
974 }
975 #[cfg(any(feature = "derive", feature = "full"))]
visit_bound_lifetimes<'ast, V>(v: &mut V, node: &'ast BoundLifetimes) where V: Visit<'ast> + ?Sized,976 pub fn visit_bound_lifetimes<'ast, V>(v: &mut V, node: &'ast BoundLifetimes)
977 where
978     V: Visit<'ast> + ?Sized,
979 {
980     skip!(node.for_token);
981     skip!(node.lt_token);
982     for el in Punctuated::pairs(&node.lifetimes) {
983         let it = el.value();
984         v.visit_generic_param(it);
985     }
986     skip!(node.gt_token);
987 }
988 #[cfg(any(feature = "derive", feature = "full"))]
visit_const_param<'ast, V>(v: &mut V, node: &'ast ConstParam) where V: Visit<'ast> + ?Sized,989 pub fn visit_const_param<'ast, V>(v: &mut V, node: &'ast ConstParam)
990 where
991     V: Visit<'ast> + ?Sized,
992 {
993     for it in &node.attrs {
994         v.visit_attribute(it);
995     }
996     skip!(node.const_token);
997     v.visit_ident(&node.ident);
998     skip!(node.colon_token);
999     v.visit_type(&node.ty);
1000     skip!(node.eq_token);
1001     if let Some(it) = &node.default {
1002         v.visit_expr(it);
1003     }
1004 }
1005 #[cfg(any(feature = "derive", feature = "full"))]
visit_constraint<'ast, V>(v: &mut V, node: &'ast Constraint) where V: Visit<'ast> + ?Sized,1006 pub fn visit_constraint<'ast, V>(v: &mut V, node: &'ast Constraint)
1007 where
1008     V: Visit<'ast> + ?Sized,
1009 {
1010     v.visit_ident(&node.ident);
1011     if let Some(it) = &node.generics {
1012         v.visit_angle_bracketed_generic_arguments(it);
1013     }
1014     skip!(node.colon_token);
1015     for el in Punctuated::pairs(&node.bounds) {
1016         let it = el.value();
1017         v.visit_type_param_bound(it);
1018     }
1019 }
1020 #[cfg(feature = "derive")]
visit_data<'ast, V>(v: &mut V, node: &'ast Data) where V: Visit<'ast> + ?Sized,1021 pub fn visit_data<'ast, V>(v: &mut V, node: &'ast Data)
1022 where
1023     V: Visit<'ast> + ?Sized,
1024 {
1025     match node {
1026         Data::Struct(_binding_0) => {
1027             v.visit_data_struct(_binding_0);
1028         }
1029         Data::Enum(_binding_0) => {
1030             v.visit_data_enum(_binding_0);
1031         }
1032         Data::Union(_binding_0) => {
1033             v.visit_data_union(_binding_0);
1034         }
1035     }
1036 }
1037 #[cfg(feature = "derive")]
visit_data_enum<'ast, V>(v: &mut V, node: &'ast DataEnum) where V: Visit<'ast> + ?Sized,1038 pub fn visit_data_enum<'ast, V>(v: &mut V, node: &'ast DataEnum)
1039 where
1040     V: Visit<'ast> + ?Sized,
1041 {
1042     skip!(node.enum_token);
1043     skip!(node.brace_token);
1044     for el in Punctuated::pairs(&node.variants) {
1045         let it = el.value();
1046         v.visit_variant(it);
1047     }
1048 }
1049 #[cfg(feature = "derive")]
visit_data_struct<'ast, V>(v: &mut V, node: &'ast DataStruct) where V: Visit<'ast> + ?Sized,1050 pub fn visit_data_struct<'ast, V>(v: &mut V, node: &'ast DataStruct)
1051 where
1052     V: Visit<'ast> + ?Sized,
1053 {
1054     skip!(node.struct_token);
1055     v.visit_fields(&node.fields);
1056     skip!(node.semi_token);
1057 }
1058 #[cfg(feature = "derive")]
visit_data_union<'ast, V>(v: &mut V, node: &'ast DataUnion) where V: Visit<'ast> + ?Sized,1059 pub fn visit_data_union<'ast, V>(v: &mut V, node: &'ast DataUnion)
1060 where
1061     V: Visit<'ast> + ?Sized,
1062 {
1063     skip!(node.union_token);
1064     v.visit_fields_named(&node.fields);
1065 }
1066 #[cfg(feature = "derive")]
visit_derive_input<'ast, V>(v: &mut V, node: &'ast DeriveInput) where V: Visit<'ast> + ?Sized,1067 pub fn visit_derive_input<'ast, V>(v: &mut V, node: &'ast DeriveInput)
1068 where
1069     V: Visit<'ast> + ?Sized,
1070 {
1071     for it in &node.attrs {
1072         v.visit_attribute(it);
1073     }
1074     v.visit_visibility(&node.vis);
1075     v.visit_ident(&node.ident);
1076     v.visit_generics(&node.generics);
1077     v.visit_data(&node.data);
1078 }
1079 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr<'ast, V>(v: &mut V, node: &'ast Expr) where V: Visit<'ast> + ?Sized,1080 pub fn visit_expr<'ast, V>(v: &mut V, node: &'ast Expr)
1081 where
1082     V: Visit<'ast> + ?Sized,
1083 {
1084     match node {
1085         Expr::Array(_binding_0) => {
1086             full!(v.visit_expr_array(_binding_0));
1087         }
1088         Expr::Assign(_binding_0) => {
1089             full!(v.visit_expr_assign(_binding_0));
1090         }
1091         Expr::Async(_binding_0) => {
1092             full!(v.visit_expr_async(_binding_0));
1093         }
1094         Expr::Await(_binding_0) => {
1095             full!(v.visit_expr_await(_binding_0));
1096         }
1097         Expr::Binary(_binding_0) => {
1098             v.visit_expr_binary(_binding_0);
1099         }
1100         Expr::Block(_binding_0) => {
1101             full!(v.visit_expr_block(_binding_0));
1102         }
1103         Expr::Break(_binding_0) => {
1104             full!(v.visit_expr_break(_binding_0));
1105         }
1106         Expr::Call(_binding_0) => {
1107             v.visit_expr_call(_binding_0);
1108         }
1109         Expr::Cast(_binding_0) => {
1110             v.visit_expr_cast(_binding_0);
1111         }
1112         Expr::Closure(_binding_0) => {
1113             full!(v.visit_expr_closure(_binding_0));
1114         }
1115         Expr::Const(_binding_0) => {
1116             full!(v.visit_expr_const(_binding_0));
1117         }
1118         Expr::Continue(_binding_0) => {
1119             full!(v.visit_expr_continue(_binding_0));
1120         }
1121         Expr::Field(_binding_0) => {
1122             v.visit_expr_field(_binding_0);
1123         }
1124         Expr::ForLoop(_binding_0) => {
1125             full!(v.visit_expr_for_loop(_binding_0));
1126         }
1127         Expr::Group(_binding_0) => {
1128             v.visit_expr_group(_binding_0);
1129         }
1130         Expr::If(_binding_0) => {
1131             full!(v.visit_expr_if(_binding_0));
1132         }
1133         Expr::Index(_binding_0) => {
1134             v.visit_expr_index(_binding_0);
1135         }
1136         Expr::Infer(_binding_0) => {
1137             full!(v.visit_expr_infer(_binding_0));
1138         }
1139         Expr::Let(_binding_0) => {
1140             full!(v.visit_expr_let(_binding_0));
1141         }
1142         Expr::Lit(_binding_0) => {
1143             v.visit_expr_lit(_binding_0);
1144         }
1145         Expr::Loop(_binding_0) => {
1146             full!(v.visit_expr_loop(_binding_0));
1147         }
1148         Expr::Macro(_binding_0) => {
1149             v.visit_expr_macro(_binding_0);
1150         }
1151         Expr::Match(_binding_0) => {
1152             full!(v.visit_expr_match(_binding_0));
1153         }
1154         Expr::MethodCall(_binding_0) => {
1155             full!(v.visit_expr_method_call(_binding_0));
1156         }
1157         Expr::Paren(_binding_0) => {
1158             v.visit_expr_paren(_binding_0);
1159         }
1160         Expr::Path(_binding_0) => {
1161             v.visit_expr_path(_binding_0);
1162         }
1163         Expr::Range(_binding_0) => {
1164             full!(v.visit_expr_range(_binding_0));
1165         }
1166         Expr::Reference(_binding_0) => {
1167             full!(v.visit_expr_reference(_binding_0));
1168         }
1169         Expr::Repeat(_binding_0) => {
1170             full!(v.visit_expr_repeat(_binding_0));
1171         }
1172         Expr::Return(_binding_0) => {
1173             full!(v.visit_expr_return(_binding_0));
1174         }
1175         Expr::Struct(_binding_0) => {
1176             full!(v.visit_expr_struct(_binding_0));
1177         }
1178         Expr::Try(_binding_0) => {
1179             full!(v.visit_expr_try(_binding_0));
1180         }
1181         Expr::TryBlock(_binding_0) => {
1182             full!(v.visit_expr_try_block(_binding_0));
1183         }
1184         Expr::Tuple(_binding_0) => {
1185             full!(v.visit_expr_tuple(_binding_0));
1186         }
1187         Expr::Unary(_binding_0) => {
1188             v.visit_expr_unary(_binding_0);
1189         }
1190         Expr::Unsafe(_binding_0) => {
1191             full!(v.visit_expr_unsafe(_binding_0));
1192         }
1193         Expr::Verbatim(_binding_0) => {
1194             skip!(_binding_0);
1195         }
1196         Expr::While(_binding_0) => {
1197             full!(v.visit_expr_while(_binding_0));
1198         }
1199         Expr::Yield(_binding_0) => {
1200             full!(v.visit_expr_yield(_binding_0));
1201         }
1202     }
1203 }
1204 #[cfg(feature = "full")]
visit_expr_array<'ast, V>(v: &mut V, node: &'ast ExprArray) where V: Visit<'ast> + ?Sized,1205 pub fn visit_expr_array<'ast, V>(v: &mut V, node: &'ast ExprArray)
1206 where
1207     V: Visit<'ast> + ?Sized,
1208 {
1209     for it in &node.attrs {
1210         v.visit_attribute(it);
1211     }
1212     skip!(node.bracket_token);
1213     for el in Punctuated::pairs(&node.elems) {
1214         let it = el.value();
1215         v.visit_expr(it);
1216     }
1217 }
1218 #[cfg(feature = "full")]
visit_expr_assign<'ast, V>(v: &mut V, node: &'ast ExprAssign) where V: Visit<'ast> + ?Sized,1219 pub fn visit_expr_assign<'ast, V>(v: &mut V, node: &'ast ExprAssign)
1220 where
1221     V: Visit<'ast> + ?Sized,
1222 {
1223     for it in &node.attrs {
1224         v.visit_attribute(it);
1225     }
1226     v.visit_expr(&*node.left);
1227     skip!(node.eq_token);
1228     v.visit_expr(&*node.right);
1229 }
1230 #[cfg(feature = "full")]
visit_expr_async<'ast, V>(v: &mut V, node: &'ast ExprAsync) where V: Visit<'ast> + ?Sized,1231 pub fn visit_expr_async<'ast, V>(v: &mut V, node: &'ast ExprAsync)
1232 where
1233     V: Visit<'ast> + ?Sized,
1234 {
1235     for it in &node.attrs {
1236         v.visit_attribute(it);
1237     }
1238     skip!(node.async_token);
1239     skip!(node.capture);
1240     v.visit_block(&node.block);
1241 }
1242 #[cfg(feature = "full")]
visit_expr_await<'ast, V>(v: &mut V, node: &'ast ExprAwait) where V: Visit<'ast> + ?Sized,1243 pub fn visit_expr_await<'ast, V>(v: &mut V, node: &'ast ExprAwait)
1244 where
1245     V: Visit<'ast> + ?Sized,
1246 {
1247     for it in &node.attrs {
1248         v.visit_attribute(it);
1249     }
1250     v.visit_expr(&*node.base);
1251     skip!(node.dot_token);
1252     skip!(node.await_token);
1253 }
1254 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_binary<'ast, V>(v: &mut V, node: &'ast ExprBinary) where V: Visit<'ast> + ?Sized,1255 pub fn visit_expr_binary<'ast, V>(v: &mut V, node: &'ast ExprBinary)
1256 where
1257     V: Visit<'ast> + ?Sized,
1258 {
1259     for it in &node.attrs {
1260         v.visit_attribute(it);
1261     }
1262     v.visit_expr(&*node.left);
1263     v.visit_bin_op(&node.op);
1264     v.visit_expr(&*node.right);
1265 }
1266 #[cfg(feature = "full")]
visit_expr_block<'ast, V>(v: &mut V, node: &'ast ExprBlock) where V: Visit<'ast> + ?Sized,1267 pub fn visit_expr_block<'ast, V>(v: &mut V, node: &'ast ExprBlock)
1268 where
1269     V: Visit<'ast> + ?Sized,
1270 {
1271     for it in &node.attrs {
1272         v.visit_attribute(it);
1273     }
1274     if let Some(it) = &node.label {
1275         v.visit_label(it);
1276     }
1277     v.visit_block(&node.block);
1278 }
1279 #[cfg(feature = "full")]
visit_expr_break<'ast, V>(v: &mut V, node: &'ast ExprBreak) where V: Visit<'ast> + ?Sized,1280 pub fn visit_expr_break<'ast, V>(v: &mut V, node: &'ast ExprBreak)
1281 where
1282     V: Visit<'ast> + ?Sized,
1283 {
1284     for it in &node.attrs {
1285         v.visit_attribute(it);
1286     }
1287     skip!(node.break_token);
1288     if let Some(it) = &node.label {
1289         v.visit_lifetime(it);
1290     }
1291     if let Some(it) = &node.expr {
1292         v.visit_expr(&**it);
1293     }
1294 }
1295 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_call<'ast, V>(v: &mut V, node: &'ast ExprCall) where V: Visit<'ast> + ?Sized,1296 pub fn visit_expr_call<'ast, V>(v: &mut V, node: &'ast ExprCall)
1297 where
1298     V: Visit<'ast> + ?Sized,
1299 {
1300     for it in &node.attrs {
1301         v.visit_attribute(it);
1302     }
1303     v.visit_expr(&*node.func);
1304     skip!(node.paren_token);
1305     for el in Punctuated::pairs(&node.args) {
1306         let it = el.value();
1307         v.visit_expr(it);
1308     }
1309 }
1310 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_cast<'ast, V>(v: &mut V, node: &'ast ExprCast) where V: Visit<'ast> + ?Sized,1311 pub fn visit_expr_cast<'ast, V>(v: &mut V, node: &'ast ExprCast)
1312 where
1313     V: Visit<'ast> + ?Sized,
1314 {
1315     for it in &node.attrs {
1316         v.visit_attribute(it);
1317     }
1318     v.visit_expr(&*node.expr);
1319     skip!(node.as_token);
1320     v.visit_type(&*node.ty);
1321 }
1322 #[cfg(feature = "full")]
visit_expr_closure<'ast, V>(v: &mut V, node: &'ast ExprClosure) where V: Visit<'ast> + ?Sized,1323 pub fn visit_expr_closure<'ast, V>(v: &mut V, node: &'ast ExprClosure)
1324 where
1325     V: Visit<'ast> + ?Sized,
1326 {
1327     for it in &node.attrs {
1328         v.visit_attribute(it);
1329     }
1330     if let Some(it) = &node.lifetimes {
1331         v.visit_bound_lifetimes(it);
1332     }
1333     skip!(node.constness);
1334     skip!(node.movability);
1335     skip!(node.asyncness);
1336     skip!(node.capture);
1337     skip!(node.or1_token);
1338     for el in Punctuated::pairs(&node.inputs) {
1339         let it = el.value();
1340         v.visit_pat(it);
1341     }
1342     skip!(node.or2_token);
1343     v.visit_return_type(&node.output);
1344     v.visit_expr(&*node.body);
1345 }
1346 #[cfg(feature = "full")]
visit_expr_const<'ast, V>(v: &mut V, node: &'ast ExprConst) where V: Visit<'ast> + ?Sized,1347 pub fn visit_expr_const<'ast, V>(v: &mut V, node: &'ast ExprConst)
1348 where
1349     V: Visit<'ast> + ?Sized,
1350 {
1351     for it in &node.attrs {
1352         v.visit_attribute(it);
1353     }
1354     skip!(node.const_token);
1355     v.visit_block(&node.block);
1356 }
1357 #[cfg(feature = "full")]
visit_expr_continue<'ast, V>(v: &mut V, node: &'ast ExprContinue) where V: Visit<'ast> + ?Sized,1358 pub fn visit_expr_continue<'ast, V>(v: &mut V, node: &'ast ExprContinue)
1359 where
1360     V: Visit<'ast> + ?Sized,
1361 {
1362     for it in &node.attrs {
1363         v.visit_attribute(it);
1364     }
1365     skip!(node.continue_token);
1366     if let Some(it) = &node.label {
1367         v.visit_lifetime(it);
1368     }
1369 }
1370 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_field<'ast, V>(v: &mut V, node: &'ast ExprField) where V: Visit<'ast> + ?Sized,1371 pub fn visit_expr_field<'ast, V>(v: &mut V, node: &'ast ExprField)
1372 where
1373     V: Visit<'ast> + ?Sized,
1374 {
1375     for it in &node.attrs {
1376         v.visit_attribute(it);
1377     }
1378     v.visit_expr(&*node.base);
1379     skip!(node.dot_token);
1380     v.visit_member(&node.member);
1381 }
1382 #[cfg(feature = "full")]
visit_expr_for_loop<'ast, V>(v: &mut V, node: &'ast ExprForLoop) where V: Visit<'ast> + ?Sized,1383 pub fn visit_expr_for_loop<'ast, V>(v: &mut V, node: &'ast ExprForLoop)
1384 where
1385     V: Visit<'ast> + ?Sized,
1386 {
1387     for it in &node.attrs {
1388         v.visit_attribute(it);
1389     }
1390     if let Some(it) = &node.label {
1391         v.visit_label(it);
1392     }
1393     skip!(node.for_token);
1394     v.visit_pat(&*node.pat);
1395     skip!(node.in_token);
1396     v.visit_expr(&*node.expr);
1397     v.visit_block(&node.body);
1398 }
1399 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_group<'ast, V>(v: &mut V, node: &'ast ExprGroup) where V: Visit<'ast> + ?Sized,1400 pub fn visit_expr_group<'ast, V>(v: &mut V, node: &'ast ExprGroup)
1401 where
1402     V: Visit<'ast> + ?Sized,
1403 {
1404     for it in &node.attrs {
1405         v.visit_attribute(it);
1406     }
1407     skip!(node.group_token);
1408     v.visit_expr(&*node.expr);
1409 }
1410 #[cfg(feature = "full")]
visit_expr_if<'ast, V>(v: &mut V, node: &'ast ExprIf) where V: Visit<'ast> + ?Sized,1411 pub fn visit_expr_if<'ast, V>(v: &mut V, node: &'ast ExprIf)
1412 where
1413     V: Visit<'ast> + ?Sized,
1414 {
1415     for it in &node.attrs {
1416         v.visit_attribute(it);
1417     }
1418     skip!(node.if_token);
1419     v.visit_expr(&*node.cond);
1420     v.visit_block(&node.then_branch);
1421     if let Some(it) = &node.else_branch {
1422         skip!((it).0);
1423         v.visit_expr(&*(it).1);
1424     }
1425 }
1426 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_index<'ast, V>(v: &mut V, node: &'ast ExprIndex) where V: Visit<'ast> + ?Sized,1427 pub fn visit_expr_index<'ast, V>(v: &mut V, node: &'ast ExprIndex)
1428 where
1429     V: Visit<'ast> + ?Sized,
1430 {
1431     for it in &node.attrs {
1432         v.visit_attribute(it);
1433     }
1434     v.visit_expr(&*node.expr);
1435     skip!(node.bracket_token);
1436     v.visit_expr(&*node.index);
1437 }
1438 #[cfg(feature = "full")]
visit_expr_infer<'ast, V>(v: &mut V, node: &'ast ExprInfer) where V: Visit<'ast> + ?Sized,1439 pub fn visit_expr_infer<'ast, V>(v: &mut V, node: &'ast ExprInfer)
1440 where
1441     V: Visit<'ast> + ?Sized,
1442 {
1443     for it in &node.attrs {
1444         v.visit_attribute(it);
1445     }
1446     skip!(node.underscore_token);
1447 }
1448 #[cfg(feature = "full")]
visit_expr_let<'ast, V>(v: &mut V, node: &'ast ExprLet) where V: Visit<'ast> + ?Sized,1449 pub fn visit_expr_let<'ast, V>(v: &mut V, node: &'ast ExprLet)
1450 where
1451     V: Visit<'ast> + ?Sized,
1452 {
1453     for it in &node.attrs {
1454         v.visit_attribute(it);
1455     }
1456     skip!(node.let_token);
1457     v.visit_pat(&*node.pat);
1458     skip!(node.eq_token);
1459     v.visit_expr(&*node.expr);
1460 }
1461 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_lit<'ast, V>(v: &mut V, node: &'ast ExprLit) where V: Visit<'ast> + ?Sized,1462 pub fn visit_expr_lit<'ast, V>(v: &mut V, node: &'ast ExprLit)
1463 where
1464     V: Visit<'ast> + ?Sized,
1465 {
1466     for it in &node.attrs {
1467         v.visit_attribute(it);
1468     }
1469     v.visit_lit(&node.lit);
1470 }
1471 #[cfg(feature = "full")]
visit_expr_loop<'ast, V>(v: &mut V, node: &'ast ExprLoop) where V: Visit<'ast> + ?Sized,1472 pub fn visit_expr_loop<'ast, V>(v: &mut V, node: &'ast ExprLoop)
1473 where
1474     V: Visit<'ast> + ?Sized,
1475 {
1476     for it in &node.attrs {
1477         v.visit_attribute(it);
1478     }
1479     if let Some(it) = &node.label {
1480         v.visit_label(it);
1481     }
1482     skip!(node.loop_token);
1483     v.visit_block(&node.body);
1484 }
1485 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_macro<'ast, V>(v: &mut V, node: &'ast ExprMacro) where V: Visit<'ast> + ?Sized,1486 pub fn visit_expr_macro<'ast, V>(v: &mut V, node: &'ast ExprMacro)
1487 where
1488     V: Visit<'ast> + ?Sized,
1489 {
1490     for it in &node.attrs {
1491         v.visit_attribute(it);
1492     }
1493     v.visit_macro(&node.mac);
1494 }
1495 #[cfg(feature = "full")]
visit_expr_match<'ast, V>(v: &mut V, node: &'ast ExprMatch) where V: Visit<'ast> + ?Sized,1496 pub fn visit_expr_match<'ast, V>(v: &mut V, node: &'ast ExprMatch)
1497 where
1498     V: Visit<'ast> + ?Sized,
1499 {
1500     for it in &node.attrs {
1501         v.visit_attribute(it);
1502     }
1503     skip!(node.match_token);
1504     v.visit_expr(&*node.expr);
1505     skip!(node.brace_token);
1506     for it in &node.arms {
1507         v.visit_arm(it);
1508     }
1509 }
1510 #[cfg(feature = "full")]
visit_expr_method_call<'ast, V>(v: &mut V, node: &'ast ExprMethodCall) where V: Visit<'ast> + ?Sized,1511 pub fn visit_expr_method_call<'ast, V>(v: &mut V, node: &'ast ExprMethodCall)
1512 where
1513     V: Visit<'ast> + ?Sized,
1514 {
1515     for it in &node.attrs {
1516         v.visit_attribute(it);
1517     }
1518     v.visit_expr(&*node.receiver);
1519     skip!(node.dot_token);
1520     v.visit_ident(&node.method);
1521     if let Some(it) = &node.turbofish {
1522         v.visit_angle_bracketed_generic_arguments(it);
1523     }
1524     skip!(node.paren_token);
1525     for el in Punctuated::pairs(&node.args) {
1526         let it = el.value();
1527         v.visit_expr(it);
1528     }
1529 }
1530 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_paren<'ast, V>(v: &mut V, node: &'ast ExprParen) where V: Visit<'ast> + ?Sized,1531 pub fn visit_expr_paren<'ast, V>(v: &mut V, node: &'ast ExprParen)
1532 where
1533     V: Visit<'ast> + ?Sized,
1534 {
1535     for it in &node.attrs {
1536         v.visit_attribute(it);
1537     }
1538     skip!(node.paren_token);
1539     v.visit_expr(&*node.expr);
1540 }
1541 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_path<'ast, V>(v: &mut V, node: &'ast ExprPath) where V: Visit<'ast> + ?Sized,1542 pub fn visit_expr_path<'ast, V>(v: &mut V, node: &'ast ExprPath)
1543 where
1544     V: Visit<'ast> + ?Sized,
1545 {
1546     for it in &node.attrs {
1547         v.visit_attribute(it);
1548     }
1549     if let Some(it) = &node.qself {
1550         v.visit_qself(it);
1551     }
1552     v.visit_path(&node.path);
1553 }
1554 #[cfg(feature = "full")]
visit_expr_range<'ast, V>(v: &mut V, node: &'ast ExprRange) where V: Visit<'ast> + ?Sized,1555 pub fn visit_expr_range<'ast, V>(v: &mut V, node: &'ast ExprRange)
1556 where
1557     V: Visit<'ast> + ?Sized,
1558 {
1559     for it in &node.attrs {
1560         v.visit_attribute(it);
1561     }
1562     if let Some(it) = &node.start {
1563         v.visit_expr(&**it);
1564     }
1565     v.visit_range_limits(&node.limits);
1566     if let Some(it) = &node.end {
1567         v.visit_expr(&**it);
1568     }
1569 }
1570 #[cfg(feature = "full")]
visit_expr_reference<'ast, V>(v: &mut V, node: &'ast ExprReference) where V: Visit<'ast> + ?Sized,1571 pub fn visit_expr_reference<'ast, V>(v: &mut V, node: &'ast ExprReference)
1572 where
1573     V: Visit<'ast> + ?Sized,
1574 {
1575     for it in &node.attrs {
1576         v.visit_attribute(it);
1577     }
1578     skip!(node.and_token);
1579     skip!(node.mutability);
1580     v.visit_expr(&*node.expr);
1581 }
1582 #[cfg(feature = "full")]
visit_expr_repeat<'ast, V>(v: &mut V, node: &'ast ExprRepeat) where V: Visit<'ast> + ?Sized,1583 pub fn visit_expr_repeat<'ast, V>(v: &mut V, node: &'ast ExprRepeat)
1584 where
1585     V: Visit<'ast> + ?Sized,
1586 {
1587     for it in &node.attrs {
1588         v.visit_attribute(it);
1589     }
1590     skip!(node.bracket_token);
1591     v.visit_expr(&*node.expr);
1592     skip!(node.semi_token);
1593     v.visit_expr(&*node.len);
1594 }
1595 #[cfg(feature = "full")]
visit_expr_return<'ast, V>(v: &mut V, node: &'ast ExprReturn) where V: Visit<'ast> + ?Sized,1596 pub fn visit_expr_return<'ast, V>(v: &mut V, node: &'ast ExprReturn)
1597 where
1598     V: Visit<'ast> + ?Sized,
1599 {
1600     for it in &node.attrs {
1601         v.visit_attribute(it);
1602     }
1603     skip!(node.return_token);
1604     if let Some(it) = &node.expr {
1605         v.visit_expr(&**it);
1606     }
1607 }
1608 #[cfg(feature = "full")]
visit_expr_struct<'ast, V>(v: &mut V, node: &'ast ExprStruct) where V: Visit<'ast> + ?Sized,1609 pub fn visit_expr_struct<'ast, V>(v: &mut V, node: &'ast ExprStruct)
1610 where
1611     V: Visit<'ast> + ?Sized,
1612 {
1613     for it in &node.attrs {
1614         v.visit_attribute(it);
1615     }
1616     if let Some(it) = &node.qself {
1617         v.visit_qself(it);
1618     }
1619     v.visit_path(&node.path);
1620     skip!(node.brace_token);
1621     for el in Punctuated::pairs(&node.fields) {
1622         let it = el.value();
1623         v.visit_field_value(it);
1624     }
1625     skip!(node.dot2_token);
1626     if let Some(it) = &node.rest {
1627         v.visit_expr(&**it);
1628     }
1629 }
1630 #[cfg(feature = "full")]
visit_expr_try<'ast, V>(v: &mut V, node: &'ast ExprTry) where V: Visit<'ast> + ?Sized,1631 pub fn visit_expr_try<'ast, V>(v: &mut V, node: &'ast ExprTry)
1632 where
1633     V: Visit<'ast> + ?Sized,
1634 {
1635     for it in &node.attrs {
1636         v.visit_attribute(it);
1637     }
1638     v.visit_expr(&*node.expr);
1639     skip!(node.question_token);
1640 }
1641 #[cfg(feature = "full")]
visit_expr_try_block<'ast, V>(v: &mut V, node: &'ast ExprTryBlock) where V: Visit<'ast> + ?Sized,1642 pub fn visit_expr_try_block<'ast, V>(v: &mut V, node: &'ast ExprTryBlock)
1643 where
1644     V: Visit<'ast> + ?Sized,
1645 {
1646     for it in &node.attrs {
1647         v.visit_attribute(it);
1648     }
1649     skip!(node.try_token);
1650     v.visit_block(&node.block);
1651 }
1652 #[cfg(feature = "full")]
visit_expr_tuple<'ast, V>(v: &mut V, node: &'ast ExprTuple) where V: Visit<'ast> + ?Sized,1653 pub fn visit_expr_tuple<'ast, V>(v: &mut V, node: &'ast ExprTuple)
1654 where
1655     V: Visit<'ast> + ?Sized,
1656 {
1657     for it in &node.attrs {
1658         v.visit_attribute(it);
1659     }
1660     skip!(node.paren_token);
1661     for el in Punctuated::pairs(&node.elems) {
1662         let it = el.value();
1663         v.visit_expr(it);
1664     }
1665 }
1666 #[cfg(any(feature = "derive", feature = "full"))]
visit_expr_unary<'ast, V>(v: &mut V, node: &'ast ExprUnary) where V: Visit<'ast> + ?Sized,1667 pub fn visit_expr_unary<'ast, V>(v: &mut V, node: &'ast ExprUnary)
1668 where
1669     V: Visit<'ast> + ?Sized,
1670 {
1671     for it in &node.attrs {
1672         v.visit_attribute(it);
1673     }
1674     v.visit_un_op(&node.op);
1675     v.visit_expr(&*node.expr);
1676 }
1677 #[cfg(feature = "full")]
visit_expr_unsafe<'ast, V>(v: &mut V, node: &'ast ExprUnsafe) where V: Visit<'ast> + ?Sized,1678 pub fn visit_expr_unsafe<'ast, V>(v: &mut V, node: &'ast ExprUnsafe)
1679 where
1680     V: Visit<'ast> + ?Sized,
1681 {
1682     for it in &node.attrs {
1683         v.visit_attribute(it);
1684     }
1685     skip!(node.unsafe_token);
1686     v.visit_block(&node.block);
1687 }
1688 #[cfg(feature = "full")]
visit_expr_while<'ast, V>(v: &mut V, node: &'ast ExprWhile) where V: Visit<'ast> + ?Sized,1689 pub fn visit_expr_while<'ast, V>(v: &mut V, node: &'ast ExprWhile)
1690 where
1691     V: Visit<'ast> + ?Sized,
1692 {
1693     for it in &node.attrs {
1694         v.visit_attribute(it);
1695     }
1696     if let Some(it) = &node.label {
1697         v.visit_label(it);
1698     }
1699     skip!(node.while_token);
1700     v.visit_expr(&*node.cond);
1701     v.visit_block(&node.body);
1702 }
1703 #[cfg(feature = "full")]
visit_expr_yield<'ast, V>(v: &mut V, node: &'ast ExprYield) where V: Visit<'ast> + ?Sized,1704 pub fn visit_expr_yield<'ast, V>(v: &mut V, node: &'ast ExprYield)
1705 where
1706     V: Visit<'ast> + ?Sized,
1707 {
1708     for it in &node.attrs {
1709         v.visit_attribute(it);
1710     }
1711     skip!(node.yield_token);
1712     if let Some(it) = &node.expr {
1713         v.visit_expr(&**it);
1714     }
1715 }
1716 #[cfg(any(feature = "derive", feature = "full"))]
visit_field<'ast, V>(v: &mut V, node: &'ast Field) where V: Visit<'ast> + ?Sized,1717 pub fn visit_field<'ast, V>(v: &mut V, node: &'ast Field)
1718 where
1719     V: Visit<'ast> + ?Sized,
1720 {
1721     for it in &node.attrs {
1722         v.visit_attribute(it);
1723     }
1724     v.visit_visibility(&node.vis);
1725     v.visit_field_mutability(&node.mutability);
1726     if let Some(it) = &node.ident {
1727         v.visit_ident(it);
1728     }
1729     skip!(node.colon_token);
1730     v.visit_type(&node.ty);
1731 }
1732 #[cfg(any(feature = "derive", feature = "full"))]
visit_field_mutability<'ast, V>(v: &mut V, node: &'ast FieldMutability) where V: Visit<'ast> + ?Sized,1733 pub fn visit_field_mutability<'ast, V>(v: &mut V, node: &'ast FieldMutability)
1734 where
1735     V: Visit<'ast> + ?Sized,
1736 {
1737     match node {
1738         FieldMutability::None => {}
1739     }
1740 }
1741 #[cfg(feature = "full")]
visit_field_pat<'ast, V>(v: &mut V, node: &'ast FieldPat) where V: Visit<'ast> + ?Sized,1742 pub fn visit_field_pat<'ast, V>(v: &mut V, node: &'ast FieldPat)
1743 where
1744     V: Visit<'ast> + ?Sized,
1745 {
1746     for it in &node.attrs {
1747         v.visit_attribute(it);
1748     }
1749     v.visit_member(&node.member);
1750     skip!(node.colon_token);
1751     v.visit_pat(&*node.pat);
1752 }
1753 #[cfg(feature = "full")]
visit_field_value<'ast, V>(v: &mut V, node: &'ast FieldValue) where V: Visit<'ast> + ?Sized,1754 pub fn visit_field_value<'ast, V>(v: &mut V, node: &'ast FieldValue)
1755 where
1756     V: Visit<'ast> + ?Sized,
1757 {
1758     for it in &node.attrs {
1759         v.visit_attribute(it);
1760     }
1761     v.visit_member(&node.member);
1762     skip!(node.colon_token);
1763     v.visit_expr(&node.expr);
1764 }
1765 #[cfg(any(feature = "derive", feature = "full"))]
visit_fields<'ast, V>(v: &mut V, node: &'ast Fields) where V: Visit<'ast> + ?Sized,1766 pub fn visit_fields<'ast, V>(v: &mut V, node: &'ast Fields)
1767 where
1768     V: Visit<'ast> + ?Sized,
1769 {
1770     match node {
1771         Fields::Named(_binding_0) => {
1772             v.visit_fields_named(_binding_0);
1773         }
1774         Fields::Unnamed(_binding_0) => {
1775             v.visit_fields_unnamed(_binding_0);
1776         }
1777         Fields::Unit => {}
1778     }
1779 }
1780 #[cfg(any(feature = "derive", feature = "full"))]
visit_fields_named<'ast, V>(v: &mut V, node: &'ast FieldsNamed) where V: Visit<'ast> + ?Sized,1781 pub fn visit_fields_named<'ast, V>(v: &mut V, node: &'ast FieldsNamed)
1782 where
1783     V: Visit<'ast> + ?Sized,
1784 {
1785     skip!(node.brace_token);
1786     for el in Punctuated::pairs(&node.named) {
1787         let it = el.value();
1788         v.visit_field(it);
1789     }
1790 }
1791 #[cfg(any(feature = "derive", feature = "full"))]
visit_fields_unnamed<'ast, V>(v: &mut V, node: &'ast FieldsUnnamed) where V: Visit<'ast> + ?Sized,1792 pub fn visit_fields_unnamed<'ast, V>(v: &mut V, node: &'ast FieldsUnnamed)
1793 where
1794     V: Visit<'ast> + ?Sized,
1795 {
1796     skip!(node.paren_token);
1797     for el in Punctuated::pairs(&node.unnamed) {
1798         let it = el.value();
1799         v.visit_field(it);
1800     }
1801 }
1802 #[cfg(feature = "full")]
visit_file<'ast, V>(v: &mut V, node: &'ast File) where V: Visit<'ast> + ?Sized,1803 pub fn visit_file<'ast, V>(v: &mut V, node: &'ast File)
1804 where
1805     V: Visit<'ast> + ?Sized,
1806 {
1807     skip!(node.shebang);
1808     for it in &node.attrs {
1809         v.visit_attribute(it);
1810     }
1811     for it in &node.items {
1812         v.visit_item(it);
1813     }
1814 }
1815 #[cfg(feature = "full")]
visit_fn_arg<'ast, V>(v: &mut V, node: &'ast FnArg) where V: Visit<'ast> + ?Sized,1816 pub fn visit_fn_arg<'ast, V>(v: &mut V, node: &'ast FnArg)
1817 where
1818     V: Visit<'ast> + ?Sized,
1819 {
1820     match node {
1821         FnArg::Receiver(_binding_0) => {
1822             v.visit_receiver(_binding_0);
1823         }
1824         FnArg::Typed(_binding_0) => {
1825             v.visit_pat_type(_binding_0);
1826         }
1827     }
1828 }
1829 #[cfg(feature = "full")]
visit_foreign_item<'ast, V>(v: &mut V, node: &'ast ForeignItem) where V: Visit<'ast> + ?Sized,1830 pub fn visit_foreign_item<'ast, V>(v: &mut V, node: &'ast ForeignItem)
1831 where
1832     V: Visit<'ast> + ?Sized,
1833 {
1834     match node {
1835         ForeignItem::Fn(_binding_0) => {
1836             v.visit_foreign_item_fn(_binding_0);
1837         }
1838         ForeignItem::Static(_binding_0) => {
1839             v.visit_foreign_item_static(_binding_0);
1840         }
1841         ForeignItem::Type(_binding_0) => {
1842             v.visit_foreign_item_type(_binding_0);
1843         }
1844         ForeignItem::Macro(_binding_0) => {
1845             v.visit_foreign_item_macro(_binding_0);
1846         }
1847         ForeignItem::Verbatim(_binding_0) => {
1848             skip!(_binding_0);
1849         }
1850     }
1851 }
1852 #[cfg(feature = "full")]
visit_foreign_item_fn<'ast, V>(v: &mut V, node: &'ast ForeignItemFn) where V: Visit<'ast> + ?Sized,1853 pub fn visit_foreign_item_fn<'ast, V>(v: &mut V, node: &'ast ForeignItemFn)
1854 where
1855     V: Visit<'ast> + ?Sized,
1856 {
1857     for it in &node.attrs {
1858         v.visit_attribute(it);
1859     }
1860     v.visit_visibility(&node.vis);
1861     v.visit_signature(&node.sig);
1862     skip!(node.semi_token);
1863 }
1864 #[cfg(feature = "full")]
visit_foreign_item_macro<'ast, V>(v: &mut V, node: &'ast ForeignItemMacro) where V: Visit<'ast> + ?Sized,1865 pub fn visit_foreign_item_macro<'ast, V>(v: &mut V, node: &'ast ForeignItemMacro)
1866 where
1867     V: Visit<'ast> + ?Sized,
1868 {
1869     for it in &node.attrs {
1870         v.visit_attribute(it);
1871     }
1872     v.visit_macro(&node.mac);
1873     skip!(node.semi_token);
1874 }
1875 #[cfg(feature = "full")]
visit_foreign_item_static<'ast, V>(v: &mut V, node: &'ast ForeignItemStatic) where V: Visit<'ast> + ?Sized,1876 pub fn visit_foreign_item_static<'ast, V>(v: &mut V, node: &'ast ForeignItemStatic)
1877 where
1878     V: Visit<'ast> + ?Sized,
1879 {
1880     for it in &node.attrs {
1881         v.visit_attribute(it);
1882     }
1883     v.visit_visibility(&node.vis);
1884     skip!(node.static_token);
1885     v.visit_static_mutability(&node.mutability);
1886     v.visit_ident(&node.ident);
1887     skip!(node.colon_token);
1888     v.visit_type(&*node.ty);
1889     skip!(node.semi_token);
1890 }
1891 #[cfg(feature = "full")]
visit_foreign_item_type<'ast, V>(v: &mut V, node: &'ast ForeignItemType) where V: Visit<'ast> + ?Sized,1892 pub fn visit_foreign_item_type<'ast, V>(v: &mut V, node: &'ast ForeignItemType)
1893 where
1894     V: Visit<'ast> + ?Sized,
1895 {
1896     for it in &node.attrs {
1897         v.visit_attribute(it);
1898     }
1899     v.visit_visibility(&node.vis);
1900     skip!(node.type_token);
1901     v.visit_ident(&node.ident);
1902     v.visit_generics(&node.generics);
1903     skip!(node.semi_token);
1904 }
1905 #[cfg(any(feature = "derive", feature = "full"))]
visit_generic_argument<'ast, V>(v: &mut V, node: &'ast GenericArgument) where V: Visit<'ast> + ?Sized,1906 pub fn visit_generic_argument<'ast, V>(v: &mut V, node: &'ast GenericArgument)
1907 where
1908     V: Visit<'ast> + ?Sized,
1909 {
1910     match node {
1911         GenericArgument::Lifetime(_binding_0) => {
1912             v.visit_lifetime(_binding_0);
1913         }
1914         GenericArgument::Type(_binding_0) => {
1915             v.visit_type(_binding_0);
1916         }
1917         GenericArgument::Const(_binding_0) => {
1918             v.visit_expr(_binding_0);
1919         }
1920         GenericArgument::AssocType(_binding_0) => {
1921             v.visit_assoc_type(_binding_0);
1922         }
1923         GenericArgument::AssocConst(_binding_0) => {
1924             v.visit_assoc_const(_binding_0);
1925         }
1926         GenericArgument::Constraint(_binding_0) => {
1927             v.visit_constraint(_binding_0);
1928         }
1929     }
1930 }
1931 #[cfg(any(feature = "derive", feature = "full"))]
visit_generic_param<'ast, V>(v: &mut V, node: &'ast GenericParam) where V: Visit<'ast> + ?Sized,1932 pub fn visit_generic_param<'ast, V>(v: &mut V, node: &'ast GenericParam)
1933 where
1934     V: Visit<'ast> + ?Sized,
1935 {
1936     match node {
1937         GenericParam::Lifetime(_binding_0) => {
1938             v.visit_lifetime_param(_binding_0);
1939         }
1940         GenericParam::Type(_binding_0) => {
1941             v.visit_type_param(_binding_0);
1942         }
1943         GenericParam::Const(_binding_0) => {
1944             v.visit_const_param(_binding_0);
1945         }
1946     }
1947 }
1948 #[cfg(any(feature = "derive", feature = "full"))]
visit_generics<'ast, V>(v: &mut V, node: &'ast Generics) where V: Visit<'ast> + ?Sized,1949 pub fn visit_generics<'ast, V>(v: &mut V, node: &'ast Generics)
1950 where
1951     V: Visit<'ast> + ?Sized,
1952 {
1953     skip!(node.lt_token);
1954     for el in Punctuated::pairs(&node.params) {
1955         let it = el.value();
1956         v.visit_generic_param(it);
1957     }
1958     skip!(node.gt_token);
1959     if let Some(it) = &node.where_clause {
1960         v.visit_where_clause(it);
1961     }
1962 }
visit_ident<'ast, V>(v: &mut V, node: &'ast Ident) where V: Visit<'ast> + ?Sized,1963 pub fn visit_ident<'ast, V>(v: &mut V, node: &'ast Ident)
1964 where
1965     V: Visit<'ast> + ?Sized,
1966 {
1967     v.visit_span(&node.span());
1968 }
1969 #[cfg(feature = "full")]
visit_impl_item<'ast, V>(v: &mut V, node: &'ast ImplItem) where V: Visit<'ast> + ?Sized,1970 pub fn visit_impl_item<'ast, V>(v: &mut V, node: &'ast ImplItem)
1971 where
1972     V: Visit<'ast> + ?Sized,
1973 {
1974     match node {
1975         ImplItem::Const(_binding_0) => {
1976             v.visit_impl_item_const(_binding_0);
1977         }
1978         ImplItem::Fn(_binding_0) => {
1979             v.visit_impl_item_fn(_binding_0);
1980         }
1981         ImplItem::Type(_binding_0) => {
1982             v.visit_impl_item_type(_binding_0);
1983         }
1984         ImplItem::Macro(_binding_0) => {
1985             v.visit_impl_item_macro(_binding_0);
1986         }
1987         ImplItem::Verbatim(_binding_0) => {
1988             skip!(_binding_0);
1989         }
1990     }
1991 }
1992 #[cfg(feature = "full")]
visit_impl_item_const<'ast, V>(v: &mut V, node: &'ast ImplItemConst) where V: Visit<'ast> + ?Sized,1993 pub fn visit_impl_item_const<'ast, V>(v: &mut V, node: &'ast ImplItemConst)
1994 where
1995     V: Visit<'ast> + ?Sized,
1996 {
1997     for it in &node.attrs {
1998         v.visit_attribute(it);
1999     }
2000     v.visit_visibility(&node.vis);
2001     skip!(node.defaultness);
2002     skip!(node.const_token);
2003     v.visit_ident(&node.ident);
2004     v.visit_generics(&node.generics);
2005     skip!(node.colon_token);
2006     v.visit_type(&node.ty);
2007     skip!(node.eq_token);
2008     v.visit_expr(&node.expr);
2009     skip!(node.semi_token);
2010 }
2011 #[cfg(feature = "full")]
visit_impl_item_fn<'ast, V>(v: &mut V, node: &'ast ImplItemFn) where V: Visit<'ast> + ?Sized,2012 pub fn visit_impl_item_fn<'ast, V>(v: &mut V, node: &'ast ImplItemFn)
2013 where
2014     V: Visit<'ast> + ?Sized,
2015 {
2016     for it in &node.attrs {
2017         v.visit_attribute(it);
2018     }
2019     v.visit_visibility(&node.vis);
2020     skip!(node.defaultness);
2021     v.visit_signature(&node.sig);
2022     v.visit_block(&node.block);
2023 }
2024 #[cfg(feature = "full")]
visit_impl_item_macro<'ast, V>(v: &mut V, node: &'ast ImplItemMacro) where V: Visit<'ast> + ?Sized,2025 pub fn visit_impl_item_macro<'ast, V>(v: &mut V, node: &'ast ImplItemMacro)
2026 where
2027     V: Visit<'ast> + ?Sized,
2028 {
2029     for it in &node.attrs {
2030         v.visit_attribute(it);
2031     }
2032     v.visit_macro(&node.mac);
2033     skip!(node.semi_token);
2034 }
2035 #[cfg(feature = "full")]
visit_impl_item_type<'ast, V>(v: &mut V, node: &'ast ImplItemType) where V: Visit<'ast> + ?Sized,2036 pub fn visit_impl_item_type<'ast, V>(v: &mut V, node: &'ast ImplItemType)
2037 where
2038     V: Visit<'ast> + ?Sized,
2039 {
2040     for it in &node.attrs {
2041         v.visit_attribute(it);
2042     }
2043     v.visit_visibility(&node.vis);
2044     skip!(node.defaultness);
2045     skip!(node.type_token);
2046     v.visit_ident(&node.ident);
2047     v.visit_generics(&node.generics);
2048     skip!(node.eq_token);
2049     v.visit_type(&node.ty);
2050     skip!(node.semi_token);
2051 }
2052 #[cfg(feature = "full")]
visit_impl_restriction<'ast, V>(v: &mut V, node: &'ast ImplRestriction) where V: Visit<'ast> + ?Sized,2053 pub fn visit_impl_restriction<'ast, V>(v: &mut V, node: &'ast ImplRestriction)
2054 where
2055     V: Visit<'ast> + ?Sized,
2056 {
2057     match *node {}
2058 }
2059 #[cfg(any(feature = "derive", feature = "full"))]
visit_index<'ast, V>(v: &mut V, node: &'ast Index) where V: Visit<'ast> + ?Sized,2060 pub fn visit_index<'ast, V>(v: &mut V, node: &'ast Index)
2061 where
2062     V: Visit<'ast> + ?Sized,
2063 {
2064     skip!(node.index);
2065     v.visit_span(&node.span);
2066 }
2067 #[cfg(feature = "full")]
visit_item<'ast, V>(v: &mut V, node: &'ast Item) where V: Visit<'ast> + ?Sized,2068 pub fn visit_item<'ast, V>(v: &mut V, node: &'ast Item)
2069 where
2070     V: Visit<'ast> + ?Sized,
2071 {
2072     match node {
2073         Item::Const(_binding_0) => {
2074             v.visit_item_const(_binding_0);
2075         }
2076         Item::Enum(_binding_0) => {
2077             v.visit_item_enum(_binding_0);
2078         }
2079         Item::ExternCrate(_binding_0) => {
2080             v.visit_item_extern_crate(_binding_0);
2081         }
2082         Item::Fn(_binding_0) => {
2083             v.visit_item_fn(_binding_0);
2084         }
2085         Item::ForeignMod(_binding_0) => {
2086             v.visit_item_foreign_mod(_binding_0);
2087         }
2088         Item::Impl(_binding_0) => {
2089             v.visit_item_impl(_binding_0);
2090         }
2091         Item::Macro(_binding_0) => {
2092             v.visit_item_macro(_binding_0);
2093         }
2094         Item::Mod(_binding_0) => {
2095             v.visit_item_mod(_binding_0);
2096         }
2097         Item::Static(_binding_0) => {
2098             v.visit_item_static(_binding_0);
2099         }
2100         Item::Struct(_binding_0) => {
2101             v.visit_item_struct(_binding_0);
2102         }
2103         Item::Trait(_binding_0) => {
2104             v.visit_item_trait(_binding_0);
2105         }
2106         Item::TraitAlias(_binding_0) => {
2107             v.visit_item_trait_alias(_binding_0);
2108         }
2109         Item::Type(_binding_0) => {
2110             v.visit_item_type(_binding_0);
2111         }
2112         Item::Union(_binding_0) => {
2113             v.visit_item_union(_binding_0);
2114         }
2115         Item::Use(_binding_0) => {
2116             v.visit_item_use(_binding_0);
2117         }
2118         Item::Verbatim(_binding_0) => {
2119             skip!(_binding_0);
2120         }
2121     }
2122 }
2123 #[cfg(feature = "full")]
visit_item_const<'ast, V>(v: &mut V, node: &'ast ItemConst) where V: Visit<'ast> + ?Sized,2124 pub fn visit_item_const<'ast, V>(v: &mut V, node: &'ast ItemConst)
2125 where
2126     V: Visit<'ast> + ?Sized,
2127 {
2128     for it in &node.attrs {
2129         v.visit_attribute(it);
2130     }
2131     v.visit_visibility(&node.vis);
2132     skip!(node.const_token);
2133     v.visit_ident(&node.ident);
2134     v.visit_generics(&node.generics);
2135     skip!(node.colon_token);
2136     v.visit_type(&*node.ty);
2137     skip!(node.eq_token);
2138     v.visit_expr(&*node.expr);
2139     skip!(node.semi_token);
2140 }
2141 #[cfg(feature = "full")]
visit_item_enum<'ast, V>(v: &mut V, node: &'ast ItemEnum) where V: Visit<'ast> + ?Sized,2142 pub fn visit_item_enum<'ast, V>(v: &mut V, node: &'ast ItemEnum)
2143 where
2144     V: Visit<'ast> + ?Sized,
2145 {
2146     for it in &node.attrs {
2147         v.visit_attribute(it);
2148     }
2149     v.visit_visibility(&node.vis);
2150     skip!(node.enum_token);
2151     v.visit_ident(&node.ident);
2152     v.visit_generics(&node.generics);
2153     skip!(node.brace_token);
2154     for el in Punctuated::pairs(&node.variants) {
2155         let it = el.value();
2156         v.visit_variant(it);
2157     }
2158 }
2159 #[cfg(feature = "full")]
visit_item_extern_crate<'ast, V>(v: &mut V, node: &'ast ItemExternCrate) where V: Visit<'ast> + ?Sized,2160 pub fn visit_item_extern_crate<'ast, V>(v: &mut V, node: &'ast ItemExternCrate)
2161 where
2162     V: Visit<'ast> + ?Sized,
2163 {
2164     for it in &node.attrs {
2165         v.visit_attribute(it);
2166     }
2167     v.visit_visibility(&node.vis);
2168     skip!(node.extern_token);
2169     skip!(node.crate_token);
2170     v.visit_ident(&node.ident);
2171     if let Some(it) = &node.rename {
2172         skip!((it).0);
2173         v.visit_ident(&(it).1);
2174     }
2175     skip!(node.semi_token);
2176 }
2177 #[cfg(feature = "full")]
visit_item_fn<'ast, V>(v: &mut V, node: &'ast ItemFn) where V: Visit<'ast> + ?Sized,2178 pub fn visit_item_fn<'ast, V>(v: &mut V, node: &'ast ItemFn)
2179 where
2180     V: Visit<'ast> + ?Sized,
2181 {
2182     for it in &node.attrs {
2183         v.visit_attribute(it);
2184     }
2185     v.visit_visibility(&node.vis);
2186     v.visit_signature(&node.sig);
2187     v.visit_block(&*node.block);
2188 }
2189 #[cfg(feature = "full")]
visit_item_foreign_mod<'ast, V>(v: &mut V, node: &'ast ItemForeignMod) where V: Visit<'ast> + ?Sized,2190 pub fn visit_item_foreign_mod<'ast, V>(v: &mut V, node: &'ast ItemForeignMod)
2191 where
2192     V: Visit<'ast> + ?Sized,
2193 {
2194     for it in &node.attrs {
2195         v.visit_attribute(it);
2196     }
2197     skip!(node.unsafety);
2198     v.visit_abi(&node.abi);
2199     skip!(node.brace_token);
2200     for it in &node.items {
2201         v.visit_foreign_item(it);
2202     }
2203 }
2204 #[cfg(feature = "full")]
visit_item_impl<'ast, V>(v: &mut V, node: &'ast ItemImpl) where V: Visit<'ast> + ?Sized,2205 pub fn visit_item_impl<'ast, V>(v: &mut V, node: &'ast ItemImpl)
2206 where
2207     V: Visit<'ast> + ?Sized,
2208 {
2209     for it in &node.attrs {
2210         v.visit_attribute(it);
2211     }
2212     skip!(node.defaultness);
2213     skip!(node.unsafety);
2214     skip!(node.impl_token);
2215     v.visit_generics(&node.generics);
2216     if let Some(it) = &node.trait_ {
2217         skip!((it).0);
2218         v.visit_path(&(it).1);
2219         skip!((it).2);
2220     }
2221     v.visit_type(&*node.self_ty);
2222     skip!(node.brace_token);
2223     for it in &node.items {
2224         v.visit_impl_item(it);
2225     }
2226 }
2227 #[cfg(feature = "full")]
visit_item_macro<'ast, V>(v: &mut V, node: &'ast ItemMacro) where V: Visit<'ast> + ?Sized,2228 pub fn visit_item_macro<'ast, V>(v: &mut V, node: &'ast ItemMacro)
2229 where
2230     V: Visit<'ast> + ?Sized,
2231 {
2232     for it in &node.attrs {
2233         v.visit_attribute(it);
2234     }
2235     if let Some(it) = &node.ident {
2236         v.visit_ident(it);
2237     }
2238     v.visit_macro(&node.mac);
2239     skip!(node.semi_token);
2240 }
2241 #[cfg(feature = "full")]
visit_item_mod<'ast, V>(v: &mut V, node: &'ast ItemMod) where V: Visit<'ast> + ?Sized,2242 pub fn visit_item_mod<'ast, V>(v: &mut V, node: &'ast ItemMod)
2243 where
2244     V: Visit<'ast> + ?Sized,
2245 {
2246     for it in &node.attrs {
2247         v.visit_attribute(it);
2248     }
2249     v.visit_visibility(&node.vis);
2250     skip!(node.unsafety);
2251     skip!(node.mod_token);
2252     v.visit_ident(&node.ident);
2253     if let Some(it) = &node.content {
2254         skip!((it).0);
2255         for it in &(it).1 {
2256             v.visit_item(it);
2257         }
2258     }
2259     skip!(node.semi);
2260 }
2261 #[cfg(feature = "full")]
visit_item_static<'ast, V>(v: &mut V, node: &'ast ItemStatic) where V: Visit<'ast> + ?Sized,2262 pub fn visit_item_static<'ast, V>(v: &mut V, node: &'ast ItemStatic)
2263 where
2264     V: Visit<'ast> + ?Sized,
2265 {
2266     for it in &node.attrs {
2267         v.visit_attribute(it);
2268     }
2269     v.visit_visibility(&node.vis);
2270     skip!(node.static_token);
2271     v.visit_static_mutability(&node.mutability);
2272     v.visit_ident(&node.ident);
2273     skip!(node.colon_token);
2274     v.visit_type(&*node.ty);
2275     skip!(node.eq_token);
2276     v.visit_expr(&*node.expr);
2277     skip!(node.semi_token);
2278 }
2279 #[cfg(feature = "full")]
visit_item_struct<'ast, V>(v: &mut V, node: &'ast ItemStruct) where V: Visit<'ast> + ?Sized,2280 pub fn visit_item_struct<'ast, V>(v: &mut V, node: &'ast ItemStruct)
2281 where
2282     V: Visit<'ast> + ?Sized,
2283 {
2284     for it in &node.attrs {
2285         v.visit_attribute(it);
2286     }
2287     v.visit_visibility(&node.vis);
2288     skip!(node.struct_token);
2289     v.visit_ident(&node.ident);
2290     v.visit_generics(&node.generics);
2291     v.visit_fields(&node.fields);
2292     skip!(node.semi_token);
2293 }
2294 #[cfg(feature = "full")]
visit_item_trait<'ast, V>(v: &mut V, node: &'ast ItemTrait) where V: Visit<'ast> + ?Sized,2295 pub fn visit_item_trait<'ast, V>(v: &mut V, node: &'ast ItemTrait)
2296 where
2297     V: Visit<'ast> + ?Sized,
2298 {
2299     for it in &node.attrs {
2300         v.visit_attribute(it);
2301     }
2302     v.visit_visibility(&node.vis);
2303     skip!(node.unsafety);
2304     skip!(node.auto_token);
2305     if let Some(it) = &node.restriction {
2306         v.visit_impl_restriction(it);
2307     }
2308     skip!(node.trait_token);
2309     v.visit_ident(&node.ident);
2310     v.visit_generics(&node.generics);
2311     skip!(node.colon_token);
2312     for el in Punctuated::pairs(&node.supertraits) {
2313         let it = el.value();
2314         v.visit_type_param_bound(it);
2315     }
2316     skip!(node.brace_token);
2317     for it in &node.items {
2318         v.visit_trait_item(it);
2319     }
2320 }
2321 #[cfg(feature = "full")]
visit_item_trait_alias<'ast, V>(v: &mut V, node: &'ast ItemTraitAlias) where V: Visit<'ast> + ?Sized,2322 pub fn visit_item_trait_alias<'ast, V>(v: &mut V, node: &'ast ItemTraitAlias)
2323 where
2324     V: Visit<'ast> + ?Sized,
2325 {
2326     for it in &node.attrs {
2327         v.visit_attribute(it);
2328     }
2329     v.visit_visibility(&node.vis);
2330     skip!(node.trait_token);
2331     v.visit_ident(&node.ident);
2332     v.visit_generics(&node.generics);
2333     skip!(node.eq_token);
2334     for el in Punctuated::pairs(&node.bounds) {
2335         let it = el.value();
2336         v.visit_type_param_bound(it);
2337     }
2338     skip!(node.semi_token);
2339 }
2340 #[cfg(feature = "full")]
visit_item_type<'ast, V>(v: &mut V, node: &'ast ItemType) where V: Visit<'ast> + ?Sized,2341 pub fn visit_item_type<'ast, V>(v: &mut V, node: &'ast ItemType)
2342 where
2343     V: Visit<'ast> + ?Sized,
2344 {
2345     for it in &node.attrs {
2346         v.visit_attribute(it);
2347     }
2348     v.visit_visibility(&node.vis);
2349     skip!(node.type_token);
2350     v.visit_ident(&node.ident);
2351     v.visit_generics(&node.generics);
2352     skip!(node.eq_token);
2353     v.visit_type(&*node.ty);
2354     skip!(node.semi_token);
2355 }
2356 #[cfg(feature = "full")]
visit_item_union<'ast, V>(v: &mut V, node: &'ast ItemUnion) where V: Visit<'ast> + ?Sized,2357 pub fn visit_item_union<'ast, V>(v: &mut V, node: &'ast ItemUnion)
2358 where
2359     V: Visit<'ast> + ?Sized,
2360 {
2361     for it in &node.attrs {
2362         v.visit_attribute(it);
2363     }
2364     v.visit_visibility(&node.vis);
2365     skip!(node.union_token);
2366     v.visit_ident(&node.ident);
2367     v.visit_generics(&node.generics);
2368     v.visit_fields_named(&node.fields);
2369 }
2370 #[cfg(feature = "full")]
visit_item_use<'ast, V>(v: &mut V, node: &'ast ItemUse) where V: Visit<'ast> + ?Sized,2371 pub fn visit_item_use<'ast, V>(v: &mut V, node: &'ast ItemUse)
2372 where
2373     V: Visit<'ast> + ?Sized,
2374 {
2375     for it in &node.attrs {
2376         v.visit_attribute(it);
2377     }
2378     v.visit_visibility(&node.vis);
2379     skip!(node.use_token);
2380     skip!(node.leading_colon);
2381     v.visit_use_tree(&node.tree);
2382     skip!(node.semi_token);
2383 }
2384 #[cfg(feature = "full")]
visit_label<'ast, V>(v: &mut V, node: &'ast Label) where V: Visit<'ast> + ?Sized,2385 pub fn visit_label<'ast, V>(v: &mut V, node: &'ast Label)
2386 where
2387     V: Visit<'ast> + ?Sized,
2388 {
2389     v.visit_lifetime(&node.name);
2390     skip!(node.colon_token);
2391 }
visit_lifetime<'ast, V>(v: &mut V, node: &'ast Lifetime) where V: Visit<'ast> + ?Sized,2392 pub fn visit_lifetime<'ast, V>(v: &mut V, node: &'ast Lifetime)
2393 where
2394     V: Visit<'ast> + ?Sized,
2395 {
2396     v.visit_span(&node.apostrophe);
2397     v.visit_ident(&node.ident);
2398 }
2399 #[cfg(any(feature = "derive", feature = "full"))]
visit_lifetime_param<'ast, V>(v: &mut V, node: &'ast LifetimeParam) where V: Visit<'ast> + ?Sized,2400 pub fn visit_lifetime_param<'ast, V>(v: &mut V, node: &'ast LifetimeParam)
2401 where
2402     V: Visit<'ast> + ?Sized,
2403 {
2404     for it in &node.attrs {
2405         v.visit_attribute(it);
2406     }
2407     v.visit_lifetime(&node.lifetime);
2408     skip!(node.colon_token);
2409     for el in Punctuated::pairs(&node.bounds) {
2410         let it = el.value();
2411         v.visit_lifetime(it);
2412     }
2413 }
visit_lit<'ast, V>(v: &mut V, node: &'ast Lit) where V: Visit<'ast> + ?Sized,2414 pub fn visit_lit<'ast, V>(v: &mut V, node: &'ast Lit)
2415 where
2416     V: Visit<'ast> + ?Sized,
2417 {
2418     match node {
2419         Lit::Str(_binding_0) => {
2420             v.visit_lit_str(_binding_0);
2421         }
2422         Lit::ByteStr(_binding_0) => {
2423             v.visit_lit_byte_str(_binding_0);
2424         }
2425         Lit::Byte(_binding_0) => {
2426             v.visit_lit_byte(_binding_0);
2427         }
2428         Lit::Char(_binding_0) => {
2429             v.visit_lit_char(_binding_0);
2430         }
2431         Lit::Int(_binding_0) => {
2432             v.visit_lit_int(_binding_0);
2433         }
2434         Lit::Float(_binding_0) => {
2435             v.visit_lit_float(_binding_0);
2436         }
2437         Lit::Bool(_binding_0) => {
2438             v.visit_lit_bool(_binding_0);
2439         }
2440         Lit::Verbatim(_binding_0) => {
2441             skip!(_binding_0);
2442         }
2443     }
2444 }
visit_lit_bool<'ast, V>(v: &mut V, node: &'ast LitBool) where V: Visit<'ast> + ?Sized,2445 pub fn visit_lit_bool<'ast, V>(v: &mut V, node: &'ast LitBool)
2446 where
2447     V: Visit<'ast> + ?Sized,
2448 {
2449     skip!(node.value);
2450     v.visit_span(&node.span);
2451 }
visit_lit_byte<'ast, V>(v: &mut V, node: &'ast LitByte) where V: Visit<'ast> + ?Sized,2452 pub fn visit_lit_byte<'ast, V>(v: &mut V, node: &'ast LitByte)
2453 where
2454     V: Visit<'ast> + ?Sized,
2455 {}
visit_lit_byte_str<'ast, V>(v: &mut V, node: &'ast LitByteStr) where V: Visit<'ast> + ?Sized,2456 pub fn visit_lit_byte_str<'ast, V>(v: &mut V, node: &'ast LitByteStr)
2457 where
2458     V: Visit<'ast> + ?Sized,
2459 {}
visit_lit_char<'ast, V>(v: &mut V, node: &'ast LitChar) where V: Visit<'ast> + ?Sized,2460 pub fn visit_lit_char<'ast, V>(v: &mut V, node: &'ast LitChar)
2461 where
2462     V: Visit<'ast> + ?Sized,
2463 {}
visit_lit_float<'ast, V>(v: &mut V, node: &'ast LitFloat) where V: Visit<'ast> + ?Sized,2464 pub fn visit_lit_float<'ast, V>(v: &mut V, node: &'ast LitFloat)
2465 where
2466     V: Visit<'ast> + ?Sized,
2467 {}
visit_lit_int<'ast, V>(v: &mut V, node: &'ast LitInt) where V: Visit<'ast> + ?Sized,2468 pub fn visit_lit_int<'ast, V>(v: &mut V, node: &'ast LitInt)
2469 where
2470     V: Visit<'ast> + ?Sized,
2471 {}
visit_lit_str<'ast, V>(v: &mut V, node: &'ast LitStr) where V: Visit<'ast> + ?Sized,2472 pub fn visit_lit_str<'ast, V>(v: &mut V, node: &'ast LitStr)
2473 where
2474     V: Visit<'ast> + ?Sized,
2475 {}
2476 #[cfg(feature = "full")]
visit_local<'ast, V>(v: &mut V, node: &'ast Local) where V: Visit<'ast> + ?Sized,2477 pub fn visit_local<'ast, V>(v: &mut V, node: &'ast Local)
2478 where
2479     V: Visit<'ast> + ?Sized,
2480 {
2481     for it in &node.attrs {
2482         v.visit_attribute(it);
2483     }
2484     skip!(node.let_token);
2485     v.visit_pat(&node.pat);
2486     if let Some(it) = &node.init {
2487         v.visit_local_init(it);
2488     }
2489     skip!(node.semi_token);
2490 }
2491 #[cfg(feature = "full")]
visit_local_init<'ast, V>(v: &mut V, node: &'ast LocalInit) where V: Visit<'ast> + ?Sized,2492 pub fn visit_local_init<'ast, V>(v: &mut V, node: &'ast LocalInit)
2493 where
2494     V: Visit<'ast> + ?Sized,
2495 {
2496     skip!(node.eq_token);
2497     v.visit_expr(&*node.expr);
2498     if let Some(it) = &node.diverge {
2499         skip!((it).0);
2500         v.visit_expr(&*(it).1);
2501     }
2502 }
2503 #[cfg(any(feature = "derive", feature = "full"))]
visit_macro<'ast, V>(v: &mut V, node: &'ast Macro) where V: Visit<'ast> + ?Sized,2504 pub fn visit_macro<'ast, V>(v: &mut V, node: &'ast Macro)
2505 where
2506     V: Visit<'ast> + ?Sized,
2507 {
2508     v.visit_path(&node.path);
2509     skip!(node.bang_token);
2510     v.visit_macro_delimiter(&node.delimiter);
2511     skip!(node.tokens);
2512 }
2513 #[cfg(any(feature = "derive", feature = "full"))]
visit_macro_delimiter<'ast, V>(v: &mut V, node: &'ast MacroDelimiter) where V: Visit<'ast> + ?Sized,2514 pub fn visit_macro_delimiter<'ast, V>(v: &mut V, node: &'ast MacroDelimiter)
2515 where
2516     V: Visit<'ast> + ?Sized,
2517 {
2518     match node {
2519         MacroDelimiter::Paren(_binding_0) => {
2520             skip!(_binding_0);
2521         }
2522         MacroDelimiter::Brace(_binding_0) => {
2523             skip!(_binding_0);
2524         }
2525         MacroDelimiter::Bracket(_binding_0) => {
2526             skip!(_binding_0);
2527         }
2528     }
2529 }
2530 #[cfg(any(feature = "derive", feature = "full"))]
visit_member<'ast, V>(v: &mut V, node: &'ast Member) where V: Visit<'ast> + ?Sized,2531 pub fn visit_member<'ast, V>(v: &mut V, node: &'ast Member)
2532 where
2533     V: Visit<'ast> + ?Sized,
2534 {
2535     match node {
2536         Member::Named(_binding_0) => {
2537             v.visit_ident(_binding_0);
2538         }
2539         Member::Unnamed(_binding_0) => {
2540             v.visit_index(_binding_0);
2541         }
2542     }
2543 }
2544 #[cfg(any(feature = "derive", feature = "full"))]
visit_meta<'ast, V>(v: &mut V, node: &'ast Meta) where V: Visit<'ast> + ?Sized,2545 pub fn visit_meta<'ast, V>(v: &mut V, node: &'ast Meta)
2546 where
2547     V: Visit<'ast> + ?Sized,
2548 {
2549     match node {
2550         Meta::Path(_binding_0) => {
2551             v.visit_path(_binding_0);
2552         }
2553         Meta::List(_binding_0) => {
2554             v.visit_meta_list(_binding_0);
2555         }
2556         Meta::NameValue(_binding_0) => {
2557             v.visit_meta_name_value(_binding_0);
2558         }
2559     }
2560 }
2561 #[cfg(any(feature = "derive", feature = "full"))]
visit_meta_list<'ast, V>(v: &mut V, node: &'ast MetaList) where V: Visit<'ast> + ?Sized,2562 pub fn visit_meta_list<'ast, V>(v: &mut V, node: &'ast MetaList)
2563 where
2564     V: Visit<'ast> + ?Sized,
2565 {
2566     v.visit_path(&node.path);
2567     v.visit_macro_delimiter(&node.delimiter);
2568     skip!(node.tokens);
2569 }
2570 #[cfg(any(feature = "derive", feature = "full"))]
visit_meta_name_value<'ast, V>(v: &mut V, node: &'ast MetaNameValue) where V: Visit<'ast> + ?Sized,2571 pub fn visit_meta_name_value<'ast, V>(v: &mut V, node: &'ast MetaNameValue)
2572 where
2573     V: Visit<'ast> + ?Sized,
2574 {
2575     v.visit_path(&node.path);
2576     skip!(node.eq_token);
2577     v.visit_expr(&node.value);
2578 }
2579 #[cfg(any(feature = "derive", feature = "full"))]
visit_parenthesized_generic_arguments<'ast, V>( v: &mut V, node: &'ast ParenthesizedGenericArguments, ) where V: Visit<'ast> + ?Sized,2580 pub fn visit_parenthesized_generic_arguments<'ast, V>(
2581     v: &mut V,
2582     node: &'ast ParenthesizedGenericArguments,
2583 )
2584 where
2585     V: Visit<'ast> + ?Sized,
2586 {
2587     skip!(node.paren_token);
2588     for el in Punctuated::pairs(&node.inputs) {
2589         let it = el.value();
2590         v.visit_type(it);
2591     }
2592     v.visit_return_type(&node.output);
2593 }
2594 #[cfg(feature = "full")]
visit_pat<'ast, V>(v: &mut V, node: &'ast Pat) where V: Visit<'ast> + ?Sized,2595 pub fn visit_pat<'ast, V>(v: &mut V, node: &'ast Pat)
2596 where
2597     V: Visit<'ast> + ?Sized,
2598 {
2599     match node {
2600         Pat::Const(_binding_0) => {
2601             v.visit_expr_const(_binding_0);
2602         }
2603         Pat::Ident(_binding_0) => {
2604             v.visit_pat_ident(_binding_0);
2605         }
2606         Pat::Lit(_binding_0) => {
2607             v.visit_expr_lit(_binding_0);
2608         }
2609         Pat::Macro(_binding_0) => {
2610             v.visit_expr_macro(_binding_0);
2611         }
2612         Pat::Or(_binding_0) => {
2613             v.visit_pat_or(_binding_0);
2614         }
2615         Pat::Paren(_binding_0) => {
2616             v.visit_pat_paren(_binding_0);
2617         }
2618         Pat::Path(_binding_0) => {
2619             v.visit_expr_path(_binding_0);
2620         }
2621         Pat::Range(_binding_0) => {
2622             v.visit_expr_range(_binding_0);
2623         }
2624         Pat::Reference(_binding_0) => {
2625             v.visit_pat_reference(_binding_0);
2626         }
2627         Pat::Rest(_binding_0) => {
2628             v.visit_pat_rest(_binding_0);
2629         }
2630         Pat::Slice(_binding_0) => {
2631             v.visit_pat_slice(_binding_0);
2632         }
2633         Pat::Struct(_binding_0) => {
2634             v.visit_pat_struct(_binding_0);
2635         }
2636         Pat::Tuple(_binding_0) => {
2637             v.visit_pat_tuple(_binding_0);
2638         }
2639         Pat::TupleStruct(_binding_0) => {
2640             v.visit_pat_tuple_struct(_binding_0);
2641         }
2642         Pat::Type(_binding_0) => {
2643             v.visit_pat_type(_binding_0);
2644         }
2645         Pat::Verbatim(_binding_0) => {
2646             skip!(_binding_0);
2647         }
2648         Pat::Wild(_binding_0) => {
2649             v.visit_pat_wild(_binding_0);
2650         }
2651     }
2652 }
2653 #[cfg(feature = "full")]
visit_pat_ident<'ast, V>(v: &mut V, node: &'ast PatIdent) where V: Visit<'ast> + ?Sized,2654 pub fn visit_pat_ident<'ast, V>(v: &mut V, node: &'ast PatIdent)
2655 where
2656     V: Visit<'ast> + ?Sized,
2657 {
2658     for it in &node.attrs {
2659         v.visit_attribute(it);
2660     }
2661     skip!(node.by_ref);
2662     skip!(node.mutability);
2663     v.visit_ident(&node.ident);
2664     if let Some(it) = &node.subpat {
2665         skip!((it).0);
2666         v.visit_pat(&*(it).1);
2667     }
2668 }
2669 #[cfg(feature = "full")]
visit_pat_or<'ast, V>(v: &mut V, node: &'ast PatOr) where V: Visit<'ast> + ?Sized,2670 pub fn visit_pat_or<'ast, V>(v: &mut V, node: &'ast PatOr)
2671 where
2672     V: Visit<'ast> + ?Sized,
2673 {
2674     for it in &node.attrs {
2675         v.visit_attribute(it);
2676     }
2677     skip!(node.leading_vert);
2678     for el in Punctuated::pairs(&node.cases) {
2679         let it = el.value();
2680         v.visit_pat(it);
2681     }
2682 }
2683 #[cfg(feature = "full")]
visit_pat_paren<'ast, V>(v: &mut V, node: &'ast PatParen) where V: Visit<'ast> + ?Sized,2684 pub fn visit_pat_paren<'ast, V>(v: &mut V, node: &'ast PatParen)
2685 where
2686     V: Visit<'ast> + ?Sized,
2687 {
2688     for it in &node.attrs {
2689         v.visit_attribute(it);
2690     }
2691     skip!(node.paren_token);
2692     v.visit_pat(&*node.pat);
2693 }
2694 #[cfg(feature = "full")]
visit_pat_reference<'ast, V>(v: &mut V, node: &'ast PatReference) where V: Visit<'ast> + ?Sized,2695 pub fn visit_pat_reference<'ast, V>(v: &mut V, node: &'ast PatReference)
2696 where
2697     V: Visit<'ast> + ?Sized,
2698 {
2699     for it in &node.attrs {
2700         v.visit_attribute(it);
2701     }
2702     skip!(node.and_token);
2703     skip!(node.mutability);
2704     v.visit_pat(&*node.pat);
2705 }
2706 #[cfg(feature = "full")]
visit_pat_rest<'ast, V>(v: &mut V, node: &'ast PatRest) where V: Visit<'ast> + ?Sized,2707 pub fn visit_pat_rest<'ast, V>(v: &mut V, node: &'ast PatRest)
2708 where
2709     V: Visit<'ast> + ?Sized,
2710 {
2711     for it in &node.attrs {
2712         v.visit_attribute(it);
2713     }
2714     skip!(node.dot2_token);
2715 }
2716 #[cfg(feature = "full")]
visit_pat_slice<'ast, V>(v: &mut V, node: &'ast PatSlice) where V: Visit<'ast> + ?Sized,2717 pub fn visit_pat_slice<'ast, V>(v: &mut V, node: &'ast PatSlice)
2718 where
2719     V: Visit<'ast> + ?Sized,
2720 {
2721     for it in &node.attrs {
2722         v.visit_attribute(it);
2723     }
2724     skip!(node.bracket_token);
2725     for el in Punctuated::pairs(&node.elems) {
2726         let it = el.value();
2727         v.visit_pat(it);
2728     }
2729 }
2730 #[cfg(feature = "full")]
visit_pat_struct<'ast, V>(v: &mut V, node: &'ast PatStruct) where V: Visit<'ast> + ?Sized,2731 pub fn visit_pat_struct<'ast, V>(v: &mut V, node: &'ast PatStruct)
2732 where
2733     V: Visit<'ast> + ?Sized,
2734 {
2735     for it in &node.attrs {
2736         v.visit_attribute(it);
2737     }
2738     if let Some(it) = &node.qself {
2739         v.visit_qself(it);
2740     }
2741     v.visit_path(&node.path);
2742     skip!(node.brace_token);
2743     for el in Punctuated::pairs(&node.fields) {
2744         let it = el.value();
2745         v.visit_field_pat(it);
2746     }
2747     if let Some(it) = &node.rest {
2748         v.visit_pat_rest(it);
2749     }
2750 }
2751 #[cfg(feature = "full")]
visit_pat_tuple<'ast, V>(v: &mut V, node: &'ast PatTuple) where V: Visit<'ast> + ?Sized,2752 pub fn visit_pat_tuple<'ast, V>(v: &mut V, node: &'ast PatTuple)
2753 where
2754     V: Visit<'ast> + ?Sized,
2755 {
2756     for it in &node.attrs {
2757         v.visit_attribute(it);
2758     }
2759     skip!(node.paren_token);
2760     for el in Punctuated::pairs(&node.elems) {
2761         let it = el.value();
2762         v.visit_pat(it);
2763     }
2764 }
2765 #[cfg(feature = "full")]
visit_pat_tuple_struct<'ast, V>(v: &mut V, node: &'ast PatTupleStruct) where V: Visit<'ast> + ?Sized,2766 pub fn visit_pat_tuple_struct<'ast, V>(v: &mut V, node: &'ast PatTupleStruct)
2767 where
2768     V: Visit<'ast> + ?Sized,
2769 {
2770     for it in &node.attrs {
2771         v.visit_attribute(it);
2772     }
2773     if let Some(it) = &node.qself {
2774         v.visit_qself(it);
2775     }
2776     v.visit_path(&node.path);
2777     skip!(node.paren_token);
2778     for el in Punctuated::pairs(&node.elems) {
2779         let it = el.value();
2780         v.visit_pat(it);
2781     }
2782 }
2783 #[cfg(feature = "full")]
visit_pat_type<'ast, V>(v: &mut V, node: &'ast PatType) where V: Visit<'ast> + ?Sized,2784 pub fn visit_pat_type<'ast, V>(v: &mut V, node: &'ast PatType)
2785 where
2786     V: Visit<'ast> + ?Sized,
2787 {
2788     for it in &node.attrs {
2789         v.visit_attribute(it);
2790     }
2791     v.visit_pat(&*node.pat);
2792     skip!(node.colon_token);
2793     v.visit_type(&*node.ty);
2794 }
2795 #[cfg(feature = "full")]
visit_pat_wild<'ast, V>(v: &mut V, node: &'ast PatWild) where V: Visit<'ast> + ?Sized,2796 pub fn visit_pat_wild<'ast, V>(v: &mut V, node: &'ast PatWild)
2797 where
2798     V: Visit<'ast> + ?Sized,
2799 {
2800     for it in &node.attrs {
2801         v.visit_attribute(it);
2802     }
2803     skip!(node.underscore_token);
2804 }
2805 #[cfg(any(feature = "derive", feature = "full"))]
visit_path<'ast, V>(v: &mut V, node: &'ast Path) where V: Visit<'ast> + ?Sized,2806 pub fn visit_path<'ast, V>(v: &mut V, node: &'ast Path)
2807 where
2808     V: Visit<'ast> + ?Sized,
2809 {
2810     skip!(node.leading_colon);
2811     for el in Punctuated::pairs(&node.segments) {
2812         let it = el.value();
2813         v.visit_path_segment(it);
2814     }
2815 }
2816 #[cfg(any(feature = "derive", feature = "full"))]
visit_path_arguments<'ast, V>(v: &mut V, node: &'ast PathArguments) where V: Visit<'ast> + ?Sized,2817 pub fn visit_path_arguments<'ast, V>(v: &mut V, node: &'ast PathArguments)
2818 where
2819     V: Visit<'ast> + ?Sized,
2820 {
2821     match node {
2822         PathArguments::None => {}
2823         PathArguments::AngleBracketed(_binding_0) => {
2824             v.visit_angle_bracketed_generic_arguments(_binding_0);
2825         }
2826         PathArguments::Parenthesized(_binding_0) => {
2827             v.visit_parenthesized_generic_arguments(_binding_0);
2828         }
2829     }
2830 }
2831 #[cfg(any(feature = "derive", feature = "full"))]
visit_path_segment<'ast, V>(v: &mut V, node: &'ast PathSegment) where V: Visit<'ast> + ?Sized,2832 pub fn visit_path_segment<'ast, V>(v: &mut V, node: &'ast PathSegment)
2833 where
2834     V: Visit<'ast> + ?Sized,
2835 {
2836     v.visit_ident(&node.ident);
2837     v.visit_path_arguments(&node.arguments);
2838 }
2839 #[cfg(any(feature = "derive", feature = "full"))]
visit_predicate_lifetime<'ast, V>(v: &mut V, node: &'ast PredicateLifetime) where V: Visit<'ast> + ?Sized,2840 pub fn visit_predicate_lifetime<'ast, V>(v: &mut V, node: &'ast PredicateLifetime)
2841 where
2842     V: Visit<'ast> + ?Sized,
2843 {
2844     v.visit_lifetime(&node.lifetime);
2845     skip!(node.colon_token);
2846     for el in Punctuated::pairs(&node.bounds) {
2847         let it = el.value();
2848         v.visit_lifetime(it);
2849     }
2850 }
2851 #[cfg(any(feature = "derive", feature = "full"))]
visit_predicate_type<'ast, V>(v: &mut V, node: &'ast PredicateType) where V: Visit<'ast> + ?Sized,2852 pub fn visit_predicate_type<'ast, V>(v: &mut V, node: &'ast PredicateType)
2853 where
2854     V: Visit<'ast> + ?Sized,
2855 {
2856     if let Some(it) = &node.lifetimes {
2857         v.visit_bound_lifetimes(it);
2858     }
2859     v.visit_type(&node.bounded_ty);
2860     skip!(node.colon_token);
2861     for el in Punctuated::pairs(&node.bounds) {
2862         let it = el.value();
2863         v.visit_type_param_bound(it);
2864     }
2865 }
2866 #[cfg(any(feature = "derive", feature = "full"))]
visit_qself<'ast, V>(v: &mut V, node: &'ast QSelf) where V: Visit<'ast> + ?Sized,2867 pub fn visit_qself<'ast, V>(v: &mut V, node: &'ast QSelf)
2868 where
2869     V: Visit<'ast> + ?Sized,
2870 {
2871     skip!(node.lt_token);
2872     v.visit_type(&*node.ty);
2873     skip!(node.position);
2874     skip!(node.as_token);
2875     skip!(node.gt_token);
2876 }
2877 #[cfg(feature = "full")]
visit_range_limits<'ast, V>(v: &mut V, node: &'ast RangeLimits) where V: Visit<'ast> + ?Sized,2878 pub fn visit_range_limits<'ast, V>(v: &mut V, node: &'ast RangeLimits)
2879 where
2880     V: Visit<'ast> + ?Sized,
2881 {
2882     match node {
2883         RangeLimits::HalfOpen(_binding_0) => {
2884             skip!(_binding_0);
2885         }
2886         RangeLimits::Closed(_binding_0) => {
2887             skip!(_binding_0);
2888         }
2889     }
2890 }
2891 #[cfg(feature = "full")]
visit_receiver<'ast, V>(v: &mut V, node: &'ast Receiver) where V: Visit<'ast> + ?Sized,2892 pub fn visit_receiver<'ast, V>(v: &mut V, node: &'ast Receiver)
2893 where
2894     V: Visit<'ast> + ?Sized,
2895 {
2896     for it in &node.attrs {
2897         v.visit_attribute(it);
2898     }
2899     if let Some(it) = &node.reference {
2900         skip!((it).0);
2901         if let Some(it) = &(it).1 {
2902             v.visit_lifetime(it);
2903         }
2904     }
2905     skip!(node.mutability);
2906     skip!(node.self_token);
2907     skip!(node.colon_token);
2908     v.visit_type(&*node.ty);
2909 }
2910 #[cfg(any(feature = "derive", feature = "full"))]
visit_return_type<'ast, V>(v: &mut V, node: &'ast ReturnType) where V: Visit<'ast> + ?Sized,2911 pub fn visit_return_type<'ast, V>(v: &mut V, node: &'ast ReturnType)
2912 where
2913     V: Visit<'ast> + ?Sized,
2914 {
2915     match node {
2916         ReturnType::Default => {}
2917         ReturnType::Type(_binding_0, _binding_1) => {
2918             skip!(_binding_0);
2919             v.visit_type(&**_binding_1);
2920         }
2921     }
2922 }
2923 #[cfg(feature = "full")]
visit_signature<'ast, V>(v: &mut V, node: &'ast Signature) where V: Visit<'ast> + ?Sized,2924 pub fn visit_signature<'ast, V>(v: &mut V, node: &'ast Signature)
2925 where
2926     V: Visit<'ast> + ?Sized,
2927 {
2928     skip!(node.constness);
2929     skip!(node.asyncness);
2930     skip!(node.unsafety);
2931     if let Some(it) = &node.abi {
2932         v.visit_abi(it);
2933     }
2934     skip!(node.fn_token);
2935     v.visit_ident(&node.ident);
2936     v.visit_generics(&node.generics);
2937     skip!(node.paren_token);
2938     for el in Punctuated::pairs(&node.inputs) {
2939         let it = el.value();
2940         v.visit_fn_arg(it);
2941     }
2942     if let Some(it) = &node.variadic {
2943         v.visit_variadic(it);
2944     }
2945     v.visit_return_type(&node.output);
2946 }
visit_span<'ast, V>(v: &mut V, node: &Span) where V: Visit<'ast> + ?Sized,2947 pub fn visit_span<'ast, V>(v: &mut V, node: &Span)
2948 where
2949     V: Visit<'ast> + ?Sized,
2950 {}
2951 #[cfg(feature = "full")]
visit_static_mutability<'ast, V>(v: &mut V, node: &'ast StaticMutability) where V: Visit<'ast> + ?Sized,2952 pub fn visit_static_mutability<'ast, V>(v: &mut V, node: &'ast StaticMutability)
2953 where
2954     V: Visit<'ast> + ?Sized,
2955 {
2956     match node {
2957         StaticMutability::Mut(_binding_0) => {
2958             skip!(_binding_0);
2959         }
2960         StaticMutability::None => {}
2961     }
2962 }
2963 #[cfg(feature = "full")]
visit_stmt<'ast, V>(v: &mut V, node: &'ast Stmt) where V: Visit<'ast> + ?Sized,2964 pub fn visit_stmt<'ast, V>(v: &mut V, node: &'ast Stmt)
2965 where
2966     V: Visit<'ast> + ?Sized,
2967 {
2968     match node {
2969         Stmt::Local(_binding_0) => {
2970             v.visit_local(_binding_0);
2971         }
2972         Stmt::Item(_binding_0) => {
2973             v.visit_item(_binding_0);
2974         }
2975         Stmt::Expr(_binding_0, _binding_1) => {
2976             v.visit_expr(_binding_0);
2977             skip!(_binding_1);
2978         }
2979         Stmt::Macro(_binding_0) => {
2980             v.visit_stmt_macro(_binding_0);
2981         }
2982     }
2983 }
2984 #[cfg(feature = "full")]
visit_stmt_macro<'ast, V>(v: &mut V, node: &'ast StmtMacro) where V: Visit<'ast> + ?Sized,2985 pub fn visit_stmt_macro<'ast, V>(v: &mut V, node: &'ast StmtMacro)
2986 where
2987     V: Visit<'ast> + ?Sized,
2988 {
2989     for it in &node.attrs {
2990         v.visit_attribute(it);
2991     }
2992     v.visit_macro(&node.mac);
2993     skip!(node.semi_token);
2994 }
2995 #[cfg(any(feature = "derive", feature = "full"))]
visit_trait_bound<'ast, V>(v: &mut V, node: &'ast TraitBound) where V: Visit<'ast> + ?Sized,2996 pub fn visit_trait_bound<'ast, V>(v: &mut V, node: &'ast TraitBound)
2997 where
2998     V: Visit<'ast> + ?Sized,
2999 {
3000     skip!(node.paren_token);
3001     v.visit_trait_bound_modifier(&node.modifier);
3002     if let Some(it) = &node.lifetimes {
3003         v.visit_bound_lifetimes(it);
3004     }
3005     v.visit_path(&node.path);
3006 }
3007 #[cfg(any(feature = "derive", feature = "full"))]
visit_trait_bound_modifier<'ast, V>(v: &mut V, node: &'ast TraitBoundModifier) where V: Visit<'ast> + ?Sized,3008 pub fn visit_trait_bound_modifier<'ast, V>(v: &mut V, node: &'ast TraitBoundModifier)
3009 where
3010     V: Visit<'ast> + ?Sized,
3011 {
3012     match node {
3013         TraitBoundModifier::None => {}
3014         TraitBoundModifier::Maybe(_binding_0) => {
3015             skip!(_binding_0);
3016         }
3017     }
3018 }
3019 #[cfg(feature = "full")]
visit_trait_item<'ast, V>(v: &mut V, node: &'ast TraitItem) where V: Visit<'ast> + ?Sized,3020 pub fn visit_trait_item<'ast, V>(v: &mut V, node: &'ast TraitItem)
3021 where
3022     V: Visit<'ast> + ?Sized,
3023 {
3024     match node {
3025         TraitItem::Const(_binding_0) => {
3026             v.visit_trait_item_const(_binding_0);
3027         }
3028         TraitItem::Fn(_binding_0) => {
3029             v.visit_trait_item_fn(_binding_0);
3030         }
3031         TraitItem::Type(_binding_0) => {
3032             v.visit_trait_item_type(_binding_0);
3033         }
3034         TraitItem::Macro(_binding_0) => {
3035             v.visit_trait_item_macro(_binding_0);
3036         }
3037         TraitItem::Verbatim(_binding_0) => {
3038             skip!(_binding_0);
3039         }
3040     }
3041 }
3042 #[cfg(feature = "full")]
visit_trait_item_const<'ast, V>(v: &mut V, node: &'ast TraitItemConst) where V: Visit<'ast> + ?Sized,3043 pub fn visit_trait_item_const<'ast, V>(v: &mut V, node: &'ast TraitItemConst)
3044 where
3045     V: Visit<'ast> + ?Sized,
3046 {
3047     for it in &node.attrs {
3048         v.visit_attribute(it);
3049     }
3050     skip!(node.const_token);
3051     v.visit_ident(&node.ident);
3052     v.visit_generics(&node.generics);
3053     skip!(node.colon_token);
3054     v.visit_type(&node.ty);
3055     if let Some(it) = &node.default {
3056         skip!((it).0);
3057         v.visit_expr(&(it).1);
3058     }
3059     skip!(node.semi_token);
3060 }
3061 #[cfg(feature = "full")]
visit_trait_item_fn<'ast, V>(v: &mut V, node: &'ast TraitItemFn) where V: Visit<'ast> + ?Sized,3062 pub fn visit_trait_item_fn<'ast, V>(v: &mut V, node: &'ast TraitItemFn)
3063 where
3064     V: Visit<'ast> + ?Sized,
3065 {
3066     for it in &node.attrs {
3067         v.visit_attribute(it);
3068     }
3069     v.visit_signature(&node.sig);
3070     if let Some(it) = &node.default {
3071         v.visit_block(it);
3072     }
3073     skip!(node.semi_token);
3074 }
3075 #[cfg(feature = "full")]
visit_trait_item_macro<'ast, V>(v: &mut V, node: &'ast TraitItemMacro) where V: Visit<'ast> + ?Sized,3076 pub fn visit_trait_item_macro<'ast, V>(v: &mut V, node: &'ast TraitItemMacro)
3077 where
3078     V: Visit<'ast> + ?Sized,
3079 {
3080     for it in &node.attrs {
3081         v.visit_attribute(it);
3082     }
3083     v.visit_macro(&node.mac);
3084     skip!(node.semi_token);
3085 }
3086 #[cfg(feature = "full")]
visit_trait_item_type<'ast, V>(v: &mut V, node: &'ast TraitItemType) where V: Visit<'ast> + ?Sized,3087 pub fn visit_trait_item_type<'ast, V>(v: &mut V, node: &'ast TraitItemType)
3088 where
3089     V: Visit<'ast> + ?Sized,
3090 {
3091     for it in &node.attrs {
3092         v.visit_attribute(it);
3093     }
3094     skip!(node.type_token);
3095     v.visit_ident(&node.ident);
3096     v.visit_generics(&node.generics);
3097     skip!(node.colon_token);
3098     for el in Punctuated::pairs(&node.bounds) {
3099         let it = el.value();
3100         v.visit_type_param_bound(it);
3101     }
3102     if let Some(it) = &node.default {
3103         skip!((it).0);
3104         v.visit_type(&(it).1);
3105     }
3106     skip!(node.semi_token);
3107 }
3108 #[cfg(any(feature = "derive", feature = "full"))]
visit_type<'ast, V>(v: &mut V, node: &'ast Type) where V: Visit<'ast> + ?Sized,3109 pub fn visit_type<'ast, V>(v: &mut V, node: &'ast Type)
3110 where
3111     V: Visit<'ast> + ?Sized,
3112 {
3113     match node {
3114         Type::Array(_binding_0) => {
3115             v.visit_type_array(_binding_0);
3116         }
3117         Type::BareFn(_binding_0) => {
3118             v.visit_type_bare_fn(_binding_0);
3119         }
3120         Type::Group(_binding_0) => {
3121             v.visit_type_group(_binding_0);
3122         }
3123         Type::ImplTrait(_binding_0) => {
3124             v.visit_type_impl_trait(_binding_0);
3125         }
3126         Type::Infer(_binding_0) => {
3127             v.visit_type_infer(_binding_0);
3128         }
3129         Type::Macro(_binding_0) => {
3130             v.visit_type_macro(_binding_0);
3131         }
3132         Type::Never(_binding_0) => {
3133             v.visit_type_never(_binding_0);
3134         }
3135         Type::Paren(_binding_0) => {
3136             v.visit_type_paren(_binding_0);
3137         }
3138         Type::Path(_binding_0) => {
3139             v.visit_type_path(_binding_0);
3140         }
3141         Type::Ptr(_binding_0) => {
3142             v.visit_type_ptr(_binding_0);
3143         }
3144         Type::Reference(_binding_0) => {
3145             v.visit_type_reference(_binding_0);
3146         }
3147         Type::Slice(_binding_0) => {
3148             v.visit_type_slice(_binding_0);
3149         }
3150         Type::TraitObject(_binding_0) => {
3151             v.visit_type_trait_object(_binding_0);
3152         }
3153         Type::Tuple(_binding_0) => {
3154             v.visit_type_tuple(_binding_0);
3155         }
3156         Type::Verbatim(_binding_0) => {
3157             skip!(_binding_0);
3158         }
3159     }
3160 }
3161 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_array<'ast, V>(v: &mut V, node: &'ast TypeArray) where V: Visit<'ast> + ?Sized,3162 pub fn visit_type_array<'ast, V>(v: &mut V, node: &'ast TypeArray)
3163 where
3164     V: Visit<'ast> + ?Sized,
3165 {
3166     skip!(node.bracket_token);
3167     v.visit_type(&*node.elem);
3168     skip!(node.semi_token);
3169     v.visit_expr(&node.len);
3170 }
3171 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_bare_fn<'ast, V>(v: &mut V, node: &'ast TypeBareFn) where V: Visit<'ast> + ?Sized,3172 pub fn visit_type_bare_fn<'ast, V>(v: &mut V, node: &'ast TypeBareFn)
3173 where
3174     V: Visit<'ast> + ?Sized,
3175 {
3176     if let Some(it) = &node.lifetimes {
3177         v.visit_bound_lifetimes(it);
3178     }
3179     skip!(node.unsafety);
3180     if let Some(it) = &node.abi {
3181         v.visit_abi(it);
3182     }
3183     skip!(node.fn_token);
3184     skip!(node.paren_token);
3185     for el in Punctuated::pairs(&node.inputs) {
3186         let it = el.value();
3187         v.visit_bare_fn_arg(it);
3188     }
3189     if let Some(it) = &node.variadic {
3190         v.visit_bare_variadic(it);
3191     }
3192     v.visit_return_type(&node.output);
3193 }
3194 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_group<'ast, V>(v: &mut V, node: &'ast TypeGroup) where V: Visit<'ast> + ?Sized,3195 pub fn visit_type_group<'ast, V>(v: &mut V, node: &'ast TypeGroup)
3196 where
3197     V: Visit<'ast> + ?Sized,
3198 {
3199     skip!(node.group_token);
3200     v.visit_type(&*node.elem);
3201 }
3202 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_impl_trait<'ast, V>(v: &mut V, node: &'ast TypeImplTrait) where V: Visit<'ast> + ?Sized,3203 pub fn visit_type_impl_trait<'ast, V>(v: &mut V, node: &'ast TypeImplTrait)
3204 where
3205     V: Visit<'ast> + ?Sized,
3206 {
3207     skip!(node.impl_token);
3208     for el in Punctuated::pairs(&node.bounds) {
3209         let it = el.value();
3210         v.visit_type_param_bound(it);
3211     }
3212 }
3213 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_infer<'ast, V>(v: &mut V, node: &'ast TypeInfer) where V: Visit<'ast> + ?Sized,3214 pub fn visit_type_infer<'ast, V>(v: &mut V, node: &'ast TypeInfer)
3215 where
3216     V: Visit<'ast> + ?Sized,
3217 {
3218     skip!(node.underscore_token);
3219 }
3220 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_macro<'ast, V>(v: &mut V, node: &'ast TypeMacro) where V: Visit<'ast> + ?Sized,3221 pub fn visit_type_macro<'ast, V>(v: &mut V, node: &'ast TypeMacro)
3222 where
3223     V: Visit<'ast> + ?Sized,
3224 {
3225     v.visit_macro(&node.mac);
3226 }
3227 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_never<'ast, V>(v: &mut V, node: &'ast TypeNever) where V: Visit<'ast> + ?Sized,3228 pub fn visit_type_never<'ast, V>(v: &mut V, node: &'ast TypeNever)
3229 where
3230     V: Visit<'ast> + ?Sized,
3231 {
3232     skip!(node.bang_token);
3233 }
3234 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_param<'ast, V>(v: &mut V, node: &'ast TypeParam) where V: Visit<'ast> + ?Sized,3235 pub fn visit_type_param<'ast, V>(v: &mut V, node: &'ast TypeParam)
3236 where
3237     V: Visit<'ast> + ?Sized,
3238 {
3239     for it in &node.attrs {
3240         v.visit_attribute(it);
3241     }
3242     v.visit_ident(&node.ident);
3243     skip!(node.colon_token);
3244     for el in Punctuated::pairs(&node.bounds) {
3245         let it = el.value();
3246         v.visit_type_param_bound(it);
3247     }
3248     skip!(node.eq_token);
3249     if let Some(it) = &node.default {
3250         v.visit_type(it);
3251     }
3252 }
3253 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_param_bound<'ast, V>(v: &mut V, node: &'ast TypeParamBound) where V: Visit<'ast> + ?Sized,3254 pub fn visit_type_param_bound<'ast, V>(v: &mut V, node: &'ast TypeParamBound)
3255 where
3256     V: Visit<'ast> + ?Sized,
3257 {
3258     match node {
3259         TypeParamBound::Trait(_binding_0) => {
3260             v.visit_trait_bound(_binding_0);
3261         }
3262         TypeParamBound::Lifetime(_binding_0) => {
3263             v.visit_lifetime(_binding_0);
3264         }
3265         TypeParamBound::Verbatim(_binding_0) => {
3266             skip!(_binding_0);
3267         }
3268     }
3269 }
3270 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_paren<'ast, V>(v: &mut V, node: &'ast TypeParen) where V: Visit<'ast> + ?Sized,3271 pub fn visit_type_paren<'ast, V>(v: &mut V, node: &'ast TypeParen)
3272 where
3273     V: Visit<'ast> + ?Sized,
3274 {
3275     skip!(node.paren_token);
3276     v.visit_type(&*node.elem);
3277 }
3278 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_path<'ast, V>(v: &mut V, node: &'ast TypePath) where V: Visit<'ast> + ?Sized,3279 pub fn visit_type_path<'ast, V>(v: &mut V, node: &'ast TypePath)
3280 where
3281     V: Visit<'ast> + ?Sized,
3282 {
3283     if let Some(it) = &node.qself {
3284         v.visit_qself(it);
3285     }
3286     v.visit_path(&node.path);
3287 }
3288 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_ptr<'ast, V>(v: &mut V, node: &'ast TypePtr) where V: Visit<'ast> + ?Sized,3289 pub fn visit_type_ptr<'ast, V>(v: &mut V, node: &'ast TypePtr)
3290 where
3291     V: Visit<'ast> + ?Sized,
3292 {
3293     skip!(node.star_token);
3294     skip!(node.const_token);
3295     skip!(node.mutability);
3296     v.visit_type(&*node.elem);
3297 }
3298 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_reference<'ast, V>(v: &mut V, node: &'ast TypeReference) where V: Visit<'ast> + ?Sized,3299 pub fn visit_type_reference<'ast, V>(v: &mut V, node: &'ast TypeReference)
3300 where
3301     V: Visit<'ast> + ?Sized,
3302 {
3303     skip!(node.and_token);
3304     if let Some(it) = &node.lifetime {
3305         v.visit_lifetime(it);
3306     }
3307     skip!(node.mutability);
3308     v.visit_type(&*node.elem);
3309 }
3310 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_slice<'ast, V>(v: &mut V, node: &'ast TypeSlice) where V: Visit<'ast> + ?Sized,3311 pub fn visit_type_slice<'ast, V>(v: &mut V, node: &'ast TypeSlice)
3312 where
3313     V: Visit<'ast> + ?Sized,
3314 {
3315     skip!(node.bracket_token);
3316     v.visit_type(&*node.elem);
3317 }
3318 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_trait_object<'ast, V>(v: &mut V, node: &'ast TypeTraitObject) where V: Visit<'ast> + ?Sized,3319 pub fn visit_type_trait_object<'ast, V>(v: &mut V, node: &'ast TypeTraitObject)
3320 where
3321     V: Visit<'ast> + ?Sized,
3322 {
3323     skip!(node.dyn_token);
3324     for el in Punctuated::pairs(&node.bounds) {
3325         let it = el.value();
3326         v.visit_type_param_bound(it);
3327     }
3328 }
3329 #[cfg(any(feature = "derive", feature = "full"))]
visit_type_tuple<'ast, V>(v: &mut V, node: &'ast TypeTuple) where V: Visit<'ast> + ?Sized,3330 pub fn visit_type_tuple<'ast, V>(v: &mut V, node: &'ast TypeTuple)
3331 where
3332     V: Visit<'ast> + ?Sized,
3333 {
3334     skip!(node.paren_token);
3335     for el in Punctuated::pairs(&node.elems) {
3336         let it = el.value();
3337         v.visit_type(it);
3338     }
3339 }
3340 #[cfg(any(feature = "derive", feature = "full"))]
visit_un_op<'ast, V>(v: &mut V, node: &'ast UnOp) where V: Visit<'ast> + ?Sized,3341 pub fn visit_un_op<'ast, V>(v: &mut V, node: &'ast UnOp)
3342 where
3343     V: Visit<'ast> + ?Sized,
3344 {
3345     match node {
3346         UnOp::Deref(_binding_0) => {
3347             skip!(_binding_0);
3348         }
3349         UnOp::Not(_binding_0) => {
3350             skip!(_binding_0);
3351         }
3352         UnOp::Neg(_binding_0) => {
3353             skip!(_binding_0);
3354         }
3355     }
3356 }
3357 #[cfg(feature = "full")]
visit_use_glob<'ast, V>(v: &mut V, node: &'ast UseGlob) where V: Visit<'ast> + ?Sized,3358 pub fn visit_use_glob<'ast, V>(v: &mut V, node: &'ast UseGlob)
3359 where
3360     V: Visit<'ast> + ?Sized,
3361 {
3362     skip!(node.star_token);
3363 }
3364 #[cfg(feature = "full")]
visit_use_group<'ast, V>(v: &mut V, node: &'ast UseGroup) where V: Visit<'ast> + ?Sized,3365 pub fn visit_use_group<'ast, V>(v: &mut V, node: &'ast UseGroup)
3366 where
3367     V: Visit<'ast> + ?Sized,
3368 {
3369     skip!(node.brace_token);
3370     for el in Punctuated::pairs(&node.items) {
3371         let it = el.value();
3372         v.visit_use_tree(it);
3373     }
3374 }
3375 #[cfg(feature = "full")]
visit_use_name<'ast, V>(v: &mut V, node: &'ast UseName) where V: Visit<'ast> + ?Sized,3376 pub fn visit_use_name<'ast, V>(v: &mut V, node: &'ast UseName)
3377 where
3378     V: Visit<'ast> + ?Sized,
3379 {
3380     v.visit_ident(&node.ident);
3381 }
3382 #[cfg(feature = "full")]
visit_use_path<'ast, V>(v: &mut V, node: &'ast UsePath) where V: Visit<'ast> + ?Sized,3383 pub fn visit_use_path<'ast, V>(v: &mut V, node: &'ast UsePath)
3384 where
3385     V: Visit<'ast> + ?Sized,
3386 {
3387     v.visit_ident(&node.ident);
3388     skip!(node.colon2_token);
3389     v.visit_use_tree(&*node.tree);
3390 }
3391 #[cfg(feature = "full")]
visit_use_rename<'ast, V>(v: &mut V, node: &'ast UseRename) where V: Visit<'ast> + ?Sized,3392 pub fn visit_use_rename<'ast, V>(v: &mut V, node: &'ast UseRename)
3393 where
3394     V: Visit<'ast> + ?Sized,
3395 {
3396     v.visit_ident(&node.ident);
3397     skip!(node.as_token);
3398     v.visit_ident(&node.rename);
3399 }
3400 #[cfg(feature = "full")]
visit_use_tree<'ast, V>(v: &mut V, node: &'ast UseTree) where V: Visit<'ast> + ?Sized,3401 pub fn visit_use_tree<'ast, V>(v: &mut V, node: &'ast UseTree)
3402 where
3403     V: Visit<'ast> + ?Sized,
3404 {
3405     match node {
3406         UseTree::Path(_binding_0) => {
3407             v.visit_use_path(_binding_0);
3408         }
3409         UseTree::Name(_binding_0) => {
3410             v.visit_use_name(_binding_0);
3411         }
3412         UseTree::Rename(_binding_0) => {
3413             v.visit_use_rename(_binding_0);
3414         }
3415         UseTree::Glob(_binding_0) => {
3416             v.visit_use_glob(_binding_0);
3417         }
3418         UseTree::Group(_binding_0) => {
3419             v.visit_use_group(_binding_0);
3420         }
3421     }
3422 }
3423 #[cfg(feature = "full")]
visit_variadic<'ast, V>(v: &mut V, node: &'ast Variadic) where V: Visit<'ast> + ?Sized,3424 pub fn visit_variadic<'ast, V>(v: &mut V, node: &'ast Variadic)
3425 where
3426     V: Visit<'ast> + ?Sized,
3427 {
3428     for it in &node.attrs {
3429         v.visit_attribute(it);
3430     }
3431     if let Some(it) = &node.pat {
3432         v.visit_pat(&*(it).0);
3433         skip!((it).1);
3434     }
3435     skip!(node.dots);
3436     skip!(node.comma);
3437 }
3438 #[cfg(any(feature = "derive", feature = "full"))]
visit_variant<'ast, V>(v: &mut V, node: &'ast Variant) where V: Visit<'ast> + ?Sized,3439 pub fn visit_variant<'ast, V>(v: &mut V, node: &'ast Variant)
3440 where
3441     V: Visit<'ast> + ?Sized,
3442 {
3443     for it in &node.attrs {
3444         v.visit_attribute(it);
3445     }
3446     v.visit_ident(&node.ident);
3447     v.visit_fields(&node.fields);
3448     if let Some(it) = &node.discriminant {
3449         skip!((it).0);
3450         v.visit_expr(&(it).1);
3451     }
3452 }
3453 #[cfg(any(feature = "derive", feature = "full"))]
visit_vis_restricted<'ast, V>(v: &mut V, node: &'ast VisRestricted) where V: Visit<'ast> + ?Sized,3454 pub fn visit_vis_restricted<'ast, V>(v: &mut V, node: &'ast VisRestricted)
3455 where
3456     V: Visit<'ast> + ?Sized,
3457 {
3458     skip!(node.pub_token);
3459     skip!(node.paren_token);
3460     skip!(node.in_token);
3461     v.visit_path(&*node.path);
3462 }
3463 #[cfg(any(feature = "derive", feature = "full"))]
visit_visibility<'ast, V>(v: &mut V, node: &'ast Visibility) where V: Visit<'ast> + ?Sized,3464 pub fn visit_visibility<'ast, V>(v: &mut V, node: &'ast Visibility)
3465 where
3466     V: Visit<'ast> + ?Sized,
3467 {
3468     match node {
3469         Visibility::Public(_binding_0) => {
3470             skip!(_binding_0);
3471         }
3472         Visibility::Restricted(_binding_0) => {
3473             v.visit_vis_restricted(_binding_0);
3474         }
3475         Visibility::Inherited => {}
3476     }
3477 }
3478 #[cfg(any(feature = "derive", feature = "full"))]
visit_where_clause<'ast, V>(v: &mut V, node: &'ast WhereClause) where V: Visit<'ast> + ?Sized,3479 pub fn visit_where_clause<'ast, V>(v: &mut V, node: &'ast WhereClause)
3480 where
3481     V: Visit<'ast> + ?Sized,
3482 {
3483     skip!(node.where_token);
3484     for el in Punctuated::pairs(&node.predicates) {
3485         let it = el.value();
3486         v.visit_where_predicate(it);
3487     }
3488 }
3489 #[cfg(any(feature = "derive", feature = "full"))]
visit_where_predicate<'ast, V>(v: &mut V, node: &'ast WherePredicate) where V: Visit<'ast> + ?Sized,3490 pub fn visit_where_predicate<'ast, V>(v: &mut V, node: &'ast WherePredicate)
3491 where
3492     V: Visit<'ast> + ?Sized,
3493 {
3494     match node {
3495         WherePredicate::Lifetime(_binding_0) => {
3496             v.visit_predicate_lifetime(_binding_0);
3497         }
3498         WherePredicate::Type(_binding_0) => {
3499             v.visit_predicate_type(_binding_0);
3500         }
3501     }
3502 }
3503