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