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