swc_ecma_visit/
generated.rs

1#![doc = r" This file is generated by `tools/generate-code`. DO NOT MODIFY."]
2#![allow(unused_variables)]
3#![allow(clippy::all)]
4pub use ::swc_visit::All;
5use swc_ecma_ast::*;
6#[doc = r" A visitor trait for traversing the AST."]
7pub trait Visit {
8    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
9             [`Accessibility::visit_children_with`]. If you want to recurse, you need to call it \
10             manually."]
11    #[inline]
12    fn visit_accessibility(&mut self, node: &Accessibility) {
13        <Accessibility as VisitWith<Self>>::visit_children_with(node, self)
14    }
15    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
16             [`ArrayLit::visit_children_with`]. If you want to recurse, you need to call it \
17             manually."]
18    #[inline]
19    fn visit_array_lit(&mut self, node: &ArrayLit) {
20        <ArrayLit as VisitWith<Self>>::visit_children_with(node, self)
21    }
22    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
23             [`ArrayPat::visit_children_with`]. If you want to recurse, you need to call it \
24             manually."]
25    #[inline]
26    fn visit_array_pat(&mut self, node: &ArrayPat) {
27        <ArrayPat as VisitWith<Self>>::visit_children_with(node, self)
28    }
29    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
30             [`ArrowExpr::visit_children_with`]. If you want to recurse, you need to call it \
31             manually."]
32    #[inline]
33    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
34        <ArrowExpr as VisitWith<Self>>::visit_children_with(node, self)
35    }
36    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
37             [`AssignExpr::visit_children_with`]. If you want to recurse, you need to call it \
38             manually."]
39    #[inline]
40    fn visit_assign_expr(&mut self, node: &AssignExpr) {
41        <AssignExpr as VisitWith<Self>>::visit_children_with(node, self)
42    }
43    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
44             [`AssignOp::visit_children_with`]. If you want to recurse, you need to call it \
45             manually."]
46    #[inline]
47    fn visit_assign_op(&mut self, node: &AssignOp) {
48        <AssignOp as VisitWith<Self>>::visit_children_with(node, self)
49    }
50    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
51             [`AssignPat::visit_children_with`]. If you want to recurse, you need to call it \
52             manually."]
53    #[inline]
54    fn visit_assign_pat(&mut self, node: &AssignPat) {
55        <AssignPat as VisitWith<Self>>::visit_children_with(node, self)
56    }
57    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
58             [`AssignPatProp::visit_children_with`]. If you want to recurse, you need to call it \
59             manually."]
60    #[inline]
61    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
62        <AssignPatProp as VisitWith<Self>>::visit_children_with(node, self)
63    }
64    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
65             [`AssignProp::visit_children_with`]. If you want to recurse, you need to call it \
66             manually."]
67    #[inline]
68    fn visit_assign_prop(&mut self, node: &AssignProp) {
69        <AssignProp as VisitWith<Self>>::visit_children_with(node, self)
70    }
71    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
72             [`AssignTarget::visit_children_with`]. If you want to recurse, you need to call it \
73             manually."]
74    #[inline]
75    fn visit_assign_target(&mut self, node: &AssignTarget) {
76        <AssignTarget as VisitWith<Self>>::visit_children_with(node, self)
77    }
78    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
79             [`AssignTargetPat::visit_children_with`]. If you want to recurse, you need to call it \
80             manually."]
81    #[inline]
82    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
83        <AssignTargetPat as VisitWith<Self>>::visit_children_with(node, self)
84    }
85    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
86             [`swc_atoms :: Atom::visit_children_with`]. If you want to recurse, you need to call \
87             it manually."]
88    #[inline]
89    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
90        <swc_atoms::Atom as VisitWith<Self>>::visit_children_with(node, self)
91    }
92    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
93             [`AutoAccessor::visit_children_with`]. If you want to recurse, you need to call it \
94             manually."]
95    #[inline]
96    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
97        <AutoAccessor as VisitWith<Self>>::visit_children_with(node, self)
98    }
99    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
100             [`AwaitExpr::visit_children_with`]. If you want to recurse, you need to call it \
101             manually."]
102    #[inline]
103    fn visit_await_expr(&mut self, node: &AwaitExpr) {
104        <AwaitExpr as VisitWith<Self>>::visit_children_with(node, self)
105    }
106    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
107             [`BigInt::visit_children_with`]. If you want to recurse, you need to call it manually."]
108    #[inline]
109    fn visit_big_int(&mut self, node: &BigInt) {
110        <BigInt as VisitWith<Self>>::visit_children_with(node, self)
111    }
112    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
113             [`BigIntValue::visit_children_with`]. If you want to recurse, you need to call it \
114             manually."]
115    #[inline]
116    fn visit_big_int_value(&mut self, node: &BigIntValue) {
117        <BigIntValue as VisitWith<Self>>::visit_children_with(node, self)
118    }
119    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
120             [`BinExpr::visit_children_with`]. If you want to recurse, you need to call it \
121             manually."]
122    #[inline]
123    fn visit_bin_expr(&mut self, node: &BinExpr) {
124        <BinExpr as VisitWith<Self>>::visit_children_with(node, self)
125    }
126    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
127             [`BinaryOp::visit_children_with`]. If you want to recurse, you need to call it \
128             manually."]
129    #[inline]
130    fn visit_binary_op(&mut self, node: &BinaryOp) {
131        <BinaryOp as VisitWith<Self>>::visit_children_with(node, self)
132    }
133    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
134             [`BindingIdent::visit_children_with`]. If you want to recurse, you need to call it \
135             manually."]
136    #[inline]
137    fn visit_binding_ident(&mut self, node: &BindingIdent) {
138        <BindingIdent as VisitWith<Self>>::visit_children_with(node, self)
139    }
140    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
141             [`BlockStmt::visit_children_with`]. If you want to recurse, you need to call it \
142             manually."]
143    #[inline]
144    fn visit_block_stmt(&mut self, node: &BlockStmt) {
145        <BlockStmt as VisitWith<Self>>::visit_children_with(node, self)
146    }
147    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
148             [`BlockStmtOrExpr::visit_children_with`]. If you want to recurse, you need to call it \
149             manually."]
150    #[inline]
151    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
152        <BlockStmtOrExpr as VisitWith<Self>>::visit_children_with(node, self)
153    }
154    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
155             [`Bool::visit_children_with`]. If you want to recurse, you need to call it manually."]
156    #[inline]
157    fn visit_bool(&mut self, node: &Bool) {
158        <Bool as VisitWith<Self>>::visit_children_with(node, self)
159    }
160    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
161             [`BreakStmt::visit_children_with`]. If you want to recurse, you need to call it \
162             manually."]
163    #[inline]
164    fn visit_break_stmt(&mut self, node: &BreakStmt) {
165        <BreakStmt as VisitWith<Self>>::visit_children_with(node, self)
166    }
167    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
168             [`CallExpr::visit_children_with`]. If you want to recurse, you need to call it \
169             manually."]
170    #[inline]
171    fn visit_call_expr(&mut self, node: &CallExpr) {
172        <CallExpr as VisitWith<Self>>::visit_children_with(node, self)
173    }
174    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
175             [`Callee::visit_children_with`]. If you want to recurse, you need to call it manually."]
176    #[inline]
177    fn visit_callee(&mut self, node: &Callee) {
178        <Callee as VisitWith<Self>>::visit_children_with(node, self)
179    }
180    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
181             [`CatchClause::visit_children_with`]. If you want to recurse, you need to call it \
182             manually."]
183    #[inline]
184    fn visit_catch_clause(&mut self, node: &CatchClause) {
185        <CatchClause as VisitWith<Self>>::visit_children_with(node, self)
186    }
187    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
188             [`Class::visit_children_with`]. If you want to recurse, you need to call it manually."]
189    #[inline]
190    fn visit_class(&mut self, node: &Class) {
191        <Class as VisitWith<Self>>::visit_children_with(node, self)
192    }
193    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
194             [`ClassDecl::visit_children_with`]. If you want to recurse, you need to call it \
195             manually."]
196    #[inline]
197    fn visit_class_decl(&mut self, node: &ClassDecl) {
198        <ClassDecl as VisitWith<Self>>::visit_children_with(node, self)
199    }
200    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
201             [`ClassExpr::visit_children_with`]. If you want to recurse, you need to call it \
202             manually."]
203    #[inline]
204    fn visit_class_expr(&mut self, node: &ClassExpr) {
205        <ClassExpr as VisitWith<Self>>::visit_children_with(node, self)
206    }
207    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
208             [`ClassMember::visit_children_with`]. If you want to recurse, you need to call it \
209             manually."]
210    #[inline]
211    fn visit_class_member(&mut self, node: &ClassMember) {
212        <ClassMember as VisitWith<Self>>::visit_children_with(node, self)
213    }
214    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
215             ClassMember >::visit_children_with`]. If you want to recurse, you need to call it \
216             manually."]
217    #[inline]
218    fn visit_class_members(&mut self, node: &[ClassMember]) {
219        <[ClassMember] as VisitWith<Self>>::visit_children_with(node, self)
220    }
221    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
222             [`ClassMethod::visit_children_with`]. If you want to recurse, you need to call it \
223             manually."]
224    #[inline]
225    fn visit_class_method(&mut self, node: &ClassMethod) {
226        <ClassMethod as VisitWith<Self>>::visit_children_with(node, self)
227    }
228    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
229             [`ClassProp::visit_children_with`]. If you want to recurse, you need to call it \
230             manually."]
231    #[inline]
232    fn visit_class_prop(&mut self, node: &ClassProp) {
233        <ClassProp as VisitWith<Self>>::visit_children_with(node, self)
234    }
235    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
236             [`ComputedPropName::visit_children_with`]. If you want to recurse, you need to call \
237             it manually."]
238    #[inline]
239    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
240        <ComputedPropName as VisitWith<Self>>::visit_children_with(node, self)
241    }
242    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
243             [`CondExpr::visit_children_with`]. If you want to recurse, you need to call it \
244             manually."]
245    #[inline]
246    fn visit_cond_expr(&mut self, node: &CondExpr) {
247        <CondExpr as VisitWith<Self>>::visit_children_with(node, self)
248    }
249    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
250             [`Constructor::visit_children_with`]. If you want to recurse, you need to call it \
251             manually."]
252    #[inline]
253    fn visit_constructor(&mut self, node: &Constructor) {
254        <Constructor as VisitWith<Self>>::visit_children_with(node, self)
255    }
256    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
257             [`ContinueStmt::visit_children_with`]. If you want to recurse, you need to call it \
258             manually."]
259    #[inline]
260    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
261        <ContinueStmt as VisitWith<Self>>::visit_children_with(node, self)
262    }
263    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
264             [`DebuggerStmt::visit_children_with`]. If you want to recurse, you need to call it \
265             manually."]
266    #[inline]
267    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
268        <DebuggerStmt as VisitWith<Self>>::visit_children_with(node, self)
269    }
270    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
271             [`Decl::visit_children_with`]. If you want to recurse, you need to call it manually."]
272    #[inline]
273    fn visit_decl(&mut self, node: &Decl) {
274        <Decl as VisitWith<Self>>::visit_children_with(node, self)
275    }
276    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
277             [`Decorator::visit_children_with`]. If you want to recurse, you need to call it \
278             manually."]
279    #[inline]
280    fn visit_decorator(&mut self, node: &Decorator) {
281        <Decorator as VisitWith<Self>>::visit_children_with(node, self)
282    }
283    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
284             Decorator >::visit_children_with`]. If you want to recurse, you need to call it \
285             manually."]
286    #[inline]
287    fn visit_decorators(&mut self, node: &[Decorator]) {
288        <[Decorator] as VisitWith<Self>>::visit_children_with(node, self)
289    }
290    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
291             [`DefaultDecl::visit_children_with`]. If you want to recurse, you need to call it \
292             manually."]
293    #[inline]
294    fn visit_default_decl(&mut self, node: &DefaultDecl) {
295        <DefaultDecl as VisitWith<Self>>::visit_children_with(node, self)
296    }
297    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
298             [`DoWhileStmt::visit_children_with`]. If you want to recurse, you need to call it \
299             manually."]
300    #[inline]
301    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
302        <DoWhileStmt as VisitWith<Self>>::visit_children_with(node, self)
303    }
304    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
305             [`EmptyStmt::visit_children_with`]. If you want to recurse, you need to call it \
306             manually."]
307    #[inline]
308    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
309        <EmptyStmt as VisitWith<Self>>::visit_children_with(node, self)
310    }
311    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
312             [`ExportAll::visit_children_with`]. If you want to recurse, you need to call it \
313             manually."]
314    #[inline]
315    fn visit_export_all(&mut self, node: &ExportAll) {
316        <ExportAll as VisitWith<Self>>::visit_children_with(node, self)
317    }
318    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
319             [`ExportDecl::visit_children_with`]. If you want to recurse, you need to call it \
320             manually."]
321    #[inline]
322    fn visit_export_decl(&mut self, node: &ExportDecl) {
323        <ExportDecl as VisitWith<Self>>::visit_children_with(node, self)
324    }
325    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
326             [`ExportDefaultDecl::visit_children_with`]. If you want to recurse, you need to call \
327             it manually."]
328    #[inline]
329    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
330        <ExportDefaultDecl as VisitWith<Self>>::visit_children_with(node, self)
331    }
332    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
333             [`ExportDefaultExpr::visit_children_with`]. If you want to recurse, you need to call \
334             it manually."]
335    #[inline]
336    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
337        <ExportDefaultExpr as VisitWith<Self>>::visit_children_with(node, self)
338    }
339    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
340             [`ExportDefaultSpecifier::visit_children_with`]. If you want to recurse, you need to \
341             call it manually."]
342    #[inline]
343    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
344        <ExportDefaultSpecifier as VisitWith<Self>>::visit_children_with(node, self)
345    }
346    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
347             [`ExportNamedSpecifier::visit_children_with`]. If you want to recurse, you need to \
348             call it manually."]
349    #[inline]
350    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
351        <ExportNamedSpecifier as VisitWith<Self>>::visit_children_with(node, self)
352    }
353    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
354             [`ExportNamespaceSpecifier::visit_children_with`]. If you want to recurse, you need \
355             to call it manually."]
356    #[inline]
357    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
358        <ExportNamespaceSpecifier as VisitWith<Self>>::visit_children_with(node, self)
359    }
360    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
361             [`ExportSpecifier::visit_children_with`]. If you want to recurse, you need to call it \
362             manually."]
363    #[inline]
364    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
365        <ExportSpecifier as VisitWith<Self>>::visit_children_with(node, self)
366    }
367    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
368             [`Vec < ExportSpecifier >::visit_children_with`]. If you want to recurse, you need to \
369             call it manually."]
370    #[inline]
371    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
372        <[ExportSpecifier] as VisitWith<Self>>::visit_children_with(node, self)
373    }
374    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
375             [`Expr::visit_children_with`]. If you want to recurse, you need to call it manually."]
376    #[inline]
377    fn visit_expr(&mut self, node: &Expr) {
378        <Expr as VisitWith<Self>>::visit_children_with(node, self)
379    }
380    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
381             [`ExprOrSpread::visit_children_with`]. If you want to recurse, you need to call it \
382             manually."]
383    #[inline]
384    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
385        <ExprOrSpread as VisitWith<Self>>::visit_children_with(node, self)
386    }
387    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
388             ExprOrSpread >::visit_children_with`]. If you want to recurse, you need to call it \
389             manually."]
390    #[inline]
391    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
392        <[ExprOrSpread] as VisitWith<Self>>::visit_children_with(node, self)
393    }
394    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
395             [`ExprStmt::visit_children_with`]. If you want to recurse, you need to call it \
396             manually."]
397    #[inline]
398    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
399        <ExprStmt as VisitWith<Self>>::visit_children_with(node, self)
400    }
401    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
402             Box < Expr > >::visit_children_with`]. If you want to recurse, you need to call it \
403             manually."]
404    #[inline]
405    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
406        <[Box<Expr>] as VisitWith<Self>>::visit_children_with(node, self)
407    }
408    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
409             [`FnDecl::visit_children_with`]. If you want to recurse, you need to call it manually."]
410    #[inline]
411    fn visit_fn_decl(&mut self, node: &FnDecl) {
412        <FnDecl as VisitWith<Self>>::visit_children_with(node, self)
413    }
414    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
415             [`FnExpr::visit_children_with`]. If you want to recurse, you need to call it manually."]
416    #[inline]
417    fn visit_fn_expr(&mut self, node: &FnExpr) {
418        <FnExpr as VisitWith<Self>>::visit_children_with(node, self)
419    }
420    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
421             [`ForHead::visit_children_with`]. If you want to recurse, you need to call it \
422             manually."]
423    #[inline]
424    fn visit_for_head(&mut self, node: &ForHead) {
425        <ForHead as VisitWith<Self>>::visit_children_with(node, self)
426    }
427    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
428             [`ForInStmt::visit_children_with`]. If you want to recurse, you need to call it \
429             manually."]
430    #[inline]
431    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
432        <ForInStmt as VisitWith<Self>>::visit_children_with(node, self)
433    }
434    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
435             [`ForOfStmt::visit_children_with`]. If you want to recurse, you need to call it \
436             manually."]
437    #[inline]
438    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
439        <ForOfStmt as VisitWith<Self>>::visit_children_with(node, self)
440    }
441    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
442             [`ForStmt::visit_children_with`]. If you want to recurse, you need to call it \
443             manually."]
444    #[inline]
445    fn visit_for_stmt(&mut self, node: &ForStmt) {
446        <ForStmt as VisitWith<Self>>::visit_children_with(node, self)
447    }
448    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
449             [`Function::visit_children_with`]. If you want to recurse, you need to call it \
450             manually."]
451    #[inline]
452    fn visit_function(&mut self, node: &Function) {
453        <Function as VisitWith<Self>>::visit_children_with(node, self)
454    }
455    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
456             [`GetterProp::visit_children_with`]. If you want to recurse, you need to call it \
457             manually."]
458    #[inline]
459    fn visit_getter_prop(&mut self, node: &GetterProp) {
460        <GetterProp as VisitWith<Self>>::visit_children_with(node, self)
461    }
462    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
463             [`Ident::visit_children_with`]. If you want to recurse, you need to call it manually."]
464    #[inline]
465    fn visit_ident(&mut self, node: &Ident) {
466        <Ident as VisitWith<Self>>::visit_children_with(node, self)
467    }
468    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
469             [`IdentName::visit_children_with`]. If you want to recurse, you need to call it \
470             manually."]
471    #[inline]
472    fn visit_ident_name(&mut self, node: &IdentName) {
473        <IdentName as VisitWith<Self>>::visit_children_with(node, self)
474    }
475    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
476             [`IfStmt::visit_children_with`]. If you want to recurse, you need to call it manually."]
477    #[inline]
478    fn visit_if_stmt(&mut self, node: &IfStmt) {
479        <IfStmt as VisitWith<Self>>::visit_children_with(node, self)
480    }
481    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
482             [`Import::visit_children_with`]. If you want to recurse, you need to call it manually."]
483    #[inline]
484    fn visit_import(&mut self, node: &Import) {
485        <Import as VisitWith<Self>>::visit_children_with(node, self)
486    }
487    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
488             [`ImportDecl::visit_children_with`]. If you want to recurse, you need to call it \
489             manually."]
490    #[inline]
491    fn visit_import_decl(&mut self, node: &ImportDecl) {
492        <ImportDecl as VisitWith<Self>>::visit_children_with(node, self)
493    }
494    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
495             [`ImportDefaultSpecifier::visit_children_with`]. If you want to recurse, you need to \
496             call it manually."]
497    #[inline]
498    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
499        <ImportDefaultSpecifier as VisitWith<Self>>::visit_children_with(node, self)
500    }
501    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
502             [`ImportNamedSpecifier::visit_children_with`]. If you want to recurse, you need to \
503             call it manually."]
504    #[inline]
505    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
506        <ImportNamedSpecifier as VisitWith<Self>>::visit_children_with(node, self)
507    }
508    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
509             [`ImportPhase::visit_children_with`]. If you want to recurse, you need to call it \
510             manually."]
511    #[inline]
512    fn visit_import_phase(&mut self, node: &ImportPhase) {
513        <ImportPhase as VisitWith<Self>>::visit_children_with(node, self)
514    }
515    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
516             [`ImportSpecifier::visit_children_with`]. If you want to recurse, you need to call it \
517             manually."]
518    #[inline]
519    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
520        <ImportSpecifier as VisitWith<Self>>::visit_children_with(node, self)
521    }
522    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
523             [`Vec < ImportSpecifier >::visit_children_with`]. If you want to recurse, you need to \
524             call it manually."]
525    #[inline]
526    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
527        <[ImportSpecifier] as VisitWith<Self>>::visit_children_with(node, self)
528    }
529    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
530             [`ImportStarAsSpecifier::visit_children_with`]. If you want to recurse, you need to \
531             call it manually."]
532    #[inline]
533    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
534        <ImportStarAsSpecifier as VisitWith<Self>>::visit_children_with(node, self)
535    }
536    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
537             [`ImportWith::visit_children_with`]. If you want to recurse, you need to call it \
538             manually."]
539    #[inline]
540    fn visit_import_with(&mut self, node: &ImportWith) {
541        <ImportWith as VisitWith<Self>>::visit_children_with(node, self)
542    }
543    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
544             [`ImportWithItem::visit_children_with`]. If you want to recurse, you need to call it \
545             manually."]
546    #[inline]
547    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
548        <ImportWithItem as VisitWith<Self>>::visit_children_with(node, self)
549    }
550    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
551             < ImportWithItem >::visit_children_with`]. If you want to recurse, you need to call \
552             it manually."]
553    #[inline]
554    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
555        <[ImportWithItem] as VisitWith<Self>>::visit_children_with(node, self)
556    }
557    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
558             [`Invalid::visit_children_with`]. If you want to recurse, you need to call it \
559             manually."]
560    #[inline]
561    fn visit_invalid(&mut self, node: &Invalid) {
562        <Invalid as VisitWith<Self>>::visit_children_with(node, self)
563    }
564    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
565             [`JSXAttr::visit_children_with`]. If you want to recurse, you need to call it \
566             manually."]
567    #[inline]
568    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
569        <JSXAttr as VisitWith<Self>>::visit_children_with(node, self)
570    }
571    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
572             [`JSXAttrName::visit_children_with`]. If you want to recurse, you need to call it \
573             manually."]
574    #[inline]
575    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
576        <JSXAttrName as VisitWith<Self>>::visit_children_with(node, self)
577    }
578    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
579             [`JSXAttrOrSpread::visit_children_with`]. If you want to recurse, you need to call it \
580             manually."]
581    #[inline]
582    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
583        <JSXAttrOrSpread as VisitWith<Self>>::visit_children_with(node, self)
584    }
585    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
586             [`Vec < JSXAttrOrSpread >::visit_children_with`]. If you want to recurse, you need to \
587             call it manually."]
588    #[inline]
589    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
590        <[JSXAttrOrSpread] as VisitWith<Self>>::visit_children_with(node, self)
591    }
592    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
593             [`JSXAttrValue::visit_children_with`]. If you want to recurse, you need to call it \
594             manually."]
595    #[inline]
596    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
597        <JSXAttrValue as VisitWith<Self>>::visit_children_with(node, self)
598    }
599    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
600             [`JSXClosingElement::visit_children_with`]. If you want to recurse, you need to call \
601             it manually."]
602    #[inline]
603    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
604        <JSXClosingElement as VisitWith<Self>>::visit_children_with(node, self)
605    }
606    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
607             [`JSXClosingFragment::visit_children_with`]. If you want to recurse, you need to call \
608             it manually."]
609    #[inline]
610    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
611        <JSXClosingFragment as VisitWith<Self>>::visit_children_with(node, self)
612    }
613    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
614             [`JSXElement::visit_children_with`]. If you want to recurse, you need to call it \
615             manually."]
616    #[inline]
617    fn visit_jsx_element(&mut self, node: &JSXElement) {
618        <JSXElement as VisitWith<Self>>::visit_children_with(node, self)
619    }
620    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
621             [`JSXElementChild::visit_children_with`]. If you want to recurse, you need to call it \
622             manually."]
623    #[inline]
624    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
625        <JSXElementChild as VisitWith<Self>>::visit_children_with(node, self)
626    }
627    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
628             [`Vec < JSXElementChild >::visit_children_with`]. If you want to recurse, you need to \
629             call it manually."]
630    #[inline]
631    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
632        <[JSXElementChild] as VisitWith<Self>>::visit_children_with(node, self)
633    }
634    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
635             [`JSXElementName::visit_children_with`]. If you want to recurse, you need to call it \
636             manually."]
637    #[inline]
638    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
639        <JSXElementName as VisitWith<Self>>::visit_children_with(node, self)
640    }
641    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
642             [`JSXEmptyExpr::visit_children_with`]. If you want to recurse, you need to call it \
643             manually."]
644    #[inline]
645    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
646        <JSXEmptyExpr as VisitWith<Self>>::visit_children_with(node, self)
647    }
648    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
649             [`JSXExpr::visit_children_with`]. If you want to recurse, you need to call it \
650             manually."]
651    #[inline]
652    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
653        <JSXExpr as VisitWith<Self>>::visit_children_with(node, self)
654    }
655    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
656             [`JSXExprContainer::visit_children_with`]. If you want to recurse, you need to call \
657             it manually."]
658    #[inline]
659    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
660        <JSXExprContainer as VisitWith<Self>>::visit_children_with(node, self)
661    }
662    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
663             [`JSXFragment::visit_children_with`]. If you want to recurse, you need to call it \
664             manually."]
665    #[inline]
666    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
667        <JSXFragment as VisitWith<Self>>::visit_children_with(node, self)
668    }
669    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
670             [`JSXMemberExpr::visit_children_with`]. If you want to recurse, you need to call it \
671             manually."]
672    #[inline]
673    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
674        <JSXMemberExpr as VisitWith<Self>>::visit_children_with(node, self)
675    }
676    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
677             [`JSXNamespacedName::visit_children_with`]. If you want to recurse, you need to call \
678             it manually."]
679    #[inline]
680    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
681        <JSXNamespacedName as VisitWith<Self>>::visit_children_with(node, self)
682    }
683    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
684             [`JSXObject::visit_children_with`]. If you want to recurse, you need to call it \
685             manually."]
686    #[inline]
687    fn visit_jsx_object(&mut self, node: &JSXObject) {
688        <JSXObject as VisitWith<Self>>::visit_children_with(node, self)
689    }
690    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
691             [`JSXOpeningElement::visit_children_with`]. If you want to recurse, you need to call \
692             it manually."]
693    #[inline]
694    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
695        <JSXOpeningElement as VisitWith<Self>>::visit_children_with(node, self)
696    }
697    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
698             [`JSXOpeningFragment::visit_children_with`]. If you want to recurse, you need to call \
699             it manually."]
700    #[inline]
701    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
702        <JSXOpeningFragment as VisitWith<Self>>::visit_children_with(node, self)
703    }
704    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
705             [`JSXSpreadChild::visit_children_with`]. If you want to recurse, you need to call it \
706             manually."]
707    #[inline]
708    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
709        <JSXSpreadChild as VisitWith<Self>>::visit_children_with(node, self)
710    }
711    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
712             [`JSXText::visit_children_with`]. If you want to recurse, you need to call it \
713             manually."]
714    #[inline]
715    fn visit_jsx_text(&mut self, node: &JSXText) {
716        <JSXText as VisitWith<Self>>::visit_children_with(node, self)
717    }
718    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
719             [`Key::visit_children_with`]. If you want to recurse, you need to call it manually."]
720    #[inline]
721    fn visit_key(&mut self, node: &Key) {
722        <Key as VisitWith<Self>>::visit_children_with(node, self)
723    }
724    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
725             [`KeyValuePatProp::visit_children_with`]. If you want to recurse, you need to call it \
726             manually."]
727    #[inline]
728    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
729        <KeyValuePatProp as VisitWith<Self>>::visit_children_with(node, self)
730    }
731    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
732             [`KeyValueProp::visit_children_with`]. If you want to recurse, you need to call it \
733             manually."]
734    #[inline]
735    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
736        <KeyValueProp as VisitWith<Self>>::visit_children_with(node, self)
737    }
738    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
739             [`LabeledStmt::visit_children_with`]. If you want to recurse, you need to call it \
740             manually."]
741    #[inline]
742    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
743        <LabeledStmt as VisitWith<Self>>::visit_children_with(node, self)
744    }
745    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
746             [`Lit::visit_children_with`]. If you want to recurse, you need to call it manually."]
747    #[inline]
748    fn visit_lit(&mut self, node: &Lit) {
749        <Lit as VisitWith<Self>>::visit_children_with(node, self)
750    }
751    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
752             [`MemberExpr::visit_children_with`]. If you want to recurse, you need to call it \
753             manually."]
754    #[inline]
755    fn visit_member_expr(&mut self, node: &MemberExpr) {
756        <MemberExpr as VisitWith<Self>>::visit_children_with(node, self)
757    }
758    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
759             [`MemberProp::visit_children_with`]. If you want to recurse, you need to call it \
760             manually."]
761    #[inline]
762    fn visit_member_prop(&mut self, node: &MemberProp) {
763        <MemberProp as VisitWith<Self>>::visit_children_with(node, self)
764    }
765    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
766             [`MetaPropExpr::visit_children_with`]. If you want to recurse, you need to call it \
767             manually."]
768    #[inline]
769    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
770        <MetaPropExpr as VisitWith<Self>>::visit_children_with(node, self)
771    }
772    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
773             [`MetaPropKind::visit_children_with`]. If you want to recurse, you need to call it \
774             manually."]
775    #[inline]
776    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
777        <MetaPropKind as VisitWith<Self>>::visit_children_with(node, self)
778    }
779    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
780             [`MethodKind::visit_children_with`]. If you want to recurse, you need to call it \
781             manually."]
782    #[inline]
783    fn visit_method_kind(&mut self, node: &MethodKind) {
784        <MethodKind as VisitWith<Self>>::visit_children_with(node, self)
785    }
786    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
787             [`MethodProp::visit_children_with`]. If you want to recurse, you need to call it \
788             manually."]
789    #[inline]
790    fn visit_method_prop(&mut self, node: &MethodProp) {
791        <MethodProp as VisitWith<Self>>::visit_children_with(node, self)
792    }
793    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
794             [`Module::visit_children_with`]. If you want to recurse, you need to call it manually."]
795    #[inline]
796    fn visit_module(&mut self, node: &Module) {
797        <Module as VisitWith<Self>>::visit_children_with(node, self)
798    }
799    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
800             [`ModuleDecl::visit_children_with`]. If you want to recurse, you need to call it \
801             manually."]
802    #[inline]
803    fn visit_module_decl(&mut self, node: &ModuleDecl) {
804        <ModuleDecl as VisitWith<Self>>::visit_children_with(node, self)
805    }
806    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
807             [`ModuleExportName::visit_children_with`]. If you want to recurse, you need to call \
808             it manually."]
809    #[inline]
810    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
811        <ModuleExportName as VisitWith<Self>>::visit_children_with(node, self)
812    }
813    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
814             [`ModuleItem::visit_children_with`]. If you want to recurse, you need to call it \
815             manually."]
816    #[inline]
817    fn visit_module_item(&mut self, node: &ModuleItem) {
818        <ModuleItem as VisitWith<Self>>::visit_children_with(node, self)
819    }
820    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
821             ModuleItem >::visit_children_with`]. If you want to recurse, you need to call it \
822             manually."]
823    #[inline]
824    fn visit_module_items(&mut self, node: &[ModuleItem]) {
825        <[ModuleItem] as VisitWith<Self>>::visit_children_with(node, self)
826    }
827    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
828             [`NamedExport::visit_children_with`]. If you want to recurse, you need to call it \
829             manually."]
830    #[inline]
831    fn visit_named_export(&mut self, node: &NamedExport) {
832        <NamedExport as VisitWith<Self>>::visit_children_with(node, self)
833    }
834    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
835             [`NewExpr::visit_children_with`]. If you want to recurse, you need to call it \
836             manually."]
837    #[inline]
838    fn visit_new_expr(&mut self, node: &NewExpr) {
839        <NewExpr as VisitWith<Self>>::visit_children_with(node, self)
840    }
841    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
842             [`Null::visit_children_with`]. If you want to recurse, you need to call it manually."]
843    #[inline]
844    fn visit_null(&mut self, node: &Null) {
845        <Null as VisitWith<Self>>::visit_children_with(node, self)
846    }
847    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
848             [`Number::visit_children_with`]. If you want to recurse, you need to call it manually."]
849    #[inline]
850    fn visit_number(&mut self, node: &Number) {
851        <Number as VisitWith<Self>>::visit_children_with(node, self)
852    }
853    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
854             [`ObjectLit::visit_children_with`]. If you want to recurse, you need to call it \
855             manually."]
856    #[inline]
857    fn visit_object_lit(&mut self, node: &ObjectLit) {
858        <ObjectLit as VisitWith<Self>>::visit_children_with(node, self)
859    }
860    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
861             [`ObjectPat::visit_children_with`]. If you want to recurse, you need to call it \
862             manually."]
863    #[inline]
864    fn visit_object_pat(&mut self, node: &ObjectPat) {
865        <ObjectPat as VisitWith<Self>>::visit_children_with(node, self)
866    }
867    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
868             [`ObjectPatProp::visit_children_with`]. If you want to recurse, you need to call it \
869             manually."]
870    #[inline]
871    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
872        <ObjectPatProp as VisitWith<Self>>::visit_children_with(node, self)
873    }
874    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
875             < ObjectPatProp >::visit_children_with`]. If you want to recurse, you need to call it \
876             manually."]
877    #[inline]
878    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
879        <[ObjectPatProp] as VisitWith<Self>>::visit_children_with(node, self)
880    }
881    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
882             [`Option < Accessibility >::visit_children_with`]. If you want to recurse, you need \
883             to call it manually."]
884    #[inline]
885    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
886        <Option<Accessibility> as VisitWith<Self>>::visit_children_with(node, self)
887    }
888    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
889             [`Option < swc_atoms :: Atom >::visit_children_with`]. If you want to recurse, you \
890             need to call it manually."]
891    #[inline]
892    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
893        <Option<swc_atoms::Atom> as VisitWith<Self>>::visit_children_with(node, self)
894    }
895    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
896             [`Option < BlockStmt >::visit_children_with`]. If you want to recurse, you need to \
897             call it manually."]
898    #[inline]
899    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
900        <Option<BlockStmt> as VisitWith<Self>>::visit_children_with(node, self)
901    }
902    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
903             [`OptCall::visit_children_with`]. If you want to recurse, you need to call it \
904             manually."]
905    #[inline]
906    fn visit_opt_call(&mut self, node: &OptCall) {
907        <OptCall as VisitWith<Self>>::visit_children_with(node, self)
908    }
909    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
910             [`Option < CatchClause >::visit_children_with`]. If you want to recurse, you need to \
911             call it manually."]
912    #[inline]
913    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
914        <Option<CatchClause> as VisitWith<Self>>::visit_children_with(node, self)
915    }
916    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
917             [`OptChainBase::visit_children_with`]. If you want to recurse, you need to call it \
918             manually."]
919    #[inline]
920    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
921        <OptChainBase as VisitWith<Self>>::visit_children_with(node, self)
922    }
923    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
924             [`OptChainExpr::visit_children_with`]. If you want to recurse, you need to call it \
925             manually."]
926    #[inline]
927    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
928        <OptChainExpr as VisitWith<Self>>::visit_children_with(node, self)
929    }
930    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
931             [`Option < Box < Expr > >::visit_children_with`]. If you want to recurse, you need to \
932             call it manually."]
933    #[inline]
934    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
935        <Option<Box<Expr>> as VisitWith<Self>>::visit_children_with(node, self)
936    }
937    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
938             [`Option < ExprOrSpread >::visit_children_with`]. If you want to recurse, you need to \
939             call it manually."]
940    #[inline]
941    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
942        <Option<ExprOrSpread> as VisitWith<Self>>::visit_children_with(node, self)
943    }
944    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
945             calls [`Option < Vec < ExprOrSpread > >::visit_children_with`]. If you want to \
946             recurse, you need to call it manually."]
947    #[inline]
948    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
949        <Option<Vec<ExprOrSpread>> as VisitWith<Self>>::visit_children_with(node, self)
950    }
951    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
952             Ident >::visit_children_with`]. If you want to recurse, you need to call it manually."]
953    #[inline]
954    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
955        <Option<Ident> as VisitWith<Self>>::visit_children_with(node, self)
956    }
957    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
958             [`Option < JSXAttrValue >::visit_children_with`]. If you want to recurse, you need to \
959             call it manually."]
960    #[inline]
961    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
962        <Option<JSXAttrValue> as VisitWith<Self>>::visit_children_with(node, self)
963    }
964    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
965             [`Option < JSXClosingElement >::visit_children_with`]. If you want to recurse, you \
966             need to call it manually."]
967    #[inline]
968    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
969        <Option<JSXClosingElement> as VisitWith<Self>>::visit_children_with(node, self)
970    }
971    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
972             [`Option < ModuleExportName >::visit_children_with`]. If you want to recurse, you \
973             need to call it manually."]
974    #[inline]
975    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
976        <Option<ModuleExportName> as VisitWith<Self>>::visit_children_with(node, self)
977    }
978    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
979             [`Option < Box < ObjectLit > >::visit_children_with`]. If you want to recurse, you \
980             need to call it manually."]
981    #[inline]
982    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
983        <Option<Box<ObjectLit>> as VisitWith<Self>>::visit_children_with(node, self)
984    }
985    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
986             Pat >::visit_children_with`]. If you want to recurse, you need to call it manually."]
987    #[inline]
988    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
989        <Option<Pat> as VisitWith<Self>>::visit_children_with(node, self)
990    }
991    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
992             calls [`Option < swc_common :: Span >::visit_children_with`]. If you want to recurse, \
993             you need to call it manually."]
994    #[inline]
995    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
996        <Option<swc_common::Span> as VisitWith<Self>>::visit_children_with(node, self)
997    }
998    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
999             [`Option < Box < Stmt > >::visit_children_with`]. If you want to recurse, you need to \
1000             call it manually."]
1001    #[inline]
1002    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
1003        <Option<Box<Stmt>> as VisitWith<Self>>::visit_children_with(node, self)
1004    }
1005    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
1006             [`Option < Box < Str > >::visit_children_with`]. If you want to recurse, you need to \
1007             call it manually."]
1008    #[inline]
1009    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
1010        <Option<Box<Str>> as VisitWith<Self>>::visit_children_with(node, self)
1011    }
1012    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
1013             [`Option < TruePlusMinus >::visit_children_with`]. If you want to recurse, you need \
1014             to call it manually."]
1015    #[inline]
1016    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
1017        <Option<TruePlusMinus> as VisitWith<Self>>::visit_children_with(node, self)
1018    }
1019    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
1020             [`Option < TsEntityName >::visit_children_with`]. If you want to recurse, you need to \
1021             call it manually."]
1022    #[inline]
1023    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
1024        <Option<TsEntityName> as VisitWith<Self>>::visit_children_with(node, self)
1025    }
1026    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
1027             [`Option < TsNamespaceBody >::visit_children_with`]. If you want to recurse, you need \
1028             to call it manually."]
1029    #[inline]
1030    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
1031        <Option<TsNamespaceBody> as VisitWith<Self>>::visit_children_with(node, self)
1032    }
1033    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
1034             [`Option < Box < TsType > >::visit_children_with`]. If you want to recurse, you need \
1035             to call it manually."]
1036    #[inline]
1037    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
1038        <Option<Box<TsType>> as VisitWith<Self>>::visit_children_with(node, self)
1039    }
1040    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
1041             [`Option < Box < TsTypeAnn > >::visit_children_with`]. If you want to recurse, you \
1042             need to call it manually."]
1043    #[inline]
1044    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
1045        <Option<Box<TsTypeAnn>> as VisitWith<Self>>::visit_children_with(node, self)
1046    }
1047    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
1048             calls [`Option < Box < TsTypeParamDecl > >::visit_children_with`]. If you want to \
1049             recurse, you need to call it manually."]
1050    #[inline]
1051    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
1052        <Option<Box<TsTypeParamDecl>> as VisitWith<Self>>::visit_children_with(node, self)
1053    }
1054    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
1055             this method calls [`Option < Box < TsTypeParamInstantiation > \
1056             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1057    #[inline]
1058    fn visit_opt_ts_type_param_instantiation(
1059        &mut self,
1060        node: &Option<Box<TsTypeParamInstantiation>>,
1061    ) {
1062        <Option<Box<TsTypeParamInstantiation>> as VisitWith<Self>>::visit_children_with(node, self)
1063    }
1064    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
1065             [`Option < VarDeclOrExpr >::visit_children_with`]. If you want to recurse, you need \
1066             to call it manually."]
1067    #[inline]
1068    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
1069        <Option<VarDeclOrExpr> as VisitWith<Self>>::visit_children_with(node, self)
1070    }
1071    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
1072             calls [`Vec < Option < ExprOrSpread > >::visit_children_with`]. If you want to \
1073             recurse, you need to call it manually."]
1074    #[inline]
1075    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
1076        <[Option<ExprOrSpread>] as VisitWith<Self>>::visit_children_with(node, self)
1077    }
1078    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
1079             < Option < Pat > >::visit_children_with`]. If you want to recurse, you need to call \
1080             it manually."]
1081    #[inline]
1082    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
1083        <[Option<Pat>] as VisitWith<Self>>::visit_children_with(node, self)
1084    }
1085    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
1086             [`Param::visit_children_with`]. If you want to recurse, you need to call it manually."]
1087    #[inline]
1088    fn visit_param(&mut self, node: &Param) {
1089        <Param as VisitWith<Self>>::visit_children_with(node, self)
1090    }
1091    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
1092             [`ParamOrTsParamProp::visit_children_with`]. If you want to recurse, you need to call \
1093             it manually."]
1094    #[inline]
1095    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
1096        <ParamOrTsParamProp as VisitWith<Self>>::visit_children_with(node, self)
1097    }
1098    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
1099             [`Vec < ParamOrTsParamProp >::visit_children_with`]. If you want to recurse, you need \
1100             to call it manually."]
1101    #[inline]
1102    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
1103        <[ParamOrTsParamProp] as VisitWith<Self>>::visit_children_with(node, self)
1104    }
1105    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
1106             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1107    #[inline]
1108    fn visit_params(&mut self, node: &[Param]) {
1109        <[Param] as VisitWith<Self>>::visit_children_with(node, self)
1110    }
1111    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
1112             [`ParenExpr::visit_children_with`]. If you want to recurse, you need to call it \
1113             manually."]
1114    #[inline]
1115    fn visit_paren_expr(&mut self, node: &ParenExpr) {
1116        <ParenExpr as VisitWith<Self>>::visit_children_with(node, self)
1117    }
1118    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
1119             [`Pat::visit_children_with`]. If you want to recurse, you need to call it manually."]
1120    #[inline]
1121    fn visit_pat(&mut self, node: &Pat) {
1122        <Pat as VisitWith<Self>>::visit_children_with(node, self)
1123    }
1124    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
1125             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1126    #[inline]
1127    fn visit_pats(&mut self, node: &[Pat]) {
1128        <[Pat] as VisitWith<Self>>::visit_children_with(node, self)
1129    }
1130    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
1131             [`PrivateMethod::visit_children_with`]. If you want to recurse, you need to call it \
1132             manually."]
1133    #[inline]
1134    fn visit_private_method(&mut self, node: &PrivateMethod) {
1135        <PrivateMethod as VisitWith<Self>>::visit_children_with(node, self)
1136    }
1137    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
1138             [`PrivateName::visit_children_with`]. If you want to recurse, you need to call it \
1139             manually."]
1140    #[inline]
1141    fn visit_private_name(&mut self, node: &PrivateName) {
1142        <PrivateName as VisitWith<Self>>::visit_children_with(node, self)
1143    }
1144    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
1145             [`PrivateProp::visit_children_with`]. If you want to recurse, you need to call it \
1146             manually."]
1147    #[inline]
1148    fn visit_private_prop(&mut self, node: &PrivateProp) {
1149        <PrivateProp as VisitWith<Self>>::visit_children_with(node, self)
1150    }
1151    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
1152             [`Program::visit_children_with`]. If you want to recurse, you need to call it \
1153             manually."]
1154    #[inline]
1155    fn visit_program(&mut self, node: &Program) {
1156        <Program as VisitWith<Self>>::visit_children_with(node, self)
1157    }
1158    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
1159             [`Prop::visit_children_with`]. If you want to recurse, you need to call it manually."]
1160    #[inline]
1161    fn visit_prop(&mut self, node: &Prop) {
1162        <Prop as VisitWith<Self>>::visit_children_with(node, self)
1163    }
1164    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
1165             [`PropName::visit_children_with`]. If you want to recurse, you need to call it \
1166             manually."]
1167    #[inline]
1168    fn visit_prop_name(&mut self, node: &PropName) {
1169        <PropName as VisitWith<Self>>::visit_children_with(node, self)
1170    }
1171    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
1172             [`PropOrSpread::visit_children_with`]. If you want to recurse, you need to call it \
1173             manually."]
1174    #[inline]
1175    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
1176        <PropOrSpread as VisitWith<Self>>::visit_children_with(node, self)
1177    }
1178    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
1179             PropOrSpread >::visit_children_with`]. If you want to recurse, you need to call it \
1180             manually."]
1181    #[inline]
1182    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
1183        <[PropOrSpread] as VisitWith<Self>>::visit_children_with(node, self)
1184    }
1185    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
1186             [`Regex::visit_children_with`]. If you want to recurse, you need to call it manually."]
1187    #[inline]
1188    fn visit_regex(&mut self, node: &Regex) {
1189        <Regex as VisitWith<Self>>::visit_children_with(node, self)
1190    }
1191    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
1192             [`RestPat::visit_children_with`]. If you want to recurse, you need to call it \
1193             manually."]
1194    #[inline]
1195    fn visit_rest_pat(&mut self, node: &RestPat) {
1196        <RestPat as VisitWith<Self>>::visit_children_with(node, self)
1197    }
1198    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
1199             [`ReturnStmt::visit_children_with`]. If you want to recurse, you need to call it \
1200             manually."]
1201    #[inline]
1202    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
1203        <ReturnStmt as VisitWith<Self>>::visit_children_with(node, self)
1204    }
1205    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
1206             [`Script::visit_children_with`]. If you want to recurse, you need to call it manually."]
1207    #[inline]
1208    fn visit_script(&mut self, node: &Script) {
1209        <Script as VisitWith<Self>>::visit_children_with(node, self)
1210    }
1211    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
1212             [`SeqExpr::visit_children_with`]. If you want to recurse, you need to call it \
1213             manually."]
1214    #[inline]
1215    fn visit_seq_expr(&mut self, node: &SeqExpr) {
1216        <SeqExpr as VisitWith<Self>>::visit_children_with(node, self)
1217    }
1218    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
1219             [`SetterProp::visit_children_with`]. If you want to recurse, you need to call it \
1220             manually."]
1221    #[inline]
1222    fn visit_setter_prop(&mut self, node: &SetterProp) {
1223        <SetterProp as VisitWith<Self>>::visit_children_with(node, self)
1224    }
1225    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
1226             [`SimpleAssignTarget::visit_children_with`]. If you want to recurse, you need to call \
1227             it manually."]
1228    #[inline]
1229    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
1230        <SimpleAssignTarget as VisitWith<Self>>::visit_children_with(node, self)
1231    }
1232    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
1233             [`swc_common :: Span::visit_children_with`]. If you want to recurse, you need to call \
1234             it manually."]
1235    #[inline]
1236    fn visit_span(&mut self, node: &swc_common::Span) {
1237        <swc_common::Span as VisitWith<Self>>::visit_children_with(node, self)
1238    }
1239    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
1240             [`SpreadElement::visit_children_with`]. If you want to recurse, you need to call it \
1241             manually."]
1242    #[inline]
1243    fn visit_spread_element(&mut self, node: &SpreadElement) {
1244        <SpreadElement as VisitWith<Self>>::visit_children_with(node, self)
1245    }
1246    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
1247             [`StaticBlock::visit_children_with`]. If you want to recurse, you need to call it \
1248             manually."]
1249    #[inline]
1250    fn visit_static_block(&mut self, node: &StaticBlock) {
1251        <StaticBlock as VisitWith<Self>>::visit_children_with(node, self)
1252    }
1253    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
1254             [`Stmt::visit_children_with`]. If you want to recurse, you need to call it manually."]
1255    #[inline]
1256    fn visit_stmt(&mut self, node: &Stmt) {
1257        <Stmt as VisitWith<Self>>::visit_children_with(node, self)
1258    }
1259    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
1260             >::visit_children_with`]. If you want to recurse, you need to call it manually."]
1261    #[inline]
1262    fn visit_stmts(&mut self, node: &[Stmt]) {
1263        <[Stmt] as VisitWith<Self>>::visit_children_with(node, self)
1264    }
1265    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
1266             [`Str::visit_children_with`]. If you want to recurse, you need to call it manually."]
1267    #[inline]
1268    fn visit_str(&mut self, node: &Str) {
1269        <Str as VisitWith<Self>>::visit_children_with(node, self)
1270    }
1271    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
1272             [`Super::visit_children_with`]. If you want to recurse, you need to call it manually."]
1273    #[inline]
1274    fn visit_super(&mut self, node: &Super) {
1275        <Super as VisitWith<Self>>::visit_children_with(node, self)
1276    }
1277    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
1278             [`SuperProp::visit_children_with`]. If you want to recurse, you need to call it \
1279             manually."]
1280    #[inline]
1281    fn visit_super_prop(&mut self, node: &SuperProp) {
1282        <SuperProp as VisitWith<Self>>::visit_children_with(node, self)
1283    }
1284    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
1285             [`SuperPropExpr::visit_children_with`]. If you want to recurse, you need to call it \
1286             manually."]
1287    #[inline]
1288    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
1289        <SuperPropExpr as VisitWith<Self>>::visit_children_with(node, self)
1290    }
1291    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
1292             [`SwitchCase::visit_children_with`]. If you want to recurse, you need to call it \
1293             manually."]
1294    #[inline]
1295    fn visit_switch_case(&mut self, node: &SwitchCase) {
1296        <SwitchCase as VisitWith<Self>>::visit_children_with(node, self)
1297    }
1298    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
1299             SwitchCase >::visit_children_with`]. If you want to recurse, you need to call it \
1300             manually."]
1301    #[inline]
1302    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
1303        <[SwitchCase] as VisitWith<Self>>::visit_children_with(node, self)
1304    }
1305    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
1306             [`SwitchStmt::visit_children_with`]. If you want to recurse, you need to call it \
1307             manually."]
1308    #[inline]
1309    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
1310        <SwitchStmt as VisitWith<Self>>::visit_children_with(node, self)
1311    }
1312    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
1313             [`swc_common :: SyntaxContext::visit_children_with`]. If you want to recurse, you \
1314             need to call it manually."]
1315    #[inline]
1316    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
1317        <swc_common::SyntaxContext as VisitWith<Self>>::visit_children_with(node, self)
1318    }
1319    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
1320             [`TaggedTpl::visit_children_with`]. If you want to recurse, you need to call it \
1321             manually."]
1322    #[inline]
1323    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
1324        <TaggedTpl as VisitWith<Self>>::visit_children_with(node, self)
1325    }
1326    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
1327             [`ThisExpr::visit_children_with`]. If you want to recurse, you need to call it \
1328             manually."]
1329    #[inline]
1330    fn visit_this_expr(&mut self, node: &ThisExpr) {
1331        <ThisExpr as VisitWith<Self>>::visit_children_with(node, self)
1332    }
1333    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
1334             [`ThrowStmt::visit_children_with`]. If you want to recurse, you need to call it \
1335             manually."]
1336    #[inline]
1337    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
1338        <ThrowStmt as VisitWith<Self>>::visit_children_with(node, self)
1339    }
1340    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
1341             [`Tpl::visit_children_with`]. If you want to recurse, you need to call it manually."]
1342    #[inline]
1343    fn visit_tpl(&mut self, node: &Tpl) {
1344        <Tpl as VisitWith<Self>>::visit_children_with(node, self)
1345    }
1346    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
1347             [`TplElement::visit_children_with`]. If you want to recurse, you need to call it \
1348             manually."]
1349    #[inline]
1350    fn visit_tpl_element(&mut self, node: &TplElement) {
1351        <TplElement as VisitWith<Self>>::visit_children_with(node, self)
1352    }
1353    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
1354             TplElement >::visit_children_with`]. If you want to recurse, you need to call it \
1355             manually."]
1356    #[inline]
1357    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
1358        <[TplElement] as VisitWith<Self>>::visit_children_with(node, self)
1359    }
1360    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
1361             [`TruePlusMinus::visit_children_with`]. If you want to recurse, you need to call it \
1362             manually."]
1363    #[inline]
1364    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
1365        <TruePlusMinus as VisitWith<Self>>::visit_children_with(node, self)
1366    }
1367    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
1368             [`TryStmt::visit_children_with`]. If you want to recurse, you need to call it \
1369             manually."]
1370    #[inline]
1371    fn visit_try_stmt(&mut self, node: &TryStmt) {
1372        <TryStmt as VisitWith<Self>>::visit_children_with(node, self)
1373    }
1374    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
1375             [`TsArrayType::visit_children_with`]. If you want to recurse, you need to call it \
1376             manually."]
1377    #[inline]
1378    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
1379        <TsArrayType as VisitWith<Self>>::visit_children_with(node, self)
1380    }
1381    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
1382             [`TsAsExpr::visit_children_with`]. If you want to recurse, you need to call it \
1383             manually."]
1384    #[inline]
1385    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
1386        <TsAsExpr as VisitWith<Self>>::visit_children_with(node, self)
1387    }
1388    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
1389             [`TsCallSignatureDecl::visit_children_with`]. If you want to recurse, you need to \
1390             call it manually."]
1391    #[inline]
1392    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
1393        <TsCallSignatureDecl as VisitWith<Self>>::visit_children_with(node, self)
1394    }
1395    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
1396             [`TsConditionalType::visit_children_with`]. If you want to recurse, you need to call \
1397             it manually."]
1398    #[inline]
1399    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
1400        <TsConditionalType as VisitWith<Self>>::visit_children_with(node, self)
1401    }
1402    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
1403             [`TsConstAssertion::visit_children_with`]. If you want to recurse, you need to call \
1404             it manually."]
1405    #[inline]
1406    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
1407        <TsConstAssertion as VisitWith<Self>>::visit_children_with(node, self)
1408    }
1409    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
1410             [`TsConstructSignatureDecl::visit_children_with`]. If you want to recurse, you need \
1411             to call it manually."]
1412    #[inline]
1413    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
1414        <TsConstructSignatureDecl as VisitWith<Self>>::visit_children_with(node, self)
1415    }
1416    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
1417             [`TsConstructorType::visit_children_with`]. If you want to recurse, you need to call \
1418             it manually."]
1419    #[inline]
1420    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
1421        <TsConstructorType as VisitWith<Self>>::visit_children_with(node, self)
1422    }
1423    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
1424             [`TsEntityName::visit_children_with`]. If you want to recurse, you need to call it \
1425             manually."]
1426    #[inline]
1427    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
1428        <TsEntityName as VisitWith<Self>>::visit_children_with(node, self)
1429    }
1430    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
1431             [`TsEnumDecl::visit_children_with`]. If you want to recurse, you need to call it \
1432             manually."]
1433    #[inline]
1434    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
1435        <TsEnumDecl as VisitWith<Self>>::visit_children_with(node, self)
1436    }
1437    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
1438             [`TsEnumMember::visit_children_with`]. If you want to recurse, you need to call it \
1439             manually."]
1440    #[inline]
1441    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
1442        <TsEnumMember as VisitWith<Self>>::visit_children_with(node, self)
1443    }
1444    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
1445             [`TsEnumMemberId::visit_children_with`]. If you want to recurse, you need to call it \
1446             manually."]
1447    #[inline]
1448    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
1449        <TsEnumMemberId as VisitWith<Self>>::visit_children_with(node, self)
1450    }
1451    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
1452             TsEnumMember >::visit_children_with`]. If you want to recurse, you need to call it \
1453             manually."]
1454    #[inline]
1455    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
1456        <[TsEnumMember] as VisitWith<Self>>::visit_children_with(node, self)
1457    }
1458    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
1459             [`TsExportAssignment::visit_children_with`]. If you want to recurse, you need to call \
1460             it manually."]
1461    #[inline]
1462    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
1463        <TsExportAssignment as VisitWith<Self>>::visit_children_with(node, self)
1464    }
1465    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
1466             [`TsExprWithTypeArgs::visit_children_with`]. If you want to recurse, you need to call \
1467             it manually."]
1468    #[inline]
1469    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
1470        <TsExprWithTypeArgs as VisitWith<Self>>::visit_children_with(node, self)
1471    }
1472    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
1473             [`Vec < TsExprWithTypeArgs >::visit_children_with`]. If you want to recurse, you need \
1474             to call it manually."]
1475    #[inline]
1476    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
1477        <[TsExprWithTypeArgs] as VisitWith<Self>>::visit_children_with(node, self)
1478    }
1479    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
1480             [`TsExternalModuleRef::visit_children_with`]. If you want to recurse, you need to \
1481             call it manually."]
1482    #[inline]
1483    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
1484        <TsExternalModuleRef as VisitWith<Self>>::visit_children_with(node, self)
1485    }
1486    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
1487             [`TsFnOrConstructorType::visit_children_with`]. If you want to recurse, you need to \
1488             call it manually."]
1489    #[inline]
1490    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
1491        <TsFnOrConstructorType as VisitWith<Self>>::visit_children_with(node, self)
1492    }
1493    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
1494             [`TsFnParam::visit_children_with`]. If you want to recurse, you need to call it \
1495             manually."]
1496    #[inline]
1497    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
1498        <TsFnParam as VisitWith<Self>>::visit_children_with(node, self)
1499    }
1500    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
1501             TsFnParam >::visit_children_with`]. If you want to recurse, you need to call it \
1502             manually."]
1503    #[inline]
1504    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
1505        <[TsFnParam] as VisitWith<Self>>::visit_children_with(node, self)
1506    }
1507    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
1508             [`TsFnType::visit_children_with`]. If you want to recurse, you need to call it \
1509             manually."]
1510    #[inline]
1511    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
1512        <TsFnType as VisitWith<Self>>::visit_children_with(node, self)
1513    }
1514    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
1515             [`TsGetterSignature::visit_children_with`]. If you want to recurse, you need to call \
1516             it manually."]
1517    #[inline]
1518    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
1519        <TsGetterSignature as VisitWith<Self>>::visit_children_with(node, self)
1520    }
1521    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
1522             [`TsImportEqualsDecl::visit_children_with`]. If you want to recurse, you need to call \
1523             it manually."]
1524    #[inline]
1525    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
1526        <TsImportEqualsDecl as VisitWith<Self>>::visit_children_with(node, self)
1527    }
1528    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
1529             [`TsImportType::visit_children_with`]. If you want to recurse, you need to call it \
1530             manually."]
1531    #[inline]
1532    fn visit_ts_import_type(&mut self, node: &TsImportType) {
1533        <TsImportType as VisitWith<Self>>::visit_children_with(node, self)
1534    }
1535    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
1536             [`TsIndexSignature::visit_children_with`]. If you want to recurse, you need to call \
1537             it manually."]
1538    #[inline]
1539    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
1540        <TsIndexSignature as VisitWith<Self>>::visit_children_with(node, self)
1541    }
1542    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
1543             [`TsIndexedAccessType::visit_children_with`]. If you want to recurse, you need to \
1544             call it manually."]
1545    #[inline]
1546    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
1547        <TsIndexedAccessType as VisitWith<Self>>::visit_children_with(node, self)
1548    }
1549    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
1550             [`TsInferType::visit_children_with`]. If you want to recurse, you need to call it \
1551             manually."]
1552    #[inline]
1553    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
1554        <TsInferType as VisitWith<Self>>::visit_children_with(node, self)
1555    }
1556    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
1557             [`TsInstantiation::visit_children_with`]. If you want to recurse, you need to call it \
1558             manually."]
1559    #[inline]
1560    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
1561        <TsInstantiation as VisitWith<Self>>::visit_children_with(node, self)
1562    }
1563    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
1564             [`TsInterfaceBody::visit_children_with`]. If you want to recurse, you need to call it \
1565             manually."]
1566    #[inline]
1567    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
1568        <TsInterfaceBody as VisitWith<Self>>::visit_children_with(node, self)
1569    }
1570    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
1571             [`TsInterfaceDecl::visit_children_with`]. If you want to recurse, you need to call it \
1572             manually."]
1573    #[inline]
1574    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
1575        <TsInterfaceDecl as VisitWith<Self>>::visit_children_with(node, self)
1576    }
1577    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
1578             [`TsIntersectionType::visit_children_with`]. If you want to recurse, you need to call \
1579             it manually."]
1580    #[inline]
1581    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
1582        <TsIntersectionType as VisitWith<Self>>::visit_children_with(node, self)
1583    }
1584    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
1585             [`TsKeywordType::visit_children_with`]. If you want to recurse, you need to call it \
1586             manually."]
1587    #[inline]
1588    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
1589        <TsKeywordType as VisitWith<Self>>::visit_children_with(node, self)
1590    }
1591    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
1592             [`TsKeywordTypeKind::visit_children_with`]. If you want to recurse, you need to call \
1593             it manually."]
1594    #[inline]
1595    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
1596        <TsKeywordTypeKind as VisitWith<Self>>::visit_children_with(node, self)
1597    }
1598    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
1599             [`TsLit::visit_children_with`]. If you want to recurse, you need to call it manually."]
1600    #[inline]
1601    fn visit_ts_lit(&mut self, node: &TsLit) {
1602        <TsLit as VisitWith<Self>>::visit_children_with(node, self)
1603    }
1604    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
1605             [`TsLitType::visit_children_with`]. If you want to recurse, you need to call it \
1606             manually."]
1607    #[inline]
1608    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
1609        <TsLitType as VisitWith<Self>>::visit_children_with(node, self)
1610    }
1611    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
1612             [`TsMappedType::visit_children_with`]. If you want to recurse, you need to call it \
1613             manually."]
1614    #[inline]
1615    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
1616        <TsMappedType as VisitWith<Self>>::visit_children_with(node, self)
1617    }
1618    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
1619             [`TsMethodSignature::visit_children_with`]. If you want to recurse, you need to call \
1620             it manually."]
1621    #[inline]
1622    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
1623        <TsMethodSignature as VisitWith<Self>>::visit_children_with(node, self)
1624    }
1625    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
1626             [`TsModuleBlock::visit_children_with`]. If you want to recurse, you need to call it \
1627             manually."]
1628    #[inline]
1629    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
1630        <TsModuleBlock as VisitWith<Self>>::visit_children_with(node, self)
1631    }
1632    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
1633             [`TsModuleDecl::visit_children_with`]. If you want to recurse, you need to call it \
1634             manually."]
1635    #[inline]
1636    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
1637        <TsModuleDecl as VisitWith<Self>>::visit_children_with(node, self)
1638    }
1639    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
1640             [`TsModuleName::visit_children_with`]. If you want to recurse, you need to call it \
1641             manually."]
1642    #[inline]
1643    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
1644        <TsModuleName as VisitWith<Self>>::visit_children_with(node, self)
1645    }
1646    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
1647             [`TsModuleRef::visit_children_with`]. If you want to recurse, you need to call it \
1648             manually."]
1649    #[inline]
1650    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
1651        <TsModuleRef as VisitWith<Self>>::visit_children_with(node, self)
1652    }
1653    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
1654             [`TsNamespaceBody::visit_children_with`]. If you want to recurse, you need to call it \
1655             manually."]
1656    #[inline]
1657    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
1658        <TsNamespaceBody as VisitWith<Self>>::visit_children_with(node, self)
1659    }
1660    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
1661             [`TsNamespaceDecl::visit_children_with`]. If you want to recurse, you need to call it \
1662             manually."]
1663    #[inline]
1664    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
1665        <TsNamespaceDecl as VisitWith<Self>>::visit_children_with(node, self)
1666    }
1667    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
1668             [`TsNamespaceExportDecl::visit_children_with`]. If you want to recurse, you need to \
1669             call it manually."]
1670    #[inline]
1671    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
1672        <TsNamespaceExportDecl as VisitWith<Self>>::visit_children_with(node, self)
1673    }
1674    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
1675             [`TsNonNullExpr::visit_children_with`]. If you want to recurse, you need to call it \
1676             manually."]
1677    #[inline]
1678    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
1679        <TsNonNullExpr as VisitWith<Self>>::visit_children_with(node, self)
1680    }
1681    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
1682             [`TsOptionalType::visit_children_with`]. If you want to recurse, you need to call it \
1683             manually."]
1684    #[inline]
1685    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
1686        <TsOptionalType as VisitWith<Self>>::visit_children_with(node, self)
1687    }
1688    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
1689             [`TsParamProp::visit_children_with`]. If you want to recurse, you need to call it \
1690             manually."]
1691    #[inline]
1692    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
1693        <TsParamProp as VisitWith<Self>>::visit_children_with(node, self)
1694    }
1695    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
1696             [`TsParamPropParam::visit_children_with`]. If you want to recurse, you need to call \
1697             it manually."]
1698    #[inline]
1699    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
1700        <TsParamPropParam as VisitWith<Self>>::visit_children_with(node, self)
1701    }
1702    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
1703             [`TsParenthesizedType::visit_children_with`]. If you want to recurse, you need to \
1704             call it manually."]
1705    #[inline]
1706    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
1707        <TsParenthesizedType as VisitWith<Self>>::visit_children_with(node, self)
1708    }
1709    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
1710             [`TsPropertySignature::visit_children_with`]. If you want to recurse, you need to \
1711             call it manually."]
1712    #[inline]
1713    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
1714        <TsPropertySignature as VisitWith<Self>>::visit_children_with(node, self)
1715    }
1716    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
1717             [`TsQualifiedName::visit_children_with`]. If you want to recurse, you need to call it \
1718             manually."]
1719    #[inline]
1720    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
1721        <TsQualifiedName as VisitWith<Self>>::visit_children_with(node, self)
1722    }
1723    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
1724             [`TsRestType::visit_children_with`]. If you want to recurse, you need to call it \
1725             manually."]
1726    #[inline]
1727    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
1728        <TsRestType as VisitWith<Self>>::visit_children_with(node, self)
1729    }
1730    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
1731             [`TsSatisfiesExpr::visit_children_with`]. If you want to recurse, you need to call it \
1732             manually."]
1733    #[inline]
1734    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
1735        <TsSatisfiesExpr as VisitWith<Self>>::visit_children_with(node, self)
1736    }
1737    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
1738             [`TsSetterSignature::visit_children_with`]. If you want to recurse, you need to call \
1739             it manually."]
1740    #[inline]
1741    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
1742        <TsSetterSignature as VisitWith<Self>>::visit_children_with(node, self)
1743    }
1744    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
1745             [`TsThisType::visit_children_with`]. If you want to recurse, you need to call it \
1746             manually."]
1747    #[inline]
1748    fn visit_ts_this_type(&mut self, node: &TsThisType) {
1749        <TsThisType as VisitWith<Self>>::visit_children_with(node, self)
1750    }
1751    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
1752             [`TsThisTypeOrIdent::visit_children_with`]. If you want to recurse, you need to call \
1753             it manually."]
1754    #[inline]
1755    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
1756        <TsThisTypeOrIdent as VisitWith<Self>>::visit_children_with(node, self)
1757    }
1758    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
1759             [`TsTplLitType::visit_children_with`]. If you want to recurse, you need to call it \
1760             manually."]
1761    #[inline]
1762    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
1763        <TsTplLitType as VisitWith<Self>>::visit_children_with(node, self)
1764    }
1765    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
1766             [`TsTupleElement::visit_children_with`]. If you want to recurse, you need to call it \
1767             manually."]
1768    #[inline]
1769    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
1770        <TsTupleElement as VisitWith<Self>>::visit_children_with(node, self)
1771    }
1772    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
1773             < TsTupleElement >::visit_children_with`]. If you want to recurse, you need to call \
1774             it manually."]
1775    #[inline]
1776    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
1777        <[TsTupleElement] as VisitWith<Self>>::visit_children_with(node, self)
1778    }
1779    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
1780             [`TsTupleType::visit_children_with`]. If you want to recurse, you need to call it \
1781             manually."]
1782    #[inline]
1783    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
1784        <TsTupleType as VisitWith<Self>>::visit_children_with(node, self)
1785    }
1786    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
1787             [`TsType::visit_children_with`]. If you want to recurse, you need to call it manually."]
1788    #[inline]
1789    fn visit_ts_type(&mut self, node: &TsType) {
1790        <TsType as VisitWith<Self>>::visit_children_with(node, self)
1791    }
1792    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
1793             [`TsTypeAliasDecl::visit_children_with`]. If you want to recurse, you need to call it \
1794             manually."]
1795    #[inline]
1796    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
1797        <TsTypeAliasDecl as VisitWith<Self>>::visit_children_with(node, self)
1798    }
1799    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
1800             [`TsTypeAnn::visit_children_with`]. If you want to recurse, you need to call it \
1801             manually."]
1802    #[inline]
1803    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
1804        <TsTypeAnn as VisitWith<Self>>::visit_children_with(node, self)
1805    }
1806    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
1807             [`TsTypeAssertion::visit_children_with`]. If you want to recurse, you need to call it \
1808             manually."]
1809    #[inline]
1810    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
1811        <TsTypeAssertion as VisitWith<Self>>::visit_children_with(node, self)
1812    }
1813    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
1814             [`TsTypeElement::visit_children_with`]. If you want to recurse, you need to call it \
1815             manually."]
1816    #[inline]
1817    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
1818        <TsTypeElement as VisitWith<Self>>::visit_children_with(node, self)
1819    }
1820    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
1821             < TsTypeElement >::visit_children_with`]. If you want to recurse, you need to call it \
1822             manually."]
1823    #[inline]
1824    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
1825        <[TsTypeElement] as VisitWith<Self>>::visit_children_with(node, self)
1826    }
1827    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
1828             [`TsTypeLit::visit_children_with`]. If you want to recurse, you need to call it \
1829             manually."]
1830    #[inline]
1831    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
1832        <TsTypeLit as VisitWith<Self>>::visit_children_with(node, self)
1833    }
1834    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
1835             [`TsTypeOperator::visit_children_with`]. If you want to recurse, you need to call it \
1836             manually."]
1837    #[inline]
1838    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
1839        <TsTypeOperator as VisitWith<Self>>::visit_children_with(node, self)
1840    }
1841    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
1842             [`TsTypeOperatorOp::visit_children_with`]. If you want to recurse, you need to call \
1843             it manually."]
1844    #[inline]
1845    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
1846        <TsTypeOperatorOp as VisitWith<Self>>::visit_children_with(node, self)
1847    }
1848    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
1849             [`TsTypeParam::visit_children_with`]. If you want to recurse, you need to call it \
1850             manually."]
1851    #[inline]
1852    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
1853        <TsTypeParam as VisitWith<Self>>::visit_children_with(node, self)
1854    }
1855    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
1856             [`TsTypeParamDecl::visit_children_with`]. If you want to recurse, you need to call it \
1857             manually."]
1858    #[inline]
1859    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
1860        <TsTypeParamDecl as VisitWith<Self>>::visit_children_with(node, self)
1861    }
1862    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
1863             [`TsTypeParamInstantiation::visit_children_with`]. If you want to recurse, you need \
1864             to call it manually."]
1865    #[inline]
1866    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
1867        <TsTypeParamInstantiation as VisitWith<Self>>::visit_children_with(node, self)
1868    }
1869    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
1870             TsTypeParam >::visit_children_with`]. If you want to recurse, you need to call it \
1871             manually."]
1872    #[inline]
1873    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
1874        <[TsTypeParam] as VisitWith<Self>>::visit_children_with(node, self)
1875    }
1876    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
1877             [`TsTypePredicate::visit_children_with`]. If you want to recurse, you need to call it \
1878             manually."]
1879    #[inline]
1880    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
1881        <TsTypePredicate as VisitWith<Self>>::visit_children_with(node, self)
1882    }
1883    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
1884             [`TsTypeQuery::visit_children_with`]. If you want to recurse, you need to call it \
1885             manually."]
1886    #[inline]
1887    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
1888        <TsTypeQuery as VisitWith<Self>>::visit_children_with(node, self)
1889    }
1890    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
1891             [`TsTypeQueryExpr::visit_children_with`]. If you want to recurse, you need to call it \
1892             manually."]
1893    #[inline]
1894    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
1895        <TsTypeQueryExpr as VisitWith<Self>>::visit_children_with(node, self)
1896    }
1897    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
1898             [`TsTypeRef::visit_children_with`]. If you want to recurse, you need to call it \
1899             manually."]
1900    #[inline]
1901    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
1902        <TsTypeRef as VisitWith<Self>>::visit_children_with(node, self)
1903    }
1904    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
1905             < Box < TsType > >::visit_children_with`]. If you want to recurse, you need to call \
1906             it manually."]
1907    #[inline]
1908    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
1909        <[Box<TsType>] as VisitWith<Self>>::visit_children_with(node, self)
1910    }
1911    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
1912             [`TsUnionOrIntersectionType::visit_children_with`]. If you want to recurse, you need \
1913             to call it manually."]
1914    #[inline]
1915    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
1916        <TsUnionOrIntersectionType as VisitWith<Self>>::visit_children_with(node, self)
1917    }
1918    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
1919             [`TsUnionType::visit_children_with`]. If you want to recurse, you need to call it \
1920             manually."]
1921    #[inline]
1922    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
1923        <TsUnionType as VisitWith<Self>>::visit_children_with(node, self)
1924    }
1925    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
1926             [`UnaryExpr::visit_children_with`]. If you want to recurse, you need to call it \
1927             manually."]
1928    #[inline]
1929    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
1930        <UnaryExpr as VisitWith<Self>>::visit_children_with(node, self)
1931    }
1932    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
1933             [`UnaryOp::visit_children_with`]. If you want to recurse, you need to call it \
1934             manually."]
1935    #[inline]
1936    fn visit_unary_op(&mut self, node: &UnaryOp) {
1937        <UnaryOp as VisitWith<Self>>::visit_children_with(node, self)
1938    }
1939    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
1940             [`UpdateExpr::visit_children_with`]. If you want to recurse, you need to call it \
1941             manually."]
1942    #[inline]
1943    fn visit_update_expr(&mut self, node: &UpdateExpr) {
1944        <UpdateExpr as VisitWith<Self>>::visit_children_with(node, self)
1945    }
1946    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
1947             [`UpdateOp::visit_children_with`]. If you want to recurse, you need to call it \
1948             manually."]
1949    #[inline]
1950    fn visit_update_op(&mut self, node: &UpdateOp) {
1951        <UpdateOp as VisitWith<Self>>::visit_children_with(node, self)
1952    }
1953    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
1954             [`UsingDecl::visit_children_with`]. If you want to recurse, you need to call it \
1955             manually."]
1956    #[inline]
1957    fn visit_using_decl(&mut self, node: &UsingDecl) {
1958        <UsingDecl as VisitWith<Self>>::visit_children_with(node, self)
1959    }
1960    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
1961             [`VarDecl::visit_children_with`]. If you want to recurse, you need to call it \
1962             manually."]
1963    #[inline]
1964    fn visit_var_decl(&mut self, node: &VarDecl) {
1965        <VarDecl as VisitWith<Self>>::visit_children_with(node, self)
1966    }
1967    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
1968             [`VarDeclKind::visit_children_with`]. If you want to recurse, you need to call it \
1969             manually."]
1970    #[inline]
1971    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
1972        <VarDeclKind as VisitWith<Self>>::visit_children_with(node, self)
1973    }
1974    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
1975             [`VarDeclOrExpr::visit_children_with`]. If you want to recurse, you need to call it \
1976             manually."]
1977    #[inline]
1978    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
1979        <VarDeclOrExpr as VisitWith<Self>>::visit_children_with(node, self)
1980    }
1981    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
1982             [`VarDeclarator::visit_children_with`]. If you want to recurse, you need to call it \
1983             manually."]
1984    #[inline]
1985    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
1986        <VarDeclarator as VisitWith<Self>>::visit_children_with(node, self)
1987    }
1988    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
1989             < VarDeclarator >::visit_children_with`]. If you want to recurse, you need to call it \
1990             manually."]
1991    #[inline]
1992    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
1993        <[VarDeclarator] as VisitWith<Self>>::visit_children_with(node, self)
1994    }
1995    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
1996             [`WhileStmt::visit_children_with`]. If you want to recurse, you need to call it \
1997             manually."]
1998    #[inline]
1999    fn visit_while_stmt(&mut self, node: &WhileStmt) {
2000        <WhileStmt as VisitWith<Self>>::visit_children_with(node, self)
2001    }
2002    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
2003             [`WithStmt::visit_children_with`]. If you want to recurse, you need to call it \
2004             manually."]
2005    #[inline]
2006    fn visit_with_stmt(&mut self, node: &WithStmt) {
2007        <WithStmt as VisitWith<Self>>::visit_children_with(node, self)
2008    }
2009    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
2010             [`YieldExpr::visit_children_with`]. If you want to recurse, you need to call it \
2011             manually."]
2012    #[inline]
2013    fn visit_yield_expr(&mut self, node: &YieldExpr) {
2014        <YieldExpr as VisitWith<Self>>::visit_children_with(node, self)
2015    }
2016}
2017impl<V> Visit for &mut V
2018where
2019    V: ?Sized + Visit,
2020{
2021    #[inline]
2022    fn visit_accessibility(&mut self, node: &Accessibility) {
2023        <V as Visit>::visit_accessibility(&mut **self, node)
2024    }
2025
2026    #[inline]
2027    fn visit_array_lit(&mut self, node: &ArrayLit) {
2028        <V as Visit>::visit_array_lit(&mut **self, node)
2029    }
2030
2031    #[inline]
2032    fn visit_array_pat(&mut self, node: &ArrayPat) {
2033        <V as Visit>::visit_array_pat(&mut **self, node)
2034    }
2035
2036    #[inline]
2037    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
2038        <V as Visit>::visit_arrow_expr(&mut **self, node)
2039    }
2040
2041    #[inline]
2042    fn visit_assign_expr(&mut self, node: &AssignExpr) {
2043        <V as Visit>::visit_assign_expr(&mut **self, node)
2044    }
2045
2046    #[inline]
2047    fn visit_assign_op(&mut self, node: &AssignOp) {
2048        <V as Visit>::visit_assign_op(&mut **self, node)
2049    }
2050
2051    #[inline]
2052    fn visit_assign_pat(&mut self, node: &AssignPat) {
2053        <V as Visit>::visit_assign_pat(&mut **self, node)
2054    }
2055
2056    #[inline]
2057    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
2058        <V as Visit>::visit_assign_pat_prop(&mut **self, node)
2059    }
2060
2061    #[inline]
2062    fn visit_assign_prop(&mut self, node: &AssignProp) {
2063        <V as Visit>::visit_assign_prop(&mut **self, node)
2064    }
2065
2066    #[inline]
2067    fn visit_assign_target(&mut self, node: &AssignTarget) {
2068        <V as Visit>::visit_assign_target(&mut **self, node)
2069    }
2070
2071    #[inline]
2072    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
2073        <V as Visit>::visit_assign_target_pat(&mut **self, node)
2074    }
2075
2076    #[inline]
2077    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
2078        <V as Visit>::visit_atom(&mut **self, node)
2079    }
2080
2081    #[inline]
2082    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
2083        <V as Visit>::visit_auto_accessor(&mut **self, node)
2084    }
2085
2086    #[inline]
2087    fn visit_await_expr(&mut self, node: &AwaitExpr) {
2088        <V as Visit>::visit_await_expr(&mut **self, node)
2089    }
2090
2091    #[inline]
2092    fn visit_big_int(&mut self, node: &BigInt) {
2093        <V as Visit>::visit_big_int(&mut **self, node)
2094    }
2095
2096    #[inline]
2097    fn visit_big_int_value(&mut self, node: &BigIntValue) {
2098        <V as Visit>::visit_big_int_value(&mut **self, node)
2099    }
2100
2101    #[inline]
2102    fn visit_bin_expr(&mut self, node: &BinExpr) {
2103        <V as Visit>::visit_bin_expr(&mut **self, node)
2104    }
2105
2106    #[inline]
2107    fn visit_binary_op(&mut self, node: &BinaryOp) {
2108        <V as Visit>::visit_binary_op(&mut **self, node)
2109    }
2110
2111    #[inline]
2112    fn visit_binding_ident(&mut self, node: &BindingIdent) {
2113        <V as Visit>::visit_binding_ident(&mut **self, node)
2114    }
2115
2116    #[inline]
2117    fn visit_block_stmt(&mut self, node: &BlockStmt) {
2118        <V as Visit>::visit_block_stmt(&mut **self, node)
2119    }
2120
2121    #[inline]
2122    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
2123        <V as Visit>::visit_block_stmt_or_expr(&mut **self, node)
2124    }
2125
2126    #[inline]
2127    fn visit_bool(&mut self, node: &Bool) {
2128        <V as Visit>::visit_bool(&mut **self, node)
2129    }
2130
2131    #[inline]
2132    fn visit_break_stmt(&mut self, node: &BreakStmt) {
2133        <V as Visit>::visit_break_stmt(&mut **self, node)
2134    }
2135
2136    #[inline]
2137    fn visit_call_expr(&mut self, node: &CallExpr) {
2138        <V as Visit>::visit_call_expr(&mut **self, node)
2139    }
2140
2141    #[inline]
2142    fn visit_callee(&mut self, node: &Callee) {
2143        <V as Visit>::visit_callee(&mut **self, node)
2144    }
2145
2146    #[inline]
2147    fn visit_catch_clause(&mut self, node: &CatchClause) {
2148        <V as Visit>::visit_catch_clause(&mut **self, node)
2149    }
2150
2151    #[inline]
2152    fn visit_class(&mut self, node: &Class) {
2153        <V as Visit>::visit_class(&mut **self, node)
2154    }
2155
2156    #[inline]
2157    fn visit_class_decl(&mut self, node: &ClassDecl) {
2158        <V as Visit>::visit_class_decl(&mut **self, node)
2159    }
2160
2161    #[inline]
2162    fn visit_class_expr(&mut self, node: &ClassExpr) {
2163        <V as Visit>::visit_class_expr(&mut **self, node)
2164    }
2165
2166    #[inline]
2167    fn visit_class_member(&mut self, node: &ClassMember) {
2168        <V as Visit>::visit_class_member(&mut **self, node)
2169    }
2170
2171    #[inline]
2172    fn visit_class_members(&mut self, node: &[ClassMember]) {
2173        <V as Visit>::visit_class_members(&mut **self, node)
2174    }
2175
2176    #[inline]
2177    fn visit_class_method(&mut self, node: &ClassMethod) {
2178        <V as Visit>::visit_class_method(&mut **self, node)
2179    }
2180
2181    #[inline]
2182    fn visit_class_prop(&mut self, node: &ClassProp) {
2183        <V as Visit>::visit_class_prop(&mut **self, node)
2184    }
2185
2186    #[inline]
2187    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
2188        <V as Visit>::visit_computed_prop_name(&mut **self, node)
2189    }
2190
2191    #[inline]
2192    fn visit_cond_expr(&mut self, node: &CondExpr) {
2193        <V as Visit>::visit_cond_expr(&mut **self, node)
2194    }
2195
2196    #[inline]
2197    fn visit_constructor(&mut self, node: &Constructor) {
2198        <V as Visit>::visit_constructor(&mut **self, node)
2199    }
2200
2201    #[inline]
2202    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
2203        <V as Visit>::visit_continue_stmt(&mut **self, node)
2204    }
2205
2206    #[inline]
2207    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
2208        <V as Visit>::visit_debugger_stmt(&mut **self, node)
2209    }
2210
2211    #[inline]
2212    fn visit_decl(&mut self, node: &Decl) {
2213        <V as Visit>::visit_decl(&mut **self, node)
2214    }
2215
2216    #[inline]
2217    fn visit_decorator(&mut self, node: &Decorator) {
2218        <V as Visit>::visit_decorator(&mut **self, node)
2219    }
2220
2221    #[inline]
2222    fn visit_decorators(&mut self, node: &[Decorator]) {
2223        <V as Visit>::visit_decorators(&mut **self, node)
2224    }
2225
2226    #[inline]
2227    fn visit_default_decl(&mut self, node: &DefaultDecl) {
2228        <V as Visit>::visit_default_decl(&mut **self, node)
2229    }
2230
2231    #[inline]
2232    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
2233        <V as Visit>::visit_do_while_stmt(&mut **self, node)
2234    }
2235
2236    #[inline]
2237    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
2238        <V as Visit>::visit_empty_stmt(&mut **self, node)
2239    }
2240
2241    #[inline]
2242    fn visit_export_all(&mut self, node: &ExportAll) {
2243        <V as Visit>::visit_export_all(&mut **self, node)
2244    }
2245
2246    #[inline]
2247    fn visit_export_decl(&mut self, node: &ExportDecl) {
2248        <V as Visit>::visit_export_decl(&mut **self, node)
2249    }
2250
2251    #[inline]
2252    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
2253        <V as Visit>::visit_export_default_decl(&mut **self, node)
2254    }
2255
2256    #[inline]
2257    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
2258        <V as Visit>::visit_export_default_expr(&mut **self, node)
2259    }
2260
2261    #[inline]
2262    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
2263        <V as Visit>::visit_export_default_specifier(&mut **self, node)
2264    }
2265
2266    #[inline]
2267    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
2268        <V as Visit>::visit_export_named_specifier(&mut **self, node)
2269    }
2270
2271    #[inline]
2272    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
2273        <V as Visit>::visit_export_namespace_specifier(&mut **self, node)
2274    }
2275
2276    #[inline]
2277    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
2278        <V as Visit>::visit_export_specifier(&mut **self, node)
2279    }
2280
2281    #[inline]
2282    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
2283        <V as Visit>::visit_export_specifiers(&mut **self, node)
2284    }
2285
2286    #[inline]
2287    fn visit_expr(&mut self, node: &Expr) {
2288        <V as Visit>::visit_expr(&mut **self, node)
2289    }
2290
2291    #[inline]
2292    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
2293        <V as Visit>::visit_expr_or_spread(&mut **self, node)
2294    }
2295
2296    #[inline]
2297    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
2298        <V as Visit>::visit_expr_or_spreads(&mut **self, node)
2299    }
2300
2301    #[inline]
2302    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
2303        <V as Visit>::visit_expr_stmt(&mut **self, node)
2304    }
2305
2306    #[inline]
2307    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
2308        <V as Visit>::visit_exprs(&mut **self, node)
2309    }
2310
2311    #[inline]
2312    fn visit_fn_decl(&mut self, node: &FnDecl) {
2313        <V as Visit>::visit_fn_decl(&mut **self, node)
2314    }
2315
2316    #[inline]
2317    fn visit_fn_expr(&mut self, node: &FnExpr) {
2318        <V as Visit>::visit_fn_expr(&mut **self, node)
2319    }
2320
2321    #[inline]
2322    fn visit_for_head(&mut self, node: &ForHead) {
2323        <V as Visit>::visit_for_head(&mut **self, node)
2324    }
2325
2326    #[inline]
2327    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
2328        <V as Visit>::visit_for_in_stmt(&mut **self, node)
2329    }
2330
2331    #[inline]
2332    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
2333        <V as Visit>::visit_for_of_stmt(&mut **self, node)
2334    }
2335
2336    #[inline]
2337    fn visit_for_stmt(&mut self, node: &ForStmt) {
2338        <V as Visit>::visit_for_stmt(&mut **self, node)
2339    }
2340
2341    #[inline]
2342    fn visit_function(&mut self, node: &Function) {
2343        <V as Visit>::visit_function(&mut **self, node)
2344    }
2345
2346    #[inline]
2347    fn visit_getter_prop(&mut self, node: &GetterProp) {
2348        <V as Visit>::visit_getter_prop(&mut **self, node)
2349    }
2350
2351    #[inline]
2352    fn visit_ident(&mut self, node: &Ident) {
2353        <V as Visit>::visit_ident(&mut **self, node)
2354    }
2355
2356    #[inline]
2357    fn visit_ident_name(&mut self, node: &IdentName) {
2358        <V as Visit>::visit_ident_name(&mut **self, node)
2359    }
2360
2361    #[inline]
2362    fn visit_if_stmt(&mut self, node: &IfStmt) {
2363        <V as Visit>::visit_if_stmt(&mut **self, node)
2364    }
2365
2366    #[inline]
2367    fn visit_import(&mut self, node: &Import) {
2368        <V as Visit>::visit_import(&mut **self, node)
2369    }
2370
2371    #[inline]
2372    fn visit_import_decl(&mut self, node: &ImportDecl) {
2373        <V as Visit>::visit_import_decl(&mut **self, node)
2374    }
2375
2376    #[inline]
2377    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
2378        <V as Visit>::visit_import_default_specifier(&mut **self, node)
2379    }
2380
2381    #[inline]
2382    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
2383        <V as Visit>::visit_import_named_specifier(&mut **self, node)
2384    }
2385
2386    #[inline]
2387    fn visit_import_phase(&mut self, node: &ImportPhase) {
2388        <V as Visit>::visit_import_phase(&mut **self, node)
2389    }
2390
2391    #[inline]
2392    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
2393        <V as Visit>::visit_import_specifier(&mut **self, node)
2394    }
2395
2396    #[inline]
2397    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
2398        <V as Visit>::visit_import_specifiers(&mut **self, node)
2399    }
2400
2401    #[inline]
2402    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
2403        <V as Visit>::visit_import_star_as_specifier(&mut **self, node)
2404    }
2405
2406    #[inline]
2407    fn visit_import_with(&mut self, node: &ImportWith) {
2408        <V as Visit>::visit_import_with(&mut **self, node)
2409    }
2410
2411    #[inline]
2412    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
2413        <V as Visit>::visit_import_with_item(&mut **self, node)
2414    }
2415
2416    #[inline]
2417    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
2418        <V as Visit>::visit_import_with_items(&mut **self, node)
2419    }
2420
2421    #[inline]
2422    fn visit_invalid(&mut self, node: &Invalid) {
2423        <V as Visit>::visit_invalid(&mut **self, node)
2424    }
2425
2426    #[inline]
2427    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
2428        <V as Visit>::visit_jsx_attr(&mut **self, node)
2429    }
2430
2431    #[inline]
2432    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
2433        <V as Visit>::visit_jsx_attr_name(&mut **self, node)
2434    }
2435
2436    #[inline]
2437    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
2438        <V as Visit>::visit_jsx_attr_or_spread(&mut **self, node)
2439    }
2440
2441    #[inline]
2442    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
2443        <V as Visit>::visit_jsx_attr_or_spreads(&mut **self, node)
2444    }
2445
2446    #[inline]
2447    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
2448        <V as Visit>::visit_jsx_attr_value(&mut **self, node)
2449    }
2450
2451    #[inline]
2452    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
2453        <V as Visit>::visit_jsx_closing_element(&mut **self, node)
2454    }
2455
2456    #[inline]
2457    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
2458        <V as Visit>::visit_jsx_closing_fragment(&mut **self, node)
2459    }
2460
2461    #[inline]
2462    fn visit_jsx_element(&mut self, node: &JSXElement) {
2463        <V as Visit>::visit_jsx_element(&mut **self, node)
2464    }
2465
2466    #[inline]
2467    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
2468        <V as Visit>::visit_jsx_element_child(&mut **self, node)
2469    }
2470
2471    #[inline]
2472    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
2473        <V as Visit>::visit_jsx_element_childs(&mut **self, node)
2474    }
2475
2476    #[inline]
2477    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
2478        <V as Visit>::visit_jsx_element_name(&mut **self, node)
2479    }
2480
2481    #[inline]
2482    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
2483        <V as Visit>::visit_jsx_empty_expr(&mut **self, node)
2484    }
2485
2486    #[inline]
2487    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
2488        <V as Visit>::visit_jsx_expr(&mut **self, node)
2489    }
2490
2491    #[inline]
2492    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
2493        <V as Visit>::visit_jsx_expr_container(&mut **self, node)
2494    }
2495
2496    #[inline]
2497    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
2498        <V as Visit>::visit_jsx_fragment(&mut **self, node)
2499    }
2500
2501    #[inline]
2502    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
2503        <V as Visit>::visit_jsx_member_expr(&mut **self, node)
2504    }
2505
2506    #[inline]
2507    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
2508        <V as Visit>::visit_jsx_namespaced_name(&mut **self, node)
2509    }
2510
2511    #[inline]
2512    fn visit_jsx_object(&mut self, node: &JSXObject) {
2513        <V as Visit>::visit_jsx_object(&mut **self, node)
2514    }
2515
2516    #[inline]
2517    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
2518        <V as Visit>::visit_jsx_opening_element(&mut **self, node)
2519    }
2520
2521    #[inline]
2522    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
2523        <V as Visit>::visit_jsx_opening_fragment(&mut **self, node)
2524    }
2525
2526    #[inline]
2527    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
2528        <V as Visit>::visit_jsx_spread_child(&mut **self, node)
2529    }
2530
2531    #[inline]
2532    fn visit_jsx_text(&mut self, node: &JSXText) {
2533        <V as Visit>::visit_jsx_text(&mut **self, node)
2534    }
2535
2536    #[inline]
2537    fn visit_key(&mut self, node: &Key) {
2538        <V as Visit>::visit_key(&mut **self, node)
2539    }
2540
2541    #[inline]
2542    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
2543        <V as Visit>::visit_key_value_pat_prop(&mut **self, node)
2544    }
2545
2546    #[inline]
2547    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
2548        <V as Visit>::visit_key_value_prop(&mut **self, node)
2549    }
2550
2551    #[inline]
2552    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
2553        <V as Visit>::visit_labeled_stmt(&mut **self, node)
2554    }
2555
2556    #[inline]
2557    fn visit_lit(&mut self, node: &Lit) {
2558        <V as Visit>::visit_lit(&mut **self, node)
2559    }
2560
2561    #[inline]
2562    fn visit_member_expr(&mut self, node: &MemberExpr) {
2563        <V as Visit>::visit_member_expr(&mut **self, node)
2564    }
2565
2566    #[inline]
2567    fn visit_member_prop(&mut self, node: &MemberProp) {
2568        <V as Visit>::visit_member_prop(&mut **self, node)
2569    }
2570
2571    #[inline]
2572    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
2573        <V as Visit>::visit_meta_prop_expr(&mut **self, node)
2574    }
2575
2576    #[inline]
2577    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
2578        <V as Visit>::visit_meta_prop_kind(&mut **self, node)
2579    }
2580
2581    #[inline]
2582    fn visit_method_kind(&mut self, node: &MethodKind) {
2583        <V as Visit>::visit_method_kind(&mut **self, node)
2584    }
2585
2586    #[inline]
2587    fn visit_method_prop(&mut self, node: &MethodProp) {
2588        <V as Visit>::visit_method_prop(&mut **self, node)
2589    }
2590
2591    #[inline]
2592    fn visit_module(&mut self, node: &Module) {
2593        <V as Visit>::visit_module(&mut **self, node)
2594    }
2595
2596    #[inline]
2597    fn visit_module_decl(&mut self, node: &ModuleDecl) {
2598        <V as Visit>::visit_module_decl(&mut **self, node)
2599    }
2600
2601    #[inline]
2602    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
2603        <V as Visit>::visit_module_export_name(&mut **self, node)
2604    }
2605
2606    #[inline]
2607    fn visit_module_item(&mut self, node: &ModuleItem) {
2608        <V as Visit>::visit_module_item(&mut **self, node)
2609    }
2610
2611    #[inline]
2612    fn visit_module_items(&mut self, node: &[ModuleItem]) {
2613        <V as Visit>::visit_module_items(&mut **self, node)
2614    }
2615
2616    #[inline]
2617    fn visit_named_export(&mut self, node: &NamedExport) {
2618        <V as Visit>::visit_named_export(&mut **self, node)
2619    }
2620
2621    #[inline]
2622    fn visit_new_expr(&mut self, node: &NewExpr) {
2623        <V as Visit>::visit_new_expr(&mut **self, node)
2624    }
2625
2626    #[inline]
2627    fn visit_null(&mut self, node: &Null) {
2628        <V as Visit>::visit_null(&mut **self, node)
2629    }
2630
2631    #[inline]
2632    fn visit_number(&mut self, node: &Number) {
2633        <V as Visit>::visit_number(&mut **self, node)
2634    }
2635
2636    #[inline]
2637    fn visit_object_lit(&mut self, node: &ObjectLit) {
2638        <V as Visit>::visit_object_lit(&mut **self, node)
2639    }
2640
2641    #[inline]
2642    fn visit_object_pat(&mut self, node: &ObjectPat) {
2643        <V as Visit>::visit_object_pat(&mut **self, node)
2644    }
2645
2646    #[inline]
2647    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
2648        <V as Visit>::visit_object_pat_prop(&mut **self, node)
2649    }
2650
2651    #[inline]
2652    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
2653        <V as Visit>::visit_object_pat_props(&mut **self, node)
2654    }
2655
2656    #[inline]
2657    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
2658        <V as Visit>::visit_opt_accessibility(&mut **self, node)
2659    }
2660
2661    #[inline]
2662    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
2663        <V as Visit>::visit_opt_atom(&mut **self, node)
2664    }
2665
2666    #[inline]
2667    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
2668        <V as Visit>::visit_opt_block_stmt(&mut **self, node)
2669    }
2670
2671    #[inline]
2672    fn visit_opt_call(&mut self, node: &OptCall) {
2673        <V as Visit>::visit_opt_call(&mut **self, node)
2674    }
2675
2676    #[inline]
2677    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
2678        <V as Visit>::visit_opt_catch_clause(&mut **self, node)
2679    }
2680
2681    #[inline]
2682    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
2683        <V as Visit>::visit_opt_chain_base(&mut **self, node)
2684    }
2685
2686    #[inline]
2687    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
2688        <V as Visit>::visit_opt_chain_expr(&mut **self, node)
2689    }
2690
2691    #[inline]
2692    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
2693        <V as Visit>::visit_opt_expr(&mut **self, node)
2694    }
2695
2696    #[inline]
2697    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
2698        <V as Visit>::visit_opt_expr_or_spread(&mut **self, node)
2699    }
2700
2701    #[inline]
2702    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
2703        <V as Visit>::visit_opt_expr_or_spreads(&mut **self, node)
2704    }
2705
2706    #[inline]
2707    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
2708        <V as Visit>::visit_opt_ident(&mut **self, node)
2709    }
2710
2711    #[inline]
2712    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
2713        <V as Visit>::visit_opt_jsx_attr_value(&mut **self, node)
2714    }
2715
2716    #[inline]
2717    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
2718        <V as Visit>::visit_opt_jsx_closing_element(&mut **self, node)
2719    }
2720
2721    #[inline]
2722    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
2723        <V as Visit>::visit_opt_module_export_name(&mut **self, node)
2724    }
2725
2726    #[inline]
2727    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
2728        <V as Visit>::visit_opt_object_lit(&mut **self, node)
2729    }
2730
2731    #[inline]
2732    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
2733        <V as Visit>::visit_opt_pat(&mut **self, node)
2734    }
2735
2736    #[inline]
2737    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
2738        <V as Visit>::visit_opt_span(&mut **self, node)
2739    }
2740
2741    #[inline]
2742    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
2743        <V as Visit>::visit_opt_stmt(&mut **self, node)
2744    }
2745
2746    #[inline]
2747    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
2748        <V as Visit>::visit_opt_str(&mut **self, node)
2749    }
2750
2751    #[inline]
2752    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
2753        <V as Visit>::visit_opt_true_plus_minus(&mut **self, node)
2754    }
2755
2756    #[inline]
2757    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
2758        <V as Visit>::visit_opt_ts_entity_name(&mut **self, node)
2759    }
2760
2761    #[inline]
2762    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
2763        <V as Visit>::visit_opt_ts_namespace_body(&mut **self, node)
2764    }
2765
2766    #[inline]
2767    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
2768        <V as Visit>::visit_opt_ts_type(&mut **self, node)
2769    }
2770
2771    #[inline]
2772    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
2773        <V as Visit>::visit_opt_ts_type_ann(&mut **self, node)
2774    }
2775
2776    #[inline]
2777    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
2778        <V as Visit>::visit_opt_ts_type_param_decl(&mut **self, node)
2779    }
2780
2781    #[inline]
2782    fn visit_opt_ts_type_param_instantiation(
2783        &mut self,
2784        node: &Option<Box<TsTypeParamInstantiation>>,
2785    ) {
2786        <V as Visit>::visit_opt_ts_type_param_instantiation(&mut **self, node)
2787    }
2788
2789    #[inline]
2790    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
2791        <V as Visit>::visit_opt_var_decl_or_expr(&mut **self, node)
2792    }
2793
2794    #[inline]
2795    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
2796        <V as Visit>::visit_opt_vec_expr_or_spreads(&mut **self, node)
2797    }
2798
2799    #[inline]
2800    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
2801        <V as Visit>::visit_opt_vec_pats(&mut **self, node)
2802    }
2803
2804    #[inline]
2805    fn visit_param(&mut self, node: &Param) {
2806        <V as Visit>::visit_param(&mut **self, node)
2807    }
2808
2809    #[inline]
2810    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
2811        <V as Visit>::visit_param_or_ts_param_prop(&mut **self, node)
2812    }
2813
2814    #[inline]
2815    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
2816        <V as Visit>::visit_param_or_ts_param_props(&mut **self, node)
2817    }
2818
2819    #[inline]
2820    fn visit_params(&mut self, node: &[Param]) {
2821        <V as Visit>::visit_params(&mut **self, node)
2822    }
2823
2824    #[inline]
2825    fn visit_paren_expr(&mut self, node: &ParenExpr) {
2826        <V as Visit>::visit_paren_expr(&mut **self, node)
2827    }
2828
2829    #[inline]
2830    fn visit_pat(&mut self, node: &Pat) {
2831        <V as Visit>::visit_pat(&mut **self, node)
2832    }
2833
2834    #[inline]
2835    fn visit_pats(&mut self, node: &[Pat]) {
2836        <V as Visit>::visit_pats(&mut **self, node)
2837    }
2838
2839    #[inline]
2840    fn visit_private_method(&mut self, node: &PrivateMethod) {
2841        <V as Visit>::visit_private_method(&mut **self, node)
2842    }
2843
2844    #[inline]
2845    fn visit_private_name(&mut self, node: &PrivateName) {
2846        <V as Visit>::visit_private_name(&mut **self, node)
2847    }
2848
2849    #[inline]
2850    fn visit_private_prop(&mut self, node: &PrivateProp) {
2851        <V as Visit>::visit_private_prop(&mut **self, node)
2852    }
2853
2854    #[inline]
2855    fn visit_program(&mut self, node: &Program) {
2856        <V as Visit>::visit_program(&mut **self, node)
2857    }
2858
2859    #[inline]
2860    fn visit_prop(&mut self, node: &Prop) {
2861        <V as Visit>::visit_prop(&mut **self, node)
2862    }
2863
2864    #[inline]
2865    fn visit_prop_name(&mut self, node: &PropName) {
2866        <V as Visit>::visit_prop_name(&mut **self, node)
2867    }
2868
2869    #[inline]
2870    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
2871        <V as Visit>::visit_prop_or_spread(&mut **self, node)
2872    }
2873
2874    #[inline]
2875    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
2876        <V as Visit>::visit_prop_or_spreads(&mut **self, node)
2877    }
2878
2879    #[inline]
2880    fn visit_regex(&mut self, node: &Regex) {
2881        <V as Visit>::visit_regex(&mut **self, node)
2882    }
2883
2884    #[inline]
2885    fn visit_rest_pat(&mut self, node: &RestPat) {
2886        <V as Visit>::visit_rest_pat(&mut **self, node)
2887    }
2888
2889    #[inline]
2890    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
2891        <V as Visit>::visit_return_stmt(&mut **self, node)
2892    }
2893
2894    #[inline]
2895    fn visit_script(&mut self, node: &Script) {
2896        <V as Visit>::visit_script(&mut **self, node)
2897    }
2898
2899    #[inline]
2900    fn visit_seq_expr(&mut self, node: &SeqExpr) {
2901        <V as Visit>::visit_seq_expr(&mut **self, node)
2902    }
2903
2904    #[inline]
2905    fn visit_setter_prop(&mut self, node: &SetterProp) {
2906        <V as Visit>::visit_setter_prop(&mut **self, node)
2907    }
2908
2909    #[inline]
2910    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
2911        <V as Visit>::visit_simple_assign_target(&mut **self, node)
2912    }
2913
2914    #[inline]
2915    fn visit_span(&mut self, node: &swc_common::Span) {
2916        <V as Visit>::visit_span(&mut **self, node)
2917    }
2918
2919    #[inline]
2920    fn visit_spread_element(&mut self, node: &SpreadElement) {
2921        <V as Visit>::visit_spread_element(&mut **self, node)
2922    }
2923
2924    #[inline]
2925    fn visit_static_block(&mut self, node: &StaticBlock) {
2926        <V as Visit>::visit_static_block(&mut **self, node)
2927    }
2928
2929    #[inline]
2930    fn visit_stmt(&mut self, node: &Stmt) {
2931        <V as Visit>::visit_stmt(&mut **self, node)
2932    }
2933
2934    #[inline]
2935    fn visit_stmts(&mut self, node: &[Stmt]) {
2936        <V as Visit>::visit_stmts(&mut **self, node)
2937    }
2938
2939    #[inline]
2940    fn visit_str(&mut self, node: &Str) {
2941        <V as Visit>::visit_str(&mut **self, node)
2942    }
2943
2944    #[inline]
2945    fn visit_super(&mut self, node: &Super) {
2946        <V as Visit>::visit_super(&mut **self, node)
2947    }
2948
2949    #[inline]
2950    fn visit_super_prop(&mut self, node: &SuperProp) {
2951        <V as Visit>::visit_super_prop(&mut **self, node)
2952    }
2953
2954    #[inline]
2955    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
2956        <V as Visit>::visit_super_prop_expr(&mut **self, node)
2957    }
2958
2959    #[inline]
2960    fn visit_switch_case(&mut self, node: &SwitchCase) {
2961        <V as Visit>::visit_switch_case(&mut **self, node)
2962    }
2963
2964    #[inline]
2965    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
2966        <V as Visit>::visit_switch_cases(&mut **self, node)
2967    }
2968
2969    #[inline]
2970    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
2971        <V as Visit>::visit_switch_stmt(&mut **self, node)
2972    }
2973
2974    #[inline]
2975    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
2976        <V as Visit>::visit_syntax_context(&mut **self, node)
2977    }
2978
2979    #[inline]
2980    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
2981        <V as Visit>::visit_tagged_tpl(&mut **self, node)
2982    }
2983
2984    #[inline]
2985    fn visit_this_expr(&mut self, node: &ThisExpr) {
2986        <V as Visit>::visit_this_expr(&mut **self, node)
2987    }
2988
2989    #[inline]
2990    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
2991        <V as Visit>::visit_throw_stmt(&mut **self, node)
2992    }
2993
2994    #[inline]
2995    fn visit_tpl(&mut self, node: &Tpl) {
2996        <V as Visit>::visit_tpl(&mut **self, node)
2997    }
2998
2999    #[inline]
3000    fn visit_tpl_element(&mut self, node: &TplElement) {
3001        <V as Visit>::visit_tpl_element(&mut **self, node)
3002    }
3003
3004    #[inline]
3005    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
3006        <V as Visit>::visit_tpl_elements(&mut **self, node)
3007    }
3008
3009    #[inline]
3010    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
3011        <V as Visit>::visit_true_plus_minus(&mut **self, node)
3012    }
3013
3014    #[inline]
3015    fn visit_try_stmt(&mut self, node: &TryStmt) {
3016        <V as Visit>::visit_try_stmt(&mut **self, node)
3017    }
3018
3019    #[inline]
3020    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
3021        <V as Visit>::visit_ts_array_type(&mut **self, node)
3022    }
3023
3024    #[inline]
3025    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
3026        <V as Visit>::visit_ts_as_expr(&mut **self, node)
3027    }
3028
3029    #[inline]
3030    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
3031        <V as Visit>::visit_ts_call_signature_decl(&mut **self, node)
3032    }
3033
3034    #[inline]
3035    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
3036        <V as Visit>::visit_ts_conditional_type(&mut **self, node)
3037    }
3038
3039    #[inline]
3040    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
3041        <V as Visit>::visit_ts_const_assertion(&mut **self, node)
3042    }
3043
3044    #[inline]
3045    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
3046        <V as Visit>::visit_ts_construct_signature_decl(&mut **self, node)
3047    }
3048
3049    #[inline]
3050    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
3051        <V as Visit>::visit_ts_constructor_type(&mut **self, node)
3052    }
3053
3054    #[inline]
3055    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
3056        <V as Visit>::visit_ts_entity_name(&mut **self, node)
3057    }
3058
3059    #[inline]
3060    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
3061        <V as Visit>::visit_ts_enum_decl(&mut **self, node)
3062    }
3063
3064    #[inline]
3065    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
3066        <V as Visit>::visit_ts_enum_member(&mut **self, node)
3067    }
3068
3069    #[inline]
3070    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
3071        <V as Visit>::visit_ts_enum_member_id(&mut **self, node)
3072    }
3073
3074    #[inline]
3075    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
3076        <V as Visit>::visit_ts_enum_members(&mut **self, node)
3077    }
3078
3079    #[inline]
3080    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
3081        <V as Visit>::visit_ts_export_assignment(&mut **self, node)
3082    }
3083
3084    #[inline]
3085    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
3086        <V as Visit>::visit_ts_expr_with_type_args(&mut **self, node)
3087    }
3088
3089    #[inline]
3090    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
3091        <V as Visit>::visit_ts_expr_with_type_argss(&mut **self, node)
3092    }
3093
3094    #[inline]
3095    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
3096        <V as Visit>::visit_ts_external_module_ref(&mut **self, node)
3097    }
3098
3099    #[inline]
3100    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
3101        <V as Visit>::visit_ts_fn_or_constructor_type(&mut **self, node)
3102    }
3103
3104    #[inline]
3105    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
3106        <V as Visit>::visit_ts_fn_param(&mut **self, node)
3107    }
3108
3109    #[inline]
3110    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
3111        <V as Visit>::visit_ts_fn_params(&mut **self, node)
3112    }
3113
3114    #[inline]
3115    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
3116        <V as Visit>::visit_ts_fn_type(&mut **self, node)
3117    }
3118
3119    #[inline]
3120    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
3121        <V as Visit>::visit_ts_getter_signature(&mut **self, node)
3122    }
3123
3124    #[inline]
3125    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
3126        <V as Visit>::visit_ts_import_equals_decl(&mut **self, node)
3127    }
3128
3129    #[inline]
3130    fn visit_ts_import_type(&mut self, node: &TsImportType) {
3131        <V as Visit>::visit_ts_import_type(&mut **self, node)
3132    }
3133
3134    #[inline]
3135    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
3136        <V as Visit>::visit_ts_index_signature(&mut **self, node)
3137    }
3138
3139    #[inline]
3140    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
3141        <V as Visit>::visit_ts_indexed_access_type(&mut **self, node)
3142    }
3143
3144    #[inline]
3145    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
3146        <V as Visit>::visit_ts_infer_type(&mut **self, node)
3147    }
3148
3149    #[inline]
3150    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
3151        <V as Visit>::visit_ts_instantiation(&mut **self, node)
3152    }
3153
3154    #[inline]
3155    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
3156        <V as Visit>::visit_ts_interface_body(&mut **self, node)
3157    }
3158
3159    #[inline]
3160    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
3161        <V as Visit>::visit_ts_interface_decl(&mut **self, node)
3162    }
3163
3164    #[inline]
3165    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
3166        <V as Visit>::visit_ts_intersection_type(&mut **self, node)
3167    }
3168
3169    #[inline]
3170    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
3171        <V as Visit>::visit_ts_keyword_type(&mut **self, node)
3172    }
3173
3174    #[inline]
3175    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
3176        <V as Visit>::visit_ts_keyword_type_kind(&mut **self, node)
3177    }
3178
3179    #[inline]
3180    fn visit_ts_lit(&mut self, node: &TsLit) {
3181        <V as Visit>::visit_ts_lit(&mut **self, node)
3182    }
3183
3184    #[inline]
3185    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
3186        <V as Visit>::visit_ts_lit_type(&mut **self, node)
3187    }
3188
3189    #[inline]
3190    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
3191        <V as Visit>::visit_ts_mapped_type(&mut **self, node)
3192    }
3193
3194    #[inline]
3195    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
3196        <V as Visit>::visit_ts_method_signature(&mut **self, node)
3197    }
3198
3199    #[inline]
3200    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
3201        <V as Visit>::visit_ts_module_block(&mut **self, node)
3202    }
3203
3204    #[inline]
3205    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
3206        <V as Visit>::visit_ts_module_decl(&mut **self, node)
3207    }
3208
3209    #[inline]
3210    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
3211        <V as Visit>::visit_ts_module_name(&mut **self, node)
3212    }
3213
3214    #[inline]
3215    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
3216        <V as Visit>::visit_ts_module_ref(&mut **self, node)
3217    }
3218
3219    #[inline]
3220    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
3221        <V as Visit>::visit_ts_namespace_body(&mut **self, node)
3222    }
3223
3224    #[inline]
3225    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
3226        <V as Visit>::visit_ts_namespace_decl(&mut **self, node)
3227    }
3228
3229    #[inline]
3230    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
3231        <V as Visit>::visit_ts_namespace_export_decl(&mut **self, node)
3232    }
3233
3234    #[inline]
3235    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
3236        <V as Visit>::visit_ts_non_null_expr(&mut **self, node)
3237    }
3238
3239    #[inline]
3240    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
3241        <V as Visit>::visit_ts_optional_type(&mut **self, node)
3242    }
3243
3244    #[inline]
3245    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
3246        <V as Visit>::visit_ts_param_prop(&mut **self, node)
3247    }
3248
3249    #[inline]
3250    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
3251        <V as Visit>::visit_ts_param_prop_param(&mut **self, node)
3252    }
3253
3254    #[inline]
3255    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
3256        <V as Visit>::visit_ts_parenthesized_type(&mut **self, node)
3257    }
3258
3259    #[inline]
3260    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
3261        <V as Visit>::visit_ts_property_signature(&mut **self, node)
3262    }
3263
3264    #[inline]
3265    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
3266        <V as Visit>::visit_ts_qualified_name(&mut **self, node)
3267    }
3268
3269    #[inline]
3270    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
3271        <V as Visit>::visit_ts_rest_type(&mut **self, node)
3272    }
3273
3274    #[inline]
3275    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
3276        <V as Visit>::visit_ts_satisfies_expr(&mut **self, node)
3277    }
3278
3279    #[inline]
3280    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
3281        <V as Visit>::visit_ts_setter_signature(&mut **self, node)
3282    }
3283
3284    #[inline]
3285    fn visit_ts_this_type(&mut self, node: &TsThisType) {
3286        <V as Visit>::visit_ts_this_type(&mut **self, node)
3287    }
3288
3289    #[inline]
3290    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
3291        <V as Visit>::visit_ts_this_type_or_ident(&mut **self, node)
3292    }
3293
3294    #[inline]
3295    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
3296        <V as Visit>::visit_ts_tpl_lit_type(&mut **self, node)
3297    }
3298
3299    #[inline]
3300    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
3301        <V as Visit>::visit_ts_tuple_element(&mut **self, node)
3302    }
3303
3304    #[inline]
3305    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
3306        <V as Visit>::visit_ts_tuple_elements(&mut **self, node)
3307    }
3308
3309    #[inline]
3310    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
3311        <V as Visit>::visit_ts_tuple_type(&mut **self, node)
3312    }
3313
3314    #[inline]
3315    fn visit_ts_type(&mut self, node: &TsType) {
3316        <V as Visit>::visit_ts_type(&mut **self, node)
3317    }
3318
3319    #[inline]
3320    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
3321        <V as Visit>::visit_ts_type_alias_decl(&mut **self, node)
3322    }
3323
3324    #[inline]
3325    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
3326        <V as Visit>::visit_ts_type_ann(&mut **self, node)
3327    }
3328
3329    #[inline]
3330    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
3331        <V as Visit>::visit_ts_type_assertion(&mut **self, node)
3332    }
3333
3334    #[inline]
3335    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
3336        <V as Visit>::visit_ts_type_element(&mut **self, node)
3337    }
3338
3339    #[inline]
3340    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
3341        <V as Visit>::visit_ts_type_elements(&mut **self, node)
3342    }
3343
3344    #[inline]
3345    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
3346        <V as Visit>::visit_ts_type_lit(&mut **self, node)
3347    }
3348
3349    #[inline]
3350    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
3351        <V as Visit>::visit_ts_type_operator(&mut **self, node)
3352    }
3353
3354    #[inline]
3355    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
3356        <V as Visit>::visit_ts_type_operator_op(&mut **self, node)
3357    }
3358
3359    #[inline]
3360    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
3361        <V as Visit>::visit_ts_type_param(&mut **self, node)
3362    }
3363
3364    #[inline]
3365    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
3366        <V as Visit>::visit_ts_type_param_decl(&mut **self, node)
3367    }
3368
3369    #[inline]
3370    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
3371        <V as Visit>::visit_ts_type_param_instantiation(&mut **self, node)
3372    }
3373
3374    #[inline]
3375    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
3376        <V as Visit>::visit_ts_type_params(&mut **self, node)
3377    }
3378
3379    #[inline]
3380    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
3381        <V as Visit>::visit_ts_type_predicate(&mut **self, node)
3382    }
3383
3384    #[inline]
3385    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
3386        <V as Visit>::visit_ts_type_query(&mut **self, node)
3387    }
3388
3389    #[inline]
3390    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
3391        <V as Visit>::visit_ts_type_query_expr(&mut **self, node)
3392    }
3393
3394    #[inline]
3395    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
3396        <V as Visit>::visit_ts_type_ref(&mut **self, node)
3397    }
3398
3399    #[inline]
3400    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
3401        <V as Visit>::visit_ts_types(&mut **self, node)
3402    }
3403
3404    #[inline]
3405    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
3406        <V as Visit>::visit_ts_union_or_intersection_type(&mut **self, node)
3407    }
3408
3409    #[inline]
3410    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
3411        <V as Visit>::visit_ts_union_type(&mut **self, node)
3412    }
3413
3414    #[inline]
3415    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
3416        <V as Visit>::visit_unary_expr(&mut **self, node)
3417    }
3418
3419    #[inline]
3420    fn visit_unary_op(&mut self, node: &UnaryOp) {
3421        <V as Visit>::visit_unary_op(&mut **self, node)
3422    }
3423
3424    #[inline]
3425    fn visit_update_expr(&mut self, node: &UpdateExpr) {
3426        <V as Visit>::visit_update_expr(&mut **self, node)
3427    }
3428
3429    #[inline]
3430    fn visit_update_op(&mut self, node: &UpdateOp) {
3431        <V as Visit>::visit_update_op(&mut **self, node)
3432    }
3433
3434    #[inline]
3435    fn visit_using_decl(&mut self, node: &UsingDecl) {
3436        <V as Visit>::visit_using_decl(&mut **self, node)
3437    }
3438
3439    #[inline]
3440    fn visit_var_decl(&mut self, node: &VarDecl) {
3441        <V as Visit>::visit_var_decl(&mut **self, node)
3442    }
3443
3444    #[inline]
3445    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
3446        <V as Visit>::visit_var_decl_kind(&mut **self, node)
3447    }
3448
3449    #[inline]
3450    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
3451        <V as Visit>::visit_var_decl_or_expr(&mut **self, node)
3452    }
3453
3454    #[inline]
3455    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
3456        <V as Visit>::visit_var_declarator(&mut **self, node)
3457    }
3458
3459    #[inline]
3460    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
3461        <V as Visit>::visit_var_declarators(&mut **self, node)
3462    }
3463
3464    #[inline]
3465    fn visit_while_stmt(&mut self, node: &WhileStmt) {
3466        <V as Visit>::visit_while_stmt(&mut **self, node)
3467    }
3468
3469    #[inline]
3470    fn visit_with_stmt(&mut self, node: &WithStmt) {
3471        <V as Visit>::visit_with_stmt(&mut **self, node)
3472    }
3473
3474    #[inline]
3475    fn visit_yield_expr(&mut self, node: &YieldExpr) {
3476        <V as Visit>::visit_yield_expr(&mut **self, node)
3477    }
3478}
3479impl<V> Visit for Box<V>
3480where
3481    V: ?Sized + Visit,
3482{
3483    #[inline]
3484    fn visit_accessibility(&mut self, node: &Accessibility) {
3485        <V as Visit>::visit_accessibility(&mut **self, node)
3486    }
3487
3488    #[inline]
3489    fn visit_array_lit(&mut self, node: &ArrayLit) {
3490        <V as Visit>::visit_array_lit(&mut **self, node)
3491    }
3492
3493    #[inline]
3494    fn visit_array_pat(&mut self, node: &ArrayPat) {
3495        <V as Visit>::visit_array_pat(&mut **self, node)
3496    }
3497
3498    #[inline]
3499    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
3500        <V as Visit>::visit_arrow_expr(&mut **self, node)
3501    }
3502
3503    #[inline]
3504    fn visit_assign_expr(&mut self, node: &AssignExpr) {
3505        <V as Visit>::visit_assign_expr(&mut **self, node)
3506    }
3507
3508    #[inline]
3509    fn visit_assign_op(&mut self, node: &AssignOp) {
3510        <V as Visit>::visit_assign_op(&mut **self, node)
3511    }
3512
3513    #[inline]
3514    fn visit_assign_pat(&mut self, node: &AssignPat) {
3515        <V as Visit>::visit_assign_pat(&mut **self, node)
3516    }
3517
3518    #[inline]
3519    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
3520        <V as Visit>::visit_assign_pat_prop(&mut **self, node)
3521    }
3522
3523    #[inline]
3524    fn visit_assign_prop(&mut self, node: &AssignProp) {
3525        <V as Visit>::visit_assign_prop(&mut **self, node)
3526    }
3527
3528    #[inline]
3529    fn visit_assign_target(&mut self, node: &AssignTarget) {
3530        <V as Visit>::visit_assign_target(&mut **self, node)
3531    }
3532
3533    #[inline]
3534    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
3535        <V as Visit>::visit_assign_target_pat(&mut **self, node)
3536    }
3537
3538    #[inline]
3539    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
3540        <V as Visit>::visit_atom(&mut **self, node)
3541    }
3542
3543    #[inline]
3544    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
3545        <V as Visit>::visit_auto_accessor(&mut **self, node)
3546    }
3547
3548    #[inline]
3549    fn visit_await_expr(&mut self, node: &AwaitExpr) {
3550        <V as Visit>::visit_await_expr(&mut **self, node)
3551    }
3552
3553    #[inline]
3554    fn visit_big_int(&mut self, node: &BigInt) {
3555        <V as Visit>::visit_big_int(&mut **self, node)
3556    }
3557
3558    #[inline]
3559    fn visit_big_int_value(&mut self, node: &BigIntValue) {
3560        <V as Visit>::visit_big_int_value(&mut **self, node)
3561    }
3562
3563    #[inline]
3564    fn visit_bin_expr(&mut self, node: &BinExpr) {
3565        <V as Visit>::visit_bin_expr(&mut **self, node)
3566    }
3567
3568    #[inline]
3569    fn visit_binary_op(&mut self, node: &BinaryOp) {
3570        <V as Visit>::visit_binary_op(&mut **self, node)
3571    }
3572
3573    #[inline]
3574    fn visit_binding_ident(&mut self, node: &BindingIdent) {
3575        <V as Visit>::visit_binding_ident(&mut **self, node)
3576    }
3577
3578    #[inline]
3579    fn visit_block_stmt(&mut self, node: &BlockStmt) {
3580        <V as Visit>::visit_block_stmt(&mut **self, node)
3581    }
3582
3583    #[inline]
3584    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
3585        <V as Visit>::visit_block_stmt_or_expr(&mut **self, node)
3586    }
3587
3588    #[inline]
3589    fn visit_bool(&mut self, node: &Bool) {
3590        <V as Visit>::visit_bool(&mut **self, node)
3591    }
3592
3593    #[inline]
3594    fn visit_break_stmt(&mut self, node: &BreakStmt) {
3595        <V as Visit>::visit_break_stmt(&mut **self, node)
3596    }
3597
3598    #[inline]
3599    fn visit_call_expr(&mut self, node: &CallExpr) {
3600        <V as Visit>::visit_call_expr(&mut **self, node)
3601    }
3602
3603    #[inline]
3604    fn visit_callee(&mut self, node: &Callee) {
3605        <V as Visit>::visit_callee(&mut **self, node)
3606    }
3607
3608    #[inline]
3609    fn visit_catch_clause(&mut self, node: &CatchClause) {
3610        <V as Visit>::visit_catch_clause(&mut **self, node)
3611    }
3612
3613    #[inline]
3614    fn visit_class(&mut self, node: &Class) {
3615        <V as Visit>::visit_class(&mut **self, node)
3616    }
3617
3618    #[inline]
3619    fn visit_class_decl(&mut self, node: &ClassDecl) {
3620        <V as Visit>::visit_class_decl(&mut **self, node)
3621    }
3622
3623    #[inline]
3624    fn visit_class_expr(&mut self, node: &ClassExpr) {
3625        <V as Visit>::visit_class_expr(&mut **self, node)
3626    }
3627
3628    #[inline]
3629    fn visit_class_member(&mut self, node: &ClassMember) {
3630        <V as Visit>::visit_class_member(&mut **self, node)
3631    }
3632
3633    #[inline]
3634    fn visit_class_members(&mut self, node: &[ClassMember]) {
3635        <V as Visit>::visit_class_members(&mut **self, node)
3636    }
3637
3638    #[inline]
3639    fn visit_class_method(&mut self, node: &ClassMethod) {
3640        <V as Visit>::visit_class_method(&mut **self, node)
3641    }
3642
3643    #[inline]
3644    fn visit_class_prop(&mut self, node: &ClassProp) {
3645        <V as Visit>::visit_class_prop(&mut **self, node)
3646    }
3647
3648    #[inline]
3649    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
3650        <V as Visit>::visit_computed_prop_name(&mut **self, node)
3651    }
3652
3653    #[inline]
3654    fn visit_cond_expr(&mut self, node: &CondExpr) {
3655        <V as Visit>::visit_cond_expr(&mut **self, node)
3656    }
3657
3658    #[inline]
3659    fn visit_constructor(&mut self, node: &Constructor) {
3660        <V as Visit>::visit_constructor(&mut **self, node)
3661    }
3662
3663    #[inline]
3664    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
3665        <V as Visit>::visit_continue_stmt(&mut **self, node)
3666    }
3667
3668    #[inline]
3669    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
3670        <V as Visit>::visit_debugger_stmt(&mut **self, node)
3671    }
3672
3673    #[inline]
3674    fn visit_decl(&mut self, node: &Decl) {
3675        <V as Visit>::visit_decl(&mut **self, node)
3676    }
3677
3678    #[inline]
3679    fn visit_decorator(&mut self, node: &Decorator) {
3680        <V as Visit>::visit_decorator(&mut **self, node)
3681    }
3682
3683    #[inline]
3684    fn visit_decorators(&mut self, node: &[Decorator]) {
3685        <V as Visit>::visit_decorators(&mut **self, node)
3686    }
3687
3688    #[inline]
3689    fn visit_default_decl(&mut self, node: &DefaultDecl) {
3690        <V as Visit>::visit_default_decl(&mut **self, node)
3691    }
3692
3693    #[inline]
3694    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
3695        <V as Visit>::visit_do_while_stmt(&mut **self, node)
3696    }
3697
3698    #[inline]
3699    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
3700        <V as Visit>::visit_empty_stmt(&mut **self, node)
3701    }
3702
3703    #[inline]
3704    fn visit_export_all(&mut self, node: &ExportAll) {
3705        <V as Visit>::visit_export_all(&mut **self, node)
3706    }
3707
3708    #[inline]
3709    fn visit_export_decl(&mut self, node: &ExportDecl) {
3710        <V as Visit>::visit_export_decl(&mut **self, node)
3711    }
3712
3713    #[inline]
3714    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
3715        <V as Visit>::visit_export_default_decl(&mut **self, node)
3716    }
3717
3718    #[inline]
3719    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
3720        <V as Visit>::visit_export_default_expr(&mut **self, node)
3721    }
3722
3723    #[inline]
3724    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
3725        <V as Visit>::visit_export_default_specifier(&mut **self, node)
3726    }
3727
3728    #[inline]
3729    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
3730        <V as Visit>::visit_export_named_specifier(&mut **self, node)
3731    }
3732
3733    #[inline]
3734    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
3735        <V as Visit>::visit_export_namespace_specifier(&mut **self, node)
3736    }
3737
3738    #[inline]
3739    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
3740        <V as Visit>::visit_export_specifier(&mut **self, node)
3741    }
3742
3743    #[inline]
3744    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
3745        <V as Visit>::visit_export_specifiers(&mut **self, node)
3746    }
3747
3748    #[inline]
3749    fn visit_expr(&mut self, node: &Expr) {
3750        <V as Visit>::visit_expr(&mut **self, node)
3751    }
3752
3753    #[inline]
3754    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
3755        <V as Visit>::visit_expr_or_spread(&mut **self, node)
3756    }
3757
3758    #[inline]
3759    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
3760        <V as Visit>::visit_expr_or_spreads(&mut **self, node)
3761    }
3762
3763    #[inline]
3764    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
3765        <V as Visit>::visit_expr_stmt(&mut **self, node)
3766    }
3767
3768    #[inline]
3769    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
3770        <V as Visit>::visit_exprs(&mut **self, node)
3771    }
3772
3773    #[inline]
3774    fn visit_fn_decl(&mut self, node: &FnDecl) {
3775        <V as Visit>::visit_fn_decl(&mut **self, node)
3776    }
3777
3778    #[inline]
3779    fn visit_fn_expr(&mut self, node: &FnExpr) {
3780        <V as Visit>::visit_fn_expr(&mut **self, node)
3781    }
3782
3783    #[inline]
3784    fn visit_for_head(&mut self, node: &ForHead) {
3785        <V as Visit>::visit_for_head(&mut **self, node)
3786    }
3787
3788    #[inline]
3789    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
3790        <V as Visit>::visit_for_in_stmt(&mut **self, node)
3791    }
3792
3793    #[inline]
3794    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
3795        <V as Visit>::visit_for_of_stmt(&mut **self, node)
3796    }
3797
3798    #[inline]
3799    fn visit_for_stmt(&mut self, node: &ForStmt) {
3800        <V as Visit>::visit_for_stmt(&mut **self, node)
3801    }
3802
3803    #[inline]
3804    fn visit_function(&mut self, node: &Function) {
3805        <V as Visit>::visit_function(&mut **self, node)
3806    }
3807
3808    #[inline]
3809    fn visit_getter_prop(&mut self, node: &GetterProp) {
3810        <V as Visit>::visit_getter_prop(&mut **self, node)
3811    }
3812
3813    #[inline]
3814    fn visit_ident(&mut self, node: &Ident) {
3815        <V as Visit>::visit_ident(&mut **self, node)
3816    }
3817
3818    #[inline]
3819    fn visit_ident_name(&mut self, node: &IdentName) {
3820        <V as Visit>::visit_ident_name(&mut **self, node)
3821    }
3822
3823    #[inline]
3824    fn visit_if_stmt(&mut self, node: &IfStmt) {
3825        <V as Visit>::visit_if_stmt(&mut **self, node)
3826    }
3827
3828    #[inline]
3829    fn visit_import(&mut self, node: &Import) {
3830        <V as Visit>::visit_import(&mut **self, node)
3831    }
3832
3833    #[inline]
3834    fn visit_import_decl(&mut self, node: &ImportDecl) {
3835        <V as Visit>::visit_import_decl(&mut **self, node)
3836    }
3837
3838    #[inline]
3839    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
3840        <V as Visit>::visit_import_default_specifier(&mut **self, node)
3841    }
3842
3843    #[inline]
3844    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
3845        <V as Visit>::visit_import_named_specifier(&mut **self, node)
3846    }
3847
3848    #[inline]
3849    fn visit_import_phase(&mut self, node: &ImportPhase) {
3850        <V as Visit>::visit_import_phase(&mut **self, node)
3851    }
3852
3853    #[inline]
3854    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
3855        <V as Visit>::visit_import_specifier(&mut **self, node)
3856    }
3857
3858    #[inline]
3859    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
3860        <V as Visit>::visit_import_specifiers(&mut **self, node)
3861    }
3862
3863    #[inline]
3864    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
3865        <V as Visit>::visit_import_star_as_specifier(&mut **self, node)
3866    }
3867
3868    #[inline]
3869    fn visit_import_with(&mut self, node: &ImportWith) {
3870        <V as Visit>::visit_import_with(&mut **self, node)
3871    }
3872
3873    #[inline]
3874    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
3875        <V as Visit>::visit_import_with_item(&mut **self, node)
3876    }
3877
3878    #[inline]
3879    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
3880        <V as Visit>::visit_import_with_items(&mut **self, node)
3881    }
3882
3883    #[inline]
3884    fn visit_invalid(&mut self, node: &Invalid) {
3885        <V as Visit>::visit_invalid(&mut **self, node)
3886    }
3887
3888    #[inline]
3889    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
3890        <V as Visit>::visit_jsx_attr(&mut **self, node)
3891    }
3892
3893    #[inline]
3894    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
3895        <V as Visit>::visit_jsx_attr_name(&mut **self, node)
3896    }
3897
3898    #[inline]
3899    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
3900        <V as Visit>::visit_jsx_attr_or_spread(&mut **self, node)
3901    }
3902
3903    #[inline]
3904    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
3905        <V as Visit>::visit_jsx_attr_or_spreads(&mut **self, node)
3906    }
3907
3908    #[inline]
3909    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
3910        <V as Visit>::visit_jsx_attr_value(&mut **self, node)
3911    }
3912
3913    #[inline]
3914    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
3915        <V as Visit>::visit_jsx_closing_element(&mut **self, node)
3916    }
3917
3918    #[inline]
3919    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
3920        <V as Visit>::visit_jsx_closing_fragment(&mut **self, node)
3921    }
3922
3923    #[inline]
3924    fn visit_jsx_element(&mut self, node: &JSXElement) {
3925        <V as Visit>::visit_jsx_element(&mut **self, node)
3926    }
3927
3928    #[inline]
3929    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
3930        <V as Visit>::visit_jsx_element_child(&mut **self, node)
3931    }
3932
3933    #[inline]
3934    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
3935        <V as Visit>::visit_jsx_element_childs(&mut **self, node)
3936    }
3937
3938    #[inline]
3939    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
3940        <V as Visit>::visit_jsx_element_name(&mut **self, node)
3941    }
3942
3943    #[inline]
3944    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
3945        <V as Visit>::visit_jsx_empty_expr(&mut **self, node)
3946    }
3947
3948    #[inline]
3949    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
3950        <V as Visit>::visit_jsx_expr(&mut **self, node)
3951    }
3952
3953    #[inline]
3954    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
3955        <V as Visit>::visit_jsx_expr_container(&mut **self, node)
3956    }
3957
3958    #[inline]
3959    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
3960        <V as Visit>::visit_jsx_fragment(&mut **self, node)
3961    }
3962
3963    #[inline]
3964    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
3965        <V as Visit>::visit_jsx_member_expr(&mut **self, node)
3966    }
3967
3968    #[inline]
3969    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
3970        <V as Visit>::visit_jsx_namespaced_name(&mut **self, node)
3971    }
3972
3973    #[inline]
3974    fn visit_jsx_object(&mut self, node: &JSXObject) {
3975        <V as Visit>::visit_jsx_object(&mut **self, node)
3976    }
3977
3978    #[inline]
3979    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
3980        <V as Visit>::visit_jsx_opening_element(&mut **self, node)
3981    }
3982
3983    #[inline]
3984    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
3985        <V as Visit>::visit_jsx_opening_fragment(&mut **self, node)
3986    }
3987
3988    #[inline]
3989    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
3990        <V as Visit>::visit_jsx_spread_child(&mut **self, node)
3991    }
3992
3993    #[inline]
3994    fn visit_jsx_text(&mut self, node: &JSXText) {
3995        <V as Visit>::visit_jsx_text(&mut **self, node)
3996    }
3997
3998    #[inline]
3999    fn visit_key(&mut self, node: &Key) {
4000        <V as Visit>::visit_key(&mut **self, node)
4001    }
4002
4003    #[inline]
4004    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
4005        <V as Visit>::visit_key_value_pat_prop(&mut **self, node)
4006    }
4007
4008    #[inline]
4009    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
4010        <V as Visit>::visit_key_value_prop(&mut **self, node)
4011    }
4012
4013    #[inline]
4014    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
4015        <V as Visit>::visit_labeled_stmt(&mut **self, node)
4016    }
4017
4018    #[inline]
4019    fn visit_lit(&mut self, node: &Lit) {
4020        <V as Visit>::visit_lit(&mut **self, node)
4021    }
4022
4023    #[inline]
4024    fn visit_member_expr(&mut self, node: &MemberExpr) {
4025        <V as Visit>::visit_member_expr(&mut **self, node)
4026    }
4027
4028    #[inline]
4029    fn visit_member_prop(&mut self, node: &MemberProp) {
4030        <V as Visit>::visit_member_prop(&mut **self, node)
4031    }
4032
4033    #[inline]
4034    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
4035        <V as Visit>::visit_meta_prop_expr(&mut **self, node)
4036    }
4037
4038    #[inline]
4039    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
4040        <V as Visit>::visit_meta_prop_kind(&mut **self, node)
4041    }
4042
4043    #[inline]
4044    fn visit_method_kind(&mut self, node: &MethodKind) {
4045        <V as Visit>::visit_method_kind(&mut **self, node)
4046    }
4047
4048    #[inline]
4049    fn visit_method_prop(&mut self, node: &MethodProp) {
4050        <V as Visit>::visit_method_prop(&mut **self, node)
4051    }
4052
4053    #[inline]
4054    fn visit_module(&mut self, node: &Module) {
4055        <V as Visit>::visit_module(&mut **self, node)
4056    }
4057
4058    #[inline]
4059    fn visit_module_decl(&mut self, node: &ModuleDecl) {
4060        <V as Visit>::visit_module_decl(&mut **self, node)
4061    }
4062
4063    #[inline]
4064    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
4065        <V as Visit>::visit_module_export_name(&mut **self, node)
4066    }
4067
4068    #[inline]
4069    fn visit_module_item(&mut self, node: &ModuleItem) {
4070        <V as Visit>::visit_module_item(&mut **self, node)
4071    }
4072
4073    #[inline]
4074    fn visit_module_items(&mut self, node: &[ModuleItem]) {
4075        <V as Visit>::visit_module_items(&mut **self, node)
4076    }
4077
4078    #[inline]
4079    fn visit_named_export(&mut self, node: &NamedExport) {
4080        <V as Visit>::visit_named_export(&mut **self, node)
4081    }
4082
4083    #[inline]
4084    fn visit_new_expr(&mut self, node: &NewExpr) {
4085        <V as Visit>::visit_new_expr(&mut **self, node)
4086    }
4087
4088    #[inline]
4089    fn visit_null(&mut self, node: &Null) {
4090        <V as Visit>::visit_null(&mut **self, node)
4091    }
4092
4093    #[inline]
4094    fn visit_number(&mut self, node: &Number) {
4095        <V as Visit>::visit_number(&mut **self, node)
4096    }
4097
4098    #[inline]
4099    fn visit_object_lit(&mut self, node: &ObjectLit) {
4100        <V as Visit>::visit_object_lit(&mut **self, node)
4101    }
4102
4103    #[inline]
4104    fn visit_object_pat(&mut self, node: &ObjectPat) {
4105        <V as Visit>::visit_object_pat(&mut **self, node)
4106    }
4107
4108    #[inline]
4109    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
4110        <V as Visit>::visit_object_pat_prop(&mut **self, node)
4111    }
4112
4113    #[inline]
4114    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
4115        <V as Visit>::visit_object_pat_props(&mut **self, node)
4116    }
4117
4118    #[inline]
4119    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
4120        <V as Visit>::visit_opt_accessibility(&mut **self, node)
4121    }
4122
4123    #[inline]
4124    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
4125        <V as Visit>::visit_opt_atom(&mut **self, node)
4126    }
4127
4128    #[inline]
4129    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
4130        <V as Visit>::visit_opt_block_stmt(&mut **self, node)
4131    }
4132
4133    #[inline]
4134    fn visit_opt_call(&mut self, node: &OptCall) {
4135        <V as Visit>::visit_opt_call(&mut **self, node)
4136    }
4137
4138    #[inline]
4139    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
4140        <V as Visit>::visit_opt_catch_clause(&mut **self, node)
4141    }
4142
4143    #[inline]
4144    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
4145        <V as Visit>::visit_opt_chain_base(&mut **self, node)
4146    }
4147
4148    #[inline]
4149    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
4150        <V as Visit>::visit_opt_chain_expr(&mut **self, node)
4151    }
4152
4153    #[inline]
4154    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
4155        <V as Visit>::visit_opt_expr(&mut **self, node)
4156    }
4157
4158    #[inline]
4159    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
4160        <V as Visit>::visit_opt_expr_or_spread(&mut **self, node)
4161    }
4162
4163    #[inline]
4164    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
4165        <V as Visit>::visit_opt_expr_or_spreads(&mut **self, node)
4166    }
4167
4168    #[inline]
4169    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
4170        <V as Visit>::visit_opt_ident(&mut **self, node)
4171    }
4172
4173    #[inline]
4174    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
4175        <V as Visit>::visit_opt_jsx_attr_value(&mut **self, node)
4176    }
4177
4178    #[inline]
4179    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
4180        <V as Visit>::visit_opt_jsx_closing_element(&mut **self, node)
4181    }
4182
4183    #[inline]
4184    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
4185        <V as Visit>::visit_opt_module_export_name(&mut **self, node)
4186    }
4187
4188    #[inline]
4189    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
4190        <V as Visit>::visit_opt_object_lit(&mut **self, node)
4191    }
4192
4193    #[inline]
4194    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
4195        <V as Visit>::visit_opt_pat(&mut **self, node)
4196    }
4197
4198    #[inline]
4199    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
4200        <V as Visit>::visit_opt_span(&mut **self, node)
4201    }
4202
4203    #[inline]
4204    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
4205        <V as Visit>::visit_opt_stmt(&mut **self, node)
4206    }
4207
4208    #[inline]
4209    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
4210        <V as Visit>::visit_opt_str(&mut **self, node)
4211    }
4212
4213    #[inline]
4214    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
4215        <V as Visit>::visit_opt_true_plus_minus(&mut **self, node)
4216    }
4217
4218    #[inline]
4219    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
4220        <V as Visit>::visit_opt_ts_entity_name(&mut **self, node)
4221    }
4222
4223    #[inline]
4224    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
4225        <V as Visit>::visit_opt_ts_namespace_body(&mut **self, node)
4226    }
4227
4228    #[inline]
4229    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
4230        <V as Visit>::visit_opt_ts_type(&mut **self, node)
4231    }
4232
4233    #[inline]
4234    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
4235        <V as Visit>::visit_opt_ts_type_ann(&mut **self, node)
4236    }
4237
4238    #[inline]
4239    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
4240        <V as Visit>::visit_opt_ts_type_param_decl(&mut **self, node)
4241    }
4242
4243    #[inline]
4244    fn visit_opt_ts_type_param_instantiation(
4245        &mut self,
4246        node: &Option<Box<TsTypeParamInstantiation>>,
4247    ) {
4248        <V as Visit>::visit_opt_ts_type_param_instantiation(&mut **self, node)
4249    }
4250
4251    #[inline]
4252    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
4253        <V as Visit>::visit_opt_var_decl_or_expr(&mut **self, node)
4254    }
4255
4256    #[inline]
4257    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
4258        <V as Visit>::visit_opt_vec_expr_or_spreads(&mut **self, node)
4259    }
4260
4261    #[inline]
4262    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
4263        <V as Visit>::visit_opt_vec_pats(&mut **self, node)
4264    }
4265
4266    #[inline]
4267    fn visit_param(&mut self, node: &Param) {
4268        <V as Visit>::visit_param(&mut **self, node)
4269    }
4270
4271    #[inline]
4272    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
4273        <V as Visit>::visit_param_or_ts_param_prop(&mut **self, node)
4274    }
4275
4276    #[inline]
4277    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
4278        <V as Visit>::visit_param_or_ts_param_props(&mut **self, node)
4279    }
4280
4281    #[inline]
4282    fn visit_params(&mut self, node: &[Param]) {
4283        <V as Visit>::visit_params(&mut **self, node)
4284    }
4285
4286    #[inline]
4287    fn visit_paren_expr(&mut self, node: &ParenExpr) {
4288        <V as Visit>::visit_paren_expr(&mut **self, node)
4289    }
4290
4291    #[inline]
4292    fn visit_pat(&mut self, node: &Pat) {
4293        <V as Visit>::visit_pat(&mut **self, node)
4294    }
4295
4296    #[inline]
4297    fn visit_pats(&mut self, node: &[Pat]) {
4298        <V as Visit>::visit_pats(&mut **self, node)
4299    }
4300
4301    #[inline]
4302    fn visit_private_method(&mut self, node: &PrivateMethod) {
4303        <V as Visit>::visit_private_method(&mut **self, node)
4304    }
4305
4306    #[inline]
4307    fn visit_private_name(&mut self, node: &PrivateName) {
4308        <V as Visit>::visit_private_name(&mut **self, node)
4309    }
4310
4311    #[inline]
4312    fn visit_private_prop(&mut self, node: &PrivateProp) {
4313        <V as Visit>::visit_private_prop(&mut **self, node)
4314    }
4315
4316    #[inline]
4317    fn visit_program(&mut self, node: &Program) {
4318        <V as Visit>::visit_program(&mut **self, node)
4319    }
4320
4321    #[inline]
4322    fn visit_prop(&mut self, node: &Prop) {
4323        <V as Visit>::visit_prop(&mut **self, node)
4324    }
4325
4326    #[inline]
4327    fn visit_prop_name(&mut self, node: &PropName) {
4328        <V as Visit>::visit_prop_name(&mut **self, node)
4329    }
4330
4331    #[inline]
4332    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
4333        <V as Visit>::visit_prop_or_spread(&mut **self, node)
4334    }
4335
4336    #[inline]
4337    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
4338        <V as Visit>::visit_prop_or_spreads(&mut **self, node)
4339    }
4340
4341    #[inline]
4342    fn visit_regex(&mut self, node: &Regex) {
4343        <V as Visit>::visit_regex(&mut **self, node)
4344    }
4345
4346    #[inline]
4347    fn visit_rest_pat(&mut self, node: &RestPat) {
4348        <V as Visit>::visit_rest_pat(&mut **self, node)
4349    }
4350
4351    #[inline]
4352    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
4353        <V as Visit>::visit_return_stmt(&mut **self, node)
4354    }
4355
4356    #[inline]
4357    fn visit_script(&mut self, node: &Script) {
4358        <V as Visit>::visit_script(&mut **self, node)
4359    }
4360
4361    #[inline]
4362    fn visit_seq_expr(&mut self, node: &SeqExpr) {
4363        <V as Visit>::visit_seq_expr(&mut **self, node)
4364    }
4365
4366    #[inline]
4367    fn visit_setter_prop(&mut self, node: &SetterProp) {
4368        <V as Visit>::visit_setter_prop(&mut **self, node)
4369    }
4370
4371    #[inline]
4372    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
4373        <V as Visit>::visit_simple_assign_target(&mut **self, node)
4374    }
4375
4376    #[inline]
4377    fn visit_span(&mut self, node: &swc_common::Span) {
4378        <V as Visit>::visit_span(&mut **self, node)
4379    }
4380
4381    #[inline]
4382    fn visit_spread_element(&mut self, node: &SpreadElement) {
4383        <V as Visit>::visit_spread_element(&mut **self, node)
4384    }
4385
4386    #[inline]
4387    fn visit_static_block(&mut self, node: &StaticBlock) {
4388        <V as Visit>::visit_static_block(&mut **self, node)
4389    }
4390
4391    #[inline]
4392    fn visit_stmt(&mut self, node: &Stmt) {
4393        <V as Visit>::visit_stmt(&mut **self, node)
4394    }
4395
4396    #[inline]
4397    fn visit_stmts(&mut self, node: &[Stmt]) {
4398        <V as Visit>::visit_stmts(&mut **self, node)
4399    }
4400
4401    #[inline]
4402    fn visit_str(&mut self, node: &Str) {
4403        <V as Visit>::visit_str(&mut **self, node)
4404    }
4405
4406    #[inline]
4407    fn visit_super(&mut self, node: &Super) {
4408        <V as Visit>::visit_super(&mut **self, node)
4409    }
4410
4411    #[inline]
4412    fn visit_super_prop(&mut self, node: &SuperProp) {
4413        <V as Visit>::visit_super_prop(&mut **self, node)
4414    }
4415
4416    #[inline]
4417    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
4418        <V as Visit>::visit_super_prop_expr(&mut **self, node)
4419    }
4420
4421    #[inline]
4422    fn visit_switch_case(&mut self, node: &SwitchCase) {
4423        <V as Visit>::visit_switch_case(&mut **self, node)
4424    }
4425
4426    #[inline]
4427    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
4428        <V as Visit>::visit_switch_cases(&mut **self, node)
4429    }
4430
4431    #[inline]
4432    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
4433        <V as Visit>::visit_switch_stmt(&mut **self, node)
4434    }
4435
4436    #[inline]
4437    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
4438        <V as Visit>::visit_syntax_context(&mut **self, node)
4439    }
4440
4441    #[inline]
4442    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
4443        <V as Visit>::visit_tagged_tpl(&mut **self, node)
4444    }
4445
4446    #[inline]
4447    fn visit_this_expr(&mut self, node: &ThisExpr) {
4448        <V as Visit>::visit_this_expr(&mut **self, node)
4449    }
4450
4451    #[inline]
4452    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
4453        <V as Visit>::visit_throw_stmt(&mut **self, node)
4454    }
4455
4456    #[inline]
4457    fn visit_tpl(&mut self, node: &Tpl) {
4458        <V as Visit>::visit_tpl(&mut **self, node)
4459    }
4460
4461    #[inline]
4462    fn visit_tpl_element(&mut self, node: &TplElement) {
4463        <V as Visit>::visit_tpl_element(&mut **self, node)
4464    }
4465
4466    #[inline]
4467    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
4468        <V as Visit>::visit_tpl_elements(&mut **self, node)
4469    }
4470
4471    #[inline]
4472    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
4473        <V as Visit>::visit_true_plus_minus(&mut **self, node)
4474    }
4475
4476    #[inline]
4477    fn visit_try_stmt(&mut self, node: &TryStmt) {
4478        <V as Visit>::visit_try_stmt(&mut **self, node)
4479    }
4480
4481    #[inline]
4482    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
4483        <V as Visit>::visit_ts_array_type(&mut **self, node)
4484    }
4485
4486    #[inline]
4487    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
4488        <V as Visit>::visit_ts_as_expr(&mut **self, node)
4489    }
4490
4491    #[inline]
4492    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
4493        <V as Visit>::visit_ts_call_signature_decl(&mut **self, node)
4494    }
4495
4496    #[inline]
4497    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
4498        <V as Visit>::visit_ts_conditional_type(&mut **self, node)
4499    }
4500
4501    #[inline]
4502    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
4503        <V as Visit>::visit_ts_const_assertion(&mut **self, node)
4504    }
4505
4506    #[inline]
4507    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
4508        <V as Visit>::visit_ts_construct_signature_decl(&mut **self, node)
4509    }
4510
4511    #[inline]
4512    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
4513        <V as Visit>::visit_ts_constructor_type(&mut **self, node)
4514    }
4515
4516    #[inline]
4517    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
4518        <V as Visit>::visit_ts_entity_name(&mut **self, node)
4519    }
4520
4521    #[inline]
4522    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
4523        <V as Visit>::visit_ts_enum_decl(&mut **self, node)
4524    }
4525
4526    #[inline]
4527    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
4528        <V as Visit>::visit_ts_enum_member(&mut **self, node)
4529    }
4530
4531    #[inline]
4532    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
4533        <V as Visit>::visit_ts_enum_member_id(&mut **self, node)
4534    }
4535
4536    #[inline]
4537    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
4538        <V as Visit>::visit_ts_enum_members(&mut **self, node)
4539    }
4540
4541    #[inline]
4542    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
4543        <V as Visit>::visit_ts_export_assignment(&mut **self, node)
4544    }
4545
4546    #[inline]
4547    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
4548        <V as Visit>::visit_ts_expr_with_type_args(&mut **self, node)
4549    }
4550
4551    #[inline]
4552    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
4553        <V as Visit>::visit_ts_expr_with_type_argss(&mut **self, node)
4554    }
4555
4556    #[inline]
4557    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
4558        <V as Visit>::visit_ts_external_module_ref(&mut **self, node)
4559    }
4560
4561    #[inline]
4562    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
4563        <V as Visit>::visit_ts_fn_or_constructor_type(&mut **self, node)
4564    }
4565
4566    #[inline]
4567    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
4568        <V as Visit>::visit_ts_fn_param(&mut **self, node)
4569    }
4570
4571    #[inline]
4572    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
4573        <V as Visit>::visit_ts_fn_params(&mut **self, node)
4574    }
4575
4576    #[inline]
4577    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
4578        <V as Visit>::visit_ts_fn_type(&mut **self, node)
4579    }
4580
4581    #[inline]
4582    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
4583        <V as Visit>::visit_ts_getter_signature(&mut **self, node)
4584    }
4585
4586    #[inline]
4587    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
4588        <V as Visit>::visit_ts_import_equals_decl(&mut **self, node)
4589    }
4590
4591    #[inline]
4592    fn visit_ts_import_type(&mut self, node: &TsImportType) {
4593        <V as Visit>::visit_ts_import_type(&mut **self, node)
4594    }
4595
4596    #[inline]
4597    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
4598        <V as Visit>::visit_ts_index_signature(&mut **self, node)
4599    }
4600
4601    #[inline]
4602    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
4603        <V as Visit>::visit_ts_indexed_access_type(&mut **self, node)
4604    }
4605
4606    #[inline]
4607    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
4608        <V as Visit>::visit_ts_infer_type(&mut **self, node)
4609    }
4610
4611    #[inline]
4612    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
4613        <V as Visit>::visit_ts_instantiation(&mut **self, node)
4614    }
4615
4616    #[inline]
4617    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
4618        <V as Visit>::visit_ts_interface_body(&mut **self, node)
4619    }
4620
4621    #[inline]
4622    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
4623        <V as Visit>::visit_ts_interface_decl(&mut **self, node)
4624    }
4625
4626    #[inline]
4627    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
4628        <V as Visit>::visit_ts_intersection_type(&mut **self, node)
4629    }
4630
4631    #[inline]
4632    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
4633        <V as Visit>::visit_ts_keyword_type(&mut **self, node)
4634    }
4635
4636    #[inline]
4637    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
4638        <V as Visit>::visit_ts_keyword_type_kind(&mut **self, node)
4639    }
4640
4641    #[inline]
4642    fn visit_ts_lit(&mut self, node: &TsLit) {
4643        <V as Visit>::visit_ts_lit(&mut **self, node)
4644    }
4645
4646    #[inline]
4647    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
4648        <V as Visit>::visit_ts_lit_type(&mut **self, node)
4649    }
4650
4651    #[inline]
4652    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
4653        <V as Visit>::visit_ts_mapped_type(&mut **self, node)
4654    }
4655
4656    #[inline]
4657    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
4658        <V as Visit>::visit_ts_method_signature(&mut **self, node)
4659    }
4660
4661    #[inline]
4662    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
4663        <V as Visit>::visit_ts_module_block(&mut **self, node)
4664    }
4665
4666    #[inline]
4667    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
4668        <V as Visit>::visit_ts_module_decl(&mut **self, node)
4669    }
4670
4671    #[inline]
4672    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
4673        <V as Visit>::visit_ts_module_name(&mut **self, node)
4674    }
4675
4676    #[inline]
4677    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
4678        <V as Visit>::visit_ts_module_ref(&mut **self, node)
4679    }
4680
4681    #[inline]
4682    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
4683        <V as Visit>::visit_ts_namespace_body(&mut **self, node)
4684    }
4685
4686    #[inline]
4687    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
4688        <V as Visit>::visit_ts_namespace_decl(&mut **self, node)
4689    }
4690
4691    #[inline]
4692    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
4693        <V as Visit>::visit_ts_namespace_export_decl(&mut **self, node)
4694    }
4695
4696    #[inline]
4697    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
4698        <V as Visit>::visit_ts_non_null_expr(&mut **self, node)
4699    }
4700
4701    #[inline]
4702    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
4703        <V as Visit>::visit_ts_optional_type(&mut **self, node)
4704    }
4705
4706    #[inline]
4707    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
4708        <V as Visit>::visit_ts_param_prop(&mut **self, node)
4709    }
4710
4711    #[inline]
4712    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
4713        <V as Visit>::visit_ts_param_prop_param(&mut **self, node)
4714    }
4715
4716    #[inline]
4717    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
4718        <V as Visit>::visit_ts_parenthesized_type(&mut **self, node)
4719    }
4720
4721    #[inline]
4722    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
4723        <V as Visit>::visit_ts_property_signature(&mut **self, node)
4724    }
4725
4726    #[inline]
4727    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
4728        <V as Visit>::visit_ts_qualified_name(&mut **self, node)
4729    }
4730
4731    #[inline]
4732    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
4733        <V as Visit>::visit_ts_rest_type(&mut **self, node)
4734    }
4735
4736    #[inline]
4737    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
4738        <V as Visit>::visit_ts_satisfies_expr(&mut **self, node)
4739    }
4740
4741    #[inline]
4742    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
4743        <V as Visit>::visit_ts_setter_signature(&mut **self, node)
4744    }
4745
4746    #[inline]
4747    fn visit_ts_this_type(&mut self, node: &TsThisType) {
4748        <V as Visit>::visit_ts_this_type(&mut **self, node)
4749    }
4750
4751    #[inline]
4752    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
4753        <V as Visit>::visit_ts_this_type_or_ident(&mut **self, node)
4754    }
4755
4756    #[inline]
4757    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
4758        <V as Visit>::visit_ts_tpl_lit_type(&mut **self, node)
4759    }
4760
4761    #[inline]
4762    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
4763        <V as Visit>::visit_ts_tuple_element(&mut **self, node)
4764    }
4765
4766    #[inline]
4767    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
4768        <V as Visit>::visit_ts_tuple_elements(&mut **self, node)
4769    }
4770
4771    #[inline]
4772    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
4773        <V as Visit>::visit_ts_tuple_type(&mut **self, node)
4774    }
4775
4776    #[inline]
4777    fn visit_ts_type(&mut self, node: &TsType) {
4778        <V as Visit>::visit_ts_type(&mut **self, node)
4779    }
4780
4781    #[inline]
4782    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
4783        <V as Visit>::visit_ts_type_alias_decl(&mut **self, node)
4784    }
4785
4786    #[inline]
4787    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
4788        <V as Visit>::visit_ts_type_ann(&mut **self, node)
4789    }
4790
4791    #[inline]
4792    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
4793        <V as Visit>::visit_ts_type_assertion(&mut **self, node)
4794    }
4795
4796    #[inline]
4797    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
4798        <V as Visit>::visit_ts_type_element(&mut **self, node)
4799    }
4800
4801    #[inline]
4802    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
4803        <V as Visit>::visit_ts_type_elements(&mut **self, node)
4804    }
4805
4806    #[inline]
4807    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
4808        <V as Visit>::visit_ts_type_lit(&mut **self, node)
4809    }
4810
4811    #[inline]
4812    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
4813        <V as Visit>::visit_ts_type_operator(&mut **self, node)
4814    }
4815
4816    #[inline]
4817    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
4818        <V as Visit>::visit_ts_type_operator_op(&mut **self, node)
4819    }
4820
4821    #[inline]
4822    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
4823        <V as Visit>::visit_ts_type_param(&mut **self, node)
4824    }
4825
4826    #[inline]
4827    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
4828        <V as Visit>::visit_ts_type_param_decl(&mut **self, node)
4829    }
4830
4831    #[inline]
4832    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
4833        <V as Visit>::visit_ts_type_param_instantiation(&mut **self, node)
4834    }
4835
4836    #[inline]
4837    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
4838        <V as Visit>::visit_ts_type_params(&mut **self, node)
4839    }
4840
4841    #[inline]
4842    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
4843        <V as Visit>::visit_ts_type_predicate(&mut **self, node)
4844    }
4845
4846    #[inline]
4847    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
4848        <V as Visit>::visit_ts_type_query(&mut **self, node)
4849    }
4850
4851    #[inline]
4852    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
4853        <V as Visit>::visit_ts_type_query_expr(&mut **self, node)
4854    }
4855
4856    #[inline]
4857    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
4858        <V as Visit>::visit_ts_type_ref(&mut **self, node)
4859    }
4860
4861    #[inline]
4862    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
4863        <V as Visit>::visit_ts_types(&mut **self, node)
4864    }
4865
4866    #[inline]
4867    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
4868        <V as Visit>::visit_ts_union_or_intersection_type(&mut **self, node)
4869    }
4870
4871    #[inline]
4872    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
4873        <V as Visit>::visit_ts_union_type(&mut **self, node)
4874    }
4875
4876    #[inline]
4877    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
4878        <V as Visit>::visit_unary_expr(&mut **self, node)
4879    }
4880
4881    #[inline]
4882    fn visit_unary_op(&mut self, node: &UnaryOp) {
4883        <V as Visit>::visit_unary_op(&mut **self, node)
4884    }
4885
4886    #[inline]
4887    fn visit_update_expr(&mut self, node: &UpdateExpr) {
4888        <V as Visit>::visit_update_expr(&mut **self, node)
4889    }
4890
4891    #[inline]
4892    fn visit_update_op(&mut self, node: &UpdateOp) {
4893        <V as Visit>::visit_update_op(&mut **self, node)
4894    }
4895
4896    #[inline]
4897    fn visit_using_decl(&mut self, node: &UsingDecl) {
4898        <V as Visit>::visit_using_decl(&mut **self, node)
4899    }
4900
4901    #[inline]
4902    fn visit_var_decl(&mut self, node: &VarDecl) {
4903        <V as Visit>::visit_var_decl(&mut **self, node)
4904    }
4905
4906    #[inline]
4907    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
4908        <V as Visit>::visit_var_decl_kind(&mut **self, node)
4909    }
4910
4911    #[inline]
4912    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
4913        <V as Visit>::visit_var_decl_or_expr(&mut **self, node)
4914    }
4915
4916    #[inline]
4917    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
4918        <V as Visit>::visit_var_declarator(&mut **self, node)
4919    }
4920
4921    #[inline]
4922    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
4923        <V as Visit>::visit_var_declarators(&mut **self, node)
4924    }
4925
4926    #[inline]
4927    fn visit_while_stmt(&mut self, node: &WhileStmt) {
4928        <V as Visit>::visit_while_stmt(&mut **self, node)
4929    }
4930
4931    #[inline]
4932    fn visit_with_stmt(&mut self, node: &WithStmt) {
4933        <V as Visit>::visit_with_stmt(&mut **self, node)
4934    }
4935
4936    #[inline]
4937    fn visit_yield_expr(&mut self, node: &YieldExpr) {
4938        <V as Visit>::visit_yield_expr(&mut **self, node)
4939    }
4940}
4941impl<A, B> Visit for ::swc_visit::Either<A, B>
4942where
4943    A: Visit,
4944    B: Visit,
4945{
4946    #[inline]
4947    fn visit_accessibility(&mut self, node: &Accessibility) {
4948        match self {
4949            swc_visit::Either::Left(visitor) => Visit::visit_accessibility(visitor, node),
4950            swc_visit::Either::Right(visitor) => Visit::visit_accessibility(visitor, node),
4951        }
4952    }
4953
4954    #[inline]
4955    fn visit_array_lit(&mut self, node: &ArrayLit) {
4956        match self {
4957            swc_visit::Either::Left(visitor) => Visit::visit_array_lit(visitor, node),
4958            swc_visit::Either::Right(visitor) => Visit::visit_array_lit(visitor, node),
4959        }
4960    }
4961
4962    #[inline]
4963    fn visit_array_pat(&mut self, node: &ArrayPat) {
4964        match self {
4965            swc_visit::Either::Left(visitor) => Visit::visit_array_pat(visitor, node),
4966            swc_visit::Either::Right(visitor) => Visit::visit_array_pat(visitor, node),
4967        }
4968    }
4969
4970    #[inline]
4971    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
4972        match self {
4973            swc_visit::Either::Left(visitor) => Visit::visit_arrow_expr(visitor, node),
4974            swc_visit::Either::Right(visitor) => Visit::visit_arrow_expr(visitor, node),
4975        }
4976    }
4977
4978    #[inline]
4979    fn visit_assign_expr(&mut self, node: &AssignExpr) {
4980        match self {
4981            swc_visit::Either::Left(visitor) => Visit::visit_assign_expr(visitor, node),
4982            swc_visit::Either::Right(visitor) => Visit::visit_assign_expr(visitor, node),
4983        }
4984    }
4985
4986    #[inline]
4987    fn visit_assign_op(&mut self, node: &AssignOp) {
4988        match self {
4989            swc_visit::Either::Left(visitor) => Visit::visit_assign_op(visitor, node),
4990            swc_visit::Either::Right(visitor) => Visit::visit_assign_op(visitor, node),
4991        }
4992    }
4993
4994    #[inline]
4995    fn visit_assign_pat(&mut self, node: &AssignPat) {
4996        match self {
4997            swc_visit::Either::Left(visitor) => Visit::visit_assign_pat(visitor, node),
4998            swc_visit::Either::Right(visitor) => Visit::visit_assign_pat(visitor, node),
4999        }
5000    }
5001
5002    #[inline]
5003    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
5004        match self {
5005            swc_visit::Either::Left(visitor) => Visit::visit_assign_pat_prop(visitor, node),
5006            swc_visit::Either::Right(visitor) => Visit::visit_assign_pat_prop(visitor, node),
5007        }
5008    }
5009
5010    #[inline]
5011    fn visit_assign_prop(&mut self, node: &AssignProp) {
5012        match self {
5013            swc_visit::Either::Left(visitor) => Visit::visit_assign_prop(visitor, node),
5014            swc_visit::Either::Right(visitor) => Visit::visit_assign_prop(visitor, node),
5015        }
5016    }
5017
5018    #[inline]
5019    fn visit_assign_target(&mut self, node: &AssignTarget) {
5020        match self {
5021            swc_visit::Either::Left(visitor) => Visit::visit_assign_target(visitor, node),
5022            swc_visit::Either::Right(visitor) => Visit::visit_assign_target(visitor, node),
5023        }
5024    }
5025
5026    #[inline]
5027    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
5028        match self {
5029            swc_visit::Either::Left(visitor) => Visit::visit_assign_target_pat(visitor, node),
5030            swc_visit::Either::Right(visitor) => Visit::visit_assign_target_pat(visitor, node),
5031        }
5032    }
5033
5034    #[inline]
5035    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
5036        match self {
5037            swc_visit::Either::Left(visitor) => Visit::visit_atom(visitor, node),
5038            swc_visit::Either::Right(visitor) => Visit::visit_atom(visitor, node),
5039        }
5040    }
5041
5042    #[inline]
5043    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
5044        match self {
5045            swc_visit::Either::Left(visitor) => Visit::visit_auto_accessor(visitor, node),
5046            swc_visit::Either::Right(visitor) => Visit::visit_auto_accessor(visitor, node),
5047        }
5048    }
5049
5050    #[inline]
5051    fn visit_await_expr(&mut self, node: &AwaitExpr) {
5052        match self {
5053            swc_visit::Either::Left(visitor) => Visit::visit_await_expr(visitor, node),
5054            swc_visit::Either::Right(visitor) => Visit::visit_await_expr(visitor, node),
5055        }
5056    }
5057
5058    #[inline]
5059    fn visit_big_int(&mut self, node: &BigInt) {
5060        match self {
5061            swc_visit::Either::Left(visitor) => Visit::visit_big_int(visitor, node),
5062            swc_visit::Either::Right(visitor) => Visit::visit_big_int(visitor, node),
5063        }
5064    }
5065
5066    #[inline]
5067    fn visit_big_int_value(&mut self, node: &BigIntValue) {
5068        match self {
5069            swc_visit::Either::Left(visitor) => Visit::visit_big_int_value(visitor, node),
5070            swc_visit::Either::Right(visitor) => Visit::visit_big_int_value(visitor, node),
5071        }
5072    }
5073
5074    #[inline]
5075    fn visit_bin_expr(&mut self, node: &BinExpr) {
5076        match self {
5077            swc_visit::Either::Left(visitor) => Visit::visit_bin_expr(visitor, node),
5078            swc_visit::Either::Right(visitor) => Visit::visit_bin_expr(visitor, node),
5079        }
5080    }
5081
5082    #[inline]
5083    fn visit_binary_op(&mut self, node: &BinaryOp) {
5084        match self {
5085            swc_visit::Either::Left(visitor) => Visit::visit_binary_op(visitor, node),
5086            swc_visit::Either::Right(visitor) => Visit::visit_binary_op(visitor, node),
5087        }
5088    }
5089
5090    #[inline]
5091    fn visit_binding_ident(&mut self, node: &BindingIdent) {
5092        match self {
5093            swc_visit::Either::Left(visitor) => Visit::visit_binding_ident(visitor, node),
5094            swc_visit::Either::Right(visitor) => Visit::visit_binding_ident(visitor, node),
5095        }
5096    }
5097
5098    #[inline]
5099    fn visit_block_stmt(&mut self, node: &BlockStmt) {
5100        match self {
5101            swc_visit::Either::Left(visitor) => Visit::visit_block_stmt(visitor, node),
5102            swc_visit::Either::Right(visitor) => Visit::visit_block_stmt(visitor, node),
5103        }
5104    }
5105
5106    #[inline]
5107    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
5108        match self {
5109            swc_visit::Either::Left(visitor) => Visit::visit_block_stmt_or_expr(visitor, node),
5110            swc_visit::Either::Right(visitor) => Visit::visit_block_stmt_or_expr(visitor, node),
5111        }
5112    }
5113
5114    #[inline]
5115    fn visit_bool(&mut self, node: &Bool) {
5116        match self {
5117            swc_visit::Either::Left(visitor) => Visit::visit_bool(visitor, node),
5118            swc_visit::Either::Right(visitor) => Visit::visit_bool(visitor, node),
5119        }
5120    }
5121
5122    #[inline]
5123    fn visit_break_stmt(&mut self, node: &BreakStmt) {
5124        match self {
5125            swc_visit::Either::Left(visitor) => Visit::visit_break_stmt(visitor, node),
5126            swc_visit::Either::Right(visitor) => Visit::visit_break_stmt(visitor, node),
5127        }
5128    }
5129
5130    #[inline]
5131    fn visit_call_expr(&mut self, node: &CallExpr) {
5132        match self {
5133            swc_visit::Either::Left(visitor) => Visit::visit_call_expr(visitor, node),
5134            swc_visit::Either::Right(visitor) => Visit::visit_call_expr(visitor, node),
5135        }
5136    }
5137
5138    #[inline]
5139    fn visit_callee(&mut self, node: &Callee) {
5140        match self {
5141            swc_visit::Either::Left(visitor) => Visit::visit_callee(visitor, node),
5142            swc_visit::Either::Right(visitor) => Visit::visit_callee(visitor, node),
5143        }
5144    }
5145
5146    #[inline]
5147    fn visit_catch_clause(&mut self, node: &CatchClause) {
5148        match self {
5149            swc_visit::Either::Left(visitor) => Visit::visit_catch_clause(visitor, node),
5150            swc_visit::Either::Right(visitor) => Visit::visit_catch_clause(visitor, node),
5151        }
5152    }
5153
5154    #[inline]
5155    fn visit_class(&mut self, node: &Class) {
5156        match self {
5157            swc_visit::Either::Left(visitor) => Visit::visit_class(visitor, node),
5158            swc_visit::Either::Right(visitor) => Visit::visit_class(visitor, node),
5159        }
5160    }
5161
5162    #[inline]
5163    fn visit_class_decl(&mut self, node: &ClassDecl) {
5164        match self {
5165            swc_visit::Either::Left(visitor) => Visit::visit_class_decl(visitor, node),
5166            swc_visit::Either::Right(visitor) => Visit::visit_class_decl(visitor, node),
5167        }
5168    }
5169
5170    #[inline]
5171    fn visit_class_expr(&mut self, node: &ClassExpr) {
5172        match self {
5173            swc_visit::Either::Left(visitor) => Visit::visit_class_expr(visitor, node),
5174            swc_visit::Either::Right(visitor) => Visit::visit_class_expr(visitor, node),
5175        }
5176    }
5177
5178    #[inline]
5179    fn visit_class_member(&mut self, node: &ClassMember) {
5180        match self {
5181            swc_visit::Either::Left(visitor) => Visit::visit_class_member(visitor, node),
5182            swc_visit::Either::Right(visitor) => Visit::visit_class_member(visitor, node),
5183        }
5184    }
5185
5186    #[inline]
5187    fn visit_class_members(&mut self, node: &[ClassMember]) {
5188        match self {
5189            swc_visit::Either::Left(visitor) => Visit::visit_class_members(visitor, node),
5190            swc_visit::Either::Right(visitor) => Visit::visit_class_members(visitor, node),
5191        }
5192    }
5193
5194    #[inline]
5195    fn visit_class_method(&mut self, node: &ClassMethod) {
5196        match self {
5197            swc_visit::Either::Left(visitor) => Visit::visit_class_method(visitor, node),
5198            swc_visit::Either::Right(visitor) => Visit::visit_class_method(visitor, node),
5199        }
5200    }
5201
5202    #[inline]
5203    fn visit_class_prop(&mut self, node: &ClassProp) {
5204        match self {
5205            swc_visit::Either::Left(visitor) => Visit::visit_class_prop(visitor, node),
5206            swc_visit::Either::Right(visitor) => Visit::visit_class_prop(visitor, node),
5207        }
5208    }
5209
5210    #[inline]
5211    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
5212        match self {
5213            swc_visit::Either::Left(visitor) => Visit::visit_computed_prop_name(visitor, node),
5214            swc_visit::Either::Right(visitor) => Visit::visit_computed_prop_name(visitor, node),
5215        }
5216    }
5217
5218    #[inline]
5219    fn visit_cond_expr(&mut self, node: &CondExpr) {
5220        match self {
5221            swc_visit::Either::Left(visitor) => Visit::visit_cond_expr(visitor, node),
5222            swc_visit::Either::Right(visitor) => Visit::visit_cond_expr(visitor, node),
5223        }
5224    }
5225
5226    #[inline]
5227    fn visit_constructor(&mut self, node: &Constructor) {
5228        match self {
5229            swc_visit::Either::Left(visitor) => Visit::visit_constructor(visitor, node),
5230            swc_visit::Either::Right(visitor) => Visit::visit_constructor(visitor, node),
5231        }
5232    }
5233
5234    #[inline]
5235    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
5236        match self {
5237            swc_visit::Either::Left(visitor) => Visit::visit_continue_stmt(visitor, node),
5238            swc_visit::Either::Right(visitor) => Visit::visit_continue_stmt(visitor, node),
5239        }
5240    }
5241
5242    #[inline]
5243    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
5244        match self {
5245            swc_visit::Either::Left(visitor) => Visit::visit_debugger_stmt(visitor, node),
5246            swc_visit::Either::Right(visitor) => Visit::visit_debugger_stmt(visitor, node),
5247        }
5248    }
5249
5250    #[inline]
5251    fn visit_decl(&mut self, node: &Decl) {
5252        match self {
5253            swc_visit::Either::Left(visitor) => Visit::visit_decl(visitor, node),
5254            swc_visit::Either::Right(visitor) => Visit::visit_decl(visitor, node),
5255        }
5256    }
5257
5258    #[inline]
5259    fn visit_decorator(&mut self, node: &Decorator) {
5260        match self {
5261            swc_visit::Either::Left(visitor) => Visit::visit_decorator(visitor, node),
5262            swc_visit::Either::Right(visitor) => Visit::visit_decorator(visitor, node),
5263        }
5264    }
5265
5266    #[inline]
5267    fn visit_decorators(&mut self, node: &[Decorator]) {
5268        match self {
5269            swc_visit::Either::Left(visitor) => Visit::visit_decorators(visitor, node),
5270            swc_visit::Either::Right(visitor) => Visit::visit_decorators(visitor, node),
5271        }
5272    }
5273
5274    #[inline]
5275    fn visit_default_decl(&mut self, node: &DefaultDecl) {
5276        match self {
5277            swc_visit::Either::Left(visitor) => Visit::visit_default_decl(visitor, node),
5278            swc_visit::Either::Right(visitor) => Visit::visit_default_decl(visitor, node),
5279        }
5280    }
5281
5282    #[inline]
5283    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
5284        match self {
5285            swc_visit::Either::Left(visitor) => Visit::visit_do_while_stmt(visitor, node),
5286            swc_visit::Either::Right(visitor) => Visit::visit_do_while_stmt(visitor, node),
5287        }
5288    }
5289
5290    #[inline]
5291    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
5292        match self {
5293            swc_visit::Either::Left(visitor) => Visit::visit_empty_stmt(visitor, node),
5294            swc_visit::Either::Right(visitor) => Visit::visit_empty_stmt(visitor, node),
5295        }
5296    }
5297
5298    #[inline]
5299    fn visit_export_all(&mut self, node: &ExportAll) {
5300        match self {
5301            swc_visit::Either::Left(visitor) => Visit::visit_export_all(visitor, node),
5302            swc_visit::Either::Right(visitor) => Visit::visit_export_all(visitor, node),
5303        }
5304    }
5305
5306    #[inline]
5307    fn visit_export_decl(&mut self, node: &ExportDecl) {
5308        match self {
5309            swc_visit::Either::Left(visitor) => Visit::visit_export_decl(visitor, node),
5310            swc_visit::Either::Right(visitor) => Visit::visit_export_decl(visitor, node),
5311        }
5312    }
5313
5314    #[inline]
5315    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
5316        match self {
5317            swc_visit::Either::Left(visitor) => Visit::visit_export_default_decl(visitor, node),
5318            swc_visit::Either::Right(visitor) => Visit::visit_export_default_decl(visitor, node),
5319        }
5320    }
5321
5322    #[inline]
5323    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
5324        match self {
5325            swc_visit::Either::Left(visitor) => Visit::visit_export_default_expr(visitor, node),
5326            swc_visit::Either::Right(visitor) => Visit::visit_export_default_expr(visitor, node),
5327        }
5328    }
5329
5330    #[inline]
5331    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
5332        match self {
5333            swc_visit::Either::Left(visitor) => {
5334                Visit::visit_export_default_specifier(visitor, node)
5335            }
5336            swc_visit::Either::Right(visitor) => {
5337                Visit::visit_export_default_specifier(visitor, node)
5338            }
5339        }
5340    }
5341
5342    #[inline]
5343    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
5344        match self {
5345            swc_visit::Either::Left(visitor) => Visit::visit_export_named_specifier(visitor, node),
5346            swc_visit::Either::Right(visitor) => Visit::visit_export_named_specifier(visitor, node),
5347        }
5348    }
5349
5350    #[inline]
5351    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
5352        match self {
5353            swc_visit::Either::Left(visitor) => {
5354                Visit::visit_export_namespace_specifier(visitor, node)
5355            }
5356            swc_visit::Either::Right(visitor) => {
5357                Visit::visit_export_namespace_specifier(visitor, node)
5358            }
5359        }
5360    }
5361
5362    #[inline]
5363    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
5364        match self {
5365            swc_visit::Either::Left(visitor) => Visit::visit_export_specifier(visitor, node),
5366            swc_visit::Either::Right(visitor) => Visit::visit_export_specifier(visitor, node),
5367        }
5368    }
5369
5370    #[inline]
5371    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
5372        match self {
5373            swc_visit::Either::Left(visitor) => Visit::visit_export_specifiers(visitor, node),
5374            swc_visit::Either::Right(visitor) => Visit::visit_export_specifiers(visitor, node),
5375        }
5376    }
5377
5378    #[inline]
5379    fn visit_expr(&mut self, node: &Expr) {
5380        match self {
5381            swc_visit::Either::Left(visitor) => Visit::visit_expr(visitor, node),
5382            swc_visit::Either::Right(visitor) => Visit::visit_expr(visitor, node),
5383        }
5384    }
5385
5386    #[inline]
5387    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
5388        match self {
5389            swc_visit::Either::Left(visitor) => Visit::visit_expr_or_spread(visitor, node),
5390            swc_visit::Either::Right(visitor) => Visit::visit_expr_or_spread(visitor, node),
5391        }
5392    }
5393
5394    #[inline]
5395    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
5396        match self {
5397            swc_visit::Either::Left(visitor) => Visit::visit_expr_or_spreads(visitor, node),
5398            swc_visit::Either::Right(visitor) => Visit::visit_expr_or_spreads(visitor, node),
5399        }
5400    }
5401
5402    #[inline]
5403    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
5404        match self {
5405            swc_visit::Either::Left(visitor) => Visit::visit_expr_stmt(visitor, node),
5406            swc_visit::Either::Right(visitor) => Visit::visit_expr_stmt(visitor, node),
5407        }
5408    }
5409
5410    #[inline]
5411    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
5412        match self {
5413            swc_visit::Either::Left(visitor) => Visit::visit_exprs(visitor, node),
5414            swc_visit::Either::Right(visitor) => Visit::visit_exprs(visitor, node),
5415        }
5416    }
5417
5418    #[inline]
5419    fn visit_fn_decl(&mut self, node: &FnDecl) {
5420        match self {
5421            swc_visit::Either::Left(visitor) => Visit::visit_fn_decl(visitor, node),
5422            swc_visit::Either::Right(visitor) => Visit::visit_fn_decl(visitor, node),
5423        }
5424    }
5425
5426    #[inline]
5427    fn visit_fn_expr(&mut self, node: &FnExpr) {
5428        match self {
5429            swc_visit::Either::Left(visitor) => Visit::visit_fn_expr(visitor, node),
5430            swc_visit::Either::Right(visitor) => Visit::visit_fn_expr(visitor, node),
5431        }
5432    }
5433
5434    #[inline]
5435    fn visit_for_head(&mut self, node: &ForHead) {
5436        match self {
5437            swc_visit::Either::Left(visitor) => Visit::visit_for_head(visitor, node),
5438            swc_visit::Either::Right(visitor) => Visit::visit_for_head(visitor, node),
5439        }
5440    }
5441
5442    #[inline]
5443    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
5444        match self {
5445            swc_visit::Either::Left(visitor) => Visit::visit_for_in_stmt(visitor, node),
5446            swc_visit::Either::Right(visitor) => Visit::visit_for_in_stmt(visitor, node),
5447        }
5448    }
5449
5450    #[inline]
5451    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
5452        match self {
5453            swc_visit::Either::Left(visitor) => Visit::visit_for_of_stmt(visitor, node),
5454            swc_visit::Either::Right(visitor) => Visit::visit_for_of_stmt(visitor, node),
5455        }
5456    }
5457
5458    #[inline]
5459    fn visit_for_stmt(&mut self, node: &ForStmt) {
5460        match self {
5461            swc_visit::Either::Left(visitor) => Visit::visit_for_stmt(visitor, node),
5462            swc_visit::Either::Right(visitor) => Visit::visit_for_stmt(visitor, node),
5463        }
5464    }
5465
5466    #[inline]
5467    fn visit_function(&mut self, node: &Function) {
5468        match self {
5469            swc_visit::Either::Left(visitor) => Visit::visit_function(visitor, node),
5470            swc_visit::Either::Right(visitor) => Visit::visit_function(visitor, node),
5471        }
5472    }
5473
5474    #[inline]
5475    fn visit_getter_prop(&mut self, node: &GetterProp) {
5476        match self {
5477            swc_visit::Either::Left(visitor) => Visit::visit_getter_prop(visitor, node),
5478            swc_visit::Either::Right(visitor) => Visit::visit_getter_prop(visitor, node),
5479        }
5480    }
5481
5482    #[inline]
5483    fn visit_ident(&mut self, node: &Ident) {
5484        match self {
5485            swc_visit::Either::Left(visitor) => Visit::visit_ident(visitor, node),
5486            swc_visit::Either::Right(visitor) => Visit::visit_ident(visitor, node),
5487        }
5488    }
5489
5490    #[inline]
5491    fn visit_ident_name(&mut self, node: &IdentName) {
5492        match self {
5493            swc_visit::Either::Left(visitor) => Visit::visit_ident_name(visitor, node),
5494            swc_visit::Either::Right(visitor) => Visit::visit_ident_name(visitor, node),
5495        }
5496    }
5497
5498    #[inline]
5499    fn visit_if_stmt(&mut self, node: &IfStmt) {
5500        match self {
5501            swc_visit::Either::Left(visitor) => Visit::visit_if_stmt(visitor, node),
5502            swc_visit::Either::Right(visitor) => Visit::visit_if_stmt(visitor, node),
5503        }
5504    }
5505
5506    #[inline]
5507    fn visit_import(&mut self, node: &Import) {
5508        match self {
5509            swc_visit::Either::Left(visitor) => Visit::visit_import(visitor, node),
5510            swc_visit::Either::Right(visitor) => Visit::visit_import(visitor, node),
5511        }
5512    }
5513
5514    #[inline]
5515    fn visit_import_decl(&mut self, node: &ImportDecl) {
5516        match self {
5517            swc_visit::Either::Left(visitor) => Visit::visit_import_decl(visitor, node),
5518            swc_visit::Either::Right(visitor) => Visit::visit_import_decl(visitor, node),
5519        }
5520    }
5521
5522    #[inline]
5523    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
5524        match self {
5525            swc_visit::Either::Left(visitor) => {
5526                Visit::visit_import_default_specifier(visitor, node)
5527            }
5528            swc_visit::Either::Right(visitor) => {
5529                Visit::visit_import_default_specifier(visitor, node)
5530            }
5531        }
5532    }
5533
5534    #[inline]
5535    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
5536        match self {
5537            swc_visit::Either::Left(visitor) => Visit::visit_import_named_specifier(visitor, node),
5538            swc_visit::Either::Right(visitor) => Visit::visit_import_named_specifier(visitor, node),
5539        }
5540    }
5541
5542    #[inline]
5543    fn visit_import_phase(&mut self, node: &ImportPhase) {
5544        match self {
5545            swc_visit::Either::Left(visitor) => Visit::visit_import_phase(visitor, node),
5546            swc_visit::Either::Right(visitor) => Visit::visit_import_phase(visitor, node),
5547        }
5548    }
5549
5550    #[inline]
5551    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
5552        match self {
5553            swc_visit::Either::Left(visitor) => Visit::visit_import_specifier(visitor, node),
5554            swc_visit::Either::Right(visitor) => Visit::visit_import_specifier(visitor, node),
5555        }
5556    }
5557
5558    #[inline]
5559    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
5560        match self {
5561            swc_visit::Either::Left(visitor) => Visit::visit_import_specifiers(visitor, node),
5562            swc_visit::Either::Right(visitor) => Visit::visit_import_specifiers(visitor, node),
5563        }
5564    }
5565
5566    #[inline]
5567    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
5568        match self {
5569            swc_visit::Either::Left(visitor) => {
5570                Visit::visit_import_star_as_specifier(visitor, node)
5571            }
5572            swc_visit::Either::Right(visitor) => {
5573                Visit::visit_import_star_as_specifier(visitor, node)
5574            }
5575        }
5576    }
5577
5578    #[inline]
5579    fn visit_import_with(&mut self, node: &ImportWith) {
5580        match self {
5581            swc_visit::Either::Left(visitor) => Visit::visit_import_with(visitor, node),
5582            swc_visit::Either::Right(visitor) => Visit::visit_import_with(visitor, node),
5583        }
5584    }
5585
5586    #[inline]
5587    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
5588        match self {
5589            swc_visit::Either::Left(visitor) => Visit::visit_import_with_item(visitor, node),
5590            swc_visit::Either::Right(visitor) => Visit::visit_import_with_item(visitor, node),
5591        }
5592    }
5593
5594    #[inline]
5595    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
5596        match self {
5597            swc_visit::Either::Left(visitor) => Visit::visit_import_with_items(visitor, node),
5598            swc_visit::Either::Right(visitor) => Visit::visit_import_with_items(visitor, node),
5599        }
5600    }
5601
5602    #[inline]
5603    fn visit_invalid(&mut self, node: &Invalid) {
5604        match self {
5605            swc_visit::Either::Left(visitor) => Visit::visit_invalid(visitor, node),
5606            swc_visit::Either::Right(visitor) => Visit::visit_invalid(visitor, node),
5607        }
5608    }
5609
5610    #[inline]
5611    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
5612        match self {
5613            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr(visitor, node),
5614            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr(visitor, node),
5615        }
5616    }
5617
5618    #[inline]
5619    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
5620        match self {
5621            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_name(visitor, node),
5622            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_name(visitor, node),
5623        }
5624    }
5625
5626    #[inline]
5627    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
5628        match self {
5629            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_or_spread(visitor, node),
5630            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_or_spread(visitor, node),
5631        }
5632    }
5633
5634    #[inline]
5635    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
5636        match self {
5637            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_or_spreads(visitor, node),
5638            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_or_spreads(visitor, node),
5639        }
5640    }
5641
5642    #[inline]
5643    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
5644        match self {
5645            swc_visit::Either::Left(visitor) => Visit::visit_jsx_attr_value(visitor, node),
5646            swc_visit::Either::Right(visitor) => Visit::visit_jsx_attr_value(visitor, node),
5647        }
5648    }
5649
5650    #[inline]
5651    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
5652        match self {
5653            swc_visit::Either::Left(visitor) => Visit::visit_jsx_closing_element(visitor, node),
5654            swc_visit::Either::Right(visitor) => Visit::visit_jsx_closing_element(visitor, node),
5655        }
5656    }
5657
5658    #[inline]
5659    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
5660        match self {
5661            swc_visit::Either::Left(visitor) => Visit::visit_jsx_closing_fragment(visitor, node),
5662            swc_visit::Either::Right(visitor) => Visit::visit_jsx_closing_fragment(visitor, node),
5663        }
5664    }
5665
5666    #[inline]
5667    fn visit_jsx_element(&mut self, node: &JSXElement) {
5668        match self {
5669            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element(visitor, node),
5670            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element(visitor, node),
5671        }
5672    }
5673
5674    #[inline]
5675    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
5676        match self {
5677            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element_child(visitor, node),
5678            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element_child(visitor, node),
5679        }
5680    }
5681
5682    #[inline]
5683    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
5684        match self {
5685            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element_childs(visitor, node),
5686            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element_childs(visitor, node),
5687        }
5688    }
5689
5690    #[inline]
5691    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
5692        match self {
5693            swc_visit::Either::Left(visitor) => Visit::visit_jsx_element_name(visitor, node),
5694            swc_visit::Either::Right(visitor) => Visit::visit_jsx_element_name(visitor, node),
5695        }
5696    }
5697
5698    #[inline]
5699    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
5700        match self {
5701            swc_visit::Either::Left(visitor) => Visit::visit_jsx_empty_expr(visitor, node),
5702            swc_visit::Either::Right(visitor) => Visit::visit_jsx_empty_expr(visitor, node),
5703        }
5704    }
5705
5706    #[inline]
5707    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
5708        match self {
5709            swc_visit::Either::Left(visitor) => Visit::visit_jsx_expr(visitor, node),
5710            swc_visit::Either::Right(visitor) => Visit::visit_jsx_expr(visitor, node),
5711        }
5712    }
5713
5714    #[inline]
5715    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
5716        match self {
5717            swc_visit::Either::Left(visitor) => Visit::visit_jsx_expr_container(visitor, node),
5718            swc_visit::Either::Right(visitor) => Visit::visit_jsx_expr_container(visitor, node),
5719        }
5720    }
5721
5722    #[inline]
5723    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
5724        match self {
5725            swc_visit::Either::Left(visitor) => Visit::visit_jsx_fragment(visitor, node),
5726            swc_visit::Either::Right(visitor) => Visit::visit_jsx_fragment(visitor, node),
5727        }
5728    }
5729
5730    #[inline]
5731    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
5732        match self {
5733            swc_visit::Either::Left(visitor) => Visit::visit_jsx_member_expr(visitor, node),
5734            swc_visit::Either::Right(visitor) => Visit::visit_jsx_member_expr(visitor, node),
5735        }
5736    }
5737
5738    #[inline]
5739    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
5740        match self {
5741            swc_visit::Either::Left(visitor) => Visit::visit_jsx_namespaced_name(visitor, node),
5742            swc_visit::Either::Right(visitor) => Visit::visit_jsx_namespaced_name(visitor, node),
5743        }
5744    }
5745
5746    #[inline]
5747    fn visit_jsx_object(&mut self, node: &JSXObject) {
5748        match self {
5749            swc_visit::Either::Left(visitor) => Visit::visit_jsx_object(visitor, node),
5750            swc_visit::Either::Right(visitor) => Visit::visit_jsx_object(visitor, node),
5751        }
5752    }
5753
5754    #[inline]
5755    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
5756        match self {
5757            swc_visit::Either::Left(visitor) => Visit::visit_jsx_opening_element(visitor, node),
5758            swc_visit::Either::Right(visitor) => Visit::visit_jsx_opening_element(visitor, node),
5759        }
5760    }
5761
5762    #[inline]
5763    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
5764        match self {
5765            swc_visit::Either::Left(visitor) => Visit::visit_jsx_opening_fragment(visitor, node),
5766            swc_visit::Either::Right(visitor) => Visit::visit_jsx_opening_fragment(visitor, node),
5767        }
5768    }
5769
5770    #[inline]
5771    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
5772        match self {
5773            swc_visit::Either::Left(visitor) => Visit::visit_jsx_spread_child(visitor, node),
5774            swc_visit::Either::Right(visitor) => Visit::visit_jsx_spread_child(visitor, node),
5775        }
5776    }
5777
5778    #[inline]
5779    fn visit_jsx_text(&mut self, node: &JSXText) {
5780        match self {
5781            swc_visit::Either::Left(visitor) => Visit::visit_jsx_text(visitor, node),
5782            swc_visit::Either::Right(visitor) => Visit::visit_jsx_text(visitor, node),
5783        }
5784    }
5785
5786    #[inline]
5787    fn visit_key(&mut self, node: &Key) {
5788        match self {
5789            swc_visit::Either::Left(visitor) => Visit::visit_key(visitor, node),
5790            swc_visit::Either::Right(visitor) => Visit::visit_key(visitor, node),
5791        }
5792    }
5793
5794    #[inline]
5795    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
5796        match self {
5797            swc_visit::Either::Left(visitor) => Visit::visit_key_value_pat_prop(visitor, node),
5798            swc_visit::Either::Right(visitor) => Visit::visit_key_value_pat_prop(visitor, node),
5799        }
5800    }
5801
5802    #[inline]
5803    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
5804        match self {
5805            swc_visit::Either::Left(visitor) => Visit::visit_key_value_prop(visitor, node),
5806            swc_visit::Either::Right(visitor) => Visit::visit_key_value_prop(visitor, node),
5807        }
5808    }
5809
5810    #[inline]
5811    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
5812        match self {
5813            swc_visit::Either::Left(visitor) => Visit::visit_labeled_stmt(visitor, node),
5814            swc_visit::Either::Right(visitor) => Visit::visit_labeled_stmt(visitor, node),
5815        }
5816    }
5817
5818    #[inline]
5819    fn visit_lit(&mut self, node: &Lit) {
5820        match self {
5821            swc_visit::Either::Left(visitor) => Visit::visit_lit(visitor, node),
5822            swc_visit::Either::Right(visitor) => Visit::visit_lit(visitor, node),
5823        }
5824    }
5825
5826    #[inline]
5827    fn visit_member_expr(&mut self, node: &MemberExpr) {
5828        match self {
5829            swc_visit::Either::Left(visitor) => Visit::visit_member_expr(visitor, node),
5830            swc_visit::Either::Right(visitor) => Visit::visit_member_expr(visitor, node),
5831        }
5832    }
5833
5834    #[inline]
5835    fn visit_member_prop(&mut self, node: &MemberProp) {
5836        match self {
5837            swc_visit::Either::Left(visitor) => Visit::visit_member_prop(visitor, node),
5838            swc_visit::Either::Right(visitor) => Visit::visit_member_prop(visitor, node),
5839        }
5840    }
5841
5842    #[inline]
5843    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
5844        match self {
5845            swc_visit::Either::Left(visitor) => Visit::visit_meta_prop_expr(visitor, node),
5846            swc_visit::Either::Right(visitor) => Visit::visit_meta_prop_expr(visitor, node),
5847        }
5848    }
5849
5850    #[inline]
5851    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
5852        match self {
5853            swc_visit::Either::Left(visitor) => Visit::visit_meta_prop_kind(visitor, node),
5854            swc_visit::Either::Right(visitor) => Visit::visit_meta_prop_kind(visitor, node),
5855        }
5856    }
5857
5858    #[inline]
5859    fn visit_method_kind(&mut self, node: &MethodKind) {
5860        match self {
5861            swc_visit::Either::Left(visitor) => Visit::visit_method_kind(visitor, node),
5862            swc_visit::Either::Right(visitor) => Visit::visit_method_kind(visitor, node),
5863        }
5864    }
5865
5866    #[inline]
5867    fn visit_method_prop(&mut self, node: &MethodProp) {
5868        match self {
5869            swc_visit::Either::Left(visitor) => Visit::visit_method_prop(visitor, node),
5870            swc_visit::Either::Right(visitor) => Visit::visit_method_prop(visitor, node),
5871        }
5872    }
5873
5874    #[inline]
5875    fn visit_module(&mut self, node: &Module) {
5876        match self {
5877            swc_visit::Either::Left(visitor) => Visit::visit_module(visitor, node),
5878            swc_visit::Either::Right(visitor) => Visit::visit_module(visitor, node),
5879        }
5880    }
5881
5882    #[inline]
5883    fn visit_module_decl(&mut self, node: &ModuleDecl) {
5884        match self {
5885            swc_visit::Either::Left(visitor) => Visit::visit_module_decl(visitor, node),
5886            swc_visit::Either::Right(visitor) => Visit::visit_module_decl(visitor, node),
5887        }
5888    }
5889
5890    #[inline]
5891    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
5892        match self {
5893            swc_visit::Either::Left(visitor) => Visit::visit_module_export_name(visitor, node),
5894            swc_visit::Either::Right(visitor) => Visit::visit_module_export_name(visitor, node),
5895        }
5896    }
5897
5898    #[inline]
5899    fn visit_module_item(&mut self, node: &ModuleItem) {
5900        match self {
5901            swc_visit::Either::Left(visitor) => Visit::visit_module_item(visitor, node),
5902            swc_visit::Either::Right(visitor) => Visit::visit_module_item(visitor, node),
5903        }
5904    }
5905
5906    #[inline]
5907    fn visit_module_items(&mut self, node: &[ModuleItem]) {
5908        match self {
5909            swc_visit::Either::Left(visitor) => Visit::visit_module_items(visitor, node),
5910            swc_visit::Either::Right(visitor) => Visit::visit_module_items(visitor, node),
5911        }
5912    }
5913
5914    #[inline]
5915    fn visit_named_export(&mut self, node: &NamedExport) {
5916        match self {
5917            swc_visit::Either::Left(visitor) => Visit::visit_named_export(visitor, node),
5918            swc_visit::Either::Right(visitor) => Visit::visit_named_export(visitor, node),
5919        }
5920    }
5921
5922    #[inline]
5923    fn visit_new_expr(&mut self, node: &NewExpr) {
5924        match self {
5925            swc_visit::Either::Left(visitor) => Visit::visit_new_expr(visitor, node),
5926            swc_visit::Either::Right(visitor) => Visit::visit_new_expr(visitor, node),
5927        }
5928    }
5929
5930    #[inline]
5931    fn visit_null(&mut self, node: &Null) {
5932        match self {
5933            swc_visit::Either::Left(visitor) => Visit::visit_null(visitor, node),
5934            swc_visit::Either::Right(visitor) => Visit::visit_null(visitor, node),
5935        }
5936    }
5937
5938    #[inline]
5939    fn visit_number(&mut self, node: &Number) {
5940        match self {
5941            swc_visit::Either::Left(visitor) => Visit::visit_number(visitor, node),
5942            swc_visit::Either::Right(visitor) => Visit::visit_number(visitor, node),
5943        }
5944    }
5945
5946    #[inline]
5947    fn visit_object_lit(&mut self, node: &ObjectLit) {
5948        match self {
5949            swc_visit::Either::Left(visitor) => Visit::visit_object_lit(visitor, node),
5950            swc_visit::Either::Right(visitor) => Visit::visit_object_lit(visitor, node),
5951        }
5952    }
5953
5954    #[inline]
5955    fn visit_object_pat(&mut self, node: &ObjectPat) {
5956        match self {
5957            swc_visit::Either::Left(visitor) => Visit::visit_object_pat(visitor, node),
5958            swc_visit::Either::Right(visitor) => Visit::visit_object_pat(visitor, node),
5959        }
5960    }
5961
5962    #[inline]
5963    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
5964        match self {
5965            swc_visit::Either::Left(visitor) => Visit::visit_object_pat_prop(visitor, node),
5966            swc_visit::Either::Right(visitor) => Visit::visit_object_pat_prop(visitor, node),
5967        }
5968    }
5969
5970    #[inline]
5971    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
5972        match self {
5973            swc_visit::Either::Left(visitor) => Visit::visit_object_pat_props(visitor, node),
5974            swc_visit::Either::Right(visitor) => Visit::visit_object_pat_props(visitor, node),
5975        }
5976    }
5977
5978    #[inline]
5979    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
5980        match self {
5981            swc_visit::Either::Left(visitor) => Visit::visit_opt_accessibility(visitor, node),
5982            swc_visit::Either::Right(visitor) => Visit::visit_opt_accessibility(visitor, node),
5983        }
5984    }
5985
5986    #[inline]
5987    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
5988        match self {
5989            swc_visit::Either::Left(visitor) => Visit::visit_opt_atom(visitor, node),
5990            swc_visit::Either::Right(visitor) => Visit::visit_opt_atom(visitor, node),
5991        }
5992    }
5993
5994    #[inline]
5995    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
5996        match self {
5997            swc_visit::Either::Left(visitor) => Visit::visit_opt_block_stmt(visitor, node),
5998            swc_visit::Either::Right(visitor) => Visit::visit_opt_block_stmt(visitor, node),
5999        }
6000    }
6001
6002    #[inline]
6003    fn visit_opt_call(&mut self, node: &OptCall) {
6004        match self {
6005            swc_visit::Either::Left(visitor) => Visit::visit_opt_call(visitor, node),
6006            swc_visit::Either::Right(visitor) => Visit::visit_opt_call(visitor, node),
6007        }
6008    }
6009
6010    #[inline]
6011    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
6012        match self {
6013            swc_visit::Either::Left(visitor) => Visit::visit_opt_catch_clause(visitor, node),
6014            swc_visit::Either::Right(visitor) => Visit::visit_opt_catch_clause(visitor, node),
6015        }
6016    }
6017
6018    #[inline]
6019    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
6020        match self {
6021            swc_visit::Either::Left(visitor) => Visit::visit_opt_chain_base(visitor, node),
6022            swc_visit::Either::Right(visitor) => Visit::visit_opt_chain_base(visitor, node),
6023        }
6024    }
6025
6026    #[inline]
6027    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
6028        match self {
6029            swc_visit::Either::Left(visitor) => Visit::visit_opt_chain_expr(visitor, node),
6030            swc_visit::Either::Right(visitor) => Visit::visit_opt_chain_expr(visitor, node),
6031        }
6032    }
6033
6034    #[inline]
6035    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
6036        match self {
6037            swc_visit::Either::Left(visitor) => Visit::visit_opt_expr(visitor, node),
6038            swc_visit::Either::Right(visitor) => Visit::visit_opt_expr(visitor, node),
6039        }
6040    }
6041
6042    #[inline]
6043    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
6044        match self {
6045            swc_visit::Either::Left(visitor) => Visit::visit_opt_expr_or_spread(visitor, node),
6046            swc_visit::Either::Right(visitor) => Visit::visit_opt_expr_or_spread(visitor, node),
6047        }
6048    }
6049
6050    #[inline]
6051    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
6052        match self {
6053            swc_visit::Either::Left(visitor) => Visit::visit_opt_expr_or_spreads(visitor, node),
6054            swc_visit::Either::Right(visitor) => Visit::visit_opt_expr_or_spreads(visitor, node),
6055        }
6056    }
6057
6058    #[inline]
6059    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
6060        match self {
6061            swc_visit::Either::Left(visitor) => Visit::visit_opt_ident(visitor, node),
6062            swc_visit::Either::Right(visitor) => Visit::visit_opt_ident(visitor, node),
6063        }
6064    }
6065
6066    #[inline]
6067    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
6068        match self {
6069            swc_visit::Either::Left(visitor) => Visit::visit_opt_jsx_attr_value(visitor, node),
6070            swc_visit::Either::Right(visitor) => Visit::visit_opt_jsx_attr_value(visitor, node),
6071        }
6072    }
6073
6074    #[inline]
6075    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
6076        match self {
6077            swc_visit::Either::Left(visitor) => Visit::visit_opt_jsx_closing_element(visitor, node),
6078            swc_visit::Either::Right(visitor) => {
6079                Visit::visit_opt_jsx_closing_element(visitor, node)
6080            }
6081        }
6082    }
6083
6084    #[inline]
6085    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
6086        match self {
6087            swc_visit::Either::Left(visitor) => Visit::visit_opt_module_export_name(visitor, node),
6088            swc_visit::Either::Right(visitor) => Visit::visit_opt_module_export_name(visitor, node),
6089        }
6090    }
6091
6092    #[inline]
6093    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
6094        match self {
6095            swc_visit::Either::Left(visitor) => Visit::visit_opt_object_lit(visitor, node),
6096            swc_visit::Either::Right(visitor) => Visit::visit_opt_object_lit(visitor, node),
6097        }
6098    }
6099
6100    #[inline]
6101    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
6102        match self {
6103            swc_visit::Either::Left(visitor) => Visit::visit_opt_pat(visitor, node),
6104            swc_visit::Either::Right(visitor) => Visit::visit_opt_pat(visitor, node),
6105        }
6106    }
6107
6108    #[inline]
6109    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
6110        match self {
6111            swc_visit::Either::Left(visitor) => Visit::visit_opt_span(visitor, node),
6112            swc_visit::Either::Right(visitor) => Visit::visit_opt_span(visitor, node),
6113        }
6114    }
6115
6116    #[inline]
6117    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
6118        match self {
6119            swc_visit::Either::Left(visitor) => Visit::visit_opt_stmt(visitor, node),
6120            swc_visit::Either::Right(visitor) => Visit::visit_opt_stmt(visitor, node),
6121        }
6122    }
6123
6124    #[inline]
6125    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
6126        match self {
6127            swc_visit::Either::Left(visitor) => Visit::visit_opt_str(visitor, node),
6128            swc_visit::Either::Right(visitor) => Visit::visit_opt_str(visitor, node),
6129        }
6130    }
6131
6132    #[inline]
6133    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
6134        match self {
6135            swc_visit::Either::Left(visitor) => Visit::visit_opt_true_plus_minus(visitor, node),
6136            swc_visit::Either::Right(visitor) => Visit::visit_opt_true_plus_minus(visitor, node),
6137        }
6138    }
6139
6140    #[inline]
6141    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
6142        match self {
6143            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_entity_name(visitor, node),
6144            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_entity_name(visitor, node),
6145        }
6146    }
6147
6148    #[inline]
6149    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
6150        match self {
6151            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_namespace_body(visitor, node),
6152            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_namespace_body(visitor, node),
6153        }
6154    }
6155
6156    #[inline]
6157    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
6158        match self {
6159            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_type(visitor, node),
6160            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_type(visitor, node),
6161        }
6162    }
6163
6164    #[inline]
6165    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
6166        match self {
6167            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_type_ann(visitor, node),
6168            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_type_ann(visitor, node),
6169        }
6170    }
6171
6172    #[inline]
6173    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
6174        match self {
6175            swc_visit::Either::Left(visitor) => Visit::visit_opt_ts_type_param_decl(visitor, node),
6176            swc_visit::Either::Right(visitor) => Visit::visit_opt_ts_type_param_decl(visitor, node),
6177        }
6178    }
6179
6180    #[inline]
6181    fn visit_opt_ts_type_param_instantiation(
6182        &mut self,
6183        node: &Option<Box<TsTypeParamInstantiation>>,
6184    ) {
6185        match self {
6186            swc_visit::Either::Left(visitor) => {
6187                Visit::visit_opt_ts_type_param_instantiation(visitor, node)
6188            }
6189            swc_visit::Either::Right(visitor) => {
6190                Visit::visit_opt_ts_type_param_instantiation(visitor, node)
6191            }
6192        }
6193    }
6194
6195    #[inline]
6196    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
6197        match self {
6198            swc_visit::Either::Left(visitor) => Visit::visit_opt_var_decl_or_expr(visitor, node),
6199            swc_visit::Either::Right(visitor) => Visit::visit_opt_var_decl_or_expr(visitor, node),
6200        }
6201    }
6202
6203    #[inline]
6204    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
6205        match self {
6206            swc_visit::Either::Left(visitor) => Visit::visit_opt_vec_expr_or_spreads(visitor, node),
6207            swc_visit::Either::Right(visitor) => {
6208                Visit::visit_opt_vec_expr_or_spreads(visitor, node)
6209            }
6210        }
6211    }
6212
6213    #[inline]
6214    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
6215        match self {
6216            swc_visit::Either::Left(visitor) => Visit::visit_opt_vec_pats(visitor, node),
6217            swc_visit::Either::Right(visitor) => Visit::visit_opt_vec_pats(visitor, node),
6218        }
6219    }
6220
6221    #[inline]
6222    fn visit_param(&mut self, node: &Param) {
6223        match self {
6224            swc_visit::Either::Left(visitor) => Visit::visit_param(visitor, node),
6225            swc_visit::Either::Right(visitor) => Visit::visit_param(visitor, node),
6226        }
6227    }
6228
6229    #[inline]
6230    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
6231        match self {
6232            swc_visit::Either::Left(visitor) => Visit::visit_param_or_ts_param_prop(visitor, node),
6233            swc_visit::Either::Right(visitor) => Visit::visit_param_or_ts_param_prop(visitor, node),
6234        }
6235    }
6236
6237    #[inline]
6238    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
6239        match self {
6240            swc_visit::Either::Left(visitor) => Visit::visit_param_or_ts_param_props(visitor, node),
6241            swc_visit::Either::Right(visitor) => {
6242                Visit::visit_param_or_ts_param_props(visitor, node)
6243            }
6244        }
6245    }
6246
6247    #[inline]
6248    fn visit_params(&mut self, node: &[Param]) {
6249        match self {
6250            swc_visit::Either::Left(visitor) => Visit::visit_params(visitor, node),
6251            swc_visit::Either::Right(visitor) => Visit::visit_params(visitor, node),
6252        }
6253    }
6254
6255    #[inline]
6256    fn visit_paren_expr(&mut self, node: &ParenExpr) {
6257        match self {
6258            swc_visit::Either::Left(visitor) => Visit::visit_paren_expr(visitor, node),
6259            swc_visit::Either::Right(visitor) => Visit::visit_paren_expr(visitor, node),
6260        }
6261    }
6262
6263    #[inline]
6264    fn visit_pat(&mut self, node: &Pat) {
6265        match self {
6266            swc_visit::Either::Left(visitor) => Visit::visit_pat(visitor, node),
6267            swc_visit::Either::Right(visitor) => Visit::visit_pat(visitor, node),
6268        }
6269    }
6270
6271    #[inline]
6272    fn visit_pats(&mut self, node: &[Pat]) {
6273        match self {
6274            swc_visit::Either::Left(visitor) => Visit::visit_pats(visitor, node),
6275            swc_visit::Either::Right(visitor) => Visit::visit_pats(visitor, node),
6276        }
6277    }
6278
6279    #[inline]
6280    fn visit_private_method(&mut self, node: &PrivateMethod) {
6281        match self {
6282            swc_visit::Either::Left(visitor) => Visit::visit_private_method(visitor, node),
6283            swc_visit::Either::Right(visitor) => Visit::visit_private_method(visitor, node),
6284        }
6285    }
6286
6287    #[inline]
6288    fn visit_private_name(&mut self, node: &PrivateName) {
6289        match self {
6290            swc_visit::Either::Left(visitor) => Visit::visit_private_name(visitor, node),
6291            swc_visit::Either::Right(visitor) => Visit::visit_private_name(visitor, node),
6292        }
6293    }
6294
6295    #[inline]
6296    fn visit_private_prop(&mut self, node: &PrivateProp) {
6297        match self {
6298            swc_visit::Either::Left(visitor) => Visit::visit_private_prop(visitor, node),
6299            swc_visit::Either::Right(visitor) => Visit::visit_private_prop(visitor, node),
6300        }
6301    }
6302
6303    #[inline]
6304    fn visit_program(&mut self, node: &Program) {
6305        match self {
6306            swc_visit::Either::Left(visitor) => Visit::visit_program(visitor, node),
6307            swc_visit::Either::Right(visitor) => Visit::visit_program(visitor, node),
6308        }
6309    }
6310
6311    #[inline]
6312    fn visit_prop(&mut self, node: &Prop) {
6313        match self {
6314            swc_visit::Either::Left(visitor) => Visit::visit_prop(visitor, node),
6315            swc_visit::Either::Right(visitor) => Visit::visit_prop(visitor, node),
6316        }
6317    }
6318
6319    #[inline]
6320    fn visit_prop_name(&mut self, node: &PropName) {
6321        match self {
6322            swc_visit::Either::Left(visitor) => Visit::visit_prop_name(visitor, node),
6323            swc_visit::Either::Right(visitor) => Visit::visit_prop_name(visitor, node),
6324        }
6325    }
6326
6327    #[inline]
6328    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
6329        match self {
6330            swc_visit::Either::Left(visitor) => Visit::visit_prop_or_spread(visitor, node),
6331            swc_visit::Either::Right(visitor) => Visit::visit_prop_or_spread(visitor, node),
6332        }
6333    }
6334
6335    #[inline]
6336    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
6337        match self {
6338            swc_visit::Either::Left(visitor) => Visit::visit_prop_or_spreads(visitor, node),
6339            swc_visit::Either::Right(visitor) => Visit::visit_prop_or_spreads(visitor, node),
6340        }
6341    }
6342
6343    #[inline]
6344    fn visit_regex(&mut self, node: &Regex) {
6345        match self {
6346            swc_visit::Either::Left(visitor) => Visit::visit_regex(visitor, node),
6347            swc_visit::Either::Right(visitor) => Visit::visit_regex(visitor, node),
6348        }
6349    }
6350
6351    #[inline]
6352    fn visit_rest_pat(&mut self, node: &RestPat) {
6353        match self {
6354            swc_visit::Either::Left(visitor) => Visit::visit_rest_pat(visitor, node),
6355            swc_visit::Either::Right(visitor) => Visit::visit_rest_pat(visitor, node),
6356        }
6357    }
6358
6359    #[inline]
6360    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
6361        match self {
6362            swc_visit::Either::Left(visitor) => Visit::visit_return_stmt(visitor, node),
6363            swc_visit::Either::Right(visitor) => Visit::visit_return_stmt(visitor, node),
6364        }
6365    }
6366
6367    #[inline]
6368    fn visit_script(&mut self, node: &Script) {
6369        match self {
6370            swc_visit::Either::Left(visitor) => Visit::visit_script(visitor, node),
6371            swc_visit::Either::Right(visitor) => Visit::visit_script(visitor, node),
6372        }
6373    }
6374
6375    #[inline]
6376    fn visit_seq_expr(&mut self, node: &SeqExpr) {
6377        match self {
6378            swc_visit::Either::Left(visitor) => Visit::visit_seq_expr(visitor, node),
6379            swc_visit::Either::Right(visitor) => Visit::visit_seq_expr(visitor, node),
6380        }
6381    }
6382
6383    #[inline]
6384    fn visit_setter_prop(&mut self, node: &SetterProp) {
6385        match self {
6386            swc_visit::Either::Left(visitor) => Visit::visit_setter_prop(visitor, node),
6387            swc_visit::Either::Right(visitor) => Visit::visit_setter_prop(visitor, node),
6388        }
6389    }
6390
6391    #[inline]
6392    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
6393        match self {
6394            swc_visit::Either::Left(visitor) => Visit::visit_simple_assign_target(visitor, node),
6395            swc_visit::Either::Right(visitor) => Visit::visit_simple_assign_target(visitor, node),
6396        }
6397    }
6398
6399    #[inline]
6400    fn visit_span(&mut self, node: &swc_common::Span) {
6401        match self {
6402            swc_visit::Either::Left(visitor) => Visit::visit_span(visitor, node),
6403            swc_visit::Either::Right(visitor) => Visit::visit_span(visitor, node),
6404        }
6405    }
6406
6407    #[inline]
6408    fn visit_spread_element(&mut self, node: &SpreadElement) {
6409        match self {
6410            swc_visit::Either::Left(visitor) => Visit::visit_spread_element(visitor, node),
6411            swc_visit::Either::Right(visitor) => Visit::visit_spread_element(visitor, node),
6412        }
6413    }
6414
6415    #[inline]
6416    fn visit_static_block(&mut self, node: &StaticBlock) {
6417        match self {
6418            swc_visit::Either::Left(visitor) => Visit::visit_static_block(visitor, node),
6419            swc_visit::Either::Right(visitor) => Visit::visit_static_block(visitor, node),
6420        }
6421    }
6422
6423    #[inline]
6424    fn visit_stmt(&mut self, node: &Stmt) {
6425        match self {
6426            swc_visit::Either::Left(visitor) => Visit::visit_stmt(visitor, node),
6427            swc_visit::Either::Right(visitor) => Visit::visit_stmt(visitor, node),
6428        }
6429    }
6430
6431    #[inline]
6432    fn visit_stmts(&mut self, node: &[Stmt]) {
6433        match self {
6434            swc_visit::Either::Left(visitor) => Visit::visit_stmts(visitor, node),
6435            swc_visit::Either::Right(visitor) => Visit::visit_stmts(visitor, node),
6436        }
6437    }
6438
6439    #[inline]
6440    fn visit_str(&mut self, node: &Str) {
6441        match self {
6442            swc_visit::Either::Left(visitor) => Visit::visit_str(visitor, node),
6443            swc_visit::Either::Right(visitor) => Visit::visit_str(visitor, node),
6444        }
6445    }
6446
6447    #[inline]
6448    fn visit_super(&mut self, node: &Super) {
6449        match self {
6450            swc_visit::Either::Left(visitor) => Visit::visit_super(visitor, node),
6451            swc_visit::Either::Right(visitor) => Visit::visit_super(visitor, node),
6452        }
6453    }
6454
6455    #[inline]
6456    fn visit_super_prop(&mut self, node: &SuperProp) {
6457        match self {
6458            swc_visit::Either::Left(visitor) => Visit::visit_super_prop(visitor, node),
6459            swc_visit::Either::Right(visitor) => Visit::visit_super_prop(visitor, node),
6460        }
6461    }
6462
6463    #[inline]
6464    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
6465        match self {
6466            swc_visit::Either::Left(visitor) => Visit::visit_super_prop_expr(visitor, node),
6467            swc_visit::Either::Right(visitor) => Visit::visit_super_prop_expr(visitor, node),
6468        }
6469    }
6470
6471    #[inline]
6472    fn visit_switch_case(&mut self, node: &SwitchCase) {
6473        match self {
6474            swc_visit::Either::Left(visitor) => Visit::visit_switch_case(visitor, node),
6475            swc_visit::Either::Right(visitor) => Visit::visit_switch_case(visitor, node),
6476        }
6477    }
6478
6479    #[inline]
6480    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
6481        match self {
6482            swc_visit::Either::Left(visitor) => Visit::visit_switch_cases(visitor, node),
6483            swc_visit::Either::Right(visitor) => Visit::visit_switch_cases(visitor, node),
6484        }
6485    }
6486
6487    #[inline]
6488    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
6489        match self {
6490            swc_visit::Either::Left(visitor) => Visit::visit_switch_stmt(visitor, node),
6491            swc_visit::Either::Right(visitor) => Visit::visit_switch_stmt(visitor, node),
6492        }
6493    }
6494
6495    #[inline]
6496    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
6497        match self {
6498            swc_visit::Either::Left(visitor) => Visit::visit_syntax_context(visitor, node),
6499            swc_visit::Either::Right(visitor) => Visit::visit_syntax_context(visitor, node),
6500        }
6501    }
6502
6503    #[inline]
6504    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
6505        match self {
6506            swc_visit::Either::Left(visitor) => Visit::visit_tagged_tpl(visitor, node),
6507            swc_visit::Either::Right(visitor) => Visit::visit_tagged_tpl(visitor, node),
6508        }
6509    }
6510
6511    #[inline]
6512    fn visit_this_expr(&mut self, node: &ThisExpr) {
6513        match self {
6514            swc_visit::Either::Left(visitor) => Visit::visit_this_expr(visitor, node),
6515            swc_visit::Either::Right(visitor) => Visit::visit_this_expr(visitor, node),
6516        }
6517    }
6518
6519    #[inline]
6520    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
6521        match self {
6522            swc_visit::Either::Left(visitor) => Visit::visit_throw_stmt(visitor, node),
6523            swc_visit::Either::Right(visitor) => Visit::visit_throw_stmt(visitor, node),
6524        }
6525    }
6526
6527    #[inline]
6528    fn visit_tpl(&mut self, node: &Tpl) {
6529        match self {
6530            swc_visit::Either::Left(visitor) => Visit::visit_tpl(visitor, node),
6531            swc_visit::Either::Right(visitor) => Visit::visit_tpl(visitor, node),
6532        }
6533    }
6534
6535    #[inline]
6536    fn visit_tpl_element(&mut self, node: &TplElement) {
6537        match self {
6538            swc_visit::Either::Left(visitor) => Visit::visit_tpl_element(visitor, node),
6539            swc_visit::Either::Right(visitor) => Visit::visit_tpl_element(visitor, node),
6540        }
6541    }
6542
6543    #[inline]
6544    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
6545        match self {
6546            swc_visit::Either::Left(visitor) => Visit::visit_tpl_elements(visitor, node),
6547            swc_visit::Either::Right(visitor) => Visit::visit_tpl_elements(visitor, node),
6548        }
6549    }
6550
6551    #[inline]
6552    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
6553        match self {
6554            swc_visit::Either::Left(visitor) => Visit::visit_true_plus_minus(visitor, node),
6555            swc_visit::Either::Right(visitor) => Visit::visit_true_plus_minus(visitor, node),
6556        }
6557    }
6558
6559    #[inline]
6560    fn visit_try_stmt(&mut self, node: &TryStmt) {
6561        match self {
6562            swc_visit::Either::Left(visitor) => Visit::visit_try_stmt(visitor, node),
6563            swc_visit::Either::Right(visitor) => Visit::visit_try_stmt(visitor, node),
6564        }
6565    }
6566
6567    #[inline]
6568    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
6569        match self {
6570            swc_visit::Either::Left(visitor) => Visit::visit_ts_array_type(visitor, node),
6571            swc_visit::Either::Right(visitor) => Visit::visit_ts_array_type(visitor, node),
6572        }
6573    }
6574
6575    #[inline]
6576    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
6577        match self {
6578            swc_visit::Either::Left(visitor) => Visit::visit_ts_as_expr(visitor, node),
6579            swc_visit::Either::Right(visitor) => Visit::visit_ts_as_expr(visitor, node),
6580        }
6581    }
6582
6583    #[inline]
6584    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
6585        match self {
6586            swc_visit::Either::Left(visitor) => Visit::visit_ts_call_signature_decl(visitor, node),
6587            swc_visit::Either::Right(visitor) => Visit::visit_ts_call_signature_decl(visitor, node),
6588        }
6589    }
6590
6591    #[inline]
6592    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
6593        match self {
6594            swc_visit::Either::Left(visitor) => Visit::visit_ts_conditional_type(visitor, node),
6595            swc_visit::Either::Right(visitor) => Visit::visit_ts_conditional_type(visitor, node),
6596        }
6597    }
6598
6599    #[inline]
6600    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
6601        match self {
6602            swc_visit::Either::Left(visitor) => Visit::visit_ts_const_assertion(visitor, node),
6603            swc_visit::Either::Right(visitor) => Visit::visit_ts_const_assertion(visitor, node),
6604        }
6605    }
6606
6607    #[inline]
6608    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
6609        match self {
6610            swc_visit::Either::Left(visitor) => {
6611                Visit::visit_ts_construct_signature_decl(visitor, node)
6612            }
6613            swc_visit::Either::Right(visitor) => {
6614                Visit::visit_ts_construct_signature_decl(visitor, node)
6615            }
6616        }
6617    }
6618
6619    #[inline]
6620    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
6621        match self {
6622            swc_visit::Either::Left(visitor) => Visit::visit_ts_constructor_type(visitor, node),
6623            swc_visit::Either::Right(visitor) => Visit::visit_ts_constructor_type(visitor, node),
6624        }
6625    }
6626
6627    #[inline]
6628    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
6629        match self {
6630            swc_visit::Either::Left(visitor) => Visit::visit_ts_entity_name(visitor, node),
6631            swc_visit::Either::Right(visitor) => Visit::visit_ts_entity_name(visitor, node),
6632        }
6633    }
6634
6635    #[inline]
6636    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
6637        match self {
6638            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_decl(visitor, node),
6639            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_decl(visitor, node),
6640        }
6641    }
6642
6643    #[inline]
6644    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
6645        match self {
6646            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_member(visitor, node),
6647            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_member(visitor, node),
6648        }
6649    }
6650
6651    #[inline]
6652    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
6653        match self {
6654            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_member_id(visitor, node),
6655            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_member_id(visitor, node),
6656        }
6657    }
6658
6659    #[inline]
6660    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
6661        match self {
6662            swc_visit::Either::Left(visitor) => Visit::visit_ts_enum_members(visitor, node),
6663            swc_visit::Either::Right(visitor) => Visit::visit_ts_enum_members(visitor, node),
6664        }
6665    }
6666
6667    #[inline]
6668    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
6669        match self {
6670            swc_visit::Either::Left(visitor) => Visit::visit_ts_export_assignment(visitor, node),
6671            swc_visit::Either::Right(visitor) => Visit::visit_ts_export_assignment(visitor, node),
6672        }
6673    }
6674
6675    #[inline]
6676    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
6677        match self {
6678            swc_visit::Either::Left(visitor) => Visit::visit_ts_expr_with_type_args(visitor, node),
6679            swc_visit::Either::Right(visitor) => Visit::visit_ts_expr_with_type_args(visitor, node),
6680        }
6681    }
6682
6683    #[inline]
6684    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
6685        match self {
6686            swc_visit::Either::Left(visitor) => Visit::visit_ts_expr_with_type_argss(visitor, node),
6687            swc_visit::Either::Right(visitor) => {
6688                Visit::visit_ts_expr_with_type_argss(visitor, node)
6689            }
6690        }
6691    }
6692
6693    #[inline]
6694    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
6695        match self {
6696            swc_visit::Either::Left(visitor) => Visit::visit_ts_external_module_ref(visitor, node),
6697            swc_visit::Either::Right(visitor) => Visit::visit_ts_external_module_ref(visitor, node),
6698        }
6699    }
6700
6701    #[inline]
6702    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
6703        match self {
6704            swc_visit::Either::Left(visitor) => {
6705                Visit::visit_ts_fn_or_constructor_type(visitor, node)
6706            }
6707            swc_visit::Either::Right(visitor) => {
6708                Visit::visit_ts_fn_or_constructor_type(visitor, node)
6709            }
6710        }
6711    }
6712
6713    #[inline]
6714    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
6715        match self {
6716            swc_visit::Either::Left(visitor) => Visit::visit_ts_fn_param(visitor, node),
6717            swc_visit::Either::Right(visitor) => Visit::visit_ts_fn_param(visitor, node),
6718        }
6719    }
6720
6721    #[inline]
6722    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
6723        match self {
6724            swc_visit::Either::Left(visitor) => Visit::visit_ts_fn_params(visitor, node),
6725            swc_visit::Either::Right(visitor) => Visit::visit_ts_fn_params(visitor, node),
6726        }
6727    }
6728
6729    #[inline]
6730    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
6731        match self {
6732            swc_visit::Either::Left(visitor) => Visit::visit_ts_fn_type(visitor, node),
6733            swc_visit::Either::Right(visitor) => Visit::visit_ts_fn_type(visitor, node),
6734        }
6735    }
6736
6737    #[inline]
6738    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
6739        match self {
6740            swc_visit::Either::Left(visitor) => Visit::visit_ts_getter_signature(visitor, node),
6741            swc_visit::Either::Right(visitor) => Visit::visit_ts_getter_signature(visitor, node),
6742        }
6743    }
6744
6745    #[inline]
6746    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
6747        match self {
6748            swc_visit::Either::Left(visitor) => Visit::visit_ts_import_equals_decl(visitor, node),
6749            swc_visit::Either::Right(visitor) => Visit::visit_ts_import_equals_decl(visitor, node),
6750        }
6751    }
6752
6753    #[inline]
6754    fn visit_ts_import_type(&mut self, node: &TsImportType) {
6755        match self {
6756            swc_visit::Either::Left(visitor) => Visit::visit_ts_import_type(visitor, node),
6757            swc_visit::Either::Right(visitor) => Visit::visit_ts_import_type(visitor, node),
6758        }
6759    }
6760
6761    #[inline]
6762    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
6763        match self {
6764            swc_visit::Either::Left(visitor) => Visit::visit_ts_index_signature(visitor, node),
6765            swc_visit::Either::Right(visitor) => Visit::visit_ts_index_signature(visitor, node),
6766        }
6767    }
6768
6769    #[inline]
6770    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
6771        match self {
6772            swc_visit::Either::Left(visitor) => Visit::visit_ts_indexed_access_type(visitor, node),
6773            swc_visit::Either::Right(visitor) => Visit::visit_ts_indexed_access_type(visitor, node),
6774        }
6775    }
6776
6777    #[inline]
6778    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
6779        match self {
6780            swc_visit::Either::Left(visitor) => Visit::visit_ts_infer_type(visitor, node),
6781            swc_visit::Either::Right(visitor) => Visit::visit_ts_infer_type(visitor, node),
6782        }
6783    }
6784
6785    #[inline]
6786    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
6787        match self {
6788            swc_visit::Either::Left(visitor) => Visit::visit_ts_instantiation(visitor, node),
6789            swc_visit::Either::Right(visitor) => Visit::visit_ts_instantiation(visitor, node),
6790        }
6791    }
6792
6793    #[inline]
6794    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
6795        match self {
6796            swc_visit::Either::Left(visitor) => Visit::visit_ts_interface_body(visitor, node),
6797            swc_visit::Either::Right(visitor) => Visit::visit_ts_interface_body(visitor, node),
6798        }
6799    }
6800
6801    #[inline]
6802    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
6803        match self {
6804            swc_visit::Either::Left(visitor) => Visit::visit_ts_interface_decl(visitor, node),
6805            swc_visit::Either::Right(visitor) => Visit::visit_ts_interface_decl(visitor, node),
6806        }
6807    }
6808
6809    #[inline]
6810    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
6811        match self {
6812            swc_visit::Either::Left(visitor) => Visit::visit_ts_intersection_type(visitor, node),
6813            swc_visit::Either::Right(visitor) => Visit::visit_ts_intersection_type(visitor, node),
6814        }
6815    }
6816
6817    #[inline]
6818    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
6819        match self {
6820            swc_visit::Either::Left(visitor) => Visit::visit_ts_keyword_type(visitor, node),
6821            swc_visit::Either::Right(visitor) => Visit::visit_ts_keyword_type(visitor, node),
6822        }
6823    }
6824
6825    #[inline]
6826    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
6827        match self {
6828            swc_visit::Either::Left(visitor) => Visit::visit_ts_keyword_type_kind(visitor, node),
6829            swc_visit::Either::Right(visitor) => Visit::visit_ts_keyword_type_kind(visitor, node),
6830        }
6831    }
6832
6833    #[inline]
6834    fn visit_ts_lit(&mut self, node: &TsLit) {
6835        match self {
6836            swc_visit::Either::Left(visitor) => Visit::visit_ts_lit(visitor, node),
6837            swc_visit::Either::Right(visitor) => Visit::visit_ts_lit(visitor, node),
6838        }
6839    }
6840
6841    #[inline]
6842    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
6843        match self {
6844            swc_visit::Either::Left(visitor) => Visit::visit_ts_lit_type(visitor, node),
6845            swc_visit::Either::Right(visitor) => Visit::visit_ts_lit_type(visitor, node),
6846        }
6847    }
6848
6849    #[inline]
6850    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
6851        match self {
6852            swc_visit::Either::Left(visitor) => Visit::visit_ts_mapped_type(visitor, node),
6853            swc_visit::Either::Right(visitor) => Visit::visit_ts_mapped_type(visitor, node),
6854        }
6855    }
6856
6857    #[inline]
6858    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
6859        match self {
6860            swc_visit::Either::Left(visitor) => Visit::visit_ts_method_signature(visitor, node),
6861            swc_visit::Either::Right(visitor) => Visit::visit_ts_method_signature(visitor, node),
6862        }
6863    }
6864
6865    #[inline]
6866    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
6867        match self {
6868            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_block(visitor, node),
6869            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_block(visitor, node),
6870        }
6871    }
6872
6873    #[inline]
6874    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
6875        match self {
6876            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_decl(visitor, node),
6877            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_decl(visitor, node),
6878        }
6879    }
6880
6881    #[inline]
6882    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
6883        match self {
6884            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_name(visitor, node),
6885            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_name(visitor, node),
6886        }
6887    }
6888
6889    #[inline]
6890    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
6891        match self {
6892            swc_visit::Either::Left(visitor) => Visit::visit_ts_module_ref(visitor, node),
6893            swc_visit::Either::Right(visitor) => Visit::visit_ts_module_ref(visitor, node),
6894        }
6895    }
6896
6897    #[inline]
6898    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
6899        match self {
6900            swc_visit::Either::Left(visitor) => Visit::visit_ts_namespace_body(visitor, node),
6901            swc_visit::Either::Right(visitor) => Visit::visit_ts_namespace_body(visitor, node),
6902        }
6903    }
6904
6905    #[inline]
6906    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
6907        match self {
6908            swc_visit::Either::Left(visitor) => Visit::visit_ts_namespace_decl(visitor, node),
6909            swc_visit::Either::Right(visitor) => Visit::visit_ts_namespace_decl(visitor, node),
6910        }
6911    }
6912
6913    #[inline]
6914    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
6915        match self {
6916            swc_visit::Either::Left(visitor) => {
6917                Visit::visit_ts_namespace_export_decl(visitor, node)
6918            }
6919            swc_visit::Either::Right(visitor) => {
6920                Visit::visit_ts_namespace_export_decl(visitor, node)
6921            }
6922        }
6923    }
6924
6925    #[inline]
6926    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
6927        match self {
6928            swc_visit::Either::Left(visitor) => Visit::visit_ts_non_null_expr(visitor, node),
6929            swc_visit::Either::Right(visitor) => Visit::visit_ts_non_null_expr(visitor, node),
6930        }
6931    }
6932
6933    #[inline]
6934    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
6935        match self {
6936            swc_visit::Either::Left(visitor) => Visit::visit_ts_optional_type(visitor, node),
6937            swc_visit::Either::Right(visitor) => Visit::visit_ts_optional_type(visitor, node),
6938        }
6939    }
6940
6941    #[inline]
6942    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
6943        match self {
6944            swc_visit::Either::Left(visitor) => Visit::visit_ts_param_prop(visitor, node),
6945            swc_visit::Either::Right(visitor) => Visit::visit_ts_param_prop(visitor, node),
6946        }
6947    }
6948
6949    #[inline]
6950    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
6951        match self {
6952            swc_visit::Either::Left(visitor) => Visit::visit_ts_param_prop_param(visitor, node),
6953            swc_visit::Either::Right(visitor) => Visit::visit_ts_param_prop_param(visitor, node),
6954        }
6955    }
6956
6957    #[inline]
6958    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
6959        match self {
6960            swc_visit::Either::Left(visitor) => Visit::visit_ts_parenthesized_type(visitor, node),
6961            swc_visit::Either::Right(visitor) => Visit::visit_ts_parenthesized_type(visitor, node),
6962        }
6963    }
6964
6965    #[inline]
6966    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
6967        match self {
6968            swc_visit::Either::Left(visitor) => Visit::visit_ts_property_signature(visitor, node),
6969            swc_visit::Either::Right(visitor) => Visit::visit_ts_property_signature(visitor, node),
6970        }
6971    }
6972
6973    #[inline]
6974    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
6975        match self {
6976            swc_visit::Either::Left(visitor) => Visit::visit_ts_qualified_name(visitor, node),
6977            swc_visit::Either::Right(visitor) => Visit::visit_ts_qualified_name(visitor, node),
6978        }
6979    }
6980
6981    #[inline]
6982    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
6983        match self {
6984            swc_visit::Either::Left(visitor) => Visit::visit_ts_rest_type(visitor, node),
6985            swc_visit::Either::Right(visitor) => Visit::visit_ts_rest_type(visitor, node),
6986        }
6987    }
6988
6989    #[inline]
6990    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
6991        match self {
6992            swc_visit::Either::Left(visitor) => Visit::visit_ts_satisfies_expr(visitor, node),
6993            swc_visit::Either::Right(visitor) => Visit::visit_ts_satisfies_expr(visitor, node),
6994        }
6995    }
6996
6997    #[inline]
6998    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
6999        match self {
7000            swc_visit::Either::Left(visitor) => Visit::visit_ts_setter_signature(visitor, node),
7001            swc_visit::Either::Right(visitor) => Visit::visit_ts_setter_signature(visitor, node),
7002        }
7003    }
7004
7005    #[inline]
7006    fn visit_ts_this_type(&mut self, node: &TsThisType) {
7007        match self {
7008            swc_visit::Either::Left(visitor) => Visit::visit_ts_this_type(visitor, node),
7009            swc_visit::Either::Right(visitor) => Visit::visit_ts_this_type(visitor, node),
7010        }
7011    }
7012
7013    #[inline]
7014    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
7015        match self {
7016            swc_visit::Either::Left(visitor) => Visit::visit_ts_this_type_or_ident(visitor, node),
7017            swc_visit::Either::Right(visitor) => Visit::visit_ts_this_type_or_ident(visitor, node),
7018        }
7019    }
7020
7021    #[inline]
7022    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
7023        match self {
7024            swc_visit::Either::Left(visitor) => Visit::visit_ts_tpl_lit_type(visitor, node),
7025            swc_visit::Either::Right(visitor) => Visit::visit_ts_tpl_lit_type(visitor, node),
7026        }
7027    }
7028
7029    #[inline]
7030    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
7031        match self {
7032            swc_visit::Either::Left(visitor) => Visit::visit_ts_tuple_element(visitor, node),
7033            swc_visit::Either::Right(visitor) => Visit::visit_ts_tuple_element(visitor, node),
7034        }
7035    }
7036
7037    #[inline]
7038    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
7039        match self {
7040            swc_visit::Either::Left(visitor) => Visit::visit_ts_tuple_elements(visitor, node),
7041            swc_visit::Either::Right(visitor) => Visit::visit_ts_tuple_elements(visitor, node),
7042        }
7043    }
7044
7045    #[inline]
7046    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
7047        match self {
7048            swc_visit::Either::Left(visitor) => Visit::visit_ts_tuple_type(visitor, node),
7049            swc_visit::Either::Right(visitor) => Visit::visit_ts_tuple_type(visitor, node),
7050        }
7051    }
7052
7053    #[inline]
7054    fn visit_ts_type(&mut self, node: &TsType) {
7055        match self {
7056            swc_visit::Either::Left(visitor) => Visit::visit_ts_type(visitor, node),
7057            swc_visit::Either::Right(visitor) => Visit::visit_ts_type(visitor, node),
7058        }
7059    }
7060
7061    #[inline]
7062    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
7063        match self {
7064            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_alias_decl(visitor, node),
7065            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_alias_decl(visitor, node),
7066        }
7067    }
7068
7069    #[inline]
7070    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
7071        match self {
7072            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_ann(visitor, node),
7073            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_ann(visitor, node),
7074        }
7075    }
7076
7077    #[inline]
7078    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
7079        match self {
7080            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_assertion(visitor, node),
7081            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_assertion(visitor, node),
7082        }
7083    }
7084
7085    #[inline]
7086    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
7087        match self {
7088            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_element(visitor, node),
7089            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_element(visitor, node),
7090        }
7091    }
7092
7093    #[inline]
7094    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
7095        match self {
7096            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_elements(visitor, node),
7097            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_elements(visitor, node),
7098        }
7099    }
7100
7101    #[inline]
7102    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
7103        match self {
7104            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_lit(visitor, node),
7105            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_lit(visitor, node),
7106        }
7107    }
7108
7109    #[inline]
7110    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
7111        match self {
7112            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_operator(visitor, node),
7113            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_operator(visitor, node),
7114        }
7115    }
7116
7117    #[inline]
7118    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
7119        match self {
7120            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_operator_op(visitor, node),
7121            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_operator_op(visitor, node),
7122        }
7123    }
7124
7125    #[inline]
7126    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
7127        match self {
7128            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_param(visitor, node),
7129            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_param(visitor, node),
7130        }
7131    }
7132
7133    #[inline]
7134    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
7135        match self {
7136            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_param_decl(visitor, node),
7137            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_param_decl(visitor, node),
7138        }
7139    }
7140
7141    #[inline]
7142    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
7143        match self {
7144            swc_visit::Either::Left(visitor) => {
7145                Visit::visit_ts_type_param_instantiation(visitor, node)
7146            }
7147            swc_visit::Either::Right(visitor) => {
7148                Visit::visit_ts_type_param_instantiation(visitor, node)
7149            }
7150        }
7151    }
7152
7153    #[inline]
7154    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
7155        match self {
7156            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_params(visitor, node),
7157            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_params(visitor, node),
7158        }
7159    }
7160
7161    #[inline]
7162    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
7163        match self {
7164            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_predicate(visitor, node),
7165            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_predicate(visitor, node),
7166        }
7167    }
7168
7169    #[inline]
7170    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
7171        match self {
7172            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_query(visitor, node),
7173            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_query(visitor, node),
7174        }
7175    }
7176
7177    #[inline]
7178    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
7179        match self {
7180            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_query_expr(visitor, node),
7181            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_query_expr(visitor, node),
7182        }
7183    }
7184
7185    #[inline]
7186    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
7187        match self {
7188            swc_visit::Either::Left(visitor) => Visit::visit_ts_type_ref(visitor, node),
7189            swc_visit::Either::Right(visitor) => Visit::visit_ts_type_ref(visitor, node),
7190        }
7191    }
7192
7193    #[inline]
7194    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
7195        match self {
7196            swc_visit::Either::Left(visitor) => Visit::visit_ts_types(visitor, node),
7197            swc_visit::Either::Right(visitor) => Visit::visit_ts_types(visitor, node),
7198        }
7199    }
7200
7201    #[inline]
7202    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
7203        match self {
7204            swc_visit::Either::Left(visitor) => {
7205                Visit::visit_ts_union_or_intersection_type(visitor, node)
7206            }
7207            swc_visit::Either::Right(visitor) => {
7208                Visit::visit_ts_union_or_intersection_type(visitor, node)
7209            }
7210        }
7211    }
7212
7213    #[inline]
7214    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
7215        match self {
7216            swc_visit::Either::Left(visitor) => Visit::visit_ts_union_type(visitor, node),
7217            swc_visit::Either::Right(visitor) => Visit::visit_ts_union_type(visitor, node),
7218        }
7219    }
7220
7221    #[inline]
7222    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
7223        match self {
7224            swc_visit::Either::Left(visitor) => Visit::visit_unary_expr(visitor, node),
7225            swc_visit::Either::Right(visitor) => Visit::visit_unary_expr(visitor, node),
7226        }
7227    }
7228
7229    #[inline]
7230    fn visit_unary_op(&mut self, node: &UnaryOp) {
7231        match self {
7232            swc_visit::Either::Left(visitor) => Visit::visit_unary_op(visitor, node),
7233            swc_visit::Either::Right(visitor) => Visit::visit_unary_op(visitor, node),
7234        }
7235    }
7236
7237    #[inline]
7238    fn visit_update_expr(&mut self, node: &UpdateExpr) {
7239        match self {
7240            swc_visit::Either::Left(visitor) => Visit::visit_update_expr(visitor, node),
7241            swc_visit::Either::Right(visitor) => Visit::visit_update_expr(visitor, node),
7242        }
7243    }
7244
7245    #[inline]
7246    fn visit_update_op(&mut self, node: &UpdateOp) {
7247        match self {
7248            swc_visit::Either::Left(visitor) => Visit::visit_update_op(visitor, node),
7249            swc_visit::Either::Right(visitor) => Visit::visit_update_op(visitor, node),
7250        }
7251    }
7252
7253    #[inline]
7254    fn visit_using_decl(&mut self, node: &UsingDecl) {
7255        match self {
7256            swc_visit::Either::Left(visitor) => Visit::visit_using_decl(visitor, node),
7257            swc_visit::Either::Right(visitor) => Visit::visit_using_decl(visitor, node),
7258        }
7259    }
7260
7261    #[inline]
7262    fn visit_var_decl(&mut self, node: &VarDecl) {
7263        match self {
7264            swc_visit::Either::Left(visitor) => Visit::visit_var_decl(visitor, node),
7265            swc_visit::Either::Right(visitor) => Visit::visit_var_decl(visitor, node),
7266        }
7267    }
7268
7269    #[inline]
7270    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
7271        match self {
7272            swc_visit::Either::Left(visitor) => Visit::visit_var_decl_kind(visitor, node),
7273            swc_visit::Either::Right(visitor) => Visit::visit_var_decl_kind(visitor, node),
7274        }
7275    }
7276
7277    #[inline]
7278    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
7279        match self {
7280            swc_visit::Either::Left(visitor) => Visit::visit_var_decl_or_expr(visitor, node),
7281            swc_visit::Either::Right(visitor) => Visit::visit_var_decl_or_expr(visitor, node),
7282        }
7283    }
7284
7285    #[inline]
7286    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
7287        match self {
7288            swc_visit::Either::Left(visitor) => Visit::visit_var_declarator(visitor, node),
7289            swc_visit::Either::Right(visitor) => Visit::visit_var_declarator(visitor, node),
7290        }
7291    }
7292
7293    #[inline]
7294    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
7295        match self {
7296            swc_visit::Either::Left(visitor) => Visit::visit_var_declarators(visitor, node),
7297            swc_visit::Either::Right(visitor) => Visit::visit_var_declarators(visitor, node),
7298        }
7299    }
7300
7301    #[inline]
7302    fn visit_while_stmt(&mut self, node: &WhileStmt) {
7303        match self {
7304            swc_visit::Either::Left(visitor) => Visit::visit_while_stmt(visitor, node),
7305            swc_visit::Either::Right(visitor) => Visit::visit_while_stmt(visitor, node),
7306        }
7307    }
7308
7309    #[inline]
7310    fn visit_with_stmt(&mut self, node: &WithStmt) {
7311        match self {
7312            swc_visit::Either::Left(visitor) => Visit::visit_with_stmt(visitor, node),
7313            swc_visit::Either::Right(visitor) => Visit::visit_with_stmt(visitor, node),
7314        }
7315    }
7316
7317    #[inline]
7318    fn visit_yield_expr(&mut self, node: &YieldExpr) {
7319        match self {
7320            swc_visit::Either::Left(visitor) => Visit::visit_yield_expr(visitor, node),
7321            swc_visit::Either::Right(visitor) => Visit::visit_yield_expr(visitor, node),
7322        }
7323    }
7324}
7325impl<V> Visit for ::swc_visit::Optional<V>
7326where
7327    V: Visit,
7328{
7329    #[inline]
7330    fn visit_accessibility(&mut self, node: &Accessibility) {
7331        if self.enabled {
7332            <V as Visit>::visit_accessibility(&mut self.visitor, node)
7333        } else {
7334        }
7335    }
7336
7337    #[inline]
7338    fn visit_array_lit(&mut self, node: &ArrayLit) {
7339        if self.enabled {
7340            <V as Visit>::visit_array_lit(&mut self.visitor, node)
7341        } else {
7342        }
7343    }
7344
7345    #[inline]
7346    fn visit_array_pat(&mut self, node: &ArrayPat) {
7347        if self.enabled {
7348            <V as Visit>::visit_array_pat(&mut self.visitor, node)
7349        } else {
7350        }
7351    }
7352
7353    #[inline]
7354    fn visit_arrow_expr(&mut self, node: &ArrowExpr) {
7355        if self.enabled {
7356            <V as Visit>::visit_arrow_expr(&mut self.visitor, node)
7357        } else {
7358        }
7359    }
7360
7361    #[inline]
7362    fn visit_assign_expr(&mut self, node: &AssignExpr) {
7363        if self.enabled {
7364            <V as Visit>::visit_assign_expr(&mut self.visitor, node)
7365        } else {
7366        }
7367    }
7368
7369    #[inline]
7370    fn visit_assign_op(&mut self, node: &AssignOp) {
7371        if self.enabled {
7372            <V as Visit>::visit_assign_op(&mut self.visitor, node)
7373        } else {
7374        }
7375    }
7376
7377    #[inline]
7378    fn visit_assign_pat(&mut self, node: &AssignPat) {
7379        if self.enabled {
7380            <V as Visit>::visit_assign_pat(&mut self.visitor, node)
7381        } else {
7382        }
7383    }
7384
7385    #[inline]
7386    fn visit_assign_pat_prop(&mut self, node: &AssignPatProp) {
7387        if self.enabled {
7388            <V as Visit>::visit_assign_pat_prop(&mut self.visitor, node)
7389        } else {
7390        }
7391    }
7392
7393    #[inline]
7394    fn visit_assign_prop(&mut self, node: &AssignProp) {
7395        if self.enabled {
7396            <V as Visit>::visit_assign_prop(&mut self.visitor, node)
7397        } else {
7398        }
7399    }
7400
7401    #[inline]
7402    fn visit_assign_target(&mut self, node: &AssignTarget) {
7403        if self.enabled {
7404            <V as Visit>::visit_assign_target(&mut self.visitor, node)
7405        } else {
7406        }
7407    }
7408
7409    #[inline]
7410    fn visit_assign_target_pat(&mut self, node: &AssignTargetPat) {
7411        if self.enabled {
7412            <V as Visit>::visit_assign_target_pat(&mut self.visitor, node)
7413        } else {
7414        }
7415    }
7416
7417    #[inline]
7418    fn visit_atom(&mut self, node: &swc_atoms::Atom) {
7419        if self.enabled {
7420            <V as Visit>::visit_atom(&mut self.visitor, node)
7421        } else {
7422        }
7423    }
7424
7425    #[inline]
7426    fn visit_auto_accessor(&mut self, node: &AutoAccessor) {
7427        if self.enabled {
7428            <V as Visit>::visit_auto_accessor(&mut self.visitor, node)
7429        } else {
7430        }
7431    }
7432
7433    #[inline]
7434    fn visit_await_expr(&mut self, node: &AwaitExpr) {
7435        if self.enabled {
7436            <V as Visit>::visit_await_expr(&mut self.visitor, node)
7437        } else {
7438        }
7439    }
7440
7441    #[inline]
7442    fn visit_big_int(&mut self, node: &BigInt) {
7443        if self.enabled {
7444            <V as Visit>::visit_big_int(&mut self.visitor, node)
7445        } else {
7446        }
7447    }
7448
7449    #[inline]
7450    fn visit_big_int_value(&mut self, node: &BigIntValue) {
7451        if self.enabled {
7452            <V as Visit>::visit_big_int_value(&mut self.visitor, node)
7453        } else {
7454        }
7455    }
7456
7457    #[inline]
7458    fn visit_bin_expr(&mut self, node: &BinExpr) {
7459        if self.enabled {
7460            <V as Visit>::visit_bin_expr(&mut self.visitor, node)
7461        } else {
7462        }
7463    }
7464
7465    #[inline]
7466    fn visit_binary_op(&mut self, node: &BinaryOp) {
7467        if self.enabled {
7468            <V as Visit>::visit_binary_op(&mut self.visitor, node)
7469        } else {
7470        }
7471    }
7472
7473    #[inline]
7474    fn visit_binding_ident(&mut self, node: &BindingIdent) {
7475        if self.enabled {
7476            <V as Visit>::visit_binding_ident(&mut self.visitor, node)
7477        } else {
7478        }
7479    }
7480
7481    #[inline]
7482    fn visit_block_stmt(&mut self, node: &BlockStmt) {
7483        if self.enabled {
7484            <V as Visit>::visit_block_stmt(&mut self.visitor, node)
7485        } else {
7486        }
7487    }
7488
7489    #[inline]
7490    fn visit_block_stmt_or_expr(&mut self, node: &BlockStmtOrExpr) {
7491        if self.enabled {
7492            <V as Visit>::visit_block_stmt_or_expr(&mut self.visitor, node)
7493        } else {
7494        }
7495    }
7496
7497    #[inline]
7498    fn visit_bool(&mut self, node: &Bool) {
7499        if self.enabled {
7500            <V as Visit>::visit_bool(&mut self.visitor, node)
7501        } else {
7502        }
7503    }
7504
7505    #[inline]
7506    fn visit_break_stmt(&mut self, node: &BreakStmt) {
7507        if self.enabled {
7508            <V as Visit>::visit_break_stmt(&mut self.visitor, node)
7509        } else {
7510        }
7511    }
7512
7513    #[inline]
7514    fn visit_call_expr(&mut self, node: &CallExpr) {
7515        if self.enabled {
7516            <V as Visit>::visit_call_expr(&mut self.visitor, node)
7517        } else {
7518        }
7519    }
7520
7521    #[inline]
7522    fn visit_callee(&mut self, node: &Callee) {
7523        if self.enabled {
7524            <V as Visit>::visit_callee(&mut self.visitor, node)
7525        } else {
7526        }
7527    }
7528
7529    #[inline]
7530    fn visit_catch_clause(&mut self, node: &CatchClause) {
7531        if self.enabled {
7532            <V as Visit>::visit_catch_clause(&mut self.visitor, node)
7533        } else {
7534        }
7535    }
7536
7537    #[inline]
7538    fn visit_class(&mut self, node: &Class) {
7539        if self.enabled {
7540            <V as Visit>::visit_class(&mut self.visitor, node)
7541        } else {
7542        }
7543    }
7544
7545    #[inline]
7546    fn visit_class_decl(&mut self, node: &ClassDecl) {
7547        if self.enabled {
7548            <V as Visit>::visit_class_decl(&mut self.visitor, node)
7549        } else {
7550        }
7551    }
7552
7553    #[inline]
7554    fn visit_class_expr(&mut self, node: &ClassExpr) {
7555        if self.enabled {
7556            <V as Visit>::visit_class_expr(&mut self.visitor, node)
7557        } else {
7558        }
7559    }
7560
7561    #[inline]
7562    fn visit_class_member(&mut self, node: &ClassMember) {
7563        if self.enabled {
7564            <V as Visit>::visit_class_member(&mut self.visitor, node)
7565        } else {
7566        }
7567    }
7568
7569    #[inline]
7570    fn visit_class_members(&mut self, node: &[ClassMember]) {
7571        if self.enabled {
7572            <V as Visit>::visit_class_members(&mut self.visitor, node)
7573        } else {
7574        }
7575    }
7576
7577    #[inline]
7578    fn visit_class_method(&mut self, node: &ClassMethod) {
7579        if self.enabled {
7580            <V as Visit>::visit_class_method(&mut self.visitor, node)
7581        } else {
7582        }
7583    }
7584
7585    #[inline]
7586    fn visit_class_prop(&mut self, node: &ClassProp) {
7587        if self.enabled {
7588            <V as Visit>::visit_class_prop(&mut self.visitor, node)
7589        } else {
7590        }
7591    }
7592
7593    #[inline]
7594    fn visit_computed_prop_name(&mut self, node: &ComputedPropName) {
7595        if self.enabled {
7596            <V as Visit>::visit_computed_prop_name(&mut self.visitor, node)
7597        } else {
7598        }
7599    }
7600
7601    #[inline]
7602    fn visit_cond_expr(&mut self, node: &CondExpr) {
7603        if self.enabled {
7604            <V as Visit>::visit_cond_expr(&mut self.visitor, node)
7605        } else {
7606        }
7607    }
7608
7609    #[inline]
7610    fn visit_constructor(&mut self, node: &Constructor) {
7611        if self.enabled {
7612            <V as Visit>::visit_constructor(&mut self.visitor, node)
7613        } else {
7614        }
7615    }
7616
7617    #[inline]
7618    fn visit_continue_stmt(&mut self, node: &ContinueStmt) {
7619        if self.enabled {
7620            <V as Visit>::visit_continue_stmt(&mut self.visitor, node)
7621        } else {
7622        }
7623    }
7624
7625    #[inline]
7626    fn visit_debugger_stmt(&mut self, node: &DebuggerStmt) {
7627        if self.enabled {
7628            <V as Visit>::visit_debugger_stmt(&mut self.visitor, node)
7629        } else {
7630        }
7631    }
7632
7633    #[inline]
7634    fn visit_decl(&mut self, node: &Decl) {
7635        if self.enabled {
7636            <V as Visit>::visit_decl(&mut self.visitor, node)
7637        } else {
7638        }
7639    }
7640
7641    #[inline]
7642    fn visit_decorator(&mut self, node: &Decorator) {
7643        if self.enabled {
7644            <V as Visit>::visit_decorator(&mut self.visitor, node)
7645        } else {
7646        }
7647    }
7648
7649    #[inline]
7650    fn visit_decorators(&mut self, node: &[Decorator]) {
7651        if self.enabled {
7652            <V as Visit>::visit_decorators(&mut self.visitor, node)
7653        } else {
7654        }
7655    }
7656
7657    #[inline]
7658    fn visit_default_decl(&mut self, node: &DefaultDecl) {
7659        if self.enabled {
7660            <V as Visit>::visit_default_decl(&mut self.visitor, node)
7661        } else {
7662        }
7663    }
7664
7665    #[inline]
7666    fn visit_do_while_stmt(&mut self, node: &DoWhileStmt) {
7667        if self.enabled {
7668            <V as Visit>::visit_do_while_stmt(&mut self.visitor, node)
7669        } else {
7670        }
7671    }
7672
7673    #[inline]
7674    fn visit_empty_stmt(&mut self, node: &EmptyStmt) {
7675        if self.enabled {
7676            <V as Visit>::visit_empty_stmt(&mut self.visitor, node)
7677        } else {
7678        }
7679    }
7680
7681    #[inline]
7682    fn visit_export_all(&mut self, node: &ExportAll) {
7683        if self.enabled {
7684            <V as Visit>::visit_export_all(&mut self.visitor, node)
7685        } else {
7686        }
7687    }
7688
7689    #[inline]
7690    fn visit_export_decl(&mut self, node: &ExportDecl) {
7691        if self.enabled {
7692            <V as Visit>::visit_export_decl(&mut self.visitor, node)
7693        } else {
7694        }
7695    }
7696
7697    #[inline]
7698    fn visit_export_default_decl(&mut self, node: &ExportDefaultDecl) {
7699        if self.enabled {
7700            <V as Visit>::visit_export_default_decl(&mut self.visitor, node)
7701        } else {
7702        }
7703    }
7704
7705    #[inline]
7706    fn visit_export_default_expr(&mut self, node: &ExportDefaultExpr) {
7707        if self.enabled {
7708            <V as Visit>::visit_export_default_expr(&mut self.visitor, node)
7709        } else {
7710        }
7711    }
7712
7713    #[inline]
7714    fn visit_export_default_specifier(&mut self, node: &ExportDefaultSpecifier) {
7715        if self.enabled {
7716            <V as Visit>::visit_export_default_specifier(&mut self.visitor, node)
7717        } else {
7718        }
7719    }
7720
7721    #[inline]
7722    fn visit_export_named_specifier(&mut self, node: &ExportNamedSpecifier) {
7723        if self.enabled {
7724            <V as Visit>::visit_export_named_specifier(&mut self.visitor, node)
7725        } else {
7726        }
7727    }
7728
7729    #[inline]
7730    fn visit_export_namespace_specifier(&mut self, node: &ExportNamespaceSpecifier) {
7731        if self.enabled {
7732            <V as Visit>::visit_export_namespace_specifier(&mut self.visitor, node)
7733        } else {
7734        }
7735    }
7736
7737    #[inline]
7738    fn visit_export_specifier(&mut self, node: &ExportSpecifier) {
7739        if self.enabled {
7740            <V as Visit>::visit_export_specifier(&mut self.visitor, node)
7741        } else {
7742        }
7743    }
7744
7745    #[inline]
7746    fn visit_export_specifiers(&mut self, node: &[ExportSpecifier]) {
7747        if self.enabled {
7748            <V as Visit>::visit_export_specifiers(&mut self.visitor, node)
7749        } else {
7750        }
7751    }
7752
7753    #[inline]
7754    fn visit_expr(&mut self, node: &Expr) {
7755        if self.enabled {
7756            <V as Visit>::visit_expr(&mut self.visitor, node)
7757        } else {
7758        }
7759    }
7760
7761    #[inline]
7762    fn visit_expr_or_spread(&mut self, node: &ExprOrSpread) {
7763        if self.enabled {
7764            <V as Visit>::visit_expr_or_spread(&mut self.visitor, node)
7765        } else {
7766        }
7767    }
7768
7769    #[inline]
7770    fn visit_expr_or_spreads(&mut self, node: &[ExprOrSpread]) {
7771        if self.enabled {
7772            <V as Visit>::visit_expr_or_spreads(&mut self.visitor, node)
7773        } else {
7774        }
7775    }
7776
7777    #[inline]
7778    fn visit_expr_stmt(&mut self, node: &ExprStmt) {
7779        if self.enabled {
7780            <V as Visit>::visit_expr_stmt(&mut self.visitor, node)
7781        } else {
7782        }
7783    }
7784
7785    #[inline]
7786    fn visit_exprs(&mut self, node: &[Box<Expr>]) {
7787        if self.enabled {
7788            <V as Visit>::visit_exprs(&mut self.visitor, node)
7789        } else {
7790        }
7791    }
7792
7793    #[inline]
7794    fn visit_fn_decl(&mut self, node: &FnDecl) {
7795        if self.enabled {
7796            <V as Visit>::visit_fn_decl(&mut self.visitor, node)
7797        } else {
7798        }
7799    }
7800
7801    #[inline]
7802    fn visit_fn_expr(&mut self, node: &FnExpr) {
7803        if self.enabled {
7804            <V as Visit>::visit_fn_expr(&mut self.visitor, node)
7805        } else {
7806        }
7807    }
7808
7809    #[inline]
7810    fn visit_for_head(&mut self, node: &ForHead) {
7811        if self.enabled {
7812            <V as Visit>::visit_for_head(&mut self.visitor, node)
7813        } else {
7814        }
7815    }
7816
7817    #[inline]
7818    fn visit_for_in_stmt(&mut self, node: &ForInStmt) {
7819        if self.enabled {
7820            <V as Visit>::visit_for_in_stmt(&mut self.visitor, node)
7821        } else {
7822        }
7823    }
7824
7825    #[inline]
7826    fn visit_for_of_stmt(&mut self, node: &ForOfStmt) {
7827        if self.enabled {
7828            <V as Visit>::visit_for_of_stmt(&mut self.visitor, node)
7829        } else {
7830        }
7831    }
7832
7833    #[inline]
7834    fn visit_for_stmt(&mut self, node: &ForStmt) {
7835        if self.enabled {
7836            <V as Visit>::visit_for_stmt(&mut self.visitor, node)
7837        } else {
7838        }
7839    }
7840
7841    #[inline]
7842    fn visit_function(&mut self, node: &Function) {
7843        if self.enabled {
7844            <V as Visit>::visit_function(&mut self.visitor, node)
7845        } else {
7846        }
7847    }
7848
7849    #[inline]
7850    fn visit_getter_prop(&mut self, node: &GetterProp) {
7851        if self.enabled {
7852            <V as Visit>::visit_getter_prop(&mut self.visitor, node)
7853        } else {
7854        }
7855    }
7856
7857    #[inline]
7858    fn visit_ident(&mut self, node: &Ident) {
7859        if self.enabled {
7860            <V as Visit>::visit_ident(&mut self.visitor, node)
7861        } else {
7862        }
7863    }
7864
7865    #[inline]
7866    fn visit_ident_name(&mut self, node: &IdentName) {
7867        if self.enabled {
7868            <V as Visit>::visit_ident_name(&mut self.visitor, node)
7869        } else {
7870        }
7871    }
7872
7873    #[inline]
7874    fn visit_if_stmt(&mut self, node: &IfStmt) {
7875        if self.enabled {
7876            <V as Visit>::visit_if_stmt(&mut self.visitor, node)
7877        } else {
7878        }
7879    }
7880
7881    #[inline]
7882    fn visit_import(&mut self, node: &Import) {
7883        if self.enabled {
7884            <V as Visit>::visit_import(&mut self.visitor, node)
7885        } else {
7886        }
7887    }
7888
7889    #[inline]
7890    fn visit_import_decl(&mut self, node: &ImportDecl) {
7891        if self.enabled {
7892            <V as Visit>::visit_import_decl(&mut self.visitor, node)
7893        } else {
7894        }
7895    }
7896
7897    #[inline]
7898    fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
7899        if self.enabled {
7900            <V as Visit>::visit_import_default_specifier(&mut self.visitor, node)
7901        } else {
7902        }
7903    }
7904
7905    #[inline]
7906    fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
7907        if self.enabled {
7908            <V as Visit>::visit_import_named_specifier(&mut self.visitor, node)
7909        } else {
7910        }
7911    }
7912
7913    #[inline]
7914    fn visit_import_phase(&mut self, node: &ImportPhase) {
7915        if self.enabled {
7916            <V as Visit>::visit_import_phase(&mut self.visitor, node)
7917        } else {
7918        }
7919    }
7920
7921    #[inline]
7922    fn visit_import_specifier(&mut self, node: &ImportSpecifier) {
7923        if self.enabled {
7924            <V as Visit>::visit_import_specifier(&mut self.visitor, node)
7925        } else {
7926        }
7927    }
7928
7929    #[inline]
7930    fn visit_import_specifiers(&mut self, node: &[ImportSpecifier]) {
7931        if self.enabled {
7932            <V as Visit>::visit_import_specifiers(&mut self.visitor, node)
7933        } else {
7934        }
7935    }
7936
7937    #[inline]
7938    fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
7939        if self.enabled {
7940            <V as Visit>::visit_import_star_as_specifier(&mut self.visitor, node)
7941        } else {
7942        }
7943    }
7944
7945    #[inline]
7946    fn visit_import_with(&mut self, node: &ImportWith) {
7947        if self.enabled {
7948            <V as Visit>::visit_import_with(&mut self.visitor, node)
7949        } else {
7950        }
7951    }
7952
7953    #[inline]
7954    fn visit_import_with_item(&mut self, node: &ImportWithItem) {
7955        if self.enabled {
7956            <V as Visit>::visit_import_with_item(&mut self.visitor, node)
7957        } else {
7958        }
7959    }
7960
7961    #[inline]
7962    fn visit_import_with_items(&mut self, node: &[ImportWithItem]) {
7963        if self.enabled {
7964            <V as Visit>::visit_import_with_items(&mut self.visitor, node)
7965        } else {
7966        }
7967    }
7968
7969    #[inline]
7970    fn visit_invalid(&mut self, node: &Invalid) {
7971        if self.enabled {
7972            <V as Visit>::visit_invalid(&mut self.visitor, node)
7973        } else {
7974        }
7975    }
7976
7977    #[inline]
7978    fn visit_jsx_attr(&mut self, node: &JSXAttr) {
7979        if self.enabled {
7980            <V as Visit>::visit_jsx_attr(&mut self.visitor, node)
7981        } else {
7982        }
7983    }
7984
7985    #[inline]
7986    fn visit_jsx_attr_name(&mut self, node: &JSXAttrName) {
7987        if self.enabled {
7988            <V as Visit>::visit_jsx_attr_name(&mut self.visitor, node)
7989        } else {
7990        }
7991    }
7992
7993    #[inline]
7994    fn visit_jsx_attr_or_spread(&mut self, node: &JSXAttrOrSpread) {
7995        if self.enabled {
7996            <V as Visit>::visit_jsx_attr_or_spread(&mut self.visitor, node)
7997        } else {
7998        }
7999    }
8000
8001    #[inline]
8002    fn visit_jsx_attr_or_spreads(&mut self, node: &[JSXAttrOrSpread]) {
8003        if self.enabled {
8004            <V as Visit>::visit_jsx_attr_or_spreads(&mut self.visitor, node)
8005        } else {
8006        }
8007    }
8008
8009    #[inline]
8010    fn visit_jsx_attr_value(&mut self, node: &JSXAttrValue) {
8011        if self.enabled {
8012            <V as Visit>::visit_jsx_attr_value(&mut self.visitor, node)
8013        } else {
8014        }
8015    }
8016
8017    #[inline]
8018    fn visit_jsx_closing_element(&mut self, node: &JSXClosingElement) {
8019        if self.enabled {
8020            <V as Visit>::visit_jsx_closing_element(&mut self.visitor, node)
8021        } else {
8022        }
8023    }
8024
8025    #[inline]
8026    fn visit_jsx_closing_fragment(&mut self, node: &JSXClosingFragment) {
8027        if self.enabled {
8028            <V as Visit>::visit_jsx_closing_fragment(&mut self.visitor, node)
8029        } else {
8030        }
8031    }
8032
8033    #[inline]
8034    fn visit_jsx_element(&mut self, node: &JSXElement) {
8035        if self.enabled {
8036            <V as Visit>::visit_jsx_element(&mut self.visitor, node)
8037        } else {
8038        }
8039    }
8040
8041    #[inline]
8042    fn visit_jsx_element_child(&mut self, node: &JSXElementChild) {
8043        if self.enabled {
8044            <V as Visit>::visit_jsx_element_child(&mut self.visitor, node)
8045        } else {
8046        }
8047    }
8048
8049    #[inline]
8050    fn visit_jsx_element_childs(&mut self, node: &[JSXElementChild]) {
8051        if self.enabled {
8052            <V as Visit>::visit_jsx_element_childs(&mut self.visitor, node)
8053        } else {
8054        }
8055    }
8056
8057    #[inline]
8058    fn visit_jsx_element_name(&mut self, node: &JSXElementName) {
8059        if self.enabled {
8060            <V as Visit>::visit_jsx_element_name(&mut self.visitor, node)
8061        } else {
8062        }
8063    }
8064
8065    #[inline]
8066    fn visit_jsx_empty_expr(&mut self, node: &JSXEmptyExpr) {
8067        if self.enabled {
8068            <V as Visit>::visit_jsx_empty_expr(&mut self.visitor, node)
8069        } else {
8070        }
8071    }
8072
8073    #[inline]
8074    fn visit_jsx_expr(&mut self, node: &JSXExpr) {
8075        if self.enabled {
8076            <V as Visit>::visit_jsx_expr(&mut self.visitor, node)
8077        } else {
8078        }
8079    }
8080
8081    #[inline]
8082    fn visit_jsx_expr_container(&mut self, node: &JSXExprContainer) {
8083        if self.enabled {
8084            <V as Visit>::visit_jsx_expr_container(&mut self.visitor, node)
8085        } else {
8086        }
8087    }
8088
8089    #[inline]
8090    fn visit_jsx_fragment(&mut self, node: &JSXFragment) {
8091        if self.enabled {
8092            <V as Visit>::visit_jsx_fragment(&mut self.visitor, node)
8093        } else {
8094        }
8095    }
8096
8097    #[inline]
8098    fn visit_jsx_member_expr(&mut self, node: &JSXMemberExpr) {
8099        if self.enabled {
8100            <V as Visit>::visit_jsx_member_expr(&mut self.visitor, node)
8101        } else {
8102        }
8103    }
8104
8105    #[inline]
8106    fn visit_jsx_namespaced_name(&mut self, node: &JSXNamespacedName) {
8107        if self.enabled {
8108            <V as Visit>::visit_jsx_namespaced_name(&mut self.visitor, node)
8109        } else {
8110        }
8111    }
8112
8113    #[inline]
8114    fn visit_jsx_object(&mut self, node: &JSXObject) {
8115        if self.enabled {
8116            <V as Visit>::visit_jsx_object(&mut self.visitor, node)
8117        } else {
8118        }
8119    }
8120
8121    #[inline]
8122    fn visit_jsx_opening_element(&mut self, node: &JSXOpeningElement) {
8123        if self.enabled {
8124            <V as Visit>::visit_jsx_opening_element(&mut self.visitor, node)
8125        } else {
8126        }
8127    }
8128
8129    #[inline]
8130    fn visit_jsx_opening_fragment(&mut self, node: &JSXOpeningFragment) {
8131        if self.enabled {
8132            <V as Visit>::visit_jsx_opening_fragment(&mut self.visitor, node)
8133        } else {
8134        }
8135    }
8136
8137    #[inline]
8138    fn visit_jsx_spread_child(&mut self, node: &JSXSpreadChild) {
8139        if self.enabled {
8140            <V as Visit>::visit_jsx_spread_child(&mut self.visitor, node)
8141        } else {
8142        }
8143    }
8144
8145    #[inline]
8146    fn visit_jsx_text(&mut self, node: &JSXText) {
8147        if self.enabled {
8148            <V as Visit>::visit_jsx_text(&mut self.visitor, node)
8149        } else {
8150        }
8151    }
8152
8153    #[inline]
8154    fn visit_key(&mut self, node: &Key) {
8155        if self.enabled {
8156            <V as Visit>::visit_key(&mut self.visitor, node)
8157        } else {
8158        }
8159    }
8160
8161    #[inline]
8162    fn visit_key_value_pat_prop(&mut self, node: &KeyValuePatProp) {
8163        if self.enabled {
8164            <V as Visit>::visit_key_value_pat_prop(&mut self.visitor, node)
8165        } else {
8166        }
8167    }
8168
8169    #[inline]
8170    fn visit_key_value_prop(&mut self, node: &KeyValueProp) {
8171        if self.enabled {
8172            <V as Visit>::visit_key_value_prop(&mut self.visitor, node)
8173        } else {
8174        }
8175    }
8176
8177    #[inline]
8178    fn visit_labeled_stmt(&mut self, node: &LabeledStmt) {
8179        if self.enabled {
8180            <V as Visit>::visit_labeled_stmt(&mut self.visitor, node)
8181        } else {
8182        }
8183    }
8184
8185    #[inline]
8186    fn visit_lit(&mut self, node: &Lit) {
8187        if self.enabled {
8188            <V as Visit>::visit_lit(&mut self.visitor, node)
8189        } else {
8190        }
8191    }
8192
8193    #[inline]
8194    fn visit_member_expr(&mut self, node: &MemberExpr) {
8195        if self.enabled {
8196            <V as Visit>::visit_member_expr(&mut self.visitor, node)
8197        } else {
8198        }
8199    }
8200
8201    #[inline]
8202    fn visit_member_prop(&mut self, node: &MemberProp) {
8203        if self.enabled {
8204            <V as Visit>::visit_member_prop(&mut self.visitor, node)
8205        } else {
8206        }
8207    }
8208
8209    #[inline]
8210    fn visit_meta_prop_expr(&mut self, node: &MetaPropExpr) {
8211        if self.enabled {
8212            <V as Visit>::visit_meta_prop_expr(&mut self.visitor, node)
8213        } else {
8214        }
8215    }
8216
8217    #[inline]
8218    fn visit_meta_prop_kind(&mut self, node: &MetaPropKind) {
8219        if self.enabled {
8220            <V as Visit>::visit_meta_prop_kind(&mut self.visitor, node)
8221        } else {
8222        }
8223    }
8224
8225    #[inline]
8226    fn visit_method_kind(&mut self, node: &MethodKind) {
8227        if self.enabled {
8228            <V as Visit>::visit_method_kind(&mut self.visitor, node)
8229        } else {
8230        }
8231    }
8232
8233    #[inline]
8234    fn visit_method_prop(&mut self, node: &MethodProp) {
8235        if self.enabled {
8236            <V as Visit>::visit_method_prop(&mut self.visitor, node)
8237        } else {
8238        }
8239    }
8240
8241    #[inline]
8242    fn visit_module(&mut self, node: &Module) {
8243        if self.enabled {
8244            <V as Visit>::visit_module(&mut self.visitor, node)
8245        } else {
8246        }
8247    }
8248
8249    #[inline]
8250    fn visit_module_decl(&mut self, node: &ModuleDecl) {
8251        if self.enabled {
8252            <V as Visit>::visit_module_decl(&mut self.visitor, node)
8253        } else {
8254        }
8255    }
8256
8257    #[inline]
8258    fn visit_module_export_name(&mut self, node: &ModuleExportName) {
8259        if self.enabled {
8260            <V as Visit>::visit_module_export_name(&mut self.visitor, node)
8261        } else {
8262        }
8263    }
8264
8265    #[inline]
8266    fn visit_module_item(&mut self, node: &ModuleItem) {
8267        if self.enabled {
8268            <V as Visit>::visit_module_item(&mut self.visitor, node)
8269        } else {
8270        }
8271    }
8272
8273    #[inline]
8274    fn visit_module_items(&mut self, node: &[ModuleItem]) {
8275        if self.enabled {
8276            <V as Visit>::visit_module_items(&mut self.visitor, node)
8277        } else {
8278        }
8279    }
8280
8281    #[inline]
8282    fn visit_named_export(&mut self, node: &NamedExport) {
8283        if self.enabled {
8284            <V as Visit>::visit_named_export(&mut self.visitor, node)
8285        } else {
8286        }
8287    }
8288
8289    #[inline]
8290    fn visit_new_expr(&mut self, node: &NewExpr) {
8291        if self.enabled {
8292            <V as Visit>::visit_new_expr(&mut self.visitor, node)
8293        } else {
8294        }
8295    }
8296
8297    #[inline]
8298    fn visit_null(&mut self, node: &Null) {
8299        if self.enabled {
8300            <V as Visit>::visit_null(&mut self.visitor, node)
8301        } else {
8302        }
8303    }
8304
8305    #[inline]
8306    fn visit_number(&mut self, node: &Number) {
8307        if self.enabled {
8308            <V as Visit>::visit_number(&mut self.visitor, node)
8309        } else {
8310        }
8311    }
8312
8313    #[inline]
8314    fn visit_object_lit(&mut self, node: &ObjectLit) {
8315        if self.enabled {
8316            <V as Visit>::visit_object_lit(&mut self.visitor, node)
8317        } else {
8318        }
8319    }
8320
8321    #[inline]
8322    fn visit_object_pat(&mut self, node: &ObjectPat) {
8323        if self.enabled {
8324            <V as Visit>::visit_object_pat(&mut self.visitor, node)
8325        } else {
8326        }
8327    }
8328
8329    #[inline]
8330    fn visit_object_pat_prop(&mut self, node: &ObjectPatProp) {
8331        if self.enabled {
8332            <V as Visit>::visit_object_pat_prop(&mut self.visitor, node)
8333        } else {
8334        }
8335    }
8336
8337    #[inline]
8338    fn visit_object_pat_props(&mut self, node: &[ObjectPatProp]) {
8339        if self.enabled {
8340            <V as Visit>::visit_object_pat_props(&mut self.visitor, node)
8341        } else {
8342        }
8343    }
8344
8345    #[inline]
8346    fn visit_opt_accessibility(&mut self, node: &Option<Accessibility>) {
8347        if self.enabled {
8348            <V as Visit>::visit_opt_accessibility(&mut self.visitor, node)
8349        } else {
8350        }
8351    }
8352
8353    #[inline]
8354    fn visit_opt_atom(&mut self, node: &Option<swc_atoms::Atom>) {
8355        if self.enabled {
8356            <V as Visit>::visit_opt_atom(&mut self.visitor, node)
8357        } else {
8358        }
8359    }
8360
8361    #[inline]
8362    fn visit_opt_block_stmt(&mut self, node: &Option<BlockStmt>) {
8363        if self.enabled {
8364            <V as Visit>::visit_opt_block_stmt(&mut self.visitor, node)
8365        } else {
8366        }
8367    }
8368
8369    #[inline]
8370    fn visit_opt_call(&mut self, node: &OptCall) {
8371        if self.enabled {
8372            <V as Visit>::visit_opt_call(&mut self.visitor, node)
8373        } else {
8374        }
8375    }
8376
8377    #[inline]
8378    fn visit_opt_catch_clause(&mut self, node: &Option<CatchClause>) {
8379        if self.enabled {
8380            <V as Visit>::visit_opt_catch_clause(&mut self.visitor, node)
8381        } else {
8382        }
8383    }
8384
8385    #[inline]
8386    fn visit_opt_chain_base(&mut self, node: &OptChainBase) {
8387        if self.enabled {
8388            <V as Visit>::visit_opt_chain_base(&mut self.visitor, node)
8389        } else {
8390        }
8391    }
8392
8393    #[inline]
8394    fn visit_opt_chain_expr(&mut self, node: &OptChainExpr) {
8395        if self.enabled {
8396            <V as Visit>::visit_opt_chain_expr(&mut self.visitor, node)
8397        } else {
8398        }
8399    }
8400
8401    #[inline]
8402    fn visit_opt_expr(&mut self, node: &Option<Box<Expr>>) {
8403        if self.enabled {
8404            <V as Visit>::visit_opt_expr(&mut self.visitor, node)
8405        } else {
8406        }
8407    }
8408
8409    #[inline]
8410    fn visit_opt_expr_or_spread(&mut self, node: &Option<ExprOrSpread>) {
8411        if self.enabled {
8412            <V as Visit>::visit_opt_expr_or_spread(&mut self.visitor, node)
8413        } else {
8414        }
8415    }
8416
8417    #[inline]
8418    fn visit_opt_expr_or_spreads(&mut self, node: &Option<Vec<ExprOrSpread>>) {
8419        if self.enabled {
8420            <V as Visit>::visit_opt_expr_or_spreads(&mut self.visitor, node)
8421        } else {
8422        }
8423    }
8424
8425    #[inline]
8426    fn visit_opt_ident(&mut self, node: &Option<Ident>) {
8427        if self.enabled {
8428            <V as Visit>::visit_opt_ident(&mut self.visitor, node)
8429        } else {
8430        }
8431    }
8432
8433    #[inline]
8434    fn visit_opt_jsx_attr_value(&mut self, node: &Option<JSXAttrValue>) {
8435        if self.enabled {
8436            <V as Visit>::visit_opt_jsx_attr_value(&mut self.visitor, node)
8437        } else {
8438        }
8439    }
8440
8441    #[inline]
8442    fn visit_opt_jsx_closing_element(&mut self, node: &Option<JSXClosingElement>) {
8443        if self.enabled {
8444            <V as Visit>::visit_opt_jsx_closing_element(&mut self.visitor, node)
8445        } else {
8446        }
8447    }
8448
8449    #[inline]
8450    fn visit_opt_module_export_name(&mut self, node: &Option<ModuleExportName>) {
8451        if self.enabled {
8452            <V as Visit>::visit_opt_module_export_name(&mut self.visitor, node)
8453        } else {
8454        }
8455    }
8456
8457    #[inline]
8458    fn visit_opt_object_lit(&mut self, node: &Option<Box<ObjectLit>>) {
8459        if self.enabled {
8460            <V as Visit>::visit_opt_object_lit(&mut self.visitor, node)
8461        } else {
8462        }
8463    }
8464
8465    #[inline]
8466    fn visit_opt_pat(&mut self, node: &Option<Pat>) {
8467        if self.enabled {
8468            <V as Visit>::visit_opt_pat(&mut self.visitor, node)
8469        } else {
8470        }
8471    }
8472
8473    #[inline]
8474    fn visit_opt_span(&mut self, node: &Option<swc_common::Span>) {
8475        if self.enabled {
8476            <V as Visit>::visit_opt_span(&mut self.visitor, node)
8477        } else {
8478        }
8479    }
8480
8481    #[inline]
8482    fn visit_opt_stmt(&mut self, node: &Option<Box<Stmt>>) {
8483        if self.enabled {
8484            <V as Visit>::visit_opt_stmt(&mut self.visitor, node)
8485        } else {
8486        }
8487    }
8488
8489    #[inline]
8490    fn visit_opt_str(&mut self, node: &Option<Box<Str>>) {
8491        if self.enabled {
8492            <V as Visit>::visit_opt_str(&mut self.visitor, node)
8493        } else {
8494        }
8495    }
8496
8497    #[inline]
8498    fn visit_opt_true_plus_minus(&mut self, node: &Option<TruePlusMinus>) {
8499        if self.enabled {
8500            <V as Visit>::visit_opt_true_plus_minus(&mut self.visitor, node)
8501        } else {
8502        }
8503    }
8504
8505    #[inline]
8506    fn visit_opt_ts_entity_name(&mut self, node: &Option<TsEntityName>) {
8507        if self.enabled {
8508            <V as Visit>::visit_opt_ts_entity_name(&mut self.visitor, node)
8509        } else {
8510        }
8511    }
8512
8513    #[inline]
8514    fn visit_opt_ts_namespace_body(&mut self, node: &Option<TsNamespaceBody>) {
8515        if self.enabled {
8516            <V as Visit>::visit_opt_ts_namespace_body(&mut self.visitor, node)
8517        } else {
8518        }
8519    }
8520
8521    #[inline]
8522    fn visit_opt_ts_type(&mut self, node: &Option<Box<TsType>>) {
8523        if self.enabled {
8524            <V as Visit>::visit_opt_ts_type(&mut self.visitor, node)
8525        } else {
8526        }
8527    }
8528
8529    #[inline]
8530    fn visit_opt_ts_type_ann(&mut self, node: &Option<Box<TsTypeAnn>>) {
8531        if self.enabled {
8532            <V as Visit>::visit_opt_ts_type_ann(&mut self.visitor, node)
8533        } else {
8534        }
8535    }
8536
8537    #[inline]
8538    fn visit_opt_ts_type_param_decl(&mut self, node: &Option<Box<TsTypeParamDecl>>) {
8539        if self.enabled {
8540            <V as Visit>::visit_opt_ts_type_param_decl(&mut self.visitor, node)
8541        } else {
8542        }
8543    }
8544
8545    #[inline]
8546    fn visit_opt_ts_type_param_instantiation(
8547        &mut self,
8548        node: &Option<Box<TsTypeParamInstantiation>>,
8549    ) {
8550        if self.enabled {
8551            <V as Visit>::visit_opt_ts_type_param_instantiation(&mut self.visitor, node)
8552        } else {
8553        }
8554    }
8555
8556    #[inline]
8557    fn visit_opt_var_decl_or_expr(&mut self, node: &Option<VarDeclOrExpr>) {
8558        if self.enabled {
8559            <V as Visit>::visit_opt_var_decl_or_expr(&mut self.visitor, node)
8560        } else {
8561        }
8562    }
8563
8564    #[inline]
8565    fn visit_opt_vec_expr_or_spreads(&mut self, node: &[Option<ExprOrSpread>]) {
8566        if self.enabled {
8567            <V as Visit>::visit_opt_vec_expr_or_spreads(&mut self.visitor, node)
8568        } else {
8569        }
8570    }
8571
8572    #[inline]
8573    fn visit_opt_vec_pats(&mut self, node: &[Option<Pat>]) {
8574        if self.enabled {
8575            <V as Visit>::visit_opt_vec_pats(&mut self.visitor, node)
8576        } else {
8577        }
8578    }
8579
8580    #[inline]
8581    fn visit_param(&mut self, node: &Param) {
8582        if self.enabled {
8583            <V as Visit>::visit_param(&mut self.visitor, node)
8584        } else {
8585        }
8586    }
8587
8588    #[inline]
8589    fn visit_param_or_ts_param_prop(&mut self, node: &ParamOrTsParamProp) {
8590        if self.enabled {
8591            <V as Visit>::visit_param_or_ts_param_prop(&mut self.visitor, node)
8592        } else {
8593        }
8594    }
8595
8596    #[inline]
8597    fn visit_param_or_ts_param_props(&mut self, node: &[ParamOrTsParamProp]) {
8598        if self.enabled {
8599            <V as Visit>::visit_param_or_ts_param_props(&mut self.visitor, node)
8600        } else {
8601        }
8602    }
8603
8604    #[inline]
8605    fn visit_params(&mut self, node: &[Param]) {
8606        if self.enabled {
8607            <V as Visit>::visit_params(&mut self.visitor, node)
8608        } else {
8609        }
8610    }
8611
8612    #[inline]
8613    fn visit_paren_expr(&mut self, node: &ParenExpr) {
8614        if self.enabled {
8615            <V as Visit>::visit_paren_expr(&mut self.visitor, node)
8616        } else {
8617        }
8618    }
8619
8620    #[inline]
8621    fn visit_pat(&mut self, node: &Pat) {
8622        if self.enabled {
8623            <V as Visit>::visit_pat(&mut self.visitor, node)
8624        } else {
8625        }
8626    }
8627
8628    #[inline]
8629    fn visit_pats(&mut self, node: &[Pat]) {
8630        if self.enabled {
8631            <V as Visit>::visit_pats(&mut self.visitor, node)
8632        } else {
8633        }
8634    }
8635
8636    #[inline]
8637    fn visit_private_method(&mut self, node: &PrivateMethod) {
8638        if self.enabled {
8639            <V as Visit>::visit_private_method(&mut self.visitor, node)
8640        } else {
8641        }
8642    }
8643
8644    #[inline]
8645    fn visit_private_name(&mut self, node: &PrivateName) {
8646        if self.enabled {
8647            <V as Visit>::visit_private_name(&mut self.visitor, node)
8648        } else {
8649        }
8650    }
8651
8652    #[inline]
8653    fn visit_private_prop(&mut self, node: &PrivateProp) {
8654        if self.enabled {
8655            <V as Visit>::visit_private_prop(&mut self.visitor, node)
8656        } else {
8657        }
8658    }
8659
8660    #[inline]
8661    fn visit_program(&mut self, node: &Program) {
8662        if self.enabled {
8663            <V as Visit>::visit_program(&mut self.visitor, node)
8664        } else {
8665        }
8666    }
8667
8668    #[inline]
8669    fn visit_prop(&mut self, node: &Prop) {
8670        if self.enabled {
8671            <V as Visit>::visit_prop(&mut self.visitor, node)
8672        } else {
8673        }
8674    }
8675
8676    #[inline]
8677    fn visit_prop_name(&mut self, node: &PropName) {
8678        if self.enabled {
8679            <V as Visit>::visit_prop_name(&mut self.visitor, node)
8680        } else {
8681        }
8682    }
8683
8684    #[inline]
8685    fn visit_prop_or_spread(&mut self, node: &PropOrSpread) {
8686        if self.enabled {
8687            <V as Visit>::visit_prop_or_spread(&mut self.visitor, node)
8688        } else {
8689        }
8690    }
8691
8692    #[inline]
8693    fn visit_prop_or_spreads(&mut self, node: &[PropOrSpread]) {
8694        if self.enabled {
8695            <V as Visit>::visit_prop_or_spreads(&mut self.visitor, node)
8696        } else {
8697        }
8698    }
8699
8700    #[inline]
8701    fn visit_regex(&mut self, node: &Regex) {
8702        if self.enabled {
8703            <V as Visit>::visit_regex(&mut self.visitor, node)
8704        } else {
8705        }
8706    }
8707
8708    #[inline]
8709    fn visit_rest_pat(&mut self, node: &RestPat) {
8710        if self.enabled {
8711            <V as Visit>::visit_rest_pat(&mut self.visitor, node)
8712        } else {
8713        }
8714    }
8715
8716    #[inline]
8717    fn visit_return_stmt(&mut self, node: &ReturnStmt) {
8718        if self.enabled {
8719            <V as Visit>::visit_return_stmt(&mut self.visitor, node)
8720        } else {
8721        }
8722    }
8723
8724    #[inline]
8725    fn visit_script(&mut self, node: &Script) {
8726        if self.enabled {
8727            <V as Visit>::visit_script(&mut self.visitor, node)
8728        } else {
8729        }
8730    }
8731
8732    #[inline]
8733    fn visit_seq_expr(&mut self, node: &SeqExpr) {
8734        if self.enabled {
8735            <V as Visit>::visit_seq_expr(&mut self.visitor, node)
8736        } else {
8737        }
8738    }
8739
8740    #[inline]
8741    fn visit_setter_prop(&mut self, node: &SetterProp) {
8742        if self.enabled {
8743            <V as Visit>::visit_setter_prop(&mut self.visitor, node)
8744        } else {
8745        }
8746    }
8747
8748    #[inline]
8749    fn visit_simple_assign_target(&mut self, node: &SimpleAssignTarget) {
8750        if self.enabled {
8751            <V as Visit>::visit_simple_assign_target(&mut self.visitor, node)
8752        } else {
8753        }
8754    }
8755
8756    #[inline]
8757    fn visit_span(&mut self, node: &swc_common::Span) {
8758        if self.enabled {
8759            <V as Visit>::visit_span(&mut self.visitor, node)
8760        } else {
8761        }
8762    }
8763
8764    #[inline]
8765    fn visit_spread_element(&mut self, node: &SpreadElement) {
8766        if self.enabled {
8767            <V as Visit>::visit_spread_element(&mut self.visitor, node)
8768        } else {
8769        }
8770    }
8771
8772    #[inline]
8773    fn visit_static_block(&mut self, node: &StaticBlock) {
8774        if self.enabled {
8775            <V as Visit>::visit_static_block(&mut self.visitor, node)
8776        } else {
8777        }
8778    }
8779
8780    #[inline]
8781    fn visit_stmt(&mut self, node: &Stmt) {
8782        if self.enabled {
8783            <V as Visit>::visit_stmt(&mut self.visitor, node)
8784        } else {
8785        }
8786    }
8787
8788    #[inline]
8789    fn visit_stmts(&mut self, node: &[Stmt]) {
8790        if self.enabled {
8791            <V as Visit>::visit_stmts(&mut self.visitor, node)
8792        } else {
8793        }
8794    }
8795
8796    #[inline]
8797    fn visit_str(&mut self, node: &Str) {
8798        if self.enabled {
8799            <V as Visit>::visit_str(&mut self.visitor, node)
8800        } else {
8801        }
8802    }
8803
8804    #[inline]
8805    fn visit_super(&mut self, node: &Super) {
8806        if self.enabled {
8807            <V as Visit>::visit_super(&mut self.visitor, node)
8808        } else {
8809        }
8810    }
8811
8812    #[inline]
8813    fn visit_super_prop(&mut self, node: &SuperProp) {
8814        if self.enabled {
8815            <V as Visit>::visit_super_prop(&mut self.visitor, node)
8816        } else {
8817        }
8818    }
8819
8820    #[inline]
8821    fn visit_super_prop_expr(&mut self, node: &SuperPropExpr) {
8822        if self.enabled {
8823            <V as Visit>::visit_super_prop_expr(&mut self.visitor, node)
8824        } else {
8825        }
8826    }
8827
8828    #[inline]
8829    fn visit_switch_case(&mut self, node: &SwitchCase) {
8830        if self.enabled {
8831            <V as Visit>::visit_switch_case(&mut self.visitor, node)
8832        } else {
8833        }
8834    }
8835
8836    #[inline]
8837    fn visit_switch_cases(&mut self, node: &[SwitchCase]) {
8838        if self.enabled {
8839            <V as Visit>::visit_switch_cases(&mut self.visitor, node)
8840        } else {
8841        }
8842    }
8843
8844    #[inline]
8845    fn visit_switch_stmt(&mut self, node: &SwitchStmt) {
8846        if self.enabled {
8847            <V as Visit>::visit_switch_stmt(&mut self.visitor, node)
8848        } else {
8849        }
8850    }
8851
8852    #[inline]
8853    fn visit_syntax_context(&mut self, node: &swc_common::SyntaxContext) {
8854        if self.enabled {
8855            <V as Visit>::visit_syntax_context(&mut self.visitor, node)
8856        } else {
8857        }
8858    }
8859
8860    #[inline]
8861    fn visit_tagged_tpl(&mut self, node: &TaggedTpl) {
8862        if self.enabled {
8863            <V as Visit>::visit_tagged_tpl(&mut self.visitor, node)
8864        } else {
8865        }
8866    }
8867
8868    #[inline]
8869    fn visit_this_expr(&mut self, node: &ThisExpr) {
8870        if self.enabled {
8871            <V as Visit>::visit_this_expr(&mut self.visitor, node)
8872        } else {
8873        }
8874    }
8875
8876    #[inline]
8877    fn visit_throw_stmt(&mut self, node: &ThrowStmt) {
8878        if self.enabled {
8879            <V as Visit>::visit_throw_stmt(&mut self.visitor, node)
8880        } else {
8881        }
8882    }
8883
8884    #[inline]
8885    fn visit_tpl(&mut self, node: &Tpl) {
8886        if self.enabled {
8887            <V as Visit>::visit_tpl(&mut self.visitor, node)
8888        } else {
8889        }
8890    }
8891
8892    #[inline]
8893    fn visit_tpl_element(&mut self, node: &TplElement) {
8894        if self.enabled {
8895            <V as Visit>::visit_tpl_element(&mut self.visitor, node)
8896        } else {
8897        }
8898    }
8899
8900    #[inline]
8901    fn visit_tpl_elements(&mut self, node: &[TplElement]) {
8902        if self.enabled {
8903            <V as Visit>::visit_tpl_elements(&mut self.visitor, node)
8904        } else {
8905        }
8906    }
8907
8908    #[inline]
8909    fn visit_true_plus_minus(&mut self, node: &TruePlusMinus) {
8910        if self.enabled {
8911            <V as Visit>::visit_true_plus_minus(&mut self.visitor, node)
8912        } else {
8913        }
8914    }
8915
8916    #[inline]
8917    fn visit_try_stmt(&mut self, node: &TryStmt) {
8918        if self.enabled {
8919            <V as Visit>::visit_try_stmt(&mut self.visitor, node)
8920        } else {
8921        }
8922    }
8923
8924    #[inline]
8925    fn visit_ts_array_type(&mut self, node: &TsArrayType) {
8926        if self.enabled {
8927            <V as Visit>::visit_ts_array_type(&mut self.visitor, node)
8928        } else {
8929        }
8930    }
8931
8932    #[inline]
8933    fn visit_ts_as_expr(&mut self, node: &TsAsExpr) {
8934        if self.enabled {
8935            <V as Visit>::visit_ts_as_expr(&mut self.visitor, node)
8936        } else {
8937        }
8938    }
8939
8940    #[inline]
8941    fn visit_ts_call_signature_decl(&mut self, node: &TsCallSignatureDecl) {
8942        if self.enabled {
8943            <V as Visit>::visit_ts_call_signature_decl(&mut self.visitor, node)
8944        } else {
8945        }
8946    }
8947
8948    #[inline]
8949    fn visit_ts_conditional_type(&mut self, node: &TsConditionalType) {
8950        if self.enabled {
8951            <V as Visit>::visit_ts_conditional_type(&mut self.visitor, node)
8952        } else {
8953        }
8954    }
8955
8956    #[inline]
8957    fn visit_ts_const_assertion(&mut self, node: &TsConstAssertion) {
8958        if self.enabled {
8959            <V as Visit>::visit_ts_const_assertion(&mut self.visitor, node)
8960        } else {
8961        }
8962    }
8963
8964    #[inline]
8965    fn visit_ts_construct_signature_decl(&mut self, node: &TsConstructSignatureDecl) {
8966        if self.enabled {
8967            <V as Visit>::visit_ts_construct_signature_decl(&mut self.visitor, node)
8968        } else {
8969        }
8970    }
8971
8972    #[inline]
8973    fn visit_ts_constructor_type(&mut self, node: &TsConstructorType) {
8974        if self.enabled {
8975            <V as Visit>::visit_ts_constructor_type(&mut self.visitor, node)
8976        } else {
8977        }
8978    }
8979
8980    #[inline]
8981    fn visit_ts_entity_name(&mut self, node: &TsEntityName) {
8982        if self.enabled {
8983            <V as Visit>::visit_ts_entity_name(&mut self.visitor, node)
8984        } else {
8985        }
8986    }
8987
8988    #[inline]
8989    fn visit_ts_enum_decl(&mut self, node: &TsEnumDecl) {
8990        if self.enabled {
8991            <V as Visit>::visit_ts_enum_decl(&mut self.visitor, node)
8992        } else {
8993        }
8994    }
8995
8996    #[inline]
8997    fn visit_ts_enum_member(&mut self, node: &TsEnumMember) {
8998        if self.enabled {
8999            <V as Visit>::visit_ts_enum_member(&mut self.visitor, node)
9000        } else {
9001        }
9002    }
9003
9004    #[inline]
9005    fn visit_ts_enum_member_id(&mut self, node: &TsEnumMemberId) {
9006        if self.enabled {
9007            <V as Visit>::visit_ts_enum_member_id(&mut self.visitor, node)
9008        } else {
9009        }
9010    }
9011
9012    #[inline]
9013    fn visit_ts_enum_members(&mut self, node: &[TsEnumMember]) {
9014        if self.enabled {
9015            <V as Visit>::visit_ts_enum_members(&mut self.visitor, node)
9016        } else {
9017        }
9018    }
9019
9020    #[inline]
9021    fn visit_ts_export_assignment(&mut self, node: &TsExportAssignment) {
9022        if self.enabled {
9023            <V as Visit>::visit_ts_export_assignment(&mut self.visitor, node)
9024        } else {
9025        }
9026    }
9027
9028    #[inline]
9029    fn visit_ts_expr_with_type_args(&mut self, node: &TsExprWithTypeArgs) {
9030        if self.enabled {
9031            <V as Visit>::visit_ts_expr_with_type_args(&mut self.visitor, node)
9032        } else {
9033        }
9034    }
9035
9036    #[inline]
9037    fn visit_ts_expr_with_type_argss(&mut self, node: &[TsExprWithTypeArgs]) {
9038        if self.enabled {
9039            <V as Visit>::visit_ts_expr_with_type_argss(&mut self.visitor, node)
9040        } else {
9041        }
9042    }
9043
9044    #[inline]
9045    fn visit_ts_external_module_ref(&mut self, node: &TsExternalModuleRef) {
9046        if self.enabled {
9047            <V as Visit>::visit_ts_external_module_ref(&mut self.visitor, node)
9048        } else {
9049        }
9050    }
9051
9052    #[inline]
9053    fn visit_ts_fn_or_constructor_type(&mut self, node: &TsFnOrConstructorType) {
9054        if self.enabled {
9055            <V as Visit>::visit_ts_fn_or_constructor_type(&mut self.visitor, node)
9056        } else {
9057        }
9058    }
9059
9060    #[inline]
9061    fn visit_ts_fn_param(&mut self, node: &TsFnParam) {
9062        if self.enabled {
9063            <V as Visit>::visit_ts_fn_param(&mut self.visitor, node)
9064        } else {
9065        }
9066    }
9067
9068    #[inline]
9069    fn visit_ts_fn_params(&mut self, node: &[TsFnParam]) {
9070        if self.enabled {
9071            <V as Visit>::visit_ts_fn_params(&mut self.visitor, node)
9072        } else {
9073        }
9074    }
9075
9076    #[inline]
9077    fn visit_ts_fn_type(&mut self, node: &TsFnType) {
9078        if self.enabled {
9079            <V as Visit>::visit_ts_fn_type(&mut self.visitor, node)
9080        } else {
9081        }
9082    }
9083
9084    #[inline]
9085    fn visit_ts_getter_signature(&mut self, node: &TsGetterSignature) {
9086        if self.enabled {
9087            <V as Visit>::visit_ts_getter_signature(&mut self.visitor, node)
9088        } else {
9089        }
9090    }
9091
9092    #[inline]
9093    fn visit_ts_import_equals_decl(&mut self, node: &TsImportEqualsDecl) {
9094        if self.enabled {
9095            <V as Visit>::visit_ts_import_equals_decl(&mut self.visitor, node)
9096        } else {
9097        }
9098    }
9099
9100    #[inline]
9101    fn visit_ts_import_type(&mut self, node: &TsImportType) {
9102        if self.enabled {
9103            <V as Visit>::visit_ts_import_type(&mut self.visitor, node)
9104        } else {
9105        }
9106    }
9107
9108    #[inline]
9109    fn visit_ts_index_signature(&mut self, node: &TsIndexSignature) {
9110        if self.enabled {
9111            <V as Visit>::visit_ts_index_signature(&mut self.visitor, node)
9112        } else {
9113        }
9114    }
9115
9116    #[inline]
9117    fn visit_ts_indexed_access_type(&mut self, node: &TsIndexedAccessType) {
9118        if self.enabled {
9119            <V as Visit>::visit_ts_indexed_access_type(&mut self.visitor, node)
9120        } else {
9121        }
9122    }
9123
9124    #[inline]
9125    fn visit_ts_infer_type(&mut self, node: &TsInferType) {
9126        if self.enabled {
9127            <V as Visit>::visit_ts_infer_type(&mut self.visitor, node)
9128        } else {
9129        }
9130    }
9131
9132    #[inline]
9133    fn visit_ts_instantiation(&mut self, node: &TsInstantiation) {
9134        if self.enabled {
9135            <V as Visit>::visit_ts_instantiation(&mut self.visitor, node)
9136        } else {
9137        }
9138    }
9139
9140    #[inline]
9141    fn visit_ts_interface_body(&mut self, node: &TsInterfaceBody) {
9142        if self.enabled {
9143            <V as Visit>::visit_ts_interface_body(&mut self.visitor, node)
9144        } else {
9145        }
9146    }
9147
9148    #[inline]
9149    fn visit_ts_interface_decl(&mut self, node: &TsInterfaceDecl) {
9150        if self.enabled {
9151            <V as Visit>::visit_ts_interface_decl(&mut self.visitor, node)
9152        } else {
9153        }
9154    }
9155
9156    #[inline]
9157    fn visit_ts_intersection_type(&mut self, node: &TsIntersectionType) {
9158        if self.enabled {
9159            <V as Visit>::visit_ts_intersection_type(&mut self.visitor, node)
9160        } else {
9161        }
9162    }
9163
9164    #[inline]
9165    fn visit_ts_keyword_type(&mut self, node: &TsKeywordType) {
9166        if self.enabled {
9167            <V as Visit>::visit_ts_keyword_type(&mut self.visitor, node)
9168        } else {
9169        }
9170    }
9171
9172    #[inline]
9173    fn visit_ts_keyword_type_kind(&mut self, node: &TsKeywordTypeKind) {
9174        if self.enabled {
9175            <V as Visit>::visit_ts_keyword_type_kind(&mut self.visitor, node)
9176        } else {
9177        }
9178    }
9179
9180    #[inline]
9181    fn visit_ts_lit(&mut self, node: &TsLit) {
9182        if self.enabled {
9183            <V as Visit>::visit_ts_lit(&mut self.visitor, node)
9184        } else {
9185        }
9186    }
9187
9188    #[inline]
9189    fn visit_ts_lit_type(&mut self, node: &TsLitType) {
9190        if self.enabled {
9191            <V as Visit>::visit_ts_lit_type(&mut self.visitor, node)
9192        } else {
9193        }
9194    }
9195
9196    #[inline]
9197    fn visit_ts_mapped_type(&mut self, node: &TsMappedType) {
9198        if self.enabled {
9199            <V as Visit>::visit_ts_mapped_type(&mut self.visitor, node)
9200        } else {
9201        }
9202    }
9203
9204    #[inline]
9205    fn visit_ts_method_signature(&mut self, node: &TsMethodSignature) {
9206        if self.enabled {
9207            <V as Visit>::visit_ts_method_signature(&mut self.visitor, node)
9208        } else {
9209        }
9210    }
9211
9212    #[inline]
9213    fn visit_ts_module_block(&mut self, node: &TsModuleBlock) {
9214        if self.enabled {
9215            <V as Visit>::visit_ts_module_block(&mut self.visitor, node)
9216        } else {
9217        }
9218    }
9219
9220    #[inline]
9221    fn visit_ts_module_decl(&mut self, node: &TsModuleDecl) {
9222        if self.enabled {
9223            <V as Visit>::visit_ts_module_decl(&mut self.visitor, node)
9224        } else {
9225        }
9226    }
9227
9228    #[inline]
9229    fn visit_ts_module_name(&mut self, node: &TsModuleName) {
9230        if self.enabled {
9231            <V as Visit>::visit_ts_module_name(&mut self.visitor, node)
9232        } else {
9233        }
9234    }
9235
9236    #[inline]
9237    fn visit_ts_module_ref(&mut self, node: &TsModuleRef) {
9238        if self.enabled {
9239            <V as Visit>::visit_ts_module_ref(&mut self.visitor, node)
9240        } else {
9241        }
9242    }
9243
9244    #[inline]
9245    fn visit_ts_namespace_body(&mut self, node: &TsNamespaceBody) {
9246        if self.enabled {
9247            <V as Visit>::visit_ts_namespace_body(&mut self.visitor, node)
9248        } else {
9249        }
9250    }
9251
9252    #[inline]
9253    fn visit_ts_namespace_decl(&mut self, node: &TsNamespaceDecl) {
9254        if self.enabled {
9255            <V as Visit>::visit_ts_namespace_decl(&mut self.visitor, node)
9256        } else {
9257        }
9258    }
9259
9260    #[inline]
9261    fn visit_ts_namespace_export_decl(&mut self, node: &TsNamespaceExportDecl) {
9262        if self.enabled {
9263            <V as Visit>::visit_ts_namespace_export_decl(&mut self.visitor, node)
9264        } else {
9265        }
9266    }
9267
9268    #[inline]
9269    fn visit_ts_non_null_expr(&mut self, node: &TsNonNullExpr) {
9270        if self.enabled {
9271            <V as Visit>::visit_ts_non_null_expr(&mut self.visitor, node)
9272        } else {
9273        }
9274    }
9275
9276    #[inline]
9277    fn visit_ts_optional_type(&mut self, node: &TsOptionalType) {
9278        if self.enabled {
9279            <V as Visit>::visit_ts_optional_type(&mut self.visitor, node)
9280        } else {
9281        }
9282    }
9283
9284    #[inline]
9285    fn visit_ts_param_prop(&mut self, node: &TsParamProp) {
9286        if self.enabled {
9287            <V as Visit>::visit_ts_param_prop(&mut self.visitor, node)
9288        } else {
9289        }
9290    }
9291
9292    #[inline]
9293    fn visit_ts_param_prop_param(&mut self, node: &TsParamPropParam) {
9294        if self.enabled {
9295            <V as Visit>::visit_ts_param_prop_param(&mut self.visitor, node)
9296        } else {
9297        }
9298    }
9299
9300    #[inline]
9301    fn visit_ts_parenthesized_type(&mut self, node: &TsParenthesizedType) {
9302        if self.enabled {
9303            <V as Visit>::visit_ts_parenthesized_type(&mut self.visitor, node)
9304        } else {
9305        }
9306    }
9307
9308    #[inline]
9309    fn visit_ts_property_signature(&mut self, node: &TsPropertySignature) {
9310        if self.enabled {
9311            <V as Visit>::visit_ts_property_signature(&mut self.visitor, node)
9312        } else {
9313        }
9314    }
9315
9316    #[inline]
9317    fn visit_ts_qualified_name(&mut self, node: &TsQualifiedName) {
9318        if self.enabled {
9319            <V as Visit>::visit_ts_qualified_name(&mut self.visitor, node)
9320        } else {
9321        }
9322    }
9323
9324    #[inline]
9325    fn visit_ts_rest_type(&mut self, node: &TsRestType) {
9326        if self.enabled {
9327            <V as Visit>::visit_ts_rest_type(&mut self.visitor, node)
9328        } else {
9329        }
9330    }
9331
9332    #[inline]
9333    fn visit_ts_satisfies_expr(&mut self, node: &TsSatisfiesExpr) {
9334        if self.enabled {
9335            <V as Visit>::visit_ts_satisfies_expr(&mut self.visitor, node)
9336        } else {
9337        }
9338    }
9339
9340    #[inline]
9341    fn visit_ts_setter_signature(&mut self, node: &TsSetterSignature) {
9342        if self.enabled {
9343            <V as Visit>::visit_ts_setter_signature(&mut self.visitor, node)
9344        } else {
9345        }
9346    }
9347
9348    #[inline]
9349    fn visit_ts_this_type(&mut self, node: &TsThisType) {
9350        if self.enabled {
9351            <V as Visit>::visit_ts_this_type(&mut self.visitor, node)
9352        } else {
9353        }
9354    }
9355
9356    #[inline]
9357    fn visit_ts_this_type_or_ident(&mut self, node: &TsThisTypeOrIdent) {
9358        if self.enabled {
9359            <V as Visit>::visit_ts_this_type_or_ident(&mut self.visitor, node)
9360        } else {
9361        }
9362    }
9363
9364    #[inline]
9365    fn visit_ts_tpl_lit_type(&mut self, node: &TsTplLitType) {
9366        if self.enabled {
9367            <V as Visit>::visit_ts_tpl_lit_type(&mut self.visitor, node)
9368        } else {
9369        }
9370    }
9371
9372    #[inline]
9373    fn visit_ts_tuple_element(&mut self, node: &TsTupleElement) {
9374        if self.enabled {
9375            <V as Visit>::visit_ts_tuple_element(&mut self.visitor, node)
9376        } else {
9377        }
9378    }
9379
9380    #[inline]
9381    fn visit_ts_tuple_elements(&mut self, node: &[TsTupleElement]) {
9382        if self.enabled {
9383            <V as Visit>::visit_ts_tuple_elements(&mut self.visitor, node)
9384        } else {
9385        }
9386    }
9387
9388    #[inline]
9389    fn visit_ts_tuple_type(&mut self, node: &TsTupleType) {
9390        if self.enabled {
9391            <V as Visit>::visit_ts_tuple_type(&mut self.visitor, node)
9392        } else {
9393        }
9394    }
9395
9396    #[inline]
9397    fn visit_ts_type(&mut self, node: &TsType) {
9398        if self.enabled {
9399            <V as Visit>::visit_ts_type(&mut self.visitor, node)
9400        } else {
9401        }
9402    }
9403
9404    #[inline]
9405    fn visit_ts_type_alias_decl(&mut self, node: &TsTypeAliasDecl) {
9406        if self.enabled {
9407            <V as Visit>::visit_ts_type_alias_decl(&mut self.visitor, node)
9408        } else {
9409        }
9410    }
9411
9412    #[inline]
9413    fn visit_ts_type_ann(&mut self, node: &TsTypeAnn) {
9414        if self.enabled {
9415            <V as Visit>::visit_ts_type_ann(&mut self.visitor, node)
9416        } else {
9417        }
9418    }
9419
9420    #[inline]
9421    fn visit_ts_type_assertion(&mut self, node: &TsTypeAssertion) {
9422        if self.enabled {
9423            <V as Visit>::visit_ts_type_assertion(&mut self.visitor, node)
9424        } else {
9425        }
9426    }
9427
9428    #[inline]
9429    fn visit_ts_type_element(&mut self, node: &TsTypeElement) {
9430        if self.enabled {
9431            <V as Visit>::visit_ts_type_element(&mut self.visitor, node)
9432        } else {
9433        }
9434    }
9435
9436    #[inline]
9437    fn visit_ts_type_elements(&mut self, node: &[TsTypeElement]) {
9438        if self.enabled {
9439            <V as Visit>::visit_ts_type_elements(&mut self.visitor, node)
9440        } else {
9441        }
9442    }
9443
9444    #[inline]
9445    fn visit_ts_type_lit(&mut self, node: &TsTypeLit) {
9446        if self.enabled {
9447            <V as Visit>::visit_ts_type_lit(&mut self.visitor, node)
9448        } else {
9449        }
9450    }
9451
9452    #[inline]
9453    fn visit_ts_type_operator(&mut self, node: &TsTypeOperator) {
9454        if self.enabled {
9455            <V as Visit>::visit_ts_type_operator(&mut self.visitor, node)
9456        } else {
9457        }
9458    }
9459
9460    #[inline]
9461    fn visit_ts_type_operator_op(&mut self, node: &TsTypeOperatorOp) {
9462        if self.enabled {
9463            <V as Visit>::visit_ts_type_operator_op(&mut self.visitor, node)
9464        } else {
9465        }
9466    }
9467
9468    #[inline]
9469    fn visit_ts_type_param(&mut self, node: &TsTypeParam) {
9470        if self.enabled {
9471            <V as Visit>::visit_ts_type_param(&mut self.visitor, node)
9472        } else {
9473        }
9474    }
9475
9476    #[inline]
9477    fn visit_ts_type_param_decl(&mut self, node: &TsTypeParamDecl) {
9478        if self.enabled {
9479            <V as Visit>::visit_ts_type_param_decl(&mut self.visitor, node)
9480        } else {
9481        }
9482    }
9483
9484    #[inline]
9485    fn visit_ts_type_param_instantiation(&mut self, node: &TsTypeParamInstantiation) {
9486        if self.enabled {
9487            <V as Visit>::visit_ts_type_param_instantiation(&mut self.visitor, node)
9488        } else {
9489        }
9490    }
9491
9492    #[inline]
9493    fn visit_ts_type_params(&mut self, node: &[TsTypeParam]) {
9494        if self.enabled {
9495            <V as Visit>::visit_ts_type_params(&mut self.visitor, node)
9496        } else {
9497        }
9498    }
9499
9500    #[inline]
9501    fn visit_ts_type_predicate(&mut self, node: &TsTypePredicate) {
9502        if self.enabled {
9503            <V as Visit>::visit_ts_type_predicate(&mut self.visitor, node)
9504        } else {
9505        }
9506    }
9507
9508    #[inline]
9509    fn visit_ts_type_query(&mut self, node: &TsTypeQuery) {
9510        if self.enabled {
9511            <V as Visit>::visit_ts_type_query(&mut self.visitor, node)
9512        } else {
9513        }
9514    }
9515
9516    #[inline]
9517    fn visit_ts_type_query_expr(&mut self, node: &TsTypeQueryExpr) {
9518        if self.enabled {
9519            <V as Visit>::visit_ts_type_query_expr(&mut self.visitor, node)
9520        } else {
9521        }
9522    }
9523
9524    #[inline]
9525    fn visit_ts_type_ref(&mut self, node: &TsTypeRef) {
9526        if self.enabled {
9527            <V as Visit>::visit_ts_type_ref(&mut self.visitor, node)
9528        } else {
9529        }
9530    }
9531
9532    #[inline]
9533    fn visit_ts_types(&mut self, node: &[Box<TsType>]) {
9534        if self.enabled {
9535            <V as Visit>::visit_ts_types(&mut self.visitor, node)
9536        } else {
9537        }
9538    }
9539
9540    #[inline]
9541    fn visit_ts_union_or_intersection_type(&mut self, node: &TsUnionOrIntersectionType) {
9542        if self.enabled {
9543            <V as Visit>::visit_ts_union_or_intersection_type(&mut self.visitor, node)
9544        } else {
9545        }
9546    }
9547
9548    #[inline]
9549    fn visit_ts_union_type(&mut self, node: &TsUnionType) {
9550        if self.enabled {
9551            <V as Visit>::visit_ts_union_type(&mut self.visitor, node)
9552        } else {
9553        }
9554    }
9555
9556    #[inline]
9557    fn visit_unary_expr(&mut self, node: &UnaryExpr) {
9558        if self.enabled {
9559            <V as Visit>::visit_unary_expr(&mut self.visitor, node)
9560        } else {
9561        }
9562    }
9563
9564    #[inline]
9565    fn visit_unary_op(&mut self, node: &UnaryOp) {
9566        if self.enabled {
9567            <V as Visit>::visit_unary_op(&mut self.visitor, node)
9568        } else {
9569        }
9570    }
9571
9572    #[inline]
9573    fn visit_update_expr(&mut self, node: &UpdateExpr) {
9574        if self.enabled {
9575            <V as Visit>::visit_update_expr(&mut self.visitor, node)
9576        } else {
9577        }
9578    }
9579
9580    #[inline]
9581    fn visit_update_op(&mut self, node: &UpdateOp) {
9582        if self.enabled {
9583            <V as Visit>::visit_update_op(&mut self.visitor, node)
9584        } else {
9585        }
9586    }
9587
9588    #[inline]
9589    fn visit_using_decl(&mut self, node: &UsingDecl) {
9590        if self.enabled {
9591            <V as Visit>::visit_using_decl(&mut self.visitor, node)
9592        } else {
9593        }
9594    }
9595
9596    #[inline]
9597    fn visit_var_decl(&mut self, node: &VarDecl) {
9598        if self.enabled {
9599            <V as Visit>::visit_var_decl(&mut self.visitor, node)
9600        } else {
9601        }
9602    }
9603
9604    #[inline]
9605    fn visit_var_decl_kind(&mut self, node: &VarDeclKind) {
9606        if self.enabled {
9607            <V as Visit>::visit_var_decl_kind(&mut self.visitor, node)
9608        } else {
9609        }
9610    }
9611
9612    #[inline]
9613    fn visit_var_decl_or_expr(&mut self, node: &VarDeclOrExpr) {
9614        if self.enabled {
9615            <V as Visit>::visit_var_decl_or_expr(&mut self.visitor, node)
9616        } else {
9617        }
9618    }
9619
9620    #[inline]
9621    fn visit_var_declarator(&mut self, node: &VarDeclarator) {
9622        if self.enabled {
9623            <V as Visit>::visit_var_declarator(&mut self.visitor, node)
9624        } else {
9625        }
9626    }
9627
9628    #[inline]
9629    fn visit_var_declarators(&mut self, node: &[VarDeclarator]) {
9630        if self.enabled {
9631            <V as Visit>::visit_var_declarators(&mut self.visitor, node)
9632        } else {
9633        }
9634    }
9635
9636    #[inline]
9637    fn visit_while_stmt(&mut self, node: &WhileStmt) {
9638        if self.enabled {
9639            <V as Visit>::visit_while_stmt(&mut self.visitor, node)
9640        } else {
9641        }
9642    }
9643
9644    #[inline]
9645    fn visit_with_stmt(&mut self, node: &WithStmt) {
9646        if self.enabled {
9647            <V as Visit>::visit_with_stmt(&mut self.visitor, node)
9648        } else {
9649        }
9650    }
9651
9652    #[inline]
9653    fn visit_yield_expr(&mut self, node: &YieldExpr) {
9654        if self.enabled {
9655            <V as Visit>::visit_yield_expr(&mut self.visitor, node)
9656        } else {
9657        }
9658    }
9659}
9660#[doc = r" A trait implemented for types that can be visited using a visitor."]
9661pub trait VisitWith<V: ?Sized + Visit> {
9662    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
9663    fn visit_with(&self, visitor: &mut V);
9664    #[doc = r" Visit children nodes of `self`` with `visitor`."]
9665    fn visit_children_with(&self, visitor: &mut V);
9666}
9667impl<V: ?Sized + Visit> VisitWith<V> for Accessibility {
9668    #[doc = "Calls [Visit`::visit_accessibility`] with `self`."]
9669    fn visit_with(&self, visitor: &mut V) {
9670        <V as Visit>::visit_accessibility(visitor, self)
9671    }
9672
9673    fn visit_children_with(&self, visitor: &mut V) {
9674        match self {
9675            Accessibility::Public => {}
9676            Accessibility::Protected => {}
9677            Accessibility::Private => {}
9678        }
9679    }
9680}
9681impl<V: ?Sized + Visit> VisitWith<V> for ArrayLit {
9682    #[doc = "Calls [Visit`::visit_array_lit`] with `self`."]
9683    fn visit_with(&self, visitor: &mut V) {
9684        <V as Visit>::visit_array_lit(visitor, self)
9685    }
9686
9687    fn visit_children_with(&self, visitor: &mut V) {
9688        match self {
9689            ArrayLit { span, elems } => {
9690                {
9691                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9692                };
9693                {
9694                    <Vec<Option<ExprOrSpread>> as VisitWith<V>>::visit_with(elems, visitor)
9695                };
9696            }
9697        }
9698    }
9699}
9700impl<V: ?Sized + Visit> VisitWith<V> for ArrayPat {
9701    #[doc = "Calls [Visit`::visit_array_pat`] with `self`."]
9702    fn visit_with(&self, visitor: &mut V) {
9703        <V as Visit>::visit_array_pat(visitor, self)
9704    }
9705
9706    fn visit_children_with(&self, visitor: &mut V) {
9707        match self {
9708            ArrayPat {
9709                span,
9710                elems,
9711                optional,
9712                type_ann,
9713            } => {
9714                {
9715                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9716                };
9717                {
9718                    <Vec<Option<Pat>> as VisitWith<V>>::visit_with(elems, visitor)
9719                };
9720                {
9721                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
9722                };
9723            }
9724        }
9725    }
9726}
9727impl<V: ?Sized + Visit> VisitWith<V> for ArrowExpr {
9728    #[doc = "Calls [Visit`::visit_arrow_expr`] with `self`."]
9729    fn visit_with(&self, visitor: &mut V) {
9730        <V as Visit>::visit_arrow_expr(visitor, self)
9731    }
9732
9733    fn visit_children_with(&self, visitor: &mut V) {
9734        match self {
9735            ArrowExpr {
9736                span,
9737                ctxt,
9738                params,
9739                body,
9740                is_async,
9741                is_generator,
9742                type_params,
9743                return_type,
9744            } => {
9745                {
9746                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9747                };
9748                {
9749                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
9750                };
9751                {
9752                    <Vec<Pat> as VisitWith<V>>::visit_with(params, visitor)
9753                };
9754                {
9755                    <Box<BlockStmtOrExpr> as VisitWith<V>>::visit_with(body, visitor)
9756                };
9757                {
9758                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
9759                };
9760                {
9761                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(return_type, visitor)
9762                };
9763            }
9764        }
9765    }
9766}
9767impl<V: ?Sized + Visit> VisitWith<V> for AssignExpr {
9768    #[doc = "Calls [Visit`::visit_assign_expr`] with `self`."]
9769    fn visit_with(&self, visitor: &mut V) {
9770        <V as Visit>::visit_assign_expr(visitor, self)
9771    }
9772
9773    fn visit_children_with(&self, visitor: &mut V) {
9774        match self {
9775            AssignExpr {
9776                span,
9777                op,
9778                left,
9779                right,
9780            } => {
9781                {
9782                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9783                };
9784                {
9785                    <AssignOp as VisitWith<V>>::visit_with(op, visitor)
9786                };
9787                {
9788                    <AssignTarget as VisitWith<V>>::visit_with(left, visitor)
9789                };
9790                {
9791                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
9792                };
9793            }
9794        }
9795    }
9796}
9797impl<V: ?Sized + Visit> VisitWith<V> for AssignOp {
9798    #[doc = "Calls [Visit`::visit_assign_op`] with `self`."]
9799    fn visit_with(&self, visitor: &mut V) {
9800        <V as Visit>::visit_assign_op(visitor, self)
9801    }
9802
9803    fn visit_children_with(&self, visitor: &mut V) {
9804        match self {
9805            AssignOp::Assign => {}
9806            AssignOp::AddAssign => {}
9807            AssignOp::SubAssign => {}
9808            AssignOp::MulAssign => {}
9809            AssignOp::DivAssign => {}
9810            AssignOp::ModAssign => {}
9811            AssignOp::LShiftAssign => {}
9812            AssignOp::RShiftAssign => {}
9813            AssignOp::ZeroFillRShiftAssign => {}
9814            AssignOp::BitOrAssign => {}
9815            AssignOp::BitXorAssign => {}
9816            AssignOp::BitAndAssign => {}
9817            AssignOp::ExpAssign => {}
9818            AssignOp::AndAssign => {}
9819            AssignOp::OrAssign => {}
9820            AssignOp::NullishAssign => {}
9821        }
9822    }
9823}
9824impl<V: ?Sized + Visit> VisitWith<V> for AssignPat {
9825    #[doc = "Calls [Visit`::visit_assign_pat`] with `self`."]
9826    fn visit_with(&self, visitor: &mut V) {
9827        <V as Visit>::visit_assign_pat(visitor, self)
9828    }
9829
9830    fn visit_children_with(&self, visitor: &mut V) {
9831        match self {
9832            AssignPat { span, left, right } => {
9833                {
9834                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9835                };
9836                {
9837                    <Box<Pat> as VisitWith<V>>::visit_with(left, visitor)
9838                };
9839                {
9840                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
9841                };
9842            }
9843        }
9844    }
9845}
9846impl<V: ?Sized + Visit> VisitWith<V> for AssignPatProp {
9847    #[doc = "Calls [Visit`::visit_assign_pat_prop`] with `self`."]
9848    fn visit_with(&self, visitor: &mut V) {
9849        <V as Visit>::visit_assign_pat_prop(visitor, self)
9850    }
9851
9852    fn visit_children_with(&self, visitor: &mut V) {
9853        match self {
9854            AssignPatProp { span, key, value } => {
9855                {
9856                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9857                };
9858                {
9859                    <BindingIdent as VisitWith<V>>::visit_with(key, visitor)
9860                };
9861                {
9862                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
9863                };
9864            }
9865        }
9866    }
9867}
9868impl<V: ?Sized + Visit> VisitWith<V> for AssignProp {
9869    #[doc = "Calls [Visit`::visit_assign_prop`] with `self`."]
9870    fn visit_with(&self, visitor: &mut V) {
9871        <V as Visit>::visit_assign_prop(visitor, self)
9872    }
9873
9874    fn visit_children_with(&self, visitor: &mut V) {
9875        match self {
9876            AssignProp { span, key, value } => {
9877                {
9878                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9879                };
9880                {
9881                    <Ident as VisitWith<V>>::visit_with(key, visitor)
9882                };
9883                {
9884                    <Box<Expr> as VisitWith<V>>::visit_with(value, visitor)
9885                };
9886            }
9887        }
9888    }
9889}
9890impl<V: ?Sized + Visit> VisitWith<V> for AssignTarget {
9891    #[doc = "Calls [Visit`::visit_assign_target`] with `self`."]
9892    fn visit_with(&self, visitor: &mut V) {
9893        <V as Visit>::visit_assign_target(visitor, self)
9894    }
9895
9896    fn visit_children_with(&self, visitor: &mut V) {
9897        match self {
9898            AssignTarget::Simple { 0: _field_0 } => {
9899                <SimpleAssignTarget as VisitWith<V>>::visit_with(_field_0, visitor);
9900            }
9901            AssignTarget::Pat { 0: _field_0 } => {
9902                <AssignTargetPat as VisitWith<V>>::visit_with(_field_0, visitor);
9903            }
9904        }
9905    }
9906}
9907impl<V: ?Sized + Visit> VisitWith<V> for AssignTargetPat {
9908    #[doc = "Calls [Visit`::visit_assign_target_pat`] with `self`."]
9909    fn visit_with(&self, visitor: &mut V) {
9910        <V as Visit>::visit_assign_target_pat(visitor, self)
9911    }
9912
9913    fn visit_children_with(&self, visitor: &mut V) {
9914        match self {
9915            AssignTargetPat::Array { 0: _field_0 } => {
9916                <ArrayPat as VisitWith<V>>::visit_with(_field_0, visitor);
9917            }
9918            AssignTargetPat::Object { 0: _field_0 } => {
9919                <ObjectPat as VisitWith<V>>::visit_with(_field_0, visitor);
9920            }
9921            AssignTargetPat::Invalid { 0: _field_0 } => {
9922                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
9923            }
9924        }
9925    }
9926}
9927impl<V: ?Sized + Visit> VisitWith<V> for AutoAccessor {
9928    #[doc = "Calls [Visit`::visit_auto_accessor`] with `self`."]
9929    fn visit_with(&self, visitor: &mut V) {
9930        <V as Visit>::visit_auto_accessor(visitor, self)
9931    }
9932
9933    fn visit_children_with(&self, visitor: &mut V) {
9934        match self {
9935            AutoAccessor {
9936                span,
9937                key,
9938                value,
9939                type_ann,
9940                is_static,
9941                decorators,
9942                accessibility,
9943                is_abstract,
9944                is_override,
9945                definite,
9946            } => {
9947                {
9948                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9949                };
9950                {
9951                    <Key as VisitWith<V>>::visit_with(key, visitor)
9952                };
9953                {
9954                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
9955                };
9956                {
9957                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
9958                };
9959                {
9960                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
9961                };
9962                {
9963                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
9964                };
9965            }
9966        }
9967    }
9968}
9969impl<V: ?Sized + Visit> VisitWith<V> for AwaitExpr {
9970    #[doc = "Calls [Visit`::visit_await_expr`] with `self`."]
9971    fn visit_with(&self, visitor: &mut V) {
9972        <V as Visit>::visit_await_expr(visitor, self)
9973    }
9974
9975    fn visit_children_with(&self, visitor: &mut V) {
9976        match self {
9977            AwaitExpr { span, arg } => {
9978                {
9979                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9980                };
9981                {
9982                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
9983                };
9984            }
9985        }
9986    }
9987}
9988impl<V: ?Sized + Visit> VisitWith<V> for BigInt {
9989    #[doc = "Calls [Visit`::visit_big_int`] with `self`."]
9990    fn visit_with(&self, visitor: &mut V) {
9991        <V as Visit>::visit_big_int(visitor, self)
9992    }
9993
9994    fn visit_children_with(&self, visitor: &mut V) {
9995        match self {
9996            BigInt { span, value, raw } => {
9997                {
9998                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
9999                };
10000                {
10001                    <Box<BigIntValue> as VisitWith<V>>::visit_with(value, visitor)
10002                };
10003                {
10004                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(raw, visitor)
10005                };
10006            }
10007        }
10008    }
10009}
10010impl<V: ?Sized + Visit> VisitWith<V> for BinExpr {
10011    #[doc = "Calls [Visit`::visit_bin_expr`] with `self`."]
10012    fn visit_with(&self, visitor: &mut V) {
10013        <V as Visit>::visit_bin_expr(visitor, self)
10014    }
10015
10016    fn visit_children_with(&self, visitor: &mut V) {
10017        match self {
10018            BinExpr {
10019                span,
10020                op,
10021                left,
10022                right,
10023            } => {
10024                {
10025                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10026                };
10027                {
10028                    <BinaryOp as VisitWith<V>>::visit_with(op, visitor)
10029                };
10030                {
10031                    <Box<Expr> as VisitWith<V>>::visit_with(left, visitor)
10032                };
10033                {
10034                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
10035                };
10036            }
10037        }
10038    }
10039}
10040impl<V: ?Sized + Visit> VisitWith<V> for BinaryOp {
10041    #[doc = "Calls [Visit`::visit_binary_op`] with `self`."]
10042    fn visit_with(&self, visitor: &mut V) {
10043        <V as Visit>::visit_binary_op(visitor, self)
10044    }
10045
10046    fn visit_children_with(&self, visitor: &mut V) {
10047        match self {
10048            BinaryOp::EqEq => {}
10049            BinaryOp::NotEq => {}
10050            BinaryOp::EqEqEq => {}
10051            BinaryOp::NotEqEq => {}
10052            BinaryOp::Lt => {}
10053            BinaryOp::LtEq => {}
10054            BinaryOp::Gt => {}
10055            BinaryOp::GtEq => {}
10056            BinaryOp::LShift => {}
10057            BinaryOp::RShift => {}
10058            BinaryOp::ZeroFillRShift => {}
10059            BinaryOp::Add => {}
10060            BinaryOp::Sub => {}
10061            BinaryOp::Mul => {}
10062            BinaryOp::Div => {}
10063            BinaryOp::Mod => {}
10064            BinaryOp::BitOr => {}
10065            BinaryOp::BitXor => {}
10066            BinaryOp::BitAnd => {}
10067            BinaryOp::LogicalOr => {}
10068            BinaryOp::LogicalAnd => {}
10069            BinaryOp::In => {}
10070            BinaryOp::InstanceOf => {}
10071            BinaryOp::Exp => {}
10072            BinaryOp::NullishCoalescing => {}
10073        }
10074    }
10075}
10076impl<V: ?Sized + Visit> VisitWith<V> for BindingIdent {
10077    #[doc = "Calls [Visit`::visit_binding_ident`] with `self`."]
10078    fn visit_with(&self, visitor: &mut V) {
10079        <V as Visit>::visit_binding_ident(visitor, self)
10080    }
10081
10082    fn visit_children_with(&self, visitor: &mut V) {
10083        match self {
10084            BindingIdent { id, type_ann } => {
10085                {
10086                    <Ident as VisitWith<V>>::visit_with(id, visitor)
10087                };
10088                {
10089                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
10090                };
10091            }
10092        }
10093    }
10094}
10095impl<V: ?Sized + Visit> VisitWith<V> for BlockStmt {
10096    #[doc = "Calls [Visit`::visit_block_stmt`] with `self`."]
10097    fn visit_with(&self, visitor: &mut V) {
10098        <V as Visit>::visit_block_stmt(visitor, self)
10099    }
10100
10101    fn visit_children_with(&self, visitor: &mut V) {
10102        match self {
10103            BlockStmt { span, ctxt, stmts } => {
10104                {
10105                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10106                };
10107                {
10108                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10109                };
10110                {
10111                    <Vec<Stmt> as VisitWith<V>>::visit_with(stmts, visitor)
10112                };
10113            }
10114        }
10115    }
10116}
10117impl<V: ?Sized + Visit> VisitWith<V> for BlockStmtOrExpr {
10118    #[doc = "Calls [Visit`::visit_block_stmt_or_expr`] with `self`."]
10119    fn visit_with(&self, visitor: &mut V) {
10120        <V as Visit>::visit_block_stmt_or_expr(visitor, self)
10121    }
10122
10123    fn visit_children_with(&self, visitor: &mut V) {
10124        match self {
10125            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
10126                <BlockStmt as VisitWith<V>>::visit_with(_field_0, visitor);
10127            }
10128            BlockStmtOrExpr::Expr { 0: _field_0 } => {
10129                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
10130            }
10131        }
10132    }
10133}
10134impl<V: ?Sized + Visit> VisitWith<V> for Bool {
10135    #[doc = "Calls [Visit`::visit_bool`] with `self`."]
10136    fn visit_with(&self, visitor: &mut V) {
10137        <V as Visit>::visit_bool(visitor, self)
10138    }
10139
10140    fn visit_children_with(&self, visitor: &mut V) {
10141        match self {
10142            Bool { span, value } => {
10143                {
10144                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10145                };
10146            }
10147        }
10148    }
10149}
10150impl<V: ?Sized + Visit> VisitWith<V> for BreakStmt {
10151    #[doc = "Calls [Visit`::visit_break_stmt`] with `self`."]
10152    fn visit_with(&self, visitor: &mut V) {
10153        <V as Visit>::visit_break_stmt(visitor, self)
10154    }
10155
10156    fn visit_children_with(&self, visitor: &mut V) {
10157        match self {
10158            BreakStmt { span, label } => {
10159                {
10160                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10161                };
10162                {
10163                    <Option<Ident> as VisitWith<V>>::visit_with(label, visitor)
10164                };
10165            }
10166        }
10167    }
10168}
10169impl<V: ?Sized + Visit> VisitWith<V> for CallExpr {
10170    #[doc = "Calls [Visit`::visit_call_expr`] with `self`."]
10171    fn visit_with(&self, visitor: &mut V) {
10172        <V as Visit>::visit_call_expr(visitor, self)
10173    }
10174
10175    fn visit_children_with(&self, visitor: &mut V) {
10176        match self {
10177            CallExpr {
10178                span,
10179                ctxt,
10180                callee,
10181                args,
10182                type_args,
10183            } => {
10184                {
10185                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10186                };
10187                {
10188                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10189                };
10190                {
10191                    <Callee as VisitWith<V>>::visit_with(callee, visitor)
10192                };
10193                {
10194                    <Vec<ExprOrSpread> as VisitWith<V>>::visit_with(args, visitor)
10195                };
10196                {
10197                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
10198                        type_args, visitor,
10199                    )
10200                };
10201            }
10202        }
10203    }
10204}
10205impl<V: ?Sized + Visit> VisitWith<V> for Callee {
10206    #[doc = "Calls [Visit`::visit_callee`] with `self`."]
10207    fn visit_with(&self, visitor: &mut V) {
10208        <V as Visit>::visit_callee(visitor, self)
10209    }
10210
10211    fn visit_children_with(&self, visitor: &mut V) {
10212        match self {
10213            Callee::Super { 0: _field_0 } => {
10214                <Super as VisitWith<V>>::visit_with(_field_0, visitor);
10215            }
10216            Callee::Import { 0: _field_0 } => {
10217                <Import as VisitWith<V>>::visit_with(_field_0, visitor);
10218            }
10219            Callee::Expr { 0: _field_0 } => {
10220                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
10221            }
10222        }
10223    }
10224}
10225impl<V: ?Sized + Visit> VisitWith<V> for CatchClause {
10226    #[doc = "Calls [Visit`::visit_catch_clause`] with `self`."]
10227    fn visit_with(&self, visitor: &mut V) {
10228        <V as Visit>::visit_catch_clause(visitor, self)
10229    }
10230
10231    fn visit_children_with(&self, visitor: &mut V) {
10232        match self {
10233            CatchClause { span, param, body } => {
10234                {
10235                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10236                };
10237                {
10238                    <Option<Pat> as VisitWith<V>>::visit_with(param, visitor)
10239                };
10240                {
10241                    <BlockStmt as VisitWith<V>>::visit_with(body, visitor)
10242                };
10243            }
10244        }
10245    }
10246}
10247impl<V: ?Sized + Visit> VisitWith<V> for Class {
10248    #[doc = "Calls [Visit`::visit_class`] with `self`."]
10249    fn visit_with(&self, visitor: &mut V) {
10250        <V as Visit>::visit_class(visitor, self)
10251    }
10252
10253    fn visit_children_with(&self, visitor: &mut V) {
10254        match self {
10255            Class {
10256                span,
10257                ctxt,
10258                decorators,
10259                body,
10260                super_class,
10261                is_abstract,
10262                type_params,
10263                super_type_params,
10264                implements,
10265            } => {
10266                {
10267                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10268                };
10269                {
10270                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10271                };
10272                {
10273                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
10274                };
10275                {
10276                    <Vec<ClassMember> as VisitWith<V>>::visit_with(body, visitor)
10277                };
10278                {
10279                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(super_class, visitor)
10280                };
10281                {
10282                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
10283                };
10284                {
10285                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
10286                        super_type_params,
10287                        visitor,
10288                    )
10289                };
10290                {
10291                    <Vec<TsExprWithTypeArgs> as VisitWith<V>>::visit_with(implements, visitor)
10292                };
10293            }
10294        }
10295    }
10296}
10297impl<V: ?Sized + Visit> VisitWith<V> for ClassDecl {
10298    #[doc = "Calls [Visit`::visit_class_decl`] with `self`."]
10299    fn visit_with(&self, visitor: &mut V) {
10300        <V as Visit>::visit_class_decl(visitor, self)
10301    }
10302
10303    fn visit_children_with(&self, visitor: &mut V) {
10304        match self {
10305            ClassDecl {
10306                ident,
10307                declare,
10308                class,
10309            } => {
10310                {
10311                    <Ident as VisitWith<V>>::visit_with(ident, visitor)
10312                };
10313                {
10314                    <Box<Class> as VisitWith<V>>::visit_with(class, visitor)
10315                };
10316            }
10317        }
10318    }
10319}
10320impl<V: ?Sized + Visit> VisitWith<V> for ClassExpr {
10321    #[doc = "Calls [Visit`::visit_class_expr`] with `self`."]
10322    fn visit_with(&self, visitor: &mut V) {
10323        <V as Visit>::visit_class_expr(visitor, self)
10324    }
10325
10326    fn visit_children_with(&self, visitor: &mut V) {
10327        match self {
10328            ClassExpr { ident, class } => {
10329                {
10330                    <Option<Ident> as VisitWith<V>>::visit_with(ident, visitor)
10331                };
10332                {
10333                    <Box<Class> as VisitWith<V>>::visit_with(class, visitor)
10334                };
10335            }
10336        }
10337    }
10338}
10339impl<V: ?Sized + Visit> VisitWith<V> for ClassMember {
10340    #[doc = "Calls [Visit`::visit_class_member`] with `self`."]
10341    fn visit_with(&self, visitor: &mut V) {
10342        <V as Visit>::visit_class_member(visitor, self)
10343    }
10344
10345    fn visit_children_with(&self, visitor: &mut V) {
10346        match self {
10347            ClassMember::Constructor { 0: _field_0 } => {
10348                <Constructor as VisitWith<V>>::visit_with(_field_0, visitor);
10349            }
10350            ClassMember::Method { 0: _field_0 } => {
10351                <ClassMethod as VisitWith<V>>::visit_with(_field_0, visitor);
10352            }
10353            ClassMember::PrivateMethod { 0: _field_0 } => {
10354                <PrivateMethod as VisitWith<V>>::visit_with(_field_0, visitor);
10355            }
10356            ClassMember::ClassProp { 0: _field_0 } => {
10357                <ClassProp as VisitWith<V>>::visit_with(_field_0, visitor);
10358            }
10359            ClassMember::PrivateProp { 0: _field_0 } => {
10360                <PrivateProp as VisitWith<V>>::visit_with(_field_0, visitor);
10361            }
10362            ClassMember::TsIndexSignature { 0: _field_0 } => {
10363                <TsIndexSignature as VisitWith<V>>::visit_with(_field_0, visitor);
10364            }
10365            ClassMember::Empty { 0: _field_0 } => {
10366                <EmptyStmt as VisitWith<V>>::visit_with(_field_0, visitor);
10367            }
10368            ClassMember::StaticBlock { 0: _field_0 } => {
10369                <StaticBlock as VisitWith<V>>::visit_with(_field_0, visitor);
10370            }
10371            ClassMember::AutoAccessor { 0: _field_0 } => {
10372                <AutoAccessor as VisitWith<V>>::visit_with(_field_0, visitor);
10373            }
10374        }
10375    }
10376}
10377impl<V: ?Sized + Visit> VisitWith<V> for ClassMethod {
10378    #[doc = "Calls [Visit`::visit_class_method`] with `self`."]
10379    fn visit_with(&self, visitor: &mut V) {
10380        <V as Visit>::visit_class_method(visitor, self)
10381    }
10382
10383    fn visit_children_with(&self, visitor: &mut V) {
10384        match self {
10385            ClassMethod {
10386                span,
10387                key,
10388                function,
10389                kind,
10390                is_static,
10391                accessibility,
10392                is_abstract,
10393                is_optional,
10394                is_override,
10395            } => {
10396                {
10397                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10398                };
10399                {
10400                    <PropName as VisitWith<V>>::visit_with(key, visitor)
10401                };
10402                {
10403                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
10404                };
10405                {
10406                    <MethodKind as VisitWith<V>>::visit_with(kind, visitor)
10407                };
10408                {
10409                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10410                };
10411            }
10412        }
10413    }
10414}
10415impl<V: ?Sized + Visit> VisitWith<V> for ClassProp {
10416    #[doc = "Calls [Visit`::visit_class_prop`] with `self`."]
10417    fn visit_with(&self, visitor: &mut V) {
10418        <V as Visit>::visit_class_prop(visitor, self)
10419    }
10420
10421    fn visit_children_with(&self, visitor: &mut V) {
10422        match self {
10423            ClassProp {
10424                span,
10425                key,
10426                value,
10427                type_ann,
10428                is_static,
10429                decorators,
10430                accessibility,
10431                is_abstract,
10432                is_optional,
10433                is_override,
10434                readonly,
10435                declare,
10436                definite,
10437            } => {
10438                {
10439                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10440                };
10441                {
10442                    <PropName as VisitWith<V>>::visit_with(key, visitor)
10443                };
10444                {
10445                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
10446                };
10447                {
10448                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
10449                };
10450                {
10451                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
10452                };
10453                {
10454                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10455                };
10456            }
10457        }
10458    }
10459}
10460impl<V: ?Sized + Visit> VisitWith<V> for ComputedPropName {
10461    #[doc = "Calls [Visit`::visit_computed_prop_name`] with `self`."]
10462    fn visit_with(&self, visitor: &mut V) {
10463        <V as Visit>::visit_computed_prop_name(visitor, self)
10464    }
10465
10466    fn visit_children_with(&self, visitor: &mut V) {
10467        match self {
10468            ComputedPropName { span, expr } => {
10469                {
10470                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10471                };
10472                {
10473                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
10474                };
10475            }
10476        }
10477    }
10478}
10479impl<V: ?Sized + Visit> VisitWith<V> for CondExpr {
10480    #[doc = "Calls [Visit`::visit_cond_expr`] with `self`."]
10481    fn visit_with(&self, visitor: &mut V) {
10482        <V as Visit>::visit_cond_expr(visitor, self)
10483    }
10484
10485    fn visit_children_with(&self, visitor: &mut V) {
10486        match self {
10487            CondExpr {
10488                span,
10489                test,
10490                cons,
10491                alt,
10492            } => {
10493                {
10494                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10495                };
10496                {
10497                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
10498                };
10499                {
10500                    <Box<Expr> as VisitWith<V>>::visit_with(cons, visitor)
10501                };
10502                {
10503                    <Box<Expr> as VisitWith<V>>::visit_with(alt, visitor)
10504                };
10505            }
10506        }
10507    }
10508}
10509impl<V: ?Sized + Visit> VisitWith<V> for Constructor {
10510    #[doc = "Calls [Visit`::visit_constructor`] with `self`."]
10511    fn visit_with(&self, visitor: &mut V) {
10512        <V as Visit>::visit_constructor(visitor, self)
10513    }
10514
10515    fn visit_children_with(&self, visitor: &mut V) {
10516        match self {
10517            Constructor {
10518                span,
10519                ctxt,
10520                key,
10521                params,
10522                body,
10523                accessibility,
10524                is_optional,
10525            } => {
10526                {
10527                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10528                };
10529                {
10530                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
10531                };
10532                {
10533                    <PropName as VisitWith<V>>::visit_with(key, visitor)
10534                };
10535                {
10536                    <Vec<ParamOrTsParamProp> as VisitWith<V>>::visit_with(params, visitor)
10537                };
10538                {
10539                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
10540                };
10541                {
10542                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
10543                };
10544            }
10545        }
10546    }
10547}
10548impl<V: ?Sized + Visit> VisitWith<V> for ContinueStmt {
10549    #[doc = "Calls [Visit`::visit_continue_stmt`] with `self`."]
10550    fn visit_with(&self, visitor: &mut V) {
10551        <V as Visit>::visit_continue_stmt(visitor, self)
10552    }
10553
10554    fn visit_children_with(&self, visitor: &mut V) {
10555        match self {
10556            ContinueStmt { span, label } => {
10557                {
10558                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10559                };
10560                {
10561                    <Option<Ident> as VisitWith<V>>::visit_with(label, visitor)
10562                };
10563            }
10564        }
10565    }
10566}
10567impl<V: ?Sized + Visit> VisitWith<V> for DebuggerStmt {
10568    #[doc = "Calls [Visit`::visit_debugger_stmt`] with `self`."]
10569    fn visit_with(&self, visitor: &mut V) {
10570        <V as Visit>::visit_debugger_stmt(visitor, self)
10571    }
10572
10573    fn visit_children_with(&self, visitor: &mut V) {
10574        match self {
10575            DebuggerStmt { span } => {
10576                {
10577                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10578                };
10579            }
10580        }
10581    }
10582}
10583impl<V: ?Sized + Visit> VisitWith<V> for Decl {
10584    #[doc = "Calls [Visit`::visit_decl`] with `self`."]
10585    fn visit_with(&self, visitor: &mut V) {
10586        <V as Visit>::visit_decl(visitor, self)
10587    }
10588
10589    fn visit_children_with(&self, visitor: &mut V) {
10590        match self {
10591            Decl::Class { 0: _field_0 } => {
10592                <ClassDecl as VisitWith<V>>::visit_with(_field_0, visitor);
10593            }
10594            Decl::Fn { 0: _field_0 } => {
10595                <FnDecl as VisitWith<V>>::visit_with(_field_0, visitor);
10596            }
10597            Decl::Var { 0: _field_0 } => {
10598                <Box<VarDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10599            }
10600            Decl::Using { 0: _field_0 } => {
10601                <Box<UsingDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10602            }
10603            Decl::TsInterface { 0: _field_0 } => {
10604                <Box<TsInterfaceDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10605            }
10606            Decl::TsTypeAlias { 0: _field_0 } => {
10607                <Box<TsTypeAliasDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10608            }
10609            Decl::TsEnum { 0: _field_0 } => {
10610                <Box<TsEnumDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10611            }
10612            Decl::TsModule { 0: _field_0 } => {
10613                <Box<TsModuleDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10614            }
10615        }
10616    }
10617}
10618impl<V: ?Sized + Visit> VisitWith<V> for Decorator {
10619    #[doc = "Calls [Visit`::visit_decorator`] with `self`."]
10620    fn visit_with(&self, visitor: &mut V) {
10621        <V as Visit>::visit_decorator(visitor, self)
10622    }
10623
10624    fn visit_children_with(&self, visitor: &mut V) {
10625        match self {
10626            Decorator { span, expr } => {
10627                {
10628                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10629                };
10630                {
10631                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
10632                };
10633            }
10634        }
10635    }
10636}
10637impl<V: ?Sized + Visit> VisitWith<V> for DefaultDecl {
10638    #[doc = "Calls [Visit`::visit_default_decl`] with `self`."]
10639    fn visit_with(&self, visitor: &mut V) {
10640        <V as Visit>::visit_default_decl(visitor, self)
10641    }
10642
10643    fn visit_children_with(&self, visitor: &mut V) {
10644        match self {
10645            DefaultDecl::Class { 0: _field_0 } => {
10646                <ClassExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10647            }
10648            DefaultDecl::Fn { 0: _field_0 } => {
10649                <FnExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10650            }
10651            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
10652                <Box<TsInterfaceDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
10653            }
10654        }
10655    }
10656}
10657impl<V: ?Sized + Visit> VisitWith<V> for DoWhileStmt {
10658    #[doc = "Calls [Visit`::visit_do_while_stmt`] with `self`."]
10659    fn visit_with(&self, visitor: &mut V) {
10660        <V as Visit>::visit_do_while_stmt(visitor, self)
10661    }
10662
10663    fn visit_children_with(&self, visitor: &mut V) {
10664        match self {
10665            DoWhileStmt { span, test, body } => {
10666                {
10667                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10668                };
10669                {
10670                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
10671                };
10672                {
10673                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
10674                };
10675            }
10676        }
10677    }
10678}
10679impl<V: ?Sized + Visit> VisitWith<V> for EmptyStmt {
10680    #[doc = "Calls [Visit`::visit_empty_stmt`] with `self`."]
10681    fn visit_with(&self, visitor: &mut V) {
10682        <V as Visit>::visit_empty_stmt(visitor, self)
10683    }
10684
10685    fn visit_children_with(&self, visitor: &mut V) {
10686        match self {
10687            EmptyStmt { span } => {
10688                {
10689                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10690                };
10691            }
10692        }
10693    }
10694}
10695impl<V: ?Sized + Visit> VisitWith<V> for ExportAll {
10696    #[doc = "Calls [Visit`::visit_export_all`] with `self`."]
10697    fn visit_with(&self, visitor: &mut V) {
10698        <V as Visit>::visit_export_all(visitor, self)
10699    }
10700
10701    fn visit_children_with(&self, visitor: &mut V) {
10702        match self {
10703            ExportAll {
10704                span,
10705                src,
10706                type_only,
10707                with,
10708            } => {
10709                {
10710                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10711                };
10712                {
10713                    <Box<Str> as VisitWith<V>>::visit_with(src, visitor)
10714                };
10715                {
10716                    <Option<Box<ObjectLit>> as VisitWith<V>>::visit_with(with, visitor)
10717                };
10718            }
10719        }
10720    }
10721}
10722impl<V: ?Sized + Visit> VisitWith<V> for ExportDecl {
10723    #[doc = "Calls [Visit`::visit_export_decl`] with `self`."]
10724    fn visit_with(&self, visitor: &mut V) {
10725        <V as Visit>::visit_export_decl(visitor, self)
10726    }
10727
10728    fn visit_children_with(&self, visitor: &mut V) {
10729        match self {
10730            ExportDecl { span, decl } => {
10731                {
10732                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10733                };
10734                {
10735                    <Decl as VisitWith<V>>::visit_with(decl, visitor)
10736                };
10737            }
10738        }
10739    }
10740}
10741impl<V: ?Sized + Visit> VisitWith<V> for ExportDefaultDecl {
10742    #[doc = "Calls [Visit`::visit_export_default_decl`] with `self`."]
10743    fn visit_with(&self, visitor: &mut V) {
10744        <V as Visit>::visit_export_default_decl(visitor, self)
10745    }
10746
10747    fn visit_children_with(&self, visitor: &mut V) {
10748        match self {
10749            ExportDefaultDecl { span, decl } => {
10750                {
10751                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10752                };
10753                {
10754                    <DefaultDecl as VisitWith<V>>::visit_with(decl, visitor)
10755                };
10756            }
10757        }
10758    }
10759}
10760impl<V: ?Sized + Visit> VisitWith<V> for ExportDefaultExpr {
10761    #[doc = "Calls [Visit`::visit_export_default_expr`] with `self`."]
10762    fn visit_with(&self, visitor: &mut V) {
10763        <V as Visit>::visit_export_default_expr(visitor, self)
10764    }
10765
10766    fn visit_children_with(&self, visitor: &mut V) {
10767        match self {
10768            ExportDefaultExpr { span, expr } => {
10769                {
10770                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10771                };
10772                {
10773                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
10774                };
10775            }
10776        }
10777    }
10778}
10779impl<V: ?Sized + Visit> VisitWith<V> for ExportDefaultSpecifier {
10780    #[doc = "Calls [Visit`::visit_export_default_specifier`] with `self`."]
10781    fn visit_with(&self, visitor: &mut V) {
10782        <V as Visit>::visit_export_default_specifier(visitor, self)
10783    }
10784
10785    fn visit_children_with(&self, visitor: &mut V) {
10786        match self {
10787            ExportDefaultSpecifier { exported } => {
10788                {
10789                    <Ident as VisitWith<V>>::visit_with(exported, visitor)
10790                };
10791            }
10792        }
10793    }
10794}
10795impl<V: ?Sized + Visit> VisitWith<V> for ExportNamedSpecifier {
10796    #[doc = "Calls [Visit`::visit_export_named_specifier`] with `self`."]
10797    fn visit_with(&self, visitor: &mut V) {
10798        <V as Visit>::visit_export_named_specifier(visitor, self)
10799    }
10800
10801    fn visit_children_with(&self, visitor: &mut V) {
10802        match self {
10803            ExportNamedSpecifier {
10804                span,
10805                orig,
10806                exported,
10807                is_type_only,
10808            } => {
10809                {
10810                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10811                };
10812                {
10813                    <ModuleExportName as VisitWith<V>>::visit_with(orig, visitor)
10814                };
10815                {
10816                    <Option<ModuleExportName> as VisitWith<V>>::visit_with(exported, visitor)
10817                };
10818            }
10819        }
10820    }
10821}
10822impl<V: ?Sized + Visit> VisitWith<V> for ExportNamespaceSpecifier {
10823    #[doc = "Calls [Visit`::visit_export_namespace_specifier`] with `self`."]
10824    fn visit_with(&self, visitor: &mut V) {
10825        <V as Visit>::visit_export_namespace_specifier(visitor, self)
10826    }
10827
10828    fn visit_children_with(&self, visitor: &mut V) {
10829        match self {
10830            ExportNamespaceSpecifier { span, name } => {
10831                {
10832                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
10833                };
10834                {
10835                    <ModuleExportName as VisitWith<V>>::visit_with(name, visitor)
10836                };
10837            }
10838        }
10839    }
10840}
10841impl<V: ?Sized + Visit> VisitWith<V> for ExportSpecifier {
10842    #[doc = "Calls [Visit`::visit_export_specifier`] with `self`."]
10843    fn visit_with(&self, visitor: &mut V) {
10844        <V as Visit>::visit_export_specifier(visitor, self)
10845    }
10846
10847    fn visit_children_with(&self, visitor: &mut V) {
10848        match self {
10849            ExportSpecifier::Namespace { 0: _field_0 } => {
10850                <ExportNamespaceSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
10851            }
10852            ExportSpecifier::Default { 0: _field_0 } => {
10853                <ExportDefaultSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
10854            }
10855            ExportSpecifier::Named { 0: _field_0 } => {
10856                <ExportNamedSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
10857            }
10858        }
10859    }
10860}
10861impl<V: ?Sized + Visit> VisitWith<V> for Expr {
10862    #[doc = "Calls [Visit`::visit_expr`] with `self`."]
10863    fn visit_with(&self, visitor: &mut V) {
10864        <V as Visit>::visit_expr(visitor, self)
10865    }
10866
10867    fn visit_children_with(&self, visitor: &mut V) {
10868        match self {
10869            Expr::This { 0: _field_0 } => {
10870                <ThisExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10871            }
10872            Expr::Array { 0: _field_0 } => {
10873                <ArrayLit as VisitWith<V>>::visit_with(_field_0, visitor);
10874            }
10875            Expr::Object { 0: _field_0 } => {
10876                <ObjectLit as VisitWith<V>>::visit_with(_field_0, visitor);
10877            }
10878            Expr::Fn { 0: _field_0 } => {
10879                <FnExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10880            }
10881            Expr::Unary { 0: _field_0 } => {
10882                <UnaryExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10883            }
10884            Expr::Update { 0: _field_0 } => {
10885                <UpdateExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10886            }
10887            Expr::Bin { 0: _field_0 } => {
10888                <BinExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10889            }
10890            Expr::Assign { 0: _field_0 } => {
10891                <AssignExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10892            }
10893            Expr::Member { 0: _field_0 } => {
10894                <MemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10895            }
10896            Expr::SuperProp { 0: _field_0 } => {
10897                <SuperPropExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10898            }
10899            Expr::Cond { 0: _field_0 } => {
10900                <CondExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10901            }
10902            Expr::Call { 0: _field_0 } => {
10903                <CallExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10904            }
10905            Expr::New { 0: _field_0 } => {
10906                <NewExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10907            }
10908            Expr::Seq { 0: _field_0 } => {
10909                <SeqExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10910            }
10911            Expr::Ident { 0: _field_0 } => {
10912                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
10913            }
10914            Expr::Lit { 0: _field_0 } => {
10915                <Lit as VisitWith<V>>::visit_with(_field_0, visitor);
10916            }
10917            Expr::Tpl { 0: _field_0 } => {
10918                <Tpl as VisitWith<V>>::visit_with(_field_0, visitor);
10919            }
10920            Expr::TaggedTpl { 0: _field_0 } => {
10921                <TaggedTpl as VisitWith<V>>::visit_with(_field_0, visitor);
10922            }
10923            Expr::Arrow { 0: _field_0 } => {
10924                <ArrowExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10925            }
10926            Expr::Class { 0: _field_0 } => {
10927                <ClassExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10928            }
10929            Expr::Yield { 0: _field_0 } => {
10930                <YieldExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10931            }
10932            Expr::MetaProp { 0: _field_0 } => {
10933                <MetaPropExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10934            }
10935            Expr::Await { 0: _field_0 } => {
10936                <AwaitExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10937            }
10938            Expr::Paren { 0: _field_0 } => {
10939                <ParenExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10940            }
10941            Expr::JSXMember { 0: _field_0 } => {
10942                <JSXMemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10943            }
10944            Expr::JSXNamespacedName { 0: _field_0 } => {
10945                <JSXNamespacedName as VisitWith<V>>::visit_with(_field_0, visitor);
10946            }
10947            Expr::JSXEmpty { 0: _field_0 } => {
10948                <JSXEmptyExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10949            }
10950            Expr::JSXElement { 0: _field_0 } => {
10951                <Box<JSXElement> as VisitWith<V>>::visit_with(_field_0, visitor);
10952            }
10953            Expr::JSXFragment { 0: _field_0 } => {
10954                <JSXFragment as VisitWith<V>>::visit_with(_field_0, visitor);
10955            }
10956            Expr::TsTypeAssertion { 0: _field_0 } => {
10957                <TsTypeAssertion as VisitWith<V>>::visit_with(_field_0, visitor);
10958            }
10959            Expr::TsConstAssertion { 0: _field_0 } => {
10960                <TsConstAssertion as VisitWith<V>>::visit_with(_field_0, visitor);
10961            }
10962            Expr::TsNonNull { 0: _field_0 } => {
10963                <TsNonNullExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10964            }
10965            Expr::TsAs { 0: _field_0 } => {
10966                <TsAsExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10967            }
10968            Expr::TsInstantiation { 0: _field_0 } => {
10969                <TsInstantiation as VisitWith<V>>::visit_with(_field_0, visitor);
10970            }
10971            Expr::TsSatisfies { 0: _field_0 } => {
10972                <TsSatisfiesExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10973            }
10974            Expr::PrivateName { 0: _field_0 } => {
10975                <PrivateName as VisitWith<V>>::visit_with(_field_0, visitor);
10976            }
10977            Expr::OptChain { 0: _field_0 } => {
10978                <OptChainExpr as VisitWith<V>>::visit_with(_field_0, visitor);
10979            }
10980            Expr::Invalid { 0: _field_0 } => {
10981                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
10982            }
10983        }
10984    }
10985}
10986impl<V: ?Sized + Visit> VisitWith<V> for ExprOrSpread {
10987    #[doc = "Calls [Visit`::visit_expr_or_spread`] with `self`."]
10988    fn visit_with(&self, visitor: &mut V) {
10989        <V as Visit>::visit_expr_or_spread(visitor, self)
10990    }
10991
10992    fn visit_children_with(&self, visitor: &mut V) {
10993        match self {
10994            ExprOrSpread { spread, expr } => {
10995                {
10996                    <Option<swc_common::Span> as VisitWith<V>>::visit_with(spread, visitor)
10997                };
10998                {
10999                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
11000                };
11001            }
11002        }
11003    }
11004}
11005impl<V: ?Sized + Visit> VisitWith<V> for ExprStmt {
11006    #[doc = "Calls [Visit`::visit_expr_stmt`] with `self`."]
11007    fn visit_with(&self, visitor: &mut V) {
11008        <V as Visit>::visit_expr_stmt(visitor, self)
11009    }
11010
11011    fn visit_children_with(&self, visitor: &mut V) {
11012        match self {
11013            ExprStmt { span, expr } => {
11014                {
11015                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11016                };
11017                {
11018                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
11019                };
11020            }
11021        }
11022    }
11023}
11024impl<V: ?Sized + Visit> VisitWith<V> for FnDecl {
11025    #[doc = "Calls [Visit`::visit_fn_decl`] with `self`."]
11026    fn visit_with(&self, visitor: &mut V) {
11027        <V as Visit>::visit_fn_decl(visitor, self)
11028    }
11029
11030    fn visit_children_with(&self, visitor: &mut V) {
11031        match self {
11032            FnDecl {
11033                ident,
11034                declare,
11035                function,
11036            } => {
11037                {
11038                    <Ident as VisitWith<V>>::visit_with(ident, visitor)
11039                };
11040                {
11041                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
11042                };
11043            }
11044        }
11045    }
11046}
11047impl<V: ?Sized + Visit> VisitWith<V> for FnExpr {
11048    #[doc = "Calls [Visit`::visit_fn_expr`] with `self`."]
11049    fn visit_with(&self, visitor: &mut V) {
11050        <V as Visit>::visit_fn_expr(visitor, self)
11051    }
11052
11053    fn visit_children_with(&self, visitor: &mut V) {
11054        match self {
11055            FnExpr { ident, function } => {
11056                {
11057                    <Option<Ident> as VisitWith<V>>::visit_with(ident, visitor)
11058                };
11059                {
11060                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
11061                };
11062            }
11063        }
11064    }
11065}
11066impl<V: ?Sized + Visit> VisitWith<V> for ForHead {
11067    #[doc = "Calls [Visit`::visit_for_head`] with `self`."]
11068    fn visit_with(&self, visitor: &mut V) {
11069        <V as Visit>::visit_for_head(visitor, self)
11070    }
11071
11072    fn visit_children_with(&self, visitor: &mut V) {
11073        match self {
11074            ForHead::VarDecl { 0: _field_0 } => {
11075                <Box<VarDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
11076            }
11077            ForHead::UsingDecl { 0: _field_0 } => {
11078                <Box<UsingDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
11079            }
11080            ForHead::Pat { 0: _field_0 } => {
11081                <Box<Pat> as VisitWith<V>>::visit_with(_field_0, visitor);
11082            }
11083        }
11084    }
11085}
11086impl<V: ?Sized + Visit> VisitWith<V> for ForInStmt {
11087    #[doc = "Calls [Visit`::visit_for_in_stmt`] with `self`."]
11088    fn visit_with(&self, visitor: &mut V) {
11089        <V as Visit>::visit_for_in_stmt(visitor, self)
11090    }
11091
11092    fn visit_children_with(&self, visitor: &mut V) {
11093        match self {
11094            ForInStmt {
11095                span,
11096                left,
11097                right,
11098                body,
11099            } => {
11100                {
11101                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11102                };
11103                {
11104                    <ForHead as VisitWith<V>>::visit_with(left, visitor)
11105                };
11106                {
11107                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
11108                };
11109                {
11110                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
11111                };
11112            }
11113        }
11114    }
11115}
11116impl<V: ?Sized + Visit> VisitWith<V> for ForOfStmt {
11117    #[doc = "Calls [Visit`::visit_for_of_stmt`] with `self`."]
11118    fn visit_with(&self, visitor: &mut V) {
11119        <V as Visit>::visit_for_of_stmt(visitor, self)
11120    }
11121
11122    fn visit_children_with(&self, visitor: &mut V) {
11123        match self {
11124            ForOfStmt {
11125                span,
11126                is_await,
11127                left,
11128                right,
11129                body,
11130            } => {
11131                {
11132                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11133                };
11134                {
11135                    <ForHead as VisitWith<V>>::visit_with(left, visitor)
11136                };
11137                {
11138                    <Box<Expr> as VisitWith<V>>::visit_with(right, visitor)
11139                };
11140                {
11141                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
11142                };
11143            }
11144        }
11145    }
11146}
11147impl<V: ?Sized + Visit> VisitWith<V> for ForStmt {
11148    #[doc = "Calls [Visit`::visit_for_stmt`] with `self`."]
11149    fn visit_with(&self, visitor: &mut V) {
11150        <V as Visit>::visit_for_stmt(visitor, self)
11151    }
11152
11153    fn visit_children_with(&self, visitor: &mut V) {
11154        match self {
11155            ForStmt {
11156                span,
11157                init,
11158                test,
11159                update,
11160                body,
11161            } => {
11162                {
11163                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11164                };
11165                {
11166                    <Option<VarDeclOrExpr> as VisitWith<V>>::visit_with(init, visitor)
11167                };
11168                {
11169                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(test, visitor)
11170                };
11171                {
11172                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(update, visitor)
11173                };
11174                {
11175                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
11176                };
11177            }
11178        }
11179    }
11180}
11181impl<V: ?Sized + Visit> VisitWith<V> for Function {
11182    #[doc = "Calls [Visit`::visit_function`] with `self`."]
11183    fn visit_with(&self, visitor: &mut V) {
11184        <V as Visit>::visit_function(visitor, self)
11185    }
11186
11187    fn visit_children_with(&self, visitor: &mut V) {
11188        match self {
11189            Function {
11190                params,
11191                decorators,
11192                span,
11193                ctxt,
11194                body,
11195                is_generator,
11196                is_async,
11197                type_params,
11198                return_type,
11199            } => {
11200                {
11201                    <Vec<Param> as VisitWith<V>>::visit_with(params, visitor)
11202                };
11203                {
11204                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
11205                };
11206                {
11207                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11208                };
11209                {
11210                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
11211                };
11212                {
11213                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
11214                };
11215                {
11216                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
11217                };
11218                {
11219                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(return_type, visitor)
11220                };
11221            }
11222        }
11223    }
11224}
11225impl<V: ?Sized + Visit> VisitWith<V> for GetterProp {
11226    #[doc = "Calls [Visit`::visit_getter_prop`] with `self`."]
11227    fn visit_with(&self, visitor: &mut V) {
11228        <V as Visit>::visit_getter_prop(visitor, self)
11229    }
11230
11231    fn visit_children_with(&self, visitor: &mut V) {
11232        match self {
11233            GetterProp {
11234                span,
11235                key,
11236                type_ann,
11237                body,
11238            } => {
11239                {
11240                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11241                };
11242                {
11243                    <PropName as VisitWith<V>>::visit_with(key, visitor)
11244                };
11245                {
11246                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
11247                };
11248                {
11249                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
11250                };
11251            }
11252        }
11253    }
11254}
11255impl<V: ?Sized + Visit> VisitWith<V> for Ident {
11256    #[doc = "Calls [Visit`::visit_ident`] with `self`."]
11257    fn visit_with(&self, visitor: &mut V) {
11258        <V as Visit>::visit_ident(visitor, self)
11259    }
11260
11261    fn visit_children_with(&self, visitor: &mut V) {
11262        match self {
11263            Ident {
11264                span,
11265                ctxt,
11266                sym,
11267                optional,
11268            } => {
11269                {
11270                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11271                };
11272                {
11273                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
11274                };
11275                {
11276                    <swc_atoms::Atom as VisitWith<V>>::visit_with(sym, visitor)
11277                };
11278            }
11279        }
11280    }
11281}
11282impl<V: ?Sized + Visit> VisitWith<V> for IdentName {
11283    #[doc = "Calls [Visit`::visit_ident_name`] with `self`."]
11284    fn visit_with(&self, visitor: &mut V) {
11285        <V as Visit>::visit_ident_name(visitor, self)
11286    }
11287
11288    fn visit_children_with(&self, visitor: &mut V) {
11289        match self {
11290            IdentName { span, sym } => {
11291                {
11292                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11293                };
11294                {
11295                    <swc_atoms::Atom as VisitWith<V>>::visit_with(sym, visitor)
11296                };
11297            }
11298        }
11299    }
11300}
11301impl<V: ?Sized + Visit> VisitWith<V> for IfStmt {
11302    #[doc = "Calls [Visit`::visit_if_stmt`] with `self`."]
11303    fn visit_with(&self, visitor: &mut V) {
11304        <V as Visit>::visit_if_stmt(visitor, self)
11305    }
11306
11307    fn visit_children_with(&self, visitor: &mut V) {
11308        match self {
11309            IfStmt {
11310                span,
11311                test,
11312                cons,
11313                alt,
11314            } => {
11315                {
11316                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11317                };
11318                {
11319                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
11320                };
11321                {
11322                    <Box<Stmt> as VisitWith<V>>::visit_with(cons, visitor)
11323                };
11324                {
11325                    <Option<Box<Stmt>> as VisitWith<V>>::visit_with(alt, visitor)
11326                };
11327            }
11328        }
11329    }
11330}
11331impl<V: ?Sized + Visit> VisitWith<V> for Import {
11332    #[doc = "Calls [Visit`::visit_import`] with `self`."]
11333    fn visit_with(&self, visitor: &mut V) {
11334        <V as Visit>::visit_import(visitor, self)
11335    }
11336
11337    fn visit_children_with(&self, visitor: &mut V) {
11338        match self {
11339            Import { span, phase } => {
11340                {
11341                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11342                };
11343                {
11344                    <ImportPhase as VisitWith<V>>::visit_with(phase, visitor)
11345                };
11346            }
11347        }
11348    }
11349}
11350impl<V: ?Sized + Visit> VisitWith<V> for ImportDecl {
11351    #[doc = "Calls [Visit`::visit_import_decl`] with `self`."]
11352    fn visit_with(&self, visitor: &mut V) {
11353        <V as Visit>::visit_import_decl(visitor, self)
11354    }
11355
11356    fn visit_children_with(&self, visitor: &mut V) {
11357        match self {
11358            ImportDecl {
11359                span,
11360                specifiers,
11361                src,
11362                type_only,
11363                with,
11364                phase,
11365            } => {
11366                {
11367                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11368                };
11369                {
11370                    <Vec<ImportSpecifier> as VisitWith<V>>::visit_with(specifiers, visitor)
11371                };
11372                {
11373                    <Box<Str> as VisitWith<V>>::visit_with(src, visitor)
11374                };
11375                {
11376                    <Option<Box<ObjectLit>> as VisitWith<V>>::visit_with(with, visitor)
11377                };
11378                {
11379                    <ImportPhase as VisitWith<V>>::visit_with(phase, visitor)
11380                };
11381            }
11382        }
11383    }
11384}
11385impl<V: ?Sized + Visit> VisitWith<V> for ImportDefaultSpecifier {
11386    #[doc = "Calls [Visit`::visit_import_default_specifier`] with `self`."]
11387    fn visit_with(&self, visitor: &mut V) {
11388        <V as Visit>::visit_import_default_specifier(visitor, self)
11389    }
11390
11391    fn visit_children_with(&self, visitor: &mut V) {
11392        match self {
11393            ImportDefaultSpecifier { span, local } => {
11394                {
11395                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11396                };
11397                {
11398                    <Ident as VisitWith<V>>::visit_with(local, visitor)
11399                };
11400            }
11401        }
11402    }
11403}
11404impl<V: ?Sized + Visit> VisitWith<V> for ImportNamedSpecifier {
11405    #[doc = "Calls [Visit`::visit_import_named_specifier`] with `self`."]
11406    fn visit_with(&self, visitor: &mut V) {
11407        <V as Visit>::visit_import_named_specifier(visitor, self)
11408    }
11409
11410    fn visit_children_with(&self, visitor: &mut V) {
11411        match self {
11412            ImportNamedSpecifier {
11413                span,
11414                local,
11415                imported,
11416                is_type_only,
11417            } => {
11418                {
11419                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11420                };
11421                {
11422                    <Ident as VisitWith<V>>::visit_with(local, visitor)
11423                };
11424                {
11425                    <Option<ModuleExportName> as VisitWith<V>>::visit_with(imported, visitor)
11426                };
11427            }
11428        }
11429    }
11430}
11431impl<V: ?Sized + Visit> VisitWith<V> for ImportPhase {
11432    #[doc = "Calls [Visit`::visit_import_phase`] with `self`."]
11433    fn visit_with(&self, visitor: &mut V) {
11434        <V as Visit>::visit_import_phase(visitor, self)
11435    }
11436
11437    fn visit_children_with(&self, visitor: &mut V) {
11438        match self {
11439            ImportPhase::Evaluation => {}
11440            ImportPhase::Source => {}
11441            ImportPhase::Defer => {}
11442        }
11443    }
11444}
11445impl<V: ?Sized + Visit> VisitWith<V> for ImportSpecifier {
11446    #[doc = "Calls [Visit`::visit_import_specifier`] with `self`."]
11447    fn visit_with(&self, visitor: &mut V) {
11448        <V as Visit>::visit_import_specifier(visitor, self)
11449    }
11450
11451    fn visit_children_with(&self, visitor: &mut V) {
11452        match self {
11453            ImportSpecifier::Named { 0: _field_0 } => {
11454                <ImportNamedSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
11455            }
11456            ImportSpecifier::Default { 0: _field_0 } => {
11457                <ImportDefaultSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
11458            }
11459            ImportSpecifier::Namespace { 0: _field_0 } => {
11460                <ImportStarAsSpecifier as VisitWith<V>>::visit_with(_field_0, visitor);
11461            }
11462        }
11463    }
11464}
11465impl<V: ?Sized + Visit> VisitWith<V> for ImportStarAsSpecifier {
11466    #[doc = "Calls [Visit`::visit_import_star_as_specifier`] with `self`."]
11467    fn visit_with(&self, visitor: &mut V) {
11468        <V as Visit>::visit_import_star_as_specifier(visitor, self)
11469    }
11470
11471    fn visit_children_with(&self, visitor: &mut V) {
11472        match self {
11473            ImportStarAsSpecifier { span, local } => {
11474                {
11475                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11476                };
11477                {
11478                    <Ident as VisitWith<V>>::visit_with(local, visitor)
11479                };
11480            }
11481        }
11482    }
11483}
11484impl<V: ?Sized + Visit> VisitWith<V> for ImportWith {
11485    #[doc = "Calls [Visit`::visit_import_with`] with `self`."]
11486    fn visit_with(&self, visitor: &mut V) {
11487        <V as Visit>::visit_import_with(visitor, self)
11488    }
11489
11490    fn visit_children_with(&self, visitor: &mut V) {
11491        match self {
11492            ImportWith { span, values } => {
11493                {
11494                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11495                };
11496                {
11497                    <Vec<ImportWithItem> as VisitWith<V>>::visit_with(values, visitor)
11498                };
11499            }
11500        }
11501    }
11502}
11503impl<V: ?Sized + Visit> VisitWith<V> for ImportWithItem {
11504    #[doc = "Calls [Visit`::visit_import_with_item`] with `self`."]
11505    fn visit_with(&self, visitor: &mut V) {
11506        <V as Visit>::visit_import_with_item(visitor, self)
11507    }
11508
11509    fn visit_children_with(&self, visitor: &mut V) {
11510        match self {
11511            ImportWithItem { key, value } => {
11512                {
11513                    <IdentName as VisitWith<V>>::visit_with(key, visitor)
11514                };
11515                {
11516                    <Str as VisitWith<V>>::visit_with(value, visitor)
11517                };
11518            }
11519        }
11520    }
11521}
11522impl<V: ?Sized + Visit> VisitWith<V> for Invalid {
11523    #[doc = "Calls [Visit`::visit_invalid`] with `self`."]
11524    fn visit_with(&self, visitor: &mut V) {
11525        <V as Visit>::visit_invalid(visitor, self)
11526    }
11527
11528    fn visit_children_with(&self, visitor: &mut V) {
11529        match self {
11530            Invalid { span } => {
11531                {
11532                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11533                };
11534            }
11535        }
11536    }
11537}
11538impl<V: ?Sized + Visit> VisitWith<V> for JSXAttr {
11539    #[doc = "Calls [Visit`::visit_jsx_attr`] with `self`."]
11540    fn visit_with(&self, visitor: &mut V) {
11541        <V as Visit>::visit_jsx_attr(visitor, self)
11542    }
11543
11544    fn visit_children_with(&self, visitor: &mut V) {
11545        match self {
11546            JSXAttr { span, name, value } => {
11547                {
11548                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11549                };
11550                {
11551                    <JSXAttrName as VisitWith<V>>::visit_with(name, visitor)
11552                };
11553                {
11554                    <Option<JSXAttrValue> as VisitWith<V>>::visit_with(value, visitor)
11555                };
11556            }
11557        }
11558    }
11559}
11560impl<V: ?Sized + Visit> VisitWith<V> for JSXAttrName {
11561    #[doc = "Calls [Visit`::visit_jsx_attr_name`] with `self`."]
11562    fn visit_with(&self, visitor: &mut V) {
11563        <V as Visit>::visit_jsx_attr_name(visitor, self)
11564    }
11565
11566    fn visit_children_with(&self, visitor: &mut V) {
11567        match self {
11568            JSXAttrName::Ident { 0: _field_0 } => {
11569                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
11570            }
11571            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
11572                <JSXNamespacedName as VisitWith<V>>::visit_with(_field_0, visitor);
11573            }
11574        }
11575    }
11576}
11577impl<V: ?Sized + Visit> VisitWith<V> for JSXAttrOrSpread {
11578    #[doc = "Calls [Visit`::visit_jsx_attr_or_spread`] with `self`."]
11579    fn visit_with(&self, visitor: &mut V) {
11580        <V as Visit>::visit_jsx_attr_or_spread(visitor, self)
11581    }
11582
11583    fn visit_children_with(&self, visitor: &mut V) {
11584        match self {
11585            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
11586                <JSXAttr as VisitWith<V>>::visit_with(_field_0, visitor);
11587            }
11588            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
11589                <SpreadElement as VisitWith<V>>::visit_with(_field_0, visitor);
11590            }
11591        }
11592    }
11593}
11594impl<V: ?Sized + Visit> VisitWith<V> for JSXAttrValue {
11595    #[doc = "Calls [Visit`::visit_jsx_attr_value`] with `self`."]
11596    fn visit_with(&self, visitor: &mut V) {
11597        <V as Visit>::visit_jsx_attr_value(visitor, self)
11598    }
11599
11600    fn visit_children_with(&self, visitor: &mut V) {
11601        match self {
11602            JSXAttrValue::Lit { 0: _field_0 } => {
11603                <Lit as VisitWith<V>>::visit_with(_field_0, visitor);
11604            }
11605            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
11606                <JSXExprContainer as VisitWith<V>>::visit_with(_field_0, visitor);
11607            }
11608            JSXAttrValue::JSXElement { 0: _field_0 } => {
11609                <Box<JSXElement> as VisitWith<V>>::visit_with(_field_0, visitor);
11610            }
11611            JSXAttrValue::JSXFragment { 0: _field_0 } => {
11612                <JSXFragment as VisitWith<V>>::visit_with(_field_0, visitor);
11613            }
11614        }
11615    }
11616}
11617impl<V: ?Sized + Visit> VisitWith<V> for JSXClosingElement {
11618    #[doc = "Calls [Visit`::visit_jsx_closing_element`] with `self`."]
11619    fn visit_with(&self, visitor: &mut V) {
11620        <V as Visit>::visit_jsx_closing_element(visitor, self)
11621    }
11622
11623    fn visit_children_with(&self, visitor: &mut V) {
11624        match self {
11625            JSXClosingElement { span, name } => {
11626                {
11627                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11628                };
11629                {
11630                    <JSXElementName as VisitWith<V>>::visit_with(name, visitor)
11631                };
11632            }
11633        }
11634    }
11635}
11636impl<V: ?Sized + Visit> VisitWith<V> for JSXClosingFragment {
11637    #[doc = "Calls [Visit`::visit_jsx_closing_fragment`] with `self`."]
11638    fn visit_with(&self, visitor: &mut V) {
11639        <V as Visit>::visit_jsx_closing_fragment(visitor, self)
11640    }
11641
11642    fn visit_children_with(&self, visitor: &mut V) {
11643        match self {
11644            JSXClosingFragment { span } => {
11645                {
11646                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11647                };
11648            }
11649        }
11650    }
11651}
11652impl<V: ?Sized + Visit> VisitWith<V> for JSXElement {
11653    #[doc = "Calls [Visit`::visit_jsx_element`] with `self`."]
11654    fn visit_with(&self, visitor: &mut V) {
11655        <V as Visit>::visit_jsx_element(visitor, self)
11656    }
11657
11658    fn visit_children_with(&self, visitor: &mut V) {
11659        match self {
11660            JSXElement {
11661                span,
11662                opening,
11663                children,
11664                closing,
11665            } => {
11666                {
11667                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11668                };
11669                {
11670                    <JSXOpeningElement as VisitWith<V>>::visit_with(opening, visitor)
11671                };
11672                {
11673                    <Vec<JSXElementChild> as VisitWith<V>>::visit_with(children, visitor)
11674                };
11675                {
11676                    <Option<JSXClosingElement> as VisitWith<V>>::visit_with(closing, visitor)
11677                };
11678            }
11679        }
11680    }
11681}
11682impl<V: ?Sized + Visit> VisitWith<V> for JSXElementChild {
11683    #[doc = "Calls [Visit`::visit_jsx_element_child`] with `self`."]
11684    fn visit_with(&self, visitor: &mut V) {
11685        <V as Visit>::visit_jsx_element_child(visitor, self)
11686    }
11687
11688    fn visit_children_with(&self, visitor: &mut V) {
11689        match self {
11690            JSXElementChild::JSXText { 0: _field_0 } => {
11691                <JSXText as VisitWith<V>>::visit_with(_field_0, visitor);
11692            }
11693            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
11694                <JSXExprContainer as VisitWith<V>>::visit_with(_field_0, visitor);
11695            }
11696            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
11697                <JSXSpreadChild as VisitWith<V>>::visit_with(_field_0, visitor);
11698            }
11699            JSXElementChild::JSXElement { 0: _field_0 } => {
11700                <Box<JSXElement> as VisitWith<V>>::visit_with(_field_0, visitor);
11701            }
11702            JSXElementChild::JSXFragment { 0: _field_0 } => {
11703                <JSXFragment as VisitWith<V>>::visit_with(_field_0, visitor);
11704            }
11705        }
11706    }
11707}
11708impl<V: ?Sized + Visit> VisitWith<V> for JSXElementName {
11709    #[doc = "Calls [Visit`::visit_jsx_element_name`] with `self`."]
11710    fn visit_with(&self, visitor: &mut V) {
11711        <V as Visit>::visit_jsx_element_name(visitor, self)
11712    }
11713
11714    fn visit_children_with(&self, visitor: &mut V) {
11715        match self {
11716            JSXElementName::Ident { 0: _field_0 } => {
11717                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
11718            }
11719            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
11720                <JSXMemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11721            }
11722            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
11723                <JSXNamespacedName as VisitWith<V>>::visit_with(_field_0, visitor);
11724            }
11725        }
11726    }
11727}
11728impl<V: ?Sized + Visit> VisitWith<V> for JSXEmptyExpr {
11729    #[doc = "Calls [Visit`::visit_jsx_empty_expr`] with `self`."]
11730    fn visit_with(&self, visitor: &mut V) {
11731        <V as Visit>::visit_jsx_empty_expr(visitor, self)
11732    }
11733
11734    fn visit_children_with(&self, visitor: &mut V) {
11735        match self {
11736            JSXEmptyExpr { span } => {
11737                {
11738                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11739                };
11740            }
11741        }
11742    }
11743}
11744impl<V: ?Sized + Visit> VisitWith<V> for JSXExpr {
11745    #[doc = "Calls [Visit`::visit_jsx_expr`] with `self`."]
11746    fn visit_with(&self, visitor: &mut V) {
11747        <V as Visit>::visit_jsx_expr(visitor, self)
11748    }
11749
11750    fn visit_children_with(&self, visitor: &mut V) {
11751        match self {
11752            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
11753                <JSXEmptyExpr as VisitWith<V>>::visit_with(_field_0, visitor);
11754            }
11755            JSXExpr::Expr { 0: _field_0 } => {
11756                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
11757            }
11758        }
11759    }
11760}
11761impl<V: ?Sized + Visit> VisitWith<V> for JSXExprContainer {
11762    #[doc = "Calls [Visit`::visit_jsx_expr_container`] with `self`."]
11763    fn visit_with(&self, visitor: &mut V) {
11764        <V as Visit>::visit_jsx_expr_container(visitor, self)
11765    }
11766
11767    fn visit_children_with(&self, visitor: &mut V) {
11768        match self {
11769            JSXExprContainer { span, expr } => {
11770                {
11771                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11772                };
11773                {
11774                    <JSXExpr as VisitWith<V>>::visit_with(expr, visitor)
11775                };
11776            }
11777        }
11778    }
11779}
11780impl<V: ?Sized + Visit> VisitWith<V> for JSXFragment {
11781    #[doc = "Calls [Visit`::visit_jsx_fragment`] with `self`."]
11782    fn visit_with(&self, visitor: &mut V) {
11783        <V as Visit>::visit_jsx_fragment(visitor, self)
11784    }
11785
11786    fn visit_children_with(&self, visitor: &mut V) {
11787        match self {
11788            JSXFragment {
11789                span,
11790                opening,
11791                children,
11792                closing,
11793            } => {
11794                {
11795                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11796                };
11797                {
11798                    <JSXOpeningFragment as VisitWith<V>>::visit_with(opening, visitor)
11799                };
11800                {
11801                    <Vec<JSXElementChild> as VisitWith<V>>::visit_with(children, visitor)
11802                };
11803                {
11804                    <JSXClosingFragment as VisitWith<V>>::visit_with(closing, visitor)
11805                };
11806            }
11807        }
11808    }
11809}
11810impl<V: ?Sized + Visit> VisitWith<V> for JSXMemberExpr {
11811    #[doc = "Calls [Visit`::visit_jsx_member_expr`] with `self`."]
11812    fn visit_with(&self, visitor: &mut V) {
11813        <V as Visit>::visit_jsx_member_expr(visitor, self)
11814    }
11815
11816    fn visit_children_with(&self, visitor: &mut V) {
11817        match self {
11818            JSXMemberExpr { span, obj, prop } => {
11819                {
11820                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11821                };
11822                {
11823                    <JSXObject as VisitWith<V>>::visit_with(obj, visitor)
11824                };
11825                {
11826                    <IdentName as VisitWith<V>>::visit_with(prop, visitor)
11827                };
11828            }
11829        }
11830    }
11831}
11832impl<V: ?Sized + Visit> VisitWith<V> for JSXNamespacedName {
11833    #[doc = "Calls [Visit`::visit_jsx_namespaced_name`] with `self`."]
11834    fn visit_with(&self, visitor: &mut V) {
11835        <V as Visit>::visit_jsx_namespaced_name(visitor, self)
11836    }
11837
11838    fn visit_children_with(&self, visitor: &mut V) {
11839        match self {
11840            JSXNamespacedName { span, ns, name } => {
11841                {
11842                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11843                };
11844                {
11845                    <IdentName as VisitWith<V>>::visit_with(ns, visitor)
11846                };
11847                {
11848                    <IdentName as VisitWith<V>>::visit_with(name, visitor)
11849                };
11850            }
11851        }
11852    }
11853}
11854impl<V: ?Sized + Visit> VisitWith<V> for JSXObject {
11855    #[doc = "Calls [Visit`::visit_jsx_object`] with `self`."]
11856    fn visit_with(&self, visitor: &mut V) {
11857        <V as Visit>::visit_jsx_object(visitor, self)
11858    }
11859
11860    fn visit_children_with(&self, visitor: &mut V) {
11861        match self {
11862            JSXObject::JSXMemberExpr { 0: _field_0 } => {
11863                <Box<JSXMemberExpr> as VisitWith<V>>::visit_with(_field_0, visitor);
11864            }
11865            JSXObject::Ident { 0: _field_0 } => {
11866                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
11867            }
11868        }
11869    }
11870}
11871impl<V: ?Sized + Visit> VisitWith<V> for JSXOpeningElement {
11872    #[doc = "Calls [Visit`::visit_jsx_opening_element`] with `self`."]
11873    fn visit_with(&self, visitor: &mut V) {
11874        <V as Visit>::visit_jsx_opening_element(visitor, self)
11875    }
11876
11877    fn visit_children_with(&self, visitor: &mut V) {
11878        match self {
11879            JSXOpeningElement {
11880                name,
11881                span,
11882                attrs,
11883                self_closing,
11884                type_args,
11885            } => {
11886                {
11887                    <JSXElementName as VisitWith<V>>::visit_with(name, visitor)
11888                };
11889                {
11890                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11891                };
11892                {
11893                    <Vec<JSXAttrOrSpread> as VisitWith<V>>::visit_with(attrs, visitor)
11894                };
11895                {
11896                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
11897                        type_args, visitor,
11898                    )
11899                };
11900            }
11901        }
11902    }
11903}
11904impl<V: ?Sized + Visit> VisitWith<V> for JSXOpeningFragment {
11905    #[doc = "Calls [Visit`::visit_jsx_opening_fragment`] with `self`."]
11906    fn visit_with(&self, visitor: &mut V) {
11907        <V as Visit>::visit_jsx_opening_fragment(visitor, self)
11908    }
11909
11910    fn visit_children_with(&self, visitor: &mut V) {
11911        match self {
11912            JSXOpeningFragment { span } => {
11913                {
11914                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11915                };
11916            }
11917        }
11918    }
11919}
11920impl<V: ?Sized + Visit> VisitWith<V> for JSXSpreadChild {
11921    #[doc = "Calls [Visit`::visit_jsx_spread_child`] with `self`."]
11922    fn visit_with(&self, visitor: &mut V) {
11923        <V as Visit>::visit_jsx_spread_child(visitor, self)
11924    }
11925
11926    fn visit_children_with(&self, visitor: &mut V) {
11927        match self {
11928            JSXSpreadChild { span, expr } => {
11929                {
11930                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11931                };
11932                {
11933                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
11934                };
11935            }
11936        }
11937    }
11938}
11939impl<V: ?Sized + Visit> VisitWith<V> for JSXText {
11940    #[doc = "Calls [Visit`::visit_jsx_text`] with `self`."]
11941    fn visit_with(&self, visitor: &mut V) {
11942        <V as Visit>::visit_jsx_text(visitor, self)
11943    }
11944
11945    fn visit_children_with(&self, visitor: &mut V) {
11946        match self {
11947            JSXText { span, value, raw } => {
11948                {
11949                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
11950                };
11951                {
11952                    <swc_atoms::Atom as VisitWith<V>>::visit_with(value, visitor)
11953                };
11954                {
11955                    <swc_atoms::Atom as VisitWith<V>>::visit_with(raw, visitor)
11956                };
11957            }
11958        }
11959    }
11960}
11961impl<V: ?Sized + Visit> VisitWith<V> for Key {
11962    #[doc = "Calls [Visit`::visit_key`] with `self`."]
11963    fn visit_with(&self, visitor: &mut V) {
11964        <V as Visit>::visit_key(visitor, self)
11965    }
11966
11967    fn visit_children_with(&self, visitor: &mut V) {
11968        match self {
11969            Key::Private { 0: _field_0 } => {
11970                <PrivateName as VisitWith<V>>::visit_with(_field_0, visitor);
11971            }
11972            Key::Public { 0: _field_0 } => {
11973                <PropName as VisitWith<V>>::visit_with(_field_0, visitor);
11974            }
11975        }
11976    }
11977}
11978impl<V: ?Sized + Visit> VisitWith<V> for KeyValuePatProp {
11979    #[doc = "Calls [Visit`::visit_key_value_pat_prop`] with `self`."]
11980    fn visit_with(&self, visitor: &mut V) {
11981        <V as Visit>::visit_key_value_pat_prop(visitor, self)
11982    }
11983
11984    fn visit_children_with(&self, visitor: &mut V) {
11985        match self {
11986            KeyValuePatProp { key, value } => {
11987                {
11988                    <PropName as VisitWith<V>>::visit_with(key, visitor)
11989                };
11990                {
11991                    <Box<Pat> as VisitWith<V>>::visit_with(value, visitor)
11992                };
11993            }
11994        }
11995    }
11996}
11997impl<V: ?Sized + Visit> VisitWith<V> for KeyValueProp {
11998    #[doc = "Calls [Visit`::visit_key_value_prop`] with `self`."]
11999    fn visit_with(&self, visitor: &mut V) {
12000        <V as Visit>::visit_key_value_prop(visitor, self)
12001    }
12002
12003    fn visit_children_with(&self, visitor: &mut V) {
12004        match self {
12005            KeyValueProp { key, value } => {
12006                {
12007                    <PropName as VisitWith<V>>::visit_with(key, visitor)
12008                };
12009                {
12010                    <Box<Expr> as VisitWith<V>>::visit_with(value, visitor)
12011                };
12012            }
12013        }
12014    }
12015}
12016impl<V: ?Sized + Visit> VisitWith<V> for LabeledStmt {
12017    #[doc = "Calls [Visit`::visit_labeled_stmt`] with `self`."]
12018    fn visit_with(&self, visitor: &mut V) {
12019        <V as Visit>::visit_labeled_stmt(visitor, self)
12020    }
12021
12022    fn visit_children_with(&self, visitor: &mut V) {
12023        match self {
12024            LabeledStmt { span, label, body } => {
12025                {
12026                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12027                };
12028                {
12029                    <Ident as VisitWith<V>>::visit_with(label, visitor)
12030                };
12031                {
12032                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
12033                };
12034            }
12035        }
12036    }
12037}
12038impl<V: ?Sized + Visit> VisitWith<V> for Lit {
12039    #[doc = "Calls [Visit`::visit_lit`] with `self`."]
12040    fn visit_with(&self, visitor: &mut V) {
12041        <V as Visit>::visit_lit(visitor, self)
12042    }
12043
12044    fn visit_children_with(&self, visitor: &mut V) {
12045        match self {
12046            Lit::Str { 0: _field_0 } => {
12047                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
12048            }
12049            Lit::Bool { 0: _field_0 } => {
12050                <Bool as VisitWith<V>>::visit_with(_field_0, visitor);
12051            }
12052            Lit::Null { 0: _field_0 } => {
12053                <Null as VisitWith<V>>::visit_with(_field_0, visitor);
12054            }
12055            Lit::Num { 0: _field_0 } => {
12056                <Number as VisitWith<V>>::visit_with(_field_0, visitor);
12057            }
12058            Lit::BigInt { 0: _field_0 } => {
12059                <BigInt as VisitWith<V>>::visit_with(_field_0, visitor);
12060            }
12061            Lit::Regex { 0: _field_0 } => {
12062                <Regex as VisitWith<V>>::visit_with(_field_0, visitor);
12063            }
12064            Lit::JSXText { 0: _field_0 } => {
12065                <JSXText as VisitWith<V>>::visit_with(_field_0, visitor);
12066            }
12067        }
12068    }
12069}
12070impl<V: ?Sized + Visit> VisitWith<V> for MemberExpr {
12071    #[doc = "Calls [Visit`::visit_member_expr`] with `self`."]
12072    fn visit_with(&self, visitor: &mut V) {
12073        <V as Visit>::visit_member_expr(visitor, self)
12074    }
12075
12076    fn visit_children_with(&self, visitor: &mut V) {
12077        match self {
12078            MemberExpr { span, obj, prop } => {
12079                {
12080                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12081                };
12082                {
12083                    <Box<Expr> as VisitWith<V>>::visit_with(obj, visitor)
12084                };
12085                {
12086                    <MemberProp as VisitWith<V>>::visit_with(prop, visitor)
12087                };
12088            }
12089        }
12090    }
12091}
12092impl<V: ?Sized + Visit> VisitWith<V> for MemberProp {
12093    #[doc = "Calls [Visit`::visit_member_prop`] with `self`."]
12094    fn visit_with(&self, visitor: &mut V) {
12095        <V as Visit>::visit_member_prop(visitor, self)
12096    }
12097
12098    fn visit_children_with(&self, visitor: &mut V) {
12099        match self {
12100            MemberProp::Ident { 0: _field_0 } => {
12101                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
12102            }
12103            MemberProp::PrivateName { 0: _field_0 } => {
12104                <PrivateName as VisitWith<V>>::visit_with(_field_0, visitor);
12105            }
12106            MemberProp::Computed { 0: _field_0 } => {
12107                <ComputedPropName as VisitWith<V>>::visit_with(_field_0, visitor);
12108            }
12109        }
12110    }
12111}
12112impl<V: ?Sized + Visit> VisitWith<V> for MetaPropExpr {
12113    #[doc = "Calls [Visit`::visit_meta_prop_expr`] with `self`."]
12114    fn visit_with(&self, visitor: &mut V) {
12115        <V as Visit>::visit_meta_prop_expr(visitor, self)
12116    }
12117
12118    fn visit_children_with(&self, visitor: &mut V) {
12119        match self {
12120            MetaPropExpr { span, kind } => {
12121                {
12122                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12123                };
12124                {
12125                    <MetaPropKind as VisitWith<V>>::visit_with(kind, visitor)
12126                };
12127            }
12128        }
12129    }
12130}
12131impl<V: ?Sized + Visit> VisitWith<V> for MetaPropKind {
12132    #[doc = "Calls [Visit`::visit_meta_prop_kind`] with `self`."]
12133    fn visit_with(&self, visitor: &mut V) {
12134        <V as Visit>::visit_meta_prop_kind(visitor, self)
12135    }
12136
12137    fn visit_children_with(&self, visitor: &mut V) {
12138        match self {
12139            MetaPropKind::NewTarget => {}
12140            MetaPropKind::ImportMeta => {}
12141        }
12142    }
12143}
12144impl<V: ?Sized + Visit> VisitWith<V> for MethodKind {
12145    #[doc = "Calls [Visit`::visit_method_kind`] with `self`."]
12146    fn visit_with(&self, visitor: &mut V) {
12147        <V as Visit>::visit_method_kind(visitor, self)
12148    }
12149
12150    fn visit_children_with(&self, visitor: &mut V) {
12151        match self {
12152            MethodKind::Method => {}
12153            MethodKind::Getter => {}
12154            MethodKind::Setter => {}
12155        }
12156    }
12157}
12158impl<V: ?Sized + Visit> VisitWith<V> for MethodProp {
12159    #[doc = "Calls [Visit`::visit_method_prop`] with `self`."]
12160    fn visit_with(&self, visitor: &mut V) {
12161        <V as Visit>::visit_method_prop(visitor, self)
12162    }
12163
12164    fn visit_children_with(&self, visitor: &mut V) {
12165        match self {
12166            MethodProp { key, function } => {
12167                {
12168                    <PropName as VisitWith<V>>::visit_with(key, visitor)
12169                };
12170                {
12171                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
12172                };
12173            }
12174        }
12175    }
12176}
12177impl<V: ?Sized + Visit> VisitWith<V> for Module {
12178    #[doc = "Calls [Visit`::visit_module`] with `self`."]
12179    fn visit_with(&self, visitor: &mut V) {
12180        <V as Visit>::visit_module(visitor, self)
12181    }
12182
12183    fn visit_children_with(&self, visitor: &mut V) {
12184        match self {
12185            Module {
12186                span,
12187                body,
12188                shebang,
12189            } => {
12190                {
12191                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12192                };
12193                {
12194                    <Vec<ModuleItem> as VisitWith<V>>::visit_with(body, visitor)
12195                };
12196                {
12197                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(shebang, visitor)
12198                };
12199            }
12200        }
12201    }
12202}
12203impl<V: ?Sized + Visit> VisitWith<V> for ModuleDecl {
12204    #[doc = "Calls [Visit`::visit_module_decl`] with `self`."]
12205    fn visit_with(&self, visitor: &mut V) {
12206        <V as Visit>::visit_module_decl(visitor, self)
12207    }
12208
12209    fn visit_children_with(&self, visitor: &mut V) {
12210        match self {
12211            ModuleDecl::Import { 0: _field_0 } => {
12212                <ImportDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12213            }
12214            ModuleDecl::ExportDecl { 0: _field_0 } => {
12215                <ExportDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12216            }
12217            ModuleDecl::ExportNamed { 0: _field_0 } => {
12218                <NamedExport as VisitWith<V>>::visit_with(_field_0, visitor);
12219            }
12220            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
12221                <ExportDefaultDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12222            }
12223            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
12224                <ExportDefaultExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12225            }
12226            ModuleDecl::ExportAll { 0: _field_0 } => {
12227                <ExportAll as VisitWith<V>>::visit_with(_field_0, visitor);
12228            }
12229            ModuleDecl::TsImportEquals { 0: _field_0 } => {
12230                <Box<TsImportEqualsDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
12231            }
12232            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
12233                <TsExportAssignment as VisitWith<V>>::visit_with(_field_0, visitor);
12234            }
12235            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
12236                <TsNamespaceExportDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12237            }
12238        }
12239    }
12240}
12241impl<V: ?Sized + Visit> VisitWith<V> for ModuleExportName {
12242    #[doc = "Calls [Visit`::visit_module_export_name`] with `self`."]
12243    fn visit_with(&self, visitor: &mut V) {
12244        <V as Visit>::visit_module_export_name(visitor, self)
12245    }
12246
12247    fn visit_children_with(&self, visitor: &mut V) {
12248        match self {
12249            ModuleExportName::Ident { 0: _field_0 } => {
12250                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
12251            }
12252            ModuleExportName::Str { 0: _field_0 } => {
12253                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
12254            }
12255        }
12256    }
12257}
12258impl<V: ?Sized + Visit> VisitWith<V> for ModuleItem {
12259    #[doc = "Calls [Visit`::visit_module_item`] with `self`."]
12260    fn visit_with(&self, visitor: &mut V) {
12261        <V as Visit>::visit_module_item(visitor, self)
12262    }
12263
12264    fn visit_children_with(&self, visitor: &mut V) {
12265        match self {
12266            ModuleItem::ModuleDecl { 0: _field_0 } => {
12267                <ModuleDecl as VisitWith<V>>::visit_with(_field_0, visitor);
12268            }
12269            ModuleItem::Stmt { 0: _field_0 } => {
12270                <Stmt as VisitWith<V>>::visit_with(_field_0, visitor);
12271            }
12272        }
12273    }
12274}
12275impl<V: ?Sized + Visit> VisitWith<V> for NamedExport {
12276    #[doc = "Calls [Visit`::visit_named_export`] with `self`."]
12277    fn visit_with(&self, visitor: &mut V) {
12278        <V as Visit>::visit_named_export(visitor, self)
12279    }
12280
12281    fn visit_children_with(&self, visitor: &mut V) {
12282        match self {
12283            NamedExport {
12284                span,
12285                specifiers,
12286                src,
12287                type_only,
12288                with,
12289            } => {
12290                {
12291                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12292                };
12293                {
12294                    <Vec<ExportSpecifier> as VisitWith<V>>::visit_with(specifiers, visitor)
12295                };
12296                {
12297                    <Option<Box<Str>> as VisitWith<V>>::visit_with(src, visitor)
12298                };
12299                {
12300                    <Option<Box<ObjectLit>> as VisitWith<V>>::visit_with(with, visitor)
12301                };
12302            }
12303        }
12304    }
12305}
12306impl<V: ?Sized + Visit> VisitWith<V> for NewExpr {
12307    #[doc = "Calls [Visit`::visit_new_expr`] with `self`."]
12308    fn visit_with(&self, visitor: &mut V) {
12309        <V as Visit>::visit_new_expr(visitor, self)
12310    }
12311
12312    fn visit_children_with(&self, visitor: &mut V) {
12313        match self {
12314            NewExpr {
12315                span,
12316                ctxt,
12317                callee,
12318                args,
12319                type_args,
12320            } => {
12321                {
12322                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12323                };
12324                {
12325                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
12326                };
12327                {
12328                    <Box<Expr> as VisitWith<V>>::visit_with(callee, visitor)
12329                };
12330                {
12331                    <Option<Vec<ExprOrSpread>> as VisitWith<V>>::visit_with(args, visitor)
12332                };
12333                {
12334                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
12335                        type_args, visitor,
12336                    )
12337                };
12338            }
12339        }
12340    }
12341}
12342impl<V: ?Sized + Visit> VisitWith<V> for Null {
12343    #[doc = "Calls [Visit`::visit_null`] with `self`."]
12344    fn visit_with(&self, visitor: &mut V) {
12345        <V as Visit>::visit_null(visitor, self)
12346    }
12347
12348    fn visit_children_with(&self, visitor: &mut V) {
12349        match self {
12350            Null { span } => {
12351                {
12352                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12353                };
12354            }
12355        }
12356    }
12357}
12358impl<V: ?Sized + Visit> VisitWith<V> for Number {
12359    #[doc = "Calls [Visit`::visit_number`] with `self`."]
12360    fn visit_with(&self, visitor: &mut V) {
12361        <V as Visit>::visit_number(visitor, self)
12362    }
12363
12364    fn visit_children_with(&self, visitor: &mut V) {
12365        match self {
12366            Number { span, value, raw } => {
12367                {
12368                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12369                };
12370                {
12371                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(raw, visitor)
12372                };
12373            }
12374        }
12375    }
12376}
12377impl<V: ?Sized + Visit> VisitWith<V> for ObjectLit {
12378    #[doc = "Calls [Visit`::visit_object_lit`] with `self`."]
12379    fn visit_with(&self, visitor: &mut V) {
12380        <V as Visit>::visit_object_lit(visitor, self)
12381    }
12382
12383    fn visit_children_with(&self, visitor: &mut V) {
12384        match self {
12385            ObjectLit { span, props } => {
12386                {
12387                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12388                };
12389                {
12390                    <Vec<PropOrSpread> as VisitWith<V>>::visit_with(props, visitor)
12391                };
12392            }
12393        }
12394    }
12395}
12396impl<V: ?Sized + Visit> VisitWith<V> for ObjectPat {
12397    #[doc = "Calls [Visit`::visit_object_pat`] with `self`."]
12398    fn visit_with(&self, visitor: &mut V) {
12399        <V as Visit>::visit_object_pat(visitor, self)
12400    }
12401
12402    fn visit_children_with(&self, visitor: &mut V) {
12403        match self {
12404            ObjectPat {
12405                span,
12406                props,
12407                optional,
12408                type_ann,
12409            } => {
12410                {
12411                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12412                };
12413                {
12414                    <Vec<ObjectPatProp> as VisitWith<V>>::visit_with(props, visitor)
12415                };
12416                {
12417                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
12418                };
12419            }
12420        }
12421    }
12422}
12423impl<V: ?Sized + Visit> VisitWith<V> for ObjectPatProp {
12424    #[doc = "Calls [Visit`::visit_object_pat_prop`] with `self`."]
12425    fn visit_with(&self, visitor: &mut V) {
12426        <V as Visit>::visit_object_pat_prop(visitor, self)
12427    }
12428
12429    fn visit_children_with(&self, visitor: &mut V) {
12430        match self {
12431            ObjectPatProp::KeyValue { 0: _field_0 } => {
12432                <KeyValuePatProp as VisitWith<V>>::visit_with(_field_0, visitor);
12433            }
12434            ObjectPatProp::Assign { 0: _field_0 } => {
12435                <AssignPatProp as VisitWith<V>>::visit_with(_field_0, visitor);
12436            }
12437            ObjectPatProp::Rest { 0: _field_0 } => {
12438                <RestPat as VisitWith<V>>::visit_with(_field_0, visitor);
12439            }
12440        }
12441    }
12442}
12443impl<V: ?Sized + Visit> VisitWith<V> for OptCall {
12444    #[doc = "Calls [Visit`::visit_opt_call`] with `self`."]
12445    fn visit_with(&self, visitor: &mut V) {
12446        <V as Visit>::visit_opt_call(visitor, self)
12447    }
12448
12449    fn visit_children_with(&self, visitor: &mut V) {
12450        match self {
12451            OptCall {
12452                span,
12453                ctxt,
12454                callee,
12455                args,
12456                type_args,
12457            } => {
12458                {
12459                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12460                };
12461                {
12462                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
12463                };
12464                {
12465                    <Box<Expr> as VisitWith<V>>::visit_with(callee, visitor)
12466                };
12467                {
12468                    <Vec<ExprOrSpread> as VisitWith<V>>::visit_with(args, visitor)
12469                };
12470                {
12471                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
12472                        type_args, visitor,
12473                    )
12474                };
12475            }
12476        }
12477    }
12478}
12479impl<V: ?Sized + Visit> VisitWith<V> for OptChainBase {
12480    #[doc = "Calls [Visit`::visit_opt_chain_base`] with `self`."]
12481    fn visit_with(&self, visitor: &mut V) {
12482        <V as Visit>::visit_opt_chain_base(visitor, self)
12483    }
12484
12485    fn visit_children_with(&self, visitor: &mut V) {
12486        match self {
12487            OptChainBase::Member { 0: _field_0 } => {
12488                <MemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12489            }
12490            OptChainBase::Call { 0: _field_0 } => {
12491                <OptCall as VisitWith<V>>::visit_with(_field_0, visitor);
12492            }
12493        }
12494    }
12495}
12496impl<V: ?Sized + Visit> VisitWith<V> for OptChainExpr {
12497    #[doc = "Calls [Visit`::visit_opt_chain_expr`] with `self`."]
12498    fn visit_with(&self, visitor: &mut V) {
12499        <V as Visit>::visit_opt_chain_expr(visitor, self)
12500    }
12501
12502    fn visit_children_with(&self, visitor: &mut V) {
12503        match self {
12504            OptChainExpr {
12505                span,
12506                optional,
12507                base,
12508            } => {
12509                {
12510                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12511                };
12512                {
12513                    <Box<OptChainBase> as VisitWith<V>>::visit_with(base, visitor)
12514                };
12515            }
12516        }
12517    }
12518}
12519impl<V: ?Sized + Visit> VisitWith<V> for Param {
12520    #[doc = "Calls [Visit`::visit_param`] with `self`."]
12521    fn visit_with(&self, visitor: &mut V) {
12522        <V as Visit>::visit_param(visitor, self)
12523    }
12524
12525    fn visit_children_with(&self, visitor: &mut V) {
12526        match self {
12527            Param {
12528                span,
12529                decorators,
12530                pat,
12531            } => {
12532                {
12533                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12534                };
12535                {
12536                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
12537                };
12538                {
12539                    <Pat as VisitWith<V>>::visit_with(pat, visitor)
12540                };
12541            }
12542        }
12543    }
12544}
12545impl<V: ?Sized + Visit> VisitWith<V> for ParamOrTsParamProp {
12546    #[doc = "Calls [Visit`::visit_param_or_ts_param_prop`] with `self`."]
12547    fn visit_with(&self, visitor: &mut V) {
12548        <V as Visit>::visit_param_or_ts_param_prop(visitor, self)
12549    }
12550
12551    fn visit_children_with(&self, visitor: &mut V) {
12552        match self {
12553            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
12554                <TsParamProp as VisitWith<V>>::visit_with(_field_0, visitor);
12555            }
12556            ParamOrTsParamProp::Param { 0: _field_0 } => {
12557                <Param as VisitWith<V>>::visit_with(_field_0, visitor);
12558            }
12559        }
12560    }
12561}
12562impl<V: ?Sized + Visit> VisitWith<V> for ParenExpr {
12563    #[doc = "Calls [Visit`::visit_paren_expr`] with `self`."]
12564    fn visit_with(&self, visitor: &mut V) {
12565        <V as Visit>::visit_paren_expr(visitor, self)
12566    }
12567
12568    fn visit_children_with(&self, visitor: &mut V) {
12569        match self {
12570            ParenExpr { span, expr } => {
12571                {
12572                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12573                };
12574                {
12575                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
12576                };
12577            }
12578        }
12579    }
12580}
12581impl<V: ?Sized + Visit> VisitWith<V> for Pat {
12582    #[doc = "Calls [Visit`::visit_pat`] with `self`."]
12583    fn visit_with(&self, visitor: &mut V) {
12584        <V as Visit>::visit_pat(visitor, self)
12585    }
12586
12587    fn visit_children_with(&self, visitor: &mut V) {
12588        match self {
12589            Pat::Ident { 0: _field_0 } => {
12590                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
12591            }
12592            Pat::Array { 0: _field_0 } => {
12593                <ArrayPat as VisitWith<V>>::visit_with(_field_0, visitor);
12594            }
12595            Pat::Rest { 0: _field_0 } => {
12596                <RestPat as VisitWith<V>>::visit_with(_field_0, visitor);
12597            }
12598            Pat::Object { 0: _field_0 } => {
12599                <ObjectPat as VisitWith<V>>::visit_with(_field_0, visitor);
12600            }
12601            Pat::Assign { 0: _field_0 } => {
12602                <AssignPat as VisitWith<V>>::visit_with(_field_0, visitor);
12603            }
12604            Pat::Invalid { 0: _field_0 } => {
12605                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
12606            }
12607            Pat::Expr { 0: _field_0 } => {
12608                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
12609            }
12610        }
12611    }
12612}
12613impl<V: ?Sized + Visit> VisitWith<V> for PrivateMethod {
12614    #[doc = "Calls [Visit`::visit_private_method`] with `self`."]
12615    fn visit_with(&self, visitor: &mut V) {
12616        <V as Visit>::visit_private_method(visitor, self)
12617    }
12618
12619    fn visit_children_with(&self, visitor: &mut V) {
12620        match self {
12621            PrivateMethod {
12622                span,
12623                key,
12624                function,
12625                kind,
12626                is_static,
12627                accessibility,
12628                is_abstract,
12629                is_optional,
12630                is_override,
12631            } => {
12632                {
12633                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12634                };
12635                {
12636                    <PrivateName as VisitWith<V>>::visit_with(key, visitor)
12637                };
12638                {
12639                    <Box<Function> as VisitWith<V>>::visit_with(function, visitor)
12640                };
12641                {
12642                    <MethodKind as VisitWith<V>>::visit_with(kind, visitor)
12643                };
12644                {
12645                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
12646                };
12647            }
12648        }
12649    }
12650}
12651impl<V: ?Sized + Visit> VisitWith<V> for PrivateName {
12652    #[doc = "Calls [Visit`::visit_private_name`] with `self`."]
12653    fn visit_with(&self, visitor: &mut V) {
12654        <V as Visit>::visit_private_name(visitor, self)
12655    }
12656
12657    fn visit_children_with(&self, visitor: &mut V) {
12658        match self {
12659            PrivateName { span, name } => {
12660                {
12661                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12662                };
12663                {
12664                    <swc_atoms::Atom as VisitWith<V>>::visit_with(name, visitor)
12665                };
12666            }
12667        }
12668    }
12669}
12670impl<V: ?Sized + Visit> VisitWith<V> for PrivateProp {
12671    #[doc = "Calls [Visit`::visit_private_prop`] with `self`."]
12672    fn visit_with(&self, visitor: &mut V) {
12673        <V as Visit>::visit_private_prop(visitor, self)
12674    }
12675
12676    fn visit_children_with(&self, visitor: &mut V) {
12677        match self {
12678            PrivateProp {
12679                span,
12680                ctxt,
12681                key,
12682                value,
12683                type_ann,
12684                is_static,
12685                decorators,
12686                accessibility,
12687                is_optional,
12688                is_override,
12689                readonly,
12690                definite,
12691            } => {
12692                {
12693                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12694                };
12695                {
12696                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
12697                };
12698                {
12699                    <PrivateName as VisitWith<V>>::visit_with(key, visitor)
12700                };
12701                {
12702                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(value, visitor)
12703                };
12704                {
12705                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
12706                };
12707                {
12708                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
12709                };
12710                {
12711                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
12712                };
12713            }
12714        }
12715    }
12716}
12717impl<V: ?Sized + Visit> VisitWith<V> for Program {
12718    #[doc = "Calls [Visit`::visit_program`] with `self`."]
12719    fn visit_with(&self, visitor: &mut V) {
12720        <V as Visit>::visit_program(visitor, self)
12721    }
12722
12723    fn visit_children_with(&self, visitor: &mut V) {
12724        match self {
12725            Program::Module { 0: _field_0 } => {
12726                <Module as VisitWith<V>>::visit_with(_field_0, visitor);
12727            }
12728            Program::Script { 0: _field_0 } => {
12729                <Script as VisitWith<V>>::visit_with(_field_0, visitor);
12730            }
12731        }
12732    }
12733}
12734impl<V: ?Sized + Visit> VisitWith<V> for Prop {
12735    #[doc = "Calls [Visit`::visit_prop`] with `self`."]
12736    fn visit_with(&self, visitor: &mut V) {
12737        <V as Visit>::visit_prop(visitor, self)
12738    }
12739
12740    fn visit_children_with(&self, visitor: &mut V) {
12741        match self {
12742            Prop::Shorthand { 0: _field_0 } => {
12743                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
12744            }
12745            Prop::KeyValue { 0: _field_0 } => {
12746                <KeyValueProp as VisitWith<V>>::visit_with(_field_0, visitor);
12747            }
12748            Prop::Assign { 0: _field_0 } => {
12749                <AssignProp as VisitWith<V>>::visit_with(_field_0, visitor);
12750            }
12751            Prop::Getter { 0: _field_0 } => {
12752                <GetterProp as VisitWith<V>>::visit_with(_field_0, visitor);
12753            }
12754            Prop::Setter { 0: _field_0 } => {
12755                <SetterProp as VisitWith<V>>::visit_with(_field_0, visitor);
12756            }
12757            Prop::Method { 0: _field_0 } => {
12758                <MethodProp as VisitWith<V>>::visit_with(_field_0, visitor);
12759            }
12760        }
12761    }
12762}
12763impl<V: ?Sized + Visit> VisitWith<V> for PropName {
12764    #[doc = "Calls [Visit`::visit_prop_name`] with `self`."]
12765    fn visit_with(&self, visitor: &mut V) {
12766        <V as Visit>::visit_prop_name(visitor, self)
12767    }
12768
12769    fn visit_children_with(&self, visitor: &mut V) {
12770        match self {
12771            PropName::Ident { 0: _field_0 } => {
12772                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
12773            }
12774            PropName::Str { 0: _field_0 } => {
12775                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
12776            }
12777            PropName::Num { 0: _field_0 } => {
12778                <Number as VisitWith<V>>::visit_with(_field_0, visitor);
12779            }
12780            PropName::Computed { 0: _field_0 } => {
12781                <ComputedPropName as VisitWith<V>>::visit_with(_field_0, visitor);
12782            }
12783            PropName::BigInt { 0: _field_0 } => {
12784                <BigInt as VisitWith<V>>::visit_with(_field_0, visitor);
12785            }
12786        }
12787    }
12788}
12789impl<V: ?Sized + Visit> VisitWith<V> for PropOrSpread {
12790    #[doc = "Calls [Visit`::visit_prop_or_spread`] with `self`."]
12791    fn visit_with(&self, visitor: &mut V) {
12792        <V as Visit>::visit_prop_or_spread(visitor, self)
12793    }
12794
12795    fn visit_children_with(&self, visitor: &mut V) {
12796        match self {
12797            PropOrSpread::Spread { 0: _field_0 } => {
12798                <SpreadElement as VisitWith<V>>::visit_with(_field_0, visitor);
12799            }
12800            PropOrSpread::Prop { 0: _field_0 } => {
12801                <Box<Prop> as VisitWith<V>>::visit_with(_field_0, visitor);
12802            }
12803        }
12804    }
12805}
12806impl<V: ?Sized + Visit> VisitWith<V> for Regex {
12807    #[doc = "Calls [Visit`::visit_regex`] with `self`."]
12808    fn visit_with(&self, visitor: &mut V) {
12809        <V as Visit>::visit_regex(visitor, self)
12810    }
12811
12812    fn visit_children_with(&self, visitor: &mut V) {
12813        match self {
12814            Regex { span, exp, flags } => {
12815                {
12816                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12817                };
12818                {
12819                    <swc_atoms::Atom as VisitWith<V>>::visit_with(exp, visitor)
12820                };
12821                {
12822                    <swc_atoms::Atom as VisitWith<V>>::visit_with(flags, visitor)
12823                };
12824            }
12825        }
12826    }
12827}
12828impl<V: ?Sized + Visit> VisitWith<V> for RestPat {
12829    #[doc = "Calls [Visit`::visit_rest_pat`] with `self`."]
12830    fn visit_with(&self, visitor: &mut V) {
12831        <V as Visit>::visit_rest_pat(visitor, self)
12832    }
12833
12834    fn visit_children_with(&self, visitor: &mut V) {
12835        match self {
12836            RestPat {
12837                span,
12838                dot3_token,
12839                arg,
12840                type_ann,
12841            } => {
12842                {
12843                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12844                };
12845                {
12846                    <swc_common::Span as VisitWith<V>>::visit_with(dot3_token, visitor)
12847                };
12848                {
12849                    <Box<Pat> as VisitWith<V>>::visit_with(arg, visitor)
12850                };
12851                {
12852                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
12853                };
12854            }
12855        }
12856    }
12857}
12858impl<V: ?Sized + Visit> VisitWith<V> for ReturnStmt {
12859    #[doc = "Calls [Visit`::visit_return_stmt`] with `self`."]
12860    fn visit_with(&self, visitor: &mut V) {
12861        <V as Visit>::visit_return_stmt(visitor, self)
12862    }
12863
12864    fn visit_children_with(&self, visitor: &mut V) {
12865        match self {
12866            ReturnStmt { span, arg } => {
12867                {
12868                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12869                };
12870                {
12871                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(arg, visitor)
12872                };
12873            }
12874        }
12875    }
12876}
12877impl<V: ?Sized + Visit> VisitWith<V> for Script {
12878    #[doc = "Calls [Visit`::visit_script`] with `self`."]
12879    fn visit_with(&self, visitor: &mut V) {
12880        <V as Visit>::visit_script(visitor, self)
12881    }
12882
12883    fn visit_children_with(&self, visitor: &mut V) {
12884        match self {
12885            Script {
12886                span,
12887                body,
12888                shebang,
12889            } => {
12890                {
12891                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12892                };
12893                {
12894                    <Vec<Stmt> as VisitWith<V>>::visit_with(body, visitor)
12895                };
12896                {
12897                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(shebang, visitor)
12898                };
12899            }
12900        }
12901    }
12902}
12903impl<V: ?Sized + Visit> VisitWith<V> for SeqExpr {
12904    #[doc = "Calls [Visit`::visit_seq_expr`] with `self`."]
12905    fn visit_with(&self, visitor: &mut V) {
12906        <V as Visit>::visit_seq_expr(visitor, self)
12907    }
12908
12909    fn visit_children_with(&self, visitor: &mut V) {
12910        match self {
12911            SeqExpr { span, exprs } => {
12912                {
12913                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12914                };
12915                {
12916                    <Vec<Box<Expr>> as VisitWith<V>>::visit_with(exprs, visitor)
12917                };
12918            }
12919        }
12920    }
12921}
12922impl<V: ?Sized + Visit> VisitWith<V> for SetterProp {
12923    #[doc = "Calls [Visit`::visit_setter_prop`] with `self`."]
12924    fn visit_with(&self, visitor: &mut V) {
12925        <V as Visit>::visit_setter_prop(visitor, self)
12926    }
12927
12928    fn visit_children_with(&self, visitor: &mut V) {
12929        match self {
12930            SetterProp {
12931                span,
12932                key,
12933                this_param,
12934                param,
12935                body,
12936            } => {
12937                {
12938                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
12939                };
12940                {
12941                    <PropName as VisitWith<V>>::visit_with(key, visitor)
12942                };
12943                {
12944                    <Option<Pat> as VisitWith<V>>::visit_with(this_param, visitor)
12945                };
12946                {
12947                    <Box<Pat> as VisitWith<V>>::visit_with(param, visitor)
12948                };
12949                {
12950                    <Option<BlockStmt> as VisitWith<V>>::visit_with(body, visitor)
12951                };
12952            }
12953        }
12954    }
12955}
12956impl<V: ?Sized + Visit> VisitWith<V> for SimpleAssignTarget {
12957    #[doc = "Calls [Visit`::visit_simple_assign_target`] with `self`."]
12958    fn visit_with(&self, visitor: &mut V) {
12959        <V as Visit>::visit_simple_assign_target(visitor, self)
12960    }
12961
12962    fn visit_children_with(&self, visitor: &mut V) {
12963        match self {
12964            SimpleAssignTarget::Ident { 0: _field_0 } => {
12965                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
12966            }
12967            SimpleAssignTarget::Member { 0: _field_0 } => {
12968                <MemberExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12969            }
12970            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
12971                <SuperPropExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12972            }
12973            SimpleAssignTarget::Paren { 0: _field_0 } => {
12974                <ParenExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12975            }
12976            SimpleAssignTarget::OptChain { 0: _field_0 } => {
12977                <OptChainExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12978            }
12979            SimpleAssignTarget::TsAs { 0: _field_0 } => {
12980                <TsAsExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12981            }
12982            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
12983                <TsSatisfiesExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12984            }
12985            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
12986                <TsNonNullExpr as VisitWith<V>>::visit_with(_field_0, visitor);
12987            }
12988            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
12989                <TsTypeAssertion as VisitWith<V>>::visit_with(_field_0, visitor);
12990            }
12991            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
12992                <TsInstantiation as VisitWith<V>>::visit_with(_field_0, visitor);
12993            }
12994            SimpleAssignTarget::Invalid { 0: _field_0 } => {
12995                <Invalid as VisitWith<V>>::visit_with(_field_0, visitor);
12996            }
12997        }
12998    }
12999}
13000impl<V: ?Sized + Visit> VisitWith<V> for SpreadElement {
13001    #[doc = "Calls [Visit`::visit_spread_element`] with `self`."]
13002    fn visit_with(&self, visitor: &mut V) {
13003        <V as Visit>::visit_spread_element(visitor, self)
13004    }
13005
13006    fn visit_children_with(&self, visitor: &mut V) {
13007        match self {
13008            SpreadElement { dot3_token, expr } => {
13009                {
13010                    <swc_common::Span as VisitWith<V>>::visit_with(dot3_token, visitor)
13011                };
13012                {
13013                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13014                };
13015            }
13016        }
13017    }
13018}
13019impl<V: ?Sized + Visit> VisitWith<V> for StaticBlock {
13020    #[doc = "Calls [Visit`::visit_static_block`] with `self`."]
13021    fn visit_with(&self, visitor: &mut V) {
13022        <V as Visit>::visit_static_block(visitor, self)
13023    }
13024
13025    fn visit_children_with(&self, visitor: &mut V) {
13026        match self {
13027            StaticBlock { span, body } => {
13028                {
13029                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13030                };
13031                {
13032                    <BlockStmt as VisitWith<V>>::visit_with(body, visitor)
13033                };
13034            }
13035        }
13036    }
13037}
13038impl<V: ?Sized + Visit> VisitWith<V> for Stmt {
13039    #[doc = "Calls [Visit`::visit_stmt`] with `self`."]
13040    fn visit_with(&self, visitor: &mut V) {
13041        <V as Visit>::visit_stmt(visitor, self)
13042    }
13043
13044    fn visit_children_with(&self, visitor: &mut V) {
13045        match self {
13046            Stmt::Block { 0: _field_0 } => {
13047                <BlockStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13048            }
13049            Stmt::Empty { 0: _field_0 } => {
13050                <EmptyStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13051            }
13052            Stmt::Debugger { 0: _field_0 } => {
13053                <DebuggerStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13054            }
13055            Stmt::With { 0: _field_0 } => {
13056                <WithStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13057            }
13058            Stmt::Return { 0: _field_0 } => {
13059                <ReturnStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13060            }
13061            Stmt::Labeled { 0: _field_0 } => {
13062                <LabeledStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13063            }
13064            Stmt::Break { 0: _field_0 } => {
13065                <BreakStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13066            }
13067            Stmt::Continue { 0: _field_0 } => {
13068                <ContinueStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13069            }
13070            Stmt::If { 0: _field_0 } => {
13071                <IfStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13072            }
13073            Stmt::Switch { 0: _field_0 } => {
13074                <SwitchStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13075            }
13076            Stmt::Throw { 0: _field_0 } => {
13077                <ThrowStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13078            }
13079            Stmt::Try { 0: _field_0 } => {
13080                <Box<TryStmt> as VisitWith<V>>::visit_with(_field_0, visitor);
13081            }
13082            Stmt::While { 0: _field_0 } => {
13083                <WhileStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13084            }
13085            Stmt::DoWhile { 0: _field_0 } => {
13086                <DoWhileStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13087            }
13088            Stmt::For { 0: _field_0 } => {
13089                <ForStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13090            }
13091            Stmt::ForIn { 0: _field_0 } => {
13092                <ForInStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13093            }
13094            Stmt::ForOf { 0: _field_0 } => {
13095                <ForOfStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13096            }
13097            Stmt::Decl { 0: _field_0 } => {
13098                <Decl as VisitWith<V>>::visit_with(_field_0, visitor);
13099            }
13100            Stmt::Expr { 0: _field_0 } => {
13101                <ExprStmt as VisitWith<V>>::visit_with(_field_0, visitor);
13102            }
13103        }
13104    }
13105}
13106impl<V: ?Sized + Visit> VisitWith<V> for Str {
13107    #[doc = "Calls [Visit`::visit_str`] with `self`."]
13108    fn visit_with(&self, visitor: &mut V) {
13109        <V as Visit>::visit_str(visitor, self)
13110    }
13111
13112    fn visit_children_with(&self, visitor: &mut V) {
13113        match self {
13114            Str { span, value, raw } => {
13115                {
13116                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13117                };
13118                {
13119                    <swc_atoms::Atom as VisitWith<V>>::visit_with(value, visitor)
13120                };
13121                {
13122                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(raw, visitor)
13123                };
13124            }
13125        }
13126    }
13127}
13128impl<V: ?Sized + Visit> VisitWith<V> for Super {
13129    #[doc = "Calls [Visit`::visit_super`] with `self`."]
13130    fn visit_with(&self, visitor: &mut V) {
13131        <V as Visit>::visit_super(visitor, self)
13132    }
13133
13134    fn visit_children_with(&self, visitor: &mut V) {
13135        match self {
13136            Super { span } => {
13137                {
13138                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13139                };
13140            }
13141        }
13142    }
13143}
13144impl<V: ?Sized + Visit> VisitWith<V> for SuperProp {
13145    #[doc = "Calls [Visit`::visit_super_prop`] with `self`."]
13146    fn visit_with(&self, visitor: &mut V) {
13147        <V as Visit>::visit_super_prop(visitor, self)
13148    }
13149
13150    fn visit_children_with(&self, visitor: &mut V) {
13151        match self {
13152            SuperProp::Ident { 0: _field_0 } => {
13153                <IdentName as VisitWith<V>>::visit_with(_field_0, visitor);
13154            }
13155            SuperProp::Computed { 0: _field_0 } => {
13156                <ComputedPropName as VisitWith<V>>::visit_with(_field_0, visitor);
13157            }
13158        }
13159    }
13160}
13161impl<V: ?Sized + Visit> VisitWith<V> for SuperPropExpr {
13162    #[doc = "Calls [Visit`::visit_super_prop_expr`] with `self`."]
13163    fn visit_with(&self, visitor: &mut V) {
13164        <V as Visit>::visit_super_prop_expr(visitor, self)
13165    }
13166
13167    fn visit_children_with(&self, visitor: &mut V) {
13168        match self {
13169            SuperPropExpr { span, obj, prop } => {
13170                {
13171                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13172                };
13173                {
13174                    <Super as VisitWith<V>>::visit_with(obj, visitor)
13175                };
13176                {
13177                    <SuperProp as VisitWith<V>>::visit_with(prop, visitor)
13178                };
13179            }
13180        }
13181    }
13182}
13183impl<V: ?Sized + Visit> VisitWith<V> for SwitchCase {
13184    #[doc = "Calls [Visit`::visit_switch_case`] with `self`."]
13185    fn visit_with(&self, visitor: &mut V) {
13186        <V as Visit>::visit_switch_case(visitor, self)
13187    }
13188
13189    fn visit_children_with(&self, visitor: &mut V) {
13190        match self {
13191            SwitchCase { span, test, cons } => {
13192                {
13193                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13194                };
13195                {
13196                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(test, visitor)
13197                };
13198                {
13199                    <Vec<Stmt> as VisitWith<V>>::visit_with(cons, visitor)
13200                };
13201            }
13202        }
13203    }
13204}
13205impl<V: ?Sized + Visit> VisitWith<V> for SwitchStmt {
13206    #[doc = "Calls [Visit`::visit_switch_stmt`] with `self`."]
13207    fn visit_with(&self, visitor: &mut V) {
13208        <V as Visit>::visit_switch_stmt(visitor, self)
13209    }
13210
13211    fn visit_children_with(&self, visitor: &mut V) {
13212        match self {
13213            SwitchStmt {
13214                span,
13215                discriminant,
13216                cases,
13217            } => {
13218                {
13219                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13220                };
13221                {
13222                    <Box<Expr> as VisitWith<V>>::visit_with(discriminant, visitor)
13223                };
13224                {
13225                    <Vec<SwitchCase> as VisitWith<V>>::visit_with(cases, visitor)
13226                };
13227            }
13228        }
13229    }
13230}
13231impl<V: ?Sized + Visit> VisitWith<V> for TaggedTpl {
13232    #[doc = "Calls [Visit`::visit_tagged_tpl`] with `self`."]
13233    fn visit_with(&self, visitor: &mut V) {
13234        <V as Visit>::visit_tagged_tpl(visitor, self)
13235    }
13236
13237    fn visit_children_with(&self, visitor: &mut V) {
13238        match self {
13239            TaggedTpl {
13240                span,
13241                ctxt,
13242                tag,
13243                type_params,
13244                tpl,
13245            } => {
13246                {
13247                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13248                };
13249                {
13250                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
13251                };
13252                {
13253                    <Box<Expr> as VisitWith<V>>::visit_with(tag, visitor)
13254                };
13255                {
13256                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
13257                        type_params,
13258                        visitor,
13259                    )
13260                };
13261                {
13262                    <Box<Tpl> as VisitWith<V>>::visit_with(tpl, visitor)
13263                };
13264            }
13265        }
13266    }
13267}
13268impl<V: ?Sized + Visit> VisitWith<V> for ThisExpr {
13269    #[doc = "Calls [Visit`::visit_this_expr`] with `self`."]
13270    fn visit_with(&self, visitor: &mut V) {
13271        <V as Visit>::visit_this_expr(visitor, self)
13272    }
13273
13274    fn visit_children_with(&self, visitor: &mut V) {
13275        match self {
13276            ThisExpr { span } => {
13277                {
13278                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13279                };
13280            }
13281        }
13282    }
13283}
13284impl<V: ?Sized + Visit> VisitWith<V> for ThrowStmt {
13285    #[doc = "Calls [Visit`::visit_throw_stmt`] with `self`."]
13286    fn visit_with(&self, visitor: &mut V) {
13287        <V as Visit>::visit_throw_stmt(visitor, self)
13288    }
13289
13290    fn visit_children_with(&self, visitor: &mut V) {
13291        match self {
13292            ThrowStmt { span, arg } => {
13293                {
13294                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13295                };
13296                {
13297                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
13298                };
13299            }
13300        }
13301    }
13302}
13303impl<V: ?Sized + Visit> VisitWith<V> for Tpl {
13304    #[doc = "Calls [Visit`::visit_tpl`] with `self`."]
13305    fn visit_with(&self, visitor: &mut V) {
13306        <V as Visit>::visit_tpl(visitor, self)
13307    }
13308
13309    fn visit_children_with(&self, visitor: &mut V) {
13310        match self {
13311            Tpl {
13312                span,
13313                exprs,
13314                quasis,
13315            } => {
13316                {
13317                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13318                };
13319                {
13320                    <Vec<Box<Expr>> as VisitWith<V>>::visit_with(exprs, visitor)
13321                };
13322                {
13323                    <Vec<TplElement> as VisitWith<V>>::visit_with(quasis, visitor)
13324                };
13325            }
13326        }
13327    }
13328}
13329impl<V: ?Sized + Visit> VisitWith<V> for TplElement {
13330    #[doc = "Calls [Visit`::visit_tpl_element`] with `self`."]
13331    fn visit_with(&self, visitor: &mut V) {
13332        <V as Visit>::visit_tpl_element(visitor, self)
13333    }
13334
13335    fn visit_children_with(&self, visitor: &mut V) {
13336        match self {
13337            TplElement {
13338                span,
13339                tail,
13340                cooked,
13341                raw,
13342            } => {
13343                {
13344                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13345                };
13346                {
13347                    <Option<swc_atoms::Atom> as VisitWith<V>>::visit_with(cooked, visitor)
13348                };
13349                {
13350                    <swc_atoms::Atom as VisitWith<V>>::visit_with(raw, visitor)
13351                };
13352            }
13353        }
13354    }
13355}
13356impl<V: ?Sized + Visit> VisitWith<V> for TruePlusMinus {
13357    #[doc = "Calls [Visit`::visit_true_plus_minus`] with `self`."]
13358    fn visit_with(&self, visitor: &mut V) {
13359        <V as Visit>::visit_true_plus_minus(visitor, self)
13360    }
13361
13362    fn visit_children_with(&self, visitor: &mut V) {
13363        match self {
13364            TruePlusMinus::True => {}
13365            TruePlusMinus::Plus => {}
13366            TruePlusMinus::Minus => {}
13367        }
13368    }
13369}
13370impl<V: ?Sized + Visit> VisitWith<V> for TryStmt {
13371    #[doc = "Calls [Visit`::visit_try_stmt`] with `self`."]
13372    fn visit_with(&self, visitor: &mut V) {
13373        <V as Visit>::visit_try_stmt(visitor, self)
13374    }
13375
13376    fn visit_children_with(&self, visitor: &mut V) {
13377        match self {
13378            TryStmt {
13379                span,
13380                block,
13381                handler,
13382                finalizer,
13383            } => {
13384                {
13385                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13386                };
13387                {
13388                    <BlockStmt as VisitWith<V>>::visit_with(block, visitor)
13389                };
13390                {
13391                    <Option<CatchClause> as VisitWith<V>>::visit_with(handler, visitor)
13392                };
13393                {
13394                    <Option<BlockStmt> as VisitWith<V>>::visit_with(finalizer, visitor)
13395                };
13396            }
13397        }
13398    }
13399}
13400impl<V: ?Sized + Visit> VisitWith<V> for TsArrayType {
13401    #[doc = "Calls [Visit`::visit_ts_array_type`] with `self`."]
13402    fn visit_with(&self, visitor: &mut V) {
13403        <V as Visit>::visit_ts_array_type(visitor, self)
13404    }
13405
13406    fn visit_children_with(&self, visitor: &mut V) {
13407        match self {
13408            TsArrayType { span, elem_type } => {
13409                {
13410                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13411                };
13412                {
13413                    <Box<TsType> as VisitWith<V>>::visit_with(elem_type, visitor)
13414                };
13415            }
13416        }
13417    }
13418}
13419impl<V: ?Sized + Visit> VisitWith<V> for TsAsExpr {
13420    #[doc = "Calls [Visit`::visit_ts_as_expr`] with `self`."]
13421    fn visit_with(&self, visitor: &mut V) {
13422        <V as Visit>::visit_ts_as_expr(visitor, self)
13423    }
13424
13425    fn visit_children_with(&self, visitor: &mut V) {
13426        match self {
13427            TsAsExpr {
13428                span,
13429                expr,
13430                type_ann,
13431            } => {
13432                {
13433                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13434                };
13435                {
13436                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13437                };
13438                {
13439                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
13440                };
13441            }
13442        }
13443    }
13444}
13445impl<V: ?Sized + Visit> VisitWith<V> for TsCallSignatureDecl {
13446    #[doc = "Calls [Visit`::visit_ts_call_signature_decl`] with `self`."]
13447    fn visit_with(&self, visitor: &mut V) {
13448        <V as Visit>::visit_ts_call_signature_decl(visitor, self)
13449    }
13450
13451    fn visit_children_with(&self, visitor: &mut V) {
13452        match self {
13453            TsCallSignatureDecl {
13454                span,
13455                params,
13456                type_ann,
13457                type_params,
13458            } => {
13459                {
13460                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13461                };
13462                {
13463                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13464                };
13465                {
13466                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13467                };
13468                {
13469                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13470                };
13471            }
13472        }
13473    }
13474}
13475impl<V: ?Sized + Visit> VisitWith<V> for TsConditionalType {
13476    #[doc = "Calls [Visit`::visit_ts_conditional_type`] with `self`."]
13477    fn visit_with(&self, visitor: &mut V) {
13478        <V as Visit>::visit_ts_conditional_type(visitor, self)
13479    }
13480
13481    fn visit_children_with(&self, visitor: &mut V) {
13482        match self {
13483            TsConditionalType {
13484                span,
13485                check_type,
13486                extends_type,
13487                true_type,
13488                false_type,
13489            } => {
13490                {
13491                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13492                };
13493                {
13494                    <Box<TsType> as VisitWith<V>>::visit_with(check_type, visitor)
13495                };
13496                {
13497                    <Box<TsType> as VisitWith<V>>::visit_with(extends_type, visitor)
13498                };
13499                {
13500                    <Box<TsType> as VisitWith<V>>::visit_with(true_type, visitor)
13501                };
13502                {
13503                    <Box<TsType> as VisitWith<V>>::visit_with(false_type, visitor)
13504                };
13505            }
13506        }
13507    }
13508}
13509impl<V: ?Sized + Visit> VisitWith<V> for TsConstAssertion {
13510    #[doc = "Calls [Visit`::visit_ts_const_assertion`] with `self`."]
13511    fn visit_with(&self, visitor: &mut V) {
13512        <V as Visit>::visit_ts_const_assertion(visitor, self)
13513    }
13514
13515    fn visit_children_with(&self, visitor: &mut V) {
13516        match self {
13517            TsConstAssertion { span, expr } => {
13518                {
13519                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13520                };
13521                {
13522                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13523                };
13524            }
13525        }
13526    }
13527}
13528impl<V: ?Sized + Visit> VisitWith<V> for TsConstructSignatureDecl {
13529    #[doc = "Calls [Visit`::visit_ts_construct_signature_decl`] with `self`."]
13530    fn visit_with(&self, visitor: &mut V) {
13531        <V as Visit>::visit_ts_construct_signature_decl(visitor, self)
13532    }
13533
13534    fn visit_children_with(&self, visitor: &mut V) {
13535        match self {
13536            TsConstructSignatureDecl {
13537                span,
13538                params,
13539                type_ann,
13540                type_params,
13541            } => {
13542                {
13543                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13544                };
13545                {
13546                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13547                };
13548                {
13549                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13550                };
13551                {
13552                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13553                };
13554            }
13555        }
13556    }
13557}
13558impl<V: ?Sized + Visit> VisitWith<V> for TsConstructorType {
13559    #[doc = "Calls [Visit`::visit_ts_constructor_type`] with `self`."]
13560    fn visit_with(&self, visitor: &mut V) {
13561        <V as Visit>::visit_ts_constructor_type(visitor, self)
13562    }
13563
13564    fn visit_children_with(&self, visitor: &mut V) {
13565        match self {
13566            TsConstructorType {
13567                span,
13568                params,
13569                type_params,
13570                type_ann,
13571                is_abstract,
13572            } => {
13573                {
13574                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13575                };
13576                {
13577                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13578                };
13579                {
13580                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13581                };
13582                {
13583                    <Box<TsTypeAnn> as VisitWith<V>>::visit_with(type_ann, visitor)
13584                };
13585            }
13586        }
13587    }
13588}
13589impl<V: ?Sized + Visit> VisitWith<V> for TsEntityName {
13590    #[doc = "Calls [Visit`::visit_ts_entity_name`] with `self`."]
13591    fn visit_with(&self, visitor: &mut V) {
13592        <V as Visit>::visit_ts_entity_name(visitor, self)
13593    }
13594
13595    fn visit_children_with(&self, visitor: &mut V) {
13596        match self {
13597            TsEntityName::TsQualifiedName { 0: _field_0 } => {
13598                <Box<TsQualifiedName> as VisitWith<V>>::visit_with(_field_0, visitor);
13599            }
13600            TsEntityName::Ident { 0: _field_0 } => {
13601                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
13602            }
13603        }
13604    }
13605}
13606impl<V: ?Sized + Visit> VisitWith<V> for TsEnumDecl {
13607    #[doc = "Calls [Visit`::visit_ts_enum_decl`] with `self`."]
13608    fn visit_with(&self, visitor: &mut V) {
13609        <V as Visit>::visit_ts_enum_decl(visitor, self)
13610    }
13611
13612    fn visit_children_with(&self, visitor: &mut V) {
13613        match self {
13614            TsEnumDecl {
13615                span,
13616                declare,
13617                is_const,
13618                id,
13619                members,
13620            } => {
13621                {
13622                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13623                };
13624                {
13625                    <Ident as VisitWith<V>>::visit_with(id, visitor)
13626                };
13627                {
13628                    <Vec<TsEnumMember> as VisitWith<V>>::visit_with(members, visitor)
13629                };
13630            }
13631        }
13632    }
13633}
13634impl<V: ?Sized + Visit> VisitWith<V> for TsEnumMember {
13635    #[doc = "Calls [Visit`::visit_ts_enum_member`] with `self`."]
13636    fn visit_with(&self, visitor: &mut V) {
13637        <V as Visit>::visit_ts_enum_member(visitor, self)
13638    }
13639
13640    fn visit_children_with(&self, visitor: &mut V) {
13641        match self {
13642            TsEnumMember { span, id, init } => {
13643                {
13644                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13645                };
13646                {
13647                    <TsEnumMemberId as VisitWith<V>>::visit_with(id, visitor)
13648                };
13649                {
13650                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(init, visitor)
13651                };
13652            }
13653        }
13654    }
13655}
13656impl<V: ?Sized + Visit> VisitWith<V> for TsEnumMemberId {
13657    #[doc = "Calls [Visit`::visit_ts_enum_member_id`] with `self`."]
13658    fn visit_with(&self, visitor: &mut V) {
13659        <V as Visit>::visit_ts_enum_member_id(visitor, self)
13660    }
13661
13662    fn visit_children_with(&self, visitor: &mut V) {
13663        match self {
13664            TsEnumMemberId::Ident { 0: _field_0 } => {
13665                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
13666            }
13667            TsEnumMemberId::Str { 0: _field_0 } => {
13668                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
13669            }
13670        }
13671    }
13672}
13673impl<V: ?Sized + Visit> VisitWith<V> for TsExportAssignment {
13674    #[doc = "Calls [Visit`::visit_ts_export_assignment`] with `self`."]
13675    fn visit_with(&self, visitor: &mut V) {
13676        <V as Visit>::visit_ts_export_assignment(visitor, self)
13677    }
13678
13679    fn visit_children_with(&self, visitor: &mut V) {
13680        match self {
13681            TsExportAssignment { span, expr } => {
13682                {
13683                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13684                };
13685                {
13686                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13687                };
13688            }
13689        }
13690    }
13691}
13692impl<V: ?Sized + Visit> VisitWith<V> for TsExprWithTypeArgs {
13693    #[doc = "Calls [Visit`::visit_ts_expr_with_type_args`] with `self`."]
13694    fn visit_with(&self, visitor: &mut V) {
13695        <V as Visit>::visit_ts_expr_with_type_args(visitor, self)
13696    }
13697
13698    fn visit_children_with(&self, visitor: &mut V) {
13699        match self {
13700            TsExprWithTypeArgs {
13701                span,
13702                expr,
13703                type_args,
13704            } => {
13705                {
13706                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13707                };
13708                {
13709                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13710                };
13711                {
13712                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
13713                        type_args, visitor,
13714                    )
13715                };
13716            }
13717        }
13718    }
13719}
13720impl<V: ?Sized + Visit> VisitWith<V> for TsExternalModuleRef {
13721    #[doc = "Calls [Visit`::visit_ts_external_module_ref`] with `self`."]
13722    fn visit_with(&self, visitor: &mut V) {
13723        <V as Visit>::visit_ts_external_module_ref(visitor, self)
13724    }
13725
13726    fn visit_children_with(&self, visitor: &mut V) {
13727        match self {
13728            TsExternalModuleRef { span, expr } => {
13729                {
13730                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13731                };
13732                {
13733                    <Str as VisitWith<V>>::visit_with(expr, visitor)
13734                };
13735            }
13736        }
13737    }
13738}
13739impl<V: ?Sized + Visit> VisitWith<V> for TsFnOrConstructorType {
13740    #[doc = "Calls [Visit`::visit_ts_fn_or_constructor_type`] with `self`."]
13741    fn visit_with(&self, visitor: &mut V) {
13742        <V as Visit>::visit_ts_fn_or_constructor_type(visitor, self)
13743    }
13744
13745    fn visit_children_with(&self, visitor: &mut V) {
13746        match self {
13747            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
13748                <TsFnType as VisitWith<V>>::visit_with(_field_0, visitor);
13749            }
13750            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
13751                <TsConstructorType as VisitWith<V>>::visit_with(_field_0, visitor);
13752            }
13753        }
13754    }
13755}
13756impl<V: ?Sized + Visit> VisitWith<V> for TsFnParam {
13757    #[doc = "Calls [Visit`::visit_ts_fn_param`] with `self`."]
13758    fn visit_with(&self, visitor: &mut V) {
13759        <V as Visit>::visit_ts_fn_param(visitor, self)
13760    }
13761
13762    fn visit_children_with(&self, visitor: &mut V) {
13763        match self {
13764            TsFnParam::Ident { 0: _field_0 } => {
13765                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
13766            }
13767            TsFnParam::Array { 0: _field_0 } => {
13768                <ArrayPat as VisitWith<V>>::visit_with(_field_0, visitor);
13769            }
13770            TsFnParam::Rest { 0: _field_0 } => {
13771                <RestPat as VisitWith<V>>::visit_with(_field_0, visitor);
13772            }
13773            TsFnParam::Object { 0: _field_0 } => {
13774                <ObjectPat as VisitWith<V>>::visit_with(_field_0, visitor);
13775            }
13776        }
13777    }
13778}
13779impl<V: ?Sized + Visit> VisitWith<V> for TsFnType {
13780    #[doc = "Calls [Visit`::visit_ts_fn_type`] with `self`."]
13781    fn visit_with(&self, visitor: &mut V) {
13782        <V as Visit>::visit_ts_fn_type(visitor, self)
13783    }
13784
13785    fn visit_children_with(&self, visitor: &mut V) {
13786        match self {
13787            TsFnType {
13788                span,
13789                params,
13790                type_params,
13791                type_ann,
13792            } => {
13793                {
13794                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13795                };
13796                {
13797                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13798                };
13799                {
13800                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
13801                };
13802                {
13803                    <Box<TsTypeAnn> as VisitWith<V>>::visit_with(type_ann, visitor)
13804                };
13805            }
13806        }
13807    }
13808}
13809impl<V: ?Sized + Visit> VisitWith<V> for TsGetterSignature {
13810    #[doc = "Calls [Visit`::visit_ts_getter_signature`] with `self`."]
13811    fn visit_with(&self, visitor: &mut V) {
13812        <V as Visit>::visit_ts_getter_signature(visitor, self)
13813    }
13814
13815    fn visit_children_with(&self, visitor: &mut V) {
13816        match self {
13817            TsGetterSignature {
13818                span,
13819                key,
13820                computed,
13821                type_ann,
13822            } => {
13823                {
13824                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13825                };
13826                {
13827                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
13828                };
13829                {
13830                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13831                };
13832            }
13833        }
13834    }
13835}
13836impl<V: ?Sized + Visit> VisitWith<V> for TsImportEqualsDecl {
13837    #[doc = "Calls [Visit`::visit_ts_import_equals_decl`] with `self`."]
13838    fn visit_with(&self, visitor: &mut V) {
13839        <V as Visit>::visit_ts_import_equals_decl(visitor, self)
13840    }
13841
13842    fn visit_children_with(&self, visitor: &mut V) {
13843        match self {
13844            TsImportEqualsDecl {
13845                span,
13846                is_export,
13847                is_type_only,
13848                id,
13849                module_ref,
13850            } => {
13851                {
13852                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13853                };
13854                {
13855                    <Ident as VisitWith<V>>::visit_with(id, visitor)
13856                };
13857                {
13858                    <TsModuleRef as VisitWith<V>>::visit_with(module_ref, visitor)
13859                };
13860            }
13861        }
13862    }
13863}
13864impl<V: ?Sized + Visit> VisitWith<V> for TsImportType {
13865    #[doc = "Calls [Visit`::visit_ts_import_type`] with `self`."]
13866    fn visit_with(&self, visitor: &mut V) {
13867        <V as Visit>::visit_ts_import_type(visitor, self)
13868    }
13869
13870    fn visit_children_with(&self, visitor: &mut V) {
13871        match self {
13872            TsImportType {
13873                span,
13874                arg,
13875                qualifier,
13876                type_args,
13877            } => {
13878                {
13879                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13880                };
13881                {
13882                    <Str as VisitWith<V>>::visit_with(arg, visitor)
13883                };
13884                {
13885                    <Option<TsEntityName> as VisitWith<V>>::visit_with(qualifier, visitor)
13886                };
13887                {
13888                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
13889                        type_args, visitor,
13890                    )
13891                };
13892            }
13893        }
13894    }
13895}
13896impl<V: ?Sized + Visit> VisitWith<V> for TsIndexSignature {
13897    #[doc = "Calls [Visit`::visit_ts_index_signature`] with `self`."]
13898    fn visit_with(&self, visitor: &mut V) {
13899        <V as Visit>::visit_ts_index_signature(visitor, self)
13900    }
13901
13902    fn visit_children_with(&self, visitor: &mut V) {
13903        match self {
13904            TsIndexSignature {
13905                params,
13906                type_ann,
13907                readonly,
13908                is_static,
13909                span,
13910            } => {
13911                {
13912                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
13913                };
13914                {
13915                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
13916                };
13917                {
13918                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13919                };
13920            }
13921        }
13922    }
13923}
13924impl<V: ?Sized + Visit> VisitWith<V> for TsIndexedAccessType {
13925    #[doc = "Calls [Visit`::visit_ts_indexed_access_type`] with `self`."]
13926    fn visit_with(&self, visitor: &mut V) {
13927        <V as Visit>::visit_ts_indexed_access_type(visitor, self)
13928    }
13929
13930    fn visit_children_with(&self, visitor: &mut V) {
13931        match self {
13932            TsIndexedAccessType {
13933                span,
13934                readonly,
13935                obj_type,
13936                index_type,
13937            } => {
13938                {
13939                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13940                };
13941                {
13942                    <Box<TsType> as VisitWith<V>>::visit_with(obj_type, visitor)
13943                };
13944                {
13945                    <Box<TsType> as VisitWith<V>>::visit_with(index_type, visitor)
13946                };
13947            }
13948        }
13949    }
13950}
13951impl<V: ?Sized + Visit> VisitWith<V> for TsInferType {
13952    #[doc = "Calls [Visit`::visit_ts_infer_type`] with `self`."]
13953    fn visit_with(&self, visitor: &mut V) {
13954        <V as Visit>::visit_ts_infer_type(visitor, self)
13955    }
13956
13957    fn visit_children_with(&self, visitor: &mut V) {
13958        match self {
13959            TsInferType { span, type_param } => {
13960                {
13961                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13962                };
13963                {
13964                    <TsTypeParam as VisitWith<V>>::visit_with(type_param, visitor)
13965                };
13966            }
13967        }
13968    }
13969}
13970impl<V: ?Sized + Visit> VisitWith<V> for TsInstantiation {
13971    #[doc = "Calls [Visit`::visit_ts_instantiation`] with `self`."]
13972    fn visit_with(&self, visitor: &mut V) {
13973        <V as Visit>::visit_ts_instantiation(visitor, self)
13974    }
13975
13976    fn visit_children_with(&self, visitor: &mut V) {
13977        match self {
13978            TsInstantiation {
13979                span,
13980                expr,
13981                type_args,
13982            } => {
13983                {
13984                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
13985                };
13986                {
13987                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
13988                };
13989                {
13990                    <Box<TsTypeParamInstantiation> as VisitWith<V>>::visit_with(type_args, visitor)
13991                };
13992            }
13993        }
13994    }
13995}
13996impl<V: ?Sized + Visit> VisitWith<V> for TsInterfaceBody {
13997    #[doc = "Calls [Visit`::visit_ts_interface_body`] with `self`."]
13998    fn visit_with(&self, visitor: &mut V) {
13999        <V as Visit>::visit_ts_interface_body(visitor, self)
14000    }
14001
14002    fn visit_children_with(&self, visitor: &mut V) {
14003        match self {
14004            TsInterfaceBody { span, body } => {
14005                {
14006                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14007                };
14008                {
14009                    <Vec<TsTypeElement> as VisitWith<V>>::visit_with(body, visitor)
14010                };
14011            }
14012        }
14013    }
14014}
14015impl<V: ?Sized + Visit> VisitWith<V> for TsInterfaceDecl {
14016    #[doc = "Calls [Visit`::visit_ts_interface_decl`] with `self`."]
14017    fn visit_with(&self, visitor: &mut V) {
14018        <V as Visit>::visit_ts_interface_decl(visitor, self)
14019    }
14020
14021    fn visit_children_with(&self, visitor: &mut V) {
14022        match self {
14023            TsInterfaceDecl {
14024                span,
14025                id,
14026                declare,
14027                type_params,
14028                extends,
14029                body,
14030            } => {
14031                {
14032                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14033                };
14034                {
14035                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14036                };
14037                {
14038                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
14039                };
14040                {
14041                    <Vec<TsExprWithTypeArgs> as VisitWith<V>>::visit_with(extends, visitor)
14042                };
14043                {
14044                    <TsInterfaceBody as VisitWith<V>>::visit_with(body, visitor)
14045                };
14046            }
14047        }
14048    }
14049}
14050impl<V: ?Sized + Visit> VisitWith<V> for TsIntersectionType {
14051    #[doc = "Calls [Visit`::visit_ts_intersection_type`] with `self`."]
14052    fn visit_with(&self, visitor: &mut V) {
14053        <V as Visit>::visit_ts_intersection_type(visitor, self)
14054    }
14055
14056    fn visit_children_with(&self, visitor: &mut V) {
14057        match self {
14058            TsIntersectionType { span, types } => {
14059                {
14060                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14061                };
14062                {
14063                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(types, visitor)
14064                };
14065            }
14066        }
14067    }
14068}
14069impl<V: ?Sized + Visit> VisitWith<V> for TsKeywordType {
14070    #[doc = "Calls [Visit`::visit_ts_keyword_type`] with `self`."]
14071    fn visit_with(&self, visitor: &mut V) {
14072        <V as Visit>::visit_ts_keyword_type(visitor, self)
14073    }
14074
14075    fn visit_children_with(&self, visitor: &mut V) {
14076        match self {
14077            TsKeywordType { span, kind } => {
14078                {
14079                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14080                };
14081                {
14082                    <TsKeywordTypeKind as VisitWith<V>>::visit_with(kind, visitor)
14083                };
14084            }
14085        }
14086    }
14087}
14088impl<V: ?Sized + Visit> VisitWith<V> for TsKeywordTypeKind {
14089    #[doc = "Calls [Visit`::visit_ts_keyword_type_kind`] with `self`."]
14090    fn visit_with(&self, visitor: &mut V) {
14091        <V as Visit>::visit_ts_keyword_type_kind(visitor, self)
14092    }
14093
14094    fn visit_children_with(&self, visitor: &mut V) {
14095        match self {
14096            TsKeywordTypeKind::TsAnyKeyword => {}
14097            TsKeywordTypeKind::TsUnknownKeyword => {}
14098            TsKeywordTypeKind::TsNumberKeyword => {}
14099            TsKeywordTypeKind::TsObjectKeyword => {}
14100            TsKeywordTypeKind::TsBooleanKeyword => {}
14101            TsKeywordTypeKind::TsBigIntKeyword => {}
14102            TsKeywordTypeKind::TsStringKeyword => {}
14103            TsKeywordTypeKind::TsSymbolKeyword => {}
14104            TsKeywordTypeKind::TsVoidKeyword => {}
14105            TsKeywordTypeKind::TsUndefinedKeyword => {}
14106            TsKeywordTypeKind::TsNullKeyword => {}
14107            TsKeywordTypeKind::TsNeverKeyword => {}
14108            TsKeywordTypeKind::TsIntrinsicKeyword => {}
14109        }
14110    }
14111}
14112impl<V: ?Sized + Visit> VisitWith<V> for TsLit {
14113    #[doc = "Calls [Visit`::visit_ts_lit`] with `self`."]
14114    fn visit_with(&self, visitor: &mut V) {
14115        <V as Visit>::visit_ts_lit(visitor, self)
14116    }
14117
14118    fn visit_children_with(&self, visitor: &mut V) {
14119        match self {
14120            TsLit::Number { 0: _field_0 } => {
14121                <Number as VisitWith<V>>::visit_with(_field_0, visitor);
14122            }
14123            TsLit::Str { 0: _field_0 } => {
14124                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
14125            }
14126            TsLit::Bool { 0: _field_0 } => {
14127                <Bool as VisitWith<V>>::visit_with(_field_0, visitor);
14128            }
14129            TsLit::BigInt { 0: _field_0 } => {
14130                <BigInt as VisitWith<V>>::visit_with(_field_0, visitor);
14131            }
14132            TsLit::Tpl { 0: _field_0 } => {
14133                <TsTplLitType as VisitWith<V>>::visit_with(_field_0, visitor);
14134            }
14135        }
14136    }
14137}
14138impl<V: ?Sized + Visit> VisitWith<V> for TsLitType {
14139    #[doc = "Calls [Visit`::visit_ts_lit_type`] with `self`."]
14140    fn visit_with(&self, visitor: &mut V) {
14141        <V as Visit>::visit_ts_lit_type(visitor, self)
14142    }
14143
14144    fn visit_children_with(&self, visitor: &mut V) {
14145        match self {
14146            TsLitType { span, lit } => {
14147                {
14148                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14149                };
14150                {
14151                    <TsLit as VisitWith<V>>::visit_with(lit, visitor)
14152                };
14153            }
14154        }
14155    }
14156}
14157impl<V: ?Sized + Visit> VisitWith<V> for TsMappedType {
14158    #[doc = "Calls [Visit`::visit_ts_mapped_type`] with `self`."]
14159    fn visit_with(&self, visitor: &mut V) {
14160        <V as Visit>::visit_ts_mapped_type(visitor, self)
14161    }
14162
14163    fn visit_children_with(&self, visitor: &mut V) {
14164        match self {
14165            TsMappedType {
14166                span,
14167                readonly,
14168                type_param,
14169                name_type,
14170                optional,
14171                type_ann,
14172            } => {
14173                {
14174                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14175                };
14176                {
14177                    <Option<TruePlusMinus> as VisitWith<V>>::visit_with(readonly, visitor)
14178                };
14179                {
14180                    <TsTypeParam as VisitWith<V>>::visit_with(type_param, visitor)
14181                };
14182                {
14183                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(name_type, visitor)
14184                };
14185                {
14186                    <Option<TruePlusMinus> as VisitWith<V>>::visit_with(optional, visitor)
14187                };
14188                {
14189                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(type_ann, visitor)
14190                };
14191            }
14192        }
14193    }
14194}
14195impl<V: ?Sized + Visit> VisitWith<V> for TsMethodSignature {
14196    #[doc = "Calls [Visit`::visit_ts_method_signature`] with `self`."]
14197    fn visit_with(&self, visitor: &mut V) {
14198        <V as Visit>::visit_ts_method_signature(visitor, self)
14199    }
14200
14201    fn visit_children_with(&self, visitor: &mut V) {
14202        match self {
14203            TsMethodSignature {
14204                span,
14205                key,
14206                computed,
14207                optional,
14208                params,
14209                type_ann,
14210                type_params,
14211            } => {
14212                {
14213                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14214                };
14215                {
14216                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
14217                };
14218                {
14219                    <Vec<TsFnParam> as VisitWith<V>>::visit_with(params, visitor)
14220                };
14221                {
14222                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
14223                };
14224                {
14225                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
14226                };
14227            }
14228        }
14229    }
14230}
14231impl<V: ?Sized + Visit> VisitWith<V> for TsModuleBlock {
14232    #[doc = "Calls [Visit`::visit_ts_module_block`] with `self`."]
14233    fn visit_with(&self, visitor: &mut V) {
14234        <V as Visit>::visit_ts_module_block(visitor, self)
14235    }
14236
14237    fn visit_children_with(&self, visitor: &mut V) {
14238        match self {
14239            TsModuleBlock { span, body } => {
14240                {
14241                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14242                };
14243                {
14244                    <Vec<ModuleItem> as VisitWith<V>>::visit_with(body, visitor)
14245                };
14246            }
14247        }
14248    }
14249}
14250impl<V: ?Sized + Visit> VisitWith<V> for TsModuleDecl {
14251    #[doc = "Calls [Visit`::visit_ts_module_decl`] with `self`."]
14252    fn visit_with(&self, visitor: &mut V) {
14253        <V as Visit>::visit_ts_module_decl(visitor, self)
14254    }
14255
14256    fn visit_children_with(&self, visitor: &mut V) {
14257        match self {
14258            TsModuleDecl {
14259                span,
14260                declare,
14261                global,
14262                id,
14263                body,
14264            } => {
14265                {
14266                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14267                };
14268                {
14269                    <TsModuleName as VisitWith<V>>::visit_with(id, visitor)
14270                };
14271                {
14272                    <Option<TsNamespaceBody> as VisitWith<V>>::visit_with(body, visitor)
14273                };
14274            }
14275        }
14276    }
14277}
14278impl<V: ?Sized + Visit> VisitWith<V> for TsModuleName {
14279    #[doc = "Calls [Visit`::visit_ts_module_name`] with `self`."]
14280    fn visit_with(&self, visitor: &mut V) {
14281        <V as Visit>::visit_ts_module_name(visitor, self)
14282    }
14283
14284    fn visit_children_with(&self, visitor: &mut V) {
14285        match self {
14286            TsModuleName::Ident { 0: _field_0 } => {
14287                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
14288            }
14289            TsModuleName::Str { 0: _field_0 } => {
14290                <Str as VisitWith<V>>::visit_with(_field_0, visitor);
14291            }
14292        }
14293    }
14294}
14295impl<V: ?Sized + Visit> VisitWith<V> for TsModuleRef {
14296    #[doc = "Calls [Visit`::visit_ts_module_ref`] with `self`."]
14297    fn visit_with(&self, visitor: &mut V) {
14298        <V as Visit>::visit_ts_module_ref(visitor, self)
14299    }
14300
14301    fn visit_children_with(&self, visitor: &mut V) {
14302        match self {
14303            TsModuleRef::TsEntityName { 0: _field_0 } => {
14304                <TsEntityName as VisitWith<V>>::visit_with(_field_0, visitor);
14305            }
14306            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
14307                <TsExternalModuleRef as VisitWith<V>>::visit_with(_field_0, visitor);
14308            }
14309        }
14310    }
14311}
14312impl<V: ?Sized + Visit> VisitWith<V> for TsNamespaceBody {
14313    #[doc = "Calls [Visit`::visit_ts_namespace_body`] with `self`."]
14314    fn visit_with(&self, visitor: &mut V) {
14315        <V as Visit>::visit_ts_namespace_body(visitor, self)
14316    }
14317
14318    fn visit_children_with(&self, visitor: &mut V) {
14319        match self {
14320            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
14321                <TsModuleBlock as VisitWith<V>>::visit_with(_field_0, visitor);
14322            }
14323            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
14324                <TsNamespaceDecl as VisitWith<V>>::visit_with(_field_0, visitor);
14325            }
14326        }
14327    }
14328}
14329impl<V: ?Sized + Visit> VisitWith<V> for TsNamespaceDecl {
14330    #[doc = "Calls [Visit`::visit_ts_namespace_decl`] with `self`."]
14331    fn visit_with(&self, visitor: &mut V) {
14332        <V as Visit>::visit_ts_namespace_decl(visitor, self)
14333    }
14334
14335    fn visit_children_with(&self, visitor: &mut V) {
14336        match self {
14337            TsNamespaceDecl {
14338                span,
14339                declare,
14340                global,
14341                id,
14342                body,
14343            } => {
14344                {
14345                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14346                };
14347                {
14348                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14349                };
14350                {
14351                    <Box<TsNamespaceBody> as VisitWith<V>>::visit_with(body, visitor)
14352                };
14353            }
14354        }
14355    }
14356}
14357impl<V: ?Sized + Visit> VisitWith<V> for TsNamespaceExportDecl {
14358    #[doc = "Calls [Visit`::visit_ts_namespace_export_decl`] with `self`."]
14359    fn visit_with(&self, visitor: &mut V) {
14360        <V as Visit>::visit_ts_namespace_export_decl(visitor, self)
14361    }
14362
14363    fn visit_children_with(&self, visitor: &mut V) {
14364        match self {
14365            TsNamespaceExportDecl { span, id } => {
14366                {
14367                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14368                };
14369                {
14370                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14371                };
14372            }
14373        }
14374    }
14375}
14376impl<V: ?Sized + Visit> VisitWith<V> for TsNonNullExpr {
14377    #[doc = "Calls [Visit`::visit_ts_non_null_expr`] with `self`."]
14378    fn visit_with(&self, visitor: &mut V) {
14379        <V as Visit>::visit_ts_non_null_expr(visitor, self)
14380    }
14381
14382    fn visit_children_with(&self, visitor: &mut V) {
14383        match self {
14384            TsNonNullExpr { span, expr } => {
14385                {
14386                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14387                };
14388                {
14389                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14390                };
14391            }
14392        }
14393    }
14394}
14395impl<V: ?Sized + Visit> VisitWith<V> for TsOptionalType {
14396    #[doc = "Calls [Visit`::visit_ts_optional_type`] with `self`."]
14397    fn visit_with(&self, visitor: &mut V) {
14398        <V as Visit>::visit_ts_optional_type(visitor, self)
14399    }
14400
14401    fn visit_children_with(&self, visitor: &mut V) {
14402        match self {
14403            TsOptionalType { span, type_ann } => {
14404                {
14405                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14406                };
14407                {
14408                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14409                };
14410            }
14411        }
14412    }
14413}
14414impl<V: ?Sized + Visit> VisitWith<V> for TsParamProp {
14415    #[doc = "Calls [Visit`::visit_ts_param_prop`] with `self`."]
14416    fn visit_with(&self, visitor: &mut V) {
14417        <V as Visit>::visit_ts_param_prop(visitor, self)
14418    }
14419
14420    fn visit_children_with(&self, visitor: &mut V) {
14421        match self {
14422            TsParamProp {
14423                span,
14424                decorators,
14425                accessibility,
14426                is_override,
14427                readonly,
14428                param,
14429            } => {
14430                {
14431                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14432                };
14433                {
14434                    <Vec<Decorator> as VisitWith<V>>::visit_with(decorators, visitor)
14435                };
14436                {
14437                    <Option<Accessibility> as VisitWith<V>>::visit_with(accessibility, visitor)
14438                };
14439                {
14440                    <TsParamPropParam as VisitWith<V>>::visit_with(param, visitor)
14441                };
14442            }
14443        }
14444    }
14445}
14446impl<V: ?Sized + Visit> VisitWith<V> for TsParamPropParam {
14447    #[doc = "Calls [Visit`::visit_ts_param_prop_param`] with `self`."]
14448    fn visit_with(&self, visitor: &mut V) {
14449        <V as Visit>::visit_ts_param_prop_param(visitor, self)
14450    }
14451
14452    fn visit_children_with(&self, visitor: &mut V) {
14453        match self {
14454            TsParamPropParam::Ident { 0: _field_0 } => {
14455                <BindingIdent as VisitWith<V>>::visit_with(_field_0, visitor);
14456            }
14457            TsParamPropParam::Assign { 0: _field_0 } => {
14458                <AssignPat as VisitWith<V>>::visit_with(_field_0, visitor);
14459            }
14460        }
14461    }
14462}
14463impl<V: ?Sized + Visit> VisitWith<V> for TsParenthesizedType {
14464    #[doc = "Calls [Visit`::visit_ts_parenthesized_type`] with `self`."]
14465    fn visit_with(&self, visitor: &mut V) {
14466        <V as Visit>::visit_ts_parenthesized_type(visitor, self)
14467    }
14468
14469    fn visit_children_with(&self, visitor: &mut V) {
14470        match self {
14471            TsParenthesizedType { span, type_ann } => {
14472                {
14473                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14474                };
14475                {
14476                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14477                };
14478            }
14479        }
14480    }
14481}
14482impl<V: ?Sized + Visit> VisitWith<V> for TsPropertySignature {
14483    #[doc = "Calls [Visit`::visit_ts_property_signature`] with `self`."]
14484    fn visit_with(&self, visitor: &mut V) {
14485        <V as Visit>::visit_ts_property_signature(visitor, self)
14486    }
14487
14488    fn visit_children_with(&self, visitor: &mut V) {
14489        match self {
14490            TsPropertySignature {
14491                span,
14492                readonly,
14493                key,
14494                computed,
14495                optional,
14496                type_ann,
14497            } => {
14498                {
14499                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14500                };
14501                {
14502                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
14503                };
14504                {
14505                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
14506                };
14507            }
14508        }
14509    }
14510}
14511impl<V: ?Sized + Visit> VisitWith<V> for TsQualifiedName {
14512    #[doc = "Calls [Visit`::visit_ts_qualified_name`] with `self`."]
14513    fn visit_with(&self, visitor: &mut V) {
14514        <V as Visit>::visit_ts_qualified_name(visitor, self)
14515    }
14516
14517    fn visit_children_with(&self, visitor: &mut V) {
14518        match self {
14519            TsQualifiedName { span, left, right } => {
14520                {
14521                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14522                };
14523                {
14524                    <TsEntityName as VisitWith<V>>::visit_with(left, visitor)
14525                };
14526                {
14527                    <IdentName as VisitWith<V>>::visit_with(right, visitor)
14528                };
14529            }
14530        }
14531    }
14532}
14533impl<V: ?Sized + Visit> VisitWith<V> for TsRestType {
14534    #[doc = "Calls [Visit`::visit_ts_rest_type`] with `self`."]
14535    fn visit_with(&self, visitor: &mut V) {
14536        <V as Visit>::visit_ts_rest_type(visitor, self)
14537    }
14538
14539    fn visit_children_with(&self, visitor: &mut V) {
14540        match self {
14541            TsRestType { span, type_ann } => {
14542                {
14543                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14544                };
14545                {
14546                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14547                };
14548            }
14549        }
14550    }
14551}
14552impl<V: ?Sized + Visit> VisitWith<V> for TsSatisfiesExpr {
14553    #[doc = "Calls [Visit`::visit_ts_satisfies_expr`] with `self`."]
14554    fn visit_with(&self, visitor: &mut V) {
14555        <V as Visit>::visit_ts_satisfies_expr(visitor, self)
14556    }
14557
14558    fn visit_children_with(&self, visitor: &mut V) {
14559        match self {
14560            TsSatisfiesExpr {
14561                span,
14562                expr,
14563                type_ann,
14564            } => {
14565                {
14566                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14567                };
14568                {
14569                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14570                };
14571                {
14572                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14573                };
14574            }
14575        }
14576    }
14577}
14578impl<V: ?Sized + Visit> VisitWith<V> for TsSetterSignature {
14579    #[doc = "Calls [Visit`::visit_ts_setter_signature`] with `self`."]
14580    fn visit_with(&self, visitor: &mut V) {
14581        <V as Visit>::visit_ts_setter_signature(visitor, self)
14582    }
14583
14584    fn visit_children_with(&self, visitor: &mut V) {
14585        match self {
14586            TsSetterSignature {
14587                span,
14588                key,
14589                computed,
14590                param,
14591            } => {
14592                {
14593                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14594                };
14595                {
14596                    <Box<Expr> as VisitWith<V>>::visit_with(key, visitor)
14597                };
14598                {
14599                    <TsFnParam as VisitWith<V>>::visit_with(param, visitor)
14600                };
14601            }
14602        }
14603    }
14604}
14605impl<V: ?Sized + Visit> VisitWith<V> for TsThisType {
14606    #[doc = "Calls [Visit`::visit_ts_this_type`] with `self`."]
14607    fn visit_with(&self, visitor: &mut V) {
14608        <V as Visit>::visit_ts_this_type(visitor, self)
14609    }
14610
14611    fn visit_children_with(&self, visitor: &mut V) {
14612        match self {
14613            TsThisType { span } => {
14614                {
14615                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14616                };
14617            }
14618        }
14619    }
14620}
14621impl<V: ?Sized + Visit> VisitWith<V> for TsThisTypeOrIdent {
14622    #[doc = "Calls [Visit`::visit_ts_this_type_or_ident`] with `self`."]
14623    fn visit_with(&self, visitor: &mut V) {
14624        <V as Visit>::visit_ts_this_type_or_ident(visitor, self)
14625    }
14626
14627    fn visit_children_with(&self, visitor: &mut V) {
14628        match self {
14629            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
14630                <TsThisType as VisitWith<V>>::visit_with(_field_0, visitor);
14631            }
14632            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
14633                <Ident as VisitWith<V>>::visit_with(_field_0, visitor);
14634            }
14635        }
14636    }
14637}
14638impl<V: ?Sized + Visit> VisitWith<V> for TsTplLitType {
14639    #[doc = "Calls [Visit`::visit_ts_tpl_lit_type`] with `self`."]
14640    fn visit_with(&self, visitor: &mut V) {
14641        <V as Visit>::visit_ts_tpl_lit_type(visitor, self)
14642    }
14643
14644    fn visit_children_with(&self, visitor: &mut V) {
14645        match self {
14646            TsTplLitType {
14647                span,
14648                types,
14649                quasis,
14650            } => {
14651                {
14652                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14653                };
14654                {
14655                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(types, visitor)
14656                };
14657                {
14658                    <Vec<TplElement> as VisitWith<V>>::visit_with(quasis, visitor)
14659                };
14660            }
14661        }
14662    }
14663}
14664impl<V: ?Sized + Visit> VisitWith<V> for TsTupleElement {
14665    #[doc = "Calls [Visit`::visit_ts_tuple_element`] with `self`."]
14666    fn visit_with(&self, visitor: &mut V) {
14667        <V as Visit>::visit_ts_tuple_element(visitor, self)
14668    }
14669
14670    fn visit_children_with(&self, visitor: &mut V) {
14671        match self {
14672            TsTupleElement { span, label, ty } => {
14673                {
14674                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14675                };
14676                {
14677                    <Option<Pat> as VisitWith<V>>::visit_with(label, visitor)
14678                };
14679                {
14680                    <Box<TsType> as VisitWith<V>>::visit_with(ty, visitor)
14681                };
14682            }
14683        }
14684    }
14685}
14686impl<V: ?Sized + Visit> VisitWith<V> for TsTupleType {
14687    #[doc = "Calls [Visit`::visit_ts_tuple_type`] with `self`."]
14688    fn visit_with(&self, visitor: &mut V) {
14689        <V as Visit>::visit_ts_tuple_type(visitor, self)
14690    }
14691
14692    fn visit_children_with(&self, visitor: &mut V) {
14693        match self {
14694            TsTupleType { span, elem_types } => {
14695                {
14696                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14697                };
14698                {
14699                    <Vec<TsTupleElement> as VisitWith<V>>::visit_with(elem_types, visitor)
14700                };
14701            }
14702        }
14703    }
14704}
14705impl<V: ?Sized + Visit> VisitWith<V> for TsType {
14706    #[doc = "Calls [Visit`::visit_ts_type`] with `self`."]
14707    fn visit_with(&self, visitor: &mut V) {
14708        <V as Visit>::visit_ts_type(visitor, self)
14709    }
14710
14711    fn visit_children_with(&self, visitor: &mut V) {
14712        match self {
14713            TsType::TsKeywordType { 0: _field_0 } => {
14714                <TsKeywordType as VisitWith<V>>::visit_with(_field_0, visitor);
14715            }
14716            TsType::TsThisType { 0: _field_0 } => {
14717                <TsThisType as VisitWith<V>>::visit_with(_field_0, visitor);
14718            }
14719            TsType::TsFnOrConstructorType { 0: _field_0 } => {
14720                <TsFnOrConstructorType as VisitWith<V>>::visit_with(_field_0, visitor);
14721            }
14722            TsType::TsTypeRef { 0: _field_0 } => {
14723                <TsTypeRef as VisitWith<V>>::visit_with(_field_0, visitor);
14724            }
14725            TsType::TsTypeQuery { 0: _field_0 } => {
14726                <TsTypeQuery as VisitWith<V>>::visit_with(_field_0, visitor);
14727            }
14728            TsType::TsTypeLit { 0: _field_0 } => {
14729                <TsTypeLit as VisitWith<V>>::visit_with(_field_0, visitor);
14730            }
14731            TsType::TsArrayType { 0: _field_0 } => {
14732                <TsArrayType as VisitWith<V>>::visit_with(_field_0, visitor);
14733            }
14734            TsType::TsTupleType { 0: _field_0 } => {
14735                <TsTupleType as VisitWith<V>>::visit_with(_field_0, visitor);
14736            }
14737            TsType::TsOptionalType { 0: _field_0 } => {
14738                <TsOptionalType as VisitWith<V>>::visit_with(_field_0, visitor);
14739            }
14740            TsType::TsRestType { 0: _field_0 } => {
14741                <TsRestType as VisitWith<V>>::visit_with(_field_0, visitor);
14742            }
14743            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
14744                <TsUnionOrIntersectionType as VisitWith<V>>::visit_with(_field_0, visitor);
14745            }
14746            TsType::TsConditionalType { 0: _field_0 } => {
14747                <TsConditionalType as VisitWith<V>>::visit_with(_field_0, visitor);
14748            }
14749            TsType::TsInferType { 0: _field_0 } => {
14750                <TsInferType as VisitWith<V>>::visit_with(_field_0, visitor);
14751            }
14752            TsType::TsParenthesizedType { 0: _field_0 } => {
14753                <TsParenthesizedType as VisitWith<V>>::visit_with(_field_0, visitor);
14754            }
14755            TsType::TsTypeOperator { 0: _field_0 } => {
14756                <TsTypeOperator as VisitWith<V>>::visit_with(_field_0, visitor);
14757            }
14758            TsType::TsIndexedAccessType { 0: _field_0 } => {
14759                <TsIndexedAccessType as VisitWith<V>>::visit_with(_field_0, visitor);
14760            }
14761            TsType::TsMappedType { 0: _field_0 } => {
14762                <TsMappedType as VisitWith<V>>::visit_with(_field_0, visitor);
14763            }
14764            TsType::TsLitType { 0: _field_0 } => {
14765                <TsLitType as VisitWith<V>>::visit_with(_field_0, visitor);
14766            }
14767            TsType::TsTypePredicate { 0: _field_0 } => {
14768                <TsTypePredicate as VisitWith<V>>::visit_with(_field_0, visitor);
14769            }
14770            TsType::TsImportType { 0: _field_0 } => {
14771                <TsImportType as VisitWith<V>>::visit_with(_field_0, visitor);
14772            }
14773        }
14774    }
14775}
14776impl<V: ?Sized + Visit> VisitWith<V> for TsTypeAliasDecl {
14777    #[doc = "Calls [Visit`::visit_ts_type_alias_decl`] with `self`."]
14778    fn visit_with(&self, visitor: &mut V) {
14779        <V as Visit>::visit_ts_type_alias_decl(visitor, self)
14780    }
14781
14782    fn visit_children_with(&self, visitor: &mut V) {
14783        match self {
14784            TsTypeAliasDecl {
14785                span,
14786                declare,
14787                id,
14788                type_params,
14789                type_ann,
14790            } => {
14791                {
14792                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14793                };
14794                {
14795                    <Ident as VisitWith<V>>::visit_with(id, visitor)
14796                };
14797                {
14798                    <Option<Box<TsTypeParamDecl>> as VisitWith<V>>::visit_with(type_params, visitor)
14799                };
14800                {
14801                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14802                };
14803            }
14804        }
14805    }
14806}
14807impl<V: ?Sized + Visit> VisitWith<V> for TsTypeAnn {
14808    #[doc = "Calls [Visit`::visit_ts_type_ann`] with `self`."]
14809    fn visit_with(&self, visitor: &mut V) {
14810        <V as Visit>::visit_ts_type_ann(visitor, self)
14811    }
14812
14813    fn visit_children_with(&self, visitor: &mut V) {
14814        match self {
14815            TsTypeAnn { span, type_ann } => {
14816                {
14817                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14818                };
14819                {
14820                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14821                };
14822            }
14823        }
14824    }
14825}
14826impl<V: ?Sized + Visit> VisitWith<V> for TsTypeAssertion {
14827    #[doc = "Calls [Visit`::visit_ts_type_assertion`] with `self`."]
14828    fn visit_with(&self, visitor: &mut V) {
14829        <V as Visit>::visit_ts_type_assertion(visitor, self)
14830    }
14831
14832    fn visit_children_with(&self, visitor: &mut V) {
14833        match self {
14834            TsTypeAssertion {
14835                span,
14836                expr,
14837                type_ann,
14838            } => {
14839                {
14840                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14841                };
14842                {
14843                    <Box<Expr> as VisitWith<V>>::visit_with(expr, visitor)
14844                };
14845                {
14846                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14847                };
14848            }
14849        }
14850    }
14851}
14852impl<V: ?Sized + Visit> VisitWith<V> for TsTypeElement {
14853    #[doc = "Calls [Visit`::visit_ts_type_element`] with `self`."]
14854    fn visit_with(&self, visitor: &mut V) {
14855        <V as Visit>::visit_ts_type_element(visitor, self)
14856    }
14857
14858    fn visit_children_with(&self, visitor: &mut V) {
14859        match self {
14860            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
14861                <TsCallSignatureDecl as VisitWith<V>>::visit_with(_field_0, visitor);
14862            }
14863            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
14864                <TsConstructSignatureDecl as VisitWith<V>>::visit_with(_field_0, visitor);
14865            }
14866            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
14867                <TsPropertySignature as VisitWith<V>>::visit_with(_field_0, visitor);
14868            }
14869            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
14870                <TsGetterSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14871            }
14872            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
14873                <TsSetterSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14874            }
14875            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
14876                <TsMethodSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14877            }
14878            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
14879                <TsIndexSignature as VisitWith<V>>::visit_with(_field_0, visitor);
14880            }
14881        }
14882    }
14883}
14884impl<V: ?Sized + Visit> VisitWith<V> for TsTypeLit {
14885    #[doc = "Calls [Visit`::visit_ts_type_lit`] with `self`."]
14886    fn visit_with(&self, visitor: &mut V) {
14887        <V as Visit>::visit_ts_type_lit(visitor, self)
14888    }
14889
14890    fn visit_children_with(&self, visitor: &mut V) {
14891        match self {
14892            TsTypeLit { span, members } => {
14893                {
14894                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14895                };
14896                {
14897                    <Vec<TsTypeElement> as VisitWith<V>>::visit_with(members, visitor)
14898                };
14899            }
14900        }
14901    }
14902}
14903impl<V: ?Sized + Visit> VisitWith<V> for TsTypeOperator {
14904    #[doc = "Calls [Visit`::visit_ts_type_operator`] with `self`."]
14905    fn visit_with(&self, visitor: &mut V) {
14906        <V as Visit>::visit_ts_type_operator(visitor, self)
14907    }
14908
14909    fn visit_children_with(&self, visitor: &mut V) {
14910        match self {
14911            TsTypeOperator { span, op, type_ann } => {
14912                {
14913                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14914                };
14915                {
14916                    <TsTypeOperatorOp as VisitWith<V>>::visit_with(op, visitor)
14917                };
14918                {
14919                    <Box<TsType> as VisitWith<V>>::visit_with(type_ann, visitor)
14920                };
14921            }
14922        }
14923    }
14924}
14925impl<V: ?Sized + Visit> VisitWith<V> for TsTypeOperatorOp {
14926    #[doc = "Calls [Visit`::visit_ts_type_operator_op`] with `self`."]
14927    fn visit_with(&self, visitor: &mut V) {
14928        <V as Visit>::visit_ts_type_operator_op(visitor, self)
14929    }
14930
14931    fn visit_children_with(&self, visitor: &mut V) {
14932        match self {
14933            TsTypeOperatorOp::KeyOf => {}
14934            TsTypeOperatorOp::Unique => {}
14935            TsTypeOperatorOp::ReadOnly => {}
14936        }
14937    }
14938}
14939impl<V: ?Sized + Visit> VisitWith<V> for TsTypeParam {
14940    #[doc = "Calls [Visit`::visit_ts_type_param`] with `self`."]
14941    fn visit_with(&self, visitor: &mut V) {
14942        <V as Visit>::visit_ts_type_param(visitor, self)
14943    }
14944
14945    fn visit_children_with(&self, visitor: &mut V) {
14946        match self {
14947            TsTypeParam {
14948                span,
14949                name,
14950                is_in,
14951                is_out,
14952                is_const,
14953                constraint,
14954                default,
14955            } => {
14956                {
14957                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14958                };
14959                {
14960                    <Ident as VisitWith<V>>::visit_with(name, visitor)
14961                };
14962                {
14963                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(constraint, visitor)
14964                };
14965                {
14966                    <Option<Box<TsType>> as VisitWith<V>>::visit_with(default, visitor)
14967                };
14968            }
14969        }
14970    }
14971}
14972impl<V: ?Sized + Visit> VisitWith<V> for TsTypeParamDecl {
14973    #[doc = "Calls [Visit`::visit_ts_type_param_decl`] with `self`."]
14974    fn visit_with(&self, visitor: &mut V) {
14975        <V as Visit>::visit_ts_type_param_decl(visitor, self)
14976    }
14977
14978    fn visit_children_with(&self, visitor: &mut V) {
14979        match self {
14980            TsTypeParamDecl { span, params } => {
14981                {
14982                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
14983                };
14984                {
14985                    <Vec<TsTypeParam> as VisitWith<V>>::visit_with(params, visitor)
14986                };
14987            }
14988        }
14989    }
14990}
14991impl<V: ?Sized + Visit> VisitWith<V> for TsTypeParamInstantiation {
14992    #[doc = "Calls [Visit`::visit_ts_type_param_instantiation`] with `self`."]
14993    fn visit_with(&self, visitor: &mut V) {
14994        <V as Visit>::visit_ts_type_param_instantiation(visitor, self)
14995    }
14996
14997    fn visit_children_with(&self, visitor: &mut V) {
14998        match self {
14999            TsTypeParamInstantiation { span, params } => {
15000                {
15001                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15002                };
15003                {
15004                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(params, visitor)
15005                };
15006            }
15007        }
15008    }
15009}
15010impl<V: ?Sized + Visit> VisitWith<V> for TsTypePredicate {
15011    #[doc = "Calls [Visit`::visit_ts_type_predicate`] with `self`."]
15012    fn visit_with(&self, visitor: &mut V) {
15013        <V as Visit>::visit_ts_type_predicate(visitor, self)
15014    }
15015
15016    fn visit_children_with(&self, visitor: &mut V) {
15017        match self {
15018            TsTypePredicate {
15019                span,
15020                asserts,
15021                param_name,
15022                type_ann,
15023            } => {
15024                {
15025                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15026                };
15027                {
15028                    <TsThisTypeOrIdent as VisitWith<V>>::visit_with(param_name, visitor)
15029                };
15030                {
15031                    <Option<Box<TsTypeAnn>> as VisitWith<V>>::visit_with(type_ann, visitor)
15032                };
15033            }
15034        }
15035    }
15036}
15037impl<V: ?Sized + Visit> VisitWith<V> for TsTypeQuery {
15038    #[doc = "Calls [Visit`::visit_ts_type_query`] with `self`."]
15039    fn visit_with(&self, visitor: &mut V) {
15040        <V as Visit>::visit_ts_type_query(visitor, self)
15041    }
15042
15043    fn visit_children_with(&self, visitor: &mut V) {
15044        match self {
15045            TsTypeQuery {
15046                span,
15047                expr_name,
15048                type_args,
15049            } => {
15050                {
15051                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15052                };
15053                {
15054                    <TsTypeQueryExpr as VisitWith<V>>::visit_with(expr_name, visitor)
15055                };
15056                {
15057                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
15058                        type_args, visitor,
15059                    )
15060                };
15061            }
15062        }
15063    }
15064}
15065impl<V: ?Sized + Visit> VisitWith<V> for TsTypeQueryExpr {
15066    #[doc = "Calls [Visit`::visit_ts_type_query_expr`] with `self`."]
15067    fn visit_with(&self, visitor: &mut V) {
15068        <V as Visit>::visit_ts_type_query_expr(visitor, self)
15069    }
15070
15071    fn visit_children_with(&self, visitor: &mut V) {
15072        match self {
15073            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
15074                <TsEntityName as VisitWith<V>>::visit_with(_field_0, visitor);
15075            }
15076            TsTypeQueryExpr::Import { 0: _field_0 } => {
15077                <TsImportType as VisitWith<V>>::visit_with(_field_0, visitor);
15078            }
15079        }
15080    }
15081}
15082impl<V: ?Sized + Visit> VisitWith<V> for TsTypeRef {
15083    #[doc = "Calls [Visit`::visit_ts_type_ref`] with `self`."]
15084    fn visit_with(&self, visitor: &mut V) {
15085        <V as Visit>::visit_ts_type_ref(visitor, self)
15086    }
15087
15088    fn visit_children_with(&self, visitor: &mut V) {
15089        match self {
15090            TsTypeRef {
15091                span,
15092                type_name,
15093                type_params,
15094            } => {
15095                {
15096                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15097                };
15098                {
15099                    <TsEntityName as VisitWith<V>>::visit_with(type_name, visitor)
15100                };
15101                {
15102                    <Option<Box<TsTypeParamInstantiation>> as VisitWith<V>>::visit_with(
15103                        type_params,
15104                        visitor,
15105                    )
15106                };
15107            }
15108        }
15109    }
15110}
15111impl<V: ?Sized + Visit> VisitWith<V> for TsUnionOrIntersectionType {
15112    #[doc = "Calls [Visit`::visit_ts_union_or_intersection_type`] with `self`."]
15113    fn visit_with(&self, visitor: &mut V) {
15114        <V as Visit>::visit_ts_union_or_intersection_type(visitor, self)
15115    }
15116
15117    fn visit_children_with(&self, visitor: &mut V) {
15118        match self {
15119            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
15120                <TsUnionType as VisitWith<V>>::visit_with(_field_0, visitor);
15121            }
15122            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
15123                <TsIntersectionType as VisitWith<V>>::visit_with(_field_0, visitor);
15124            }
15125        }
15126    }
15127}
15128impl<V: ?Sized + Visit> VisitWith<V> for TsUnionType {
15129    #[doc = "Calls [Visit`::visit_ts_union_type`] with `self`."]
15130    fn visit_with(&self, visitor: &mut V) {
15131        <V as Visit>::visit_ts_union_type(visitor, self)
15132    }
15133
15134    fn visit_children_with(&self, visitor: &mut V) {
15135        match self {
15136            TsUnionType { span, types } => {
15137                {
15138                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15139                };
15140                {
15141                    <Vec<Box<TsType>> as VisitWith<V>>::visit_with(types, visitor)
15142                };
15143            }
15144        }
15145    }
15146}
15147impl<V: ?Sized + Visit> VisitWith<V> for UnaryExpr {
15148    #[doc = "Calls [Visit`::visit_unary_expr`] with `self`."]
15149    fn visit_with(&self, visitor: &mut V) {
15150        <V as Visit>::visit_unary_expr(visitor, self)
15151    }
15152
15153    fn visit_children_with(&self, visitor: &mut V) {
15154        match self {
15155            UnaryExpr { span, op, arg } => {
15156                {
15157                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15158                };
15159                {
15160                    <UnaryOp as VisitWith<V>>::visit_with(op, visitor)
15161                };
15162                {
15163                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
15164                };
15165            }
15166        }
15167    }
15168}
15169impl<V: ?Sized + Visit> VisitWith<V> for UnaryOp {
15170    #[doc = "Calls [Visit`::visit_unary_op`] with `self`."]
15171    fn visit_with(&self, visitor: &mut V) {
15172        <V as Visit>::visit_unary_op(visitor, self)
15173    }
15174
15175    fn visit_children_with(&self, visitor: &mut V) {
15176        match self {
15177            UnaryOp::Minus => {}
15178            UnaryOp::Plus => {}
15179            UnaryOp::Bang => {}
15180            UnaryOp::Tilde => {}
15181            UnaryOp::TypeOf => {}
15182            UnaryOp::Void => {}
15183            UnaryOp::Delete => {}
15184        }
15185    }
15186}
15187impl<V: ?Sized + Visit> VisitWith<V> for UpdateExpr {
15188    #[doc = "Calls [Visit`::visit_update_expr`] with `self`."]
15189    fn visit_with(&self, visitor: &mut V) {
15190        <V as Visit>::visit_update_expr(visitor, self)
15191    }
15192
15193    fn visit_children_with(&self, visitor: &mut V) {
15194        match self {
15195            UpdateExpr {
15196                span,
15197                op,
15198                prefix,
15199                arg,
15200            } => {
15201                {
15202                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15203                };
15204                {
15205                    <UpdateOp as VisitWith<V>>::visit_with(op, visitor)
15206                };
15207                {
15208                    <Box<Expr> as VisitWith<V>>::visit_with(arg, visitor)
15209                };
15210            }
15211        }
15212    }
15213}
15214impl<V: ?Sized + Visit> VisitWith<V> for UpdateOp {
15215    #[doc = "Calls [Visit`::visit_update_op`] with `self`."]
15216    fn visit_with(&self, visitor: &mut V) {
15217        <V as Visit>::visit_update_op(visitor, self)
15218    }
15219
15220    fn visit_children_with(&self, visitor: &mut V) {
15221        match self {
15222            UpdateOp::PlusPlus => {}
15223            UpdateOp::MinusMinus => {}
15224        }
15225    }
15226}
15227impl<V: ?Sized + Visit> VisitWith<V> for UsingDecl {
15228    #[doc = "Calls [Visit`::visit_using_decl`] with `self`."]
15229    fn visit_with(&self, visitor: &mut V) {
15230        <V as Visit>::visit_using_decl(visitor, self)
15231    }
15232
15233    fn visit_children_with(&self, visitor: &mut V) {
15234        match self {
15235            UsingDecl {
15236                span,
15237                is_await,
15238                decls,
15239            } => {
15240                {
15241                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15242                };
15243                {
15244                    <Vec<VarDeclarator> as VisitWith<V>>::visit_with(decls, visitor)
15245                };
15246            }
15247        }
15248    }
15249}
15250impl<V: ?Sized + Visit> VisitWith<V> for VarDecl {
15251    #[doc = "Calls [Visit`::visit_var_decl`] with `self`."]
15252    fn visit_with(&self, visitor: &mut V) {
15253        <V as Visit>::visit_var_decl(visitor, self)
15254    }
15255
15256    fn visit_children_with(&self, visitor: &mut V) {
15257        match self {
15258            VarDecl {
15259                span,
15260                ctxt,
15261                kind,
15262                declare,
15263                decls,
15264            } => {
15265                {
15266                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15267                };
15268                {
15269                    <swc_common::SyntaxContext as VisitWith<V>>::visit_with(ctxt, visitor)
15270                };
15271                {
15272                    <VarDeclKind as VisitWith<V>>::visit_with(kind, visitor)
15273                };
15274                {
15275                    <Vec<VarDeclarator> as VisitWith<V>>::visit_with(decls, visitor)
15276                };
15277            }
15278        }
15279    }
15280}
15281impl<V: ?Sized + Visit> VisitWith<V> for VarDeclKind {
15282    #[doc = "Calls [Visit`::visit_var_decl_kind`] with `self`."]
15283    fn visit_with(&self, visitor: &mut V) {
15284        <V as Visit>::visit_var_decl_kind(visitor, self)
15285    }
15286
15287    fn visit_children_with(&self, visitor: &mut V) {
15288        match self {
15289            VarDeclKind::Var => {}
15290            VarDeclKind::Let => {}
15291            VarDeclKind::Const => {}
15292        }
15293    }
15294}
15295impl<V: ?Sized + Visit> VisitWith<V> for VarDeclOrExpr {
15296    #[doc = "Calls [Visit`::visit_var_decl_or_expr`] with `self`."]
15297    fn visit_with(&self, visitor: &mut V) {
15298        <V as Visit>::visit_var_decl_or_expr(visitor, self)
15299    }
15300
15301    fn visit_children_with(&self, visitor: &mut V) {
15302        match self {
15303            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
15304                <Box<VarDecl> as VisitWith<V>>::visit_with(_field_0, visitor);
15305            }
15306            VarDeclOrExpr::Expr { 0: _field_0 } => {
15307                <Box<Expr> as VisitWith<V>>::visit_with(_field_0, visitor);
15308            }
15309        }
15310    }
15311}
15312impl<V: ?Sized + Visit> VisitWith<V> for VarDeclarator {
15313    #[doc = "Calls [Visit`::visit_var_declarator`] with `self`."]
15314    fn visit_with(&self, visitor: &mut V) {
15315        <V as Visit>::visit_var_declarator(visitor, self)
15316    }
15317
15318    fn visit_children_with(&self, visitor: &mut V) {
15319        match self {
15320            VarDeclarator {
15321                span,
15322                name,
15323                init,
15324                definite,
15325            } => {
15326                {
15327                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15328                };
15329                {
15330                    <Pat as VisitWith<V>>::visit_with(name, visitor)
15331                };
15332                {
15333                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(init, visitor)
15334                };
15335            }
15336        }
15337    }
15338}
15339impl<V: ?Sized + Visit> VisitWith<V> for WhileStmt {
15340    #[doc = "Calls [Visit`::visit_while_stmt`] with `self`."]
15341    fn visit_with(&self, visitor: &mut V) {
15342        <V as Visit>::visit_while_stmt(visitor, self)
15343    }
15344
15345    fn visit_children_with(&self, visitor: &mut V) {
15346        match self {
15347            WhileStmt { span, test, body } => {
15348                {
15349                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15350                };
15351                {
15352                    <Box<Expr> as VisitWith<V>>::visit_with(test, visitor)
15353                };
15354                {
15355                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
15356                };
15357            }
15358        }
15359    }
15360}
15361impl<V: ?Sized + Visit> VisitWith<V> for WithStmt {
15362    #[doc = "Calls [Visit`::visit_with_stmt`] with `self`."]
15363    fn visit_with(&self, visitor: &mut V) {
15364        <V as Visit>::visit_with_stmt(visitor, self)
15365    }
15366
15367    fn visit_children_with(&self, visitor: &mut V) {
15368        match self {
15369            WithStmt { span, obj, body } => {
15370                {
15371                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15372                };
15373                {
15374                    <Box<Expr> as VisitWith<V>>::visit_with(obj, visitor)
15375                };
15376                {
15377                    <Box<Stmt> as VisitWith<V>>::visit_with(body, visitor)
15378                };
15379            }
15380        }
15381    }
15382}
15383impl<V: ?Sized + Visit> VisitWith<V> for YieldExpr {
15384    #[doc = "Calls [Visit`::visit_yield_expr`] with `self`."]
15385    fn visit_with(&self, visitor: &mut V) {
15386        <V as Visit>::visit_yield_expr(visitor, self)
15387    }
15388
15389    fn visit_children_with(&self, visitor: &mut V) {
15390        match self {
15391            YieldExpr {
15392                span,
15393                arg,
15394                delegate,
15395            } => {
15396                {
15397                    <swc_common::Span as VisitWith<V>>::visit_with(span, visitor)
15398                };
15399                {
15400                    <Option<Box<Expr>> as VisitWith<V>>::visit_with(arg, visitor)
15401                };
15402            }
15403        }
15404    }
15405}
15406impl<V: ?Sized + Visit> VisitWith<V> for swc_atoms::Atom {
15407    #[doc = "Calls [Visit`::visit_atom`] with `self`. (Extra impl)"]
15408    #[inline]
15409    fn visit_with(&self, visitor: &mut V) {
15410        <V as Visit>::visit_atom(visitor, self)
15411    }
15412
15413    #[inline]
15414    fn visit_children_with(&self, visitor: &mut V) {
15415        {}
15416    }
15417}
15418impl<V: ?Sized + Visit> VisitWith<V> for BigIntValue {
15419    #[doc = "Calls [Visit`::visit_big_int_value`] with `self`. (Extra impl)"]
15420    #[inline]
15421    fn visit_with(&self, visitor: &mut V) {
15422        <V as Visit>::visit_big_int_value(visitor, self)
15423    }
15424
15425    #[inline]
15426    fn visit_children_with(&self, visitor: &mut V) {
15427        {}
15428    }
15429}
15430impl<V: ?Sized + Visit> VisitWith<V> for [ClassMember] {
15431    #[doc = "Calls [Visit`::visit_class_members`] with `self`. (Extra impl)"]
15432    #[inline]
15433    fn visit_with(&self, visitor: &mut V) {
15434        <V as Visit>::visit_class_members(visitor, self)
15435    }
15436
15437    #[inline]
15438    fn visit_children_with(&self, visitor: &mut V) {
15439        self.iter()
15440            .for_each(|item| <ClassMember as VisitWith<V>>::visit_with(item, visitor))
15441    }
15442}
15443impl<V: ?Sized + Visit> VisitWith<V> for [Decorator] {
15444    #[doc = "Calls [Visit`::visit_decorators`] with `self`. (Extra impl)"]
15445    #[inline]
15446    fn visit_with(&self, visitor: &mut V) {
15447        <V as Visit>::visit_decorators(visitor, self)
15448    }
15449
15450    #[inline]
15451    fn visit_children_with(&self, visitor: &mut V) {
15452        self.iter()
15453            .for_each(|item| <Decorator as VisitWith<V>>::visit_with(item, visitor))
15454    }
15455}
15456impl<V: ?Sized + Visit> VisitWith<V> for [ExportSpecifier] {
15457    #[doc = "Calls [Visit`::visit_export_specifiers`] with `self`. (Extra impl)"]
15458    #[inline]
15459    fn visit_with(&self, visitor: &mut V) {
15460        <V as Visit>::visit_export_specifiers(visitor, self)
15461    }
15462
15463    #[inline]
15464    fn visit_children_with(&self, visitor: &mut V) {
15465        self.iter()
15466            .for_each(|item| <ExportSpecifier as VisitWith<V>>::visit_with(item, visitor))
15467    }
15468}
15469impl<V: ?Sized + Visit> VisitWith<V> for [ExprOrSpread] {
15470    #[doc = "Calls [Visit`::visit_expr_or_spreads`] with `self`. (Extra impl)"]
15471    #[inline]
15472    fn visit_with(&self, visitor: &mut V) {
15473        <V as Visit>::visit_expr_or_spreads(visitor, self)
15474    }
15475
15476    #[inline]
15477    fn visit_children_with(&self, visitor: &mut V) {
15478        self.iter()
15479            .for_each(|item| <ExprOrSpread as VisitWith<V>>::visit_with(item, visitor))
15480    }
15481}
15482impl<V: ?Sized + Visit> VisitWith<V> for [Box<Expr>] {
15483    #[doc = "Calls [Visit`::visit_exprs`] with `self`. (Extra impl)"]
15484    #[inline]
15485    fn visit_with(&self, visitor: &mut V) {
15486        <V as Visit>::visit_exprs(visitor, self)
15487    }
15488
15489    #[inline]
15490    fn visit_children_with(&self, visitor: &mut V) {
15491        self.iter()
15492            .for_each(|item| <Box<Expr> as VisitWith<V>>::visit_with(item, visitor))
15493    }
15494}
15495impl<V: ?Sized + Visit> VisitWith<V> for [ImportSpecifier] {
15496    #[doc = "Calls [Visit`::visit_import_specifiers`] with `self`. (Extra impl)"]
15497    #[inline]
15498    fn visit_with(&self, visitor: &mut V) {
15499        <V as Visit>::visit_import_specifiers(visitor, self)
15500    }
15501
15502    #[inline]
15503    fn visit_children_with(&self, visitor: &mut V) {
15504        self.iter()
15505            .for_each(|item| <ImportSpecifier as VisitWith<V>>::visit_with(item, visitor))
15506    }
15507}
15508impl<V: ?Sized + Visit> VisitWith<V> for [ImportWithItem] {
15509    #[doc = "Calls [Visit`::visit_import_with_items`] with `self`. (Extra impl)"]
15510    #[inline]
15511    fn visit_with(&self, visitor: &mut V) {
15512        <V as Visit>::visit_import_with_items(visitor, self)
15513    }
15514
15515    #[inline]
15516    fn visit_children_with(&self, visitor: &mut V) {
15517        self.iter()
15518            .for_each(|item| <ImportWithItem as VisitWith<V>>::visit_with(item, visitor))
15519    }
15520}
15521impl<V: ?Sized + Visit> VisitWith<V> for [JSXAttrOrSpread] {
15522    #[doc = "Calls [Visit`::visit_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
15523    #[inline]
15524    fn visit_with(&self, visitor: &mut V) {
15525        <V as Visit>::visit_jsx_attr_or_spreads(visitor, self)
15526    }
15527
15528    #[inline]
15529    fn visit_children_with(&self, visitor: &mut V) {
15530        self.iter()
15531            .for_each(|item| <JSXAttrOrSpread as VisitWith<V>>::visit_with(item, visitor))
15532    }
15533}
15534impl<V: ?Sized + Visit> VisitWith<V> for [JSXElementChild] {
15535    #[doc = "Calls [Visit`::visit_jsx_element_childs`] with `self`. (Extra impl)"]
15536    #[inline]
15537    fn visit_with(&self, visitor: &mut V) {
15538        <V as Visit>::visit_jsx_element_childs(visitor, self)
15539    }
15540
15541    #[inline]
15542    fn visit_children_with(&self, visitor: &mut V) {
15543        self.iter()
15544            .for_each(|item| <JSXElementChild as VisitWith<V>>::visit_with(item, visitor))
15545    }
15546}
15547impl<V: ?Sized + Visit> VisitWith<V> for [ModuleItem] {
15548    #[doc = "Calls [Visit`::visit_module_items`] with `self`. (Extra impl)"]
15549    #[inline]
15550    fn visit_with(&self, visitor: &mut V) {
15551        <V as Visit>::visit_module_items(visitor, self)
15552    }
15553
15554    #[inline]
15555    fn visit_children_with(&self, visitor: &mut V) {
15556        self.iter()
15557            .for_each(|item| <ModuleItem as VisitWith<V>>::visit_with(item, visitor))
15558    }
15559}
15560impl<V: ?Sized + Visit> VisitWith<V> for [ObjectPatProp] {
15561    #[doc = "Calls [Visit`::visit_object_pat_props`] with `self`. (Extra impl)"]
15562    #[inline]
15563    fn visit_with(&self, visitor: &mut V) {
15564        <V as Visit>::visit_object_pat_props(visitor, self)
15565    }
15566
15567    #[inline]
15568    fn visit_children_with(&self, visitor: &mut V) {
15569        self.iter()
15570            .for_each(|item| <ObjectPatProp as VisitWith<V>>::visit_with(item, visitor))
15571    }
15572}
15573impl<V: ?Sized + Visit> VisitWith<V> for Option<Accessibility> {
15574    #[doc = "Calls [Visit`::visit_opt_accessibility`] with `self`. (Extra impl)"]
15575    #[inline]
15576    fn visit_with(&self, visitor: &mut V) {
15577        <V as Visit>::visit_opt_accessibility(visitor, self)
15578    }
15579
15580    #[inline]
15581    fn visit_children_with(&self, visitor: &mut V) {
15582        match self {
15583            Some(inner) => <Accessibility as VisitWith<V>>::visit_with(inner, visitor),
15584            None => {}
15585        }
15586    }
15587}
15588impl<V: ?Sized + Visit> VisitWith<V> for Option<swc_atoms::Atom> {
15589    #[doc = "Calls [Visit`::visit_opt_atom`] with `self`. (Extra impl)"]
15590    #[inline]
15591    fn visit_with(&self, visitor: &mut V) {
15592        <V as Visit>::visit_opt_atom(visitor, self)
15593    }
15594
15595    #[inline]
15596    fn visit_children_with(&self, visitor: &mut V) {
15597        match self {
15598            Some(inner) => <swc_atoms::Atom as VisitWith<V>>::visit_with(inner, visitor),
15599            None => {}
15600        }
15601    }
15602}
15603impl<V: ?Sized + Visit> VisitWith<V> for Option<BlockStmt> {
15604    #[doc = "Calls [Visit`::visit_opt_block_stmt`] with `self`. (Extra impl)"]
15605    #[inline]
15606    fn visit_with(&self, visitor: &mut V) {
15607        <V as Visit>::visit_opt_block_stmt(visitor, self)
15608    }
15609
15610    #[inline]
15611    fn visit_children_with(&self, visitor: &mut V) {
15612        match self {
15613            Some(inner) => <BlockStmt as VisitWith<V>>::visit_with(inner, visitor),
15614            None => {}
15615        }
15616    }
15617}
15618impl<V: ?Sized + Visit> VisitWith<V> for Option<CatchClause> {
15619    #[doc = "Calls [Visit`::visit_opt_catch_clause`] with `self`. (Extra impl)"]
15620    #[inline]
15621    fn visit_with(&self, visitor: &mut V) {
15622        <V as Visit>::visit_opt_catch_clause(visitor, self)
15623    }
15624
15625    #[inline]
15626    fn visit_children_with(&self, visitor: &mut V) {
15627        match self {
15628            Some(inner) => <CatchClause as VisitWith<V>>::visit_with(inner, visitor),
15629            None => {}
15630        }
15631    }
15632}
15633impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<Expr>> {
15634    #[doc = "Calls [Visit`::visit_opt_expr`] with `self`. (Extra impl)"]
15635    #[inline]
15636    fn visit_with(&self, visitor: &mut V) {
15637        <V as Visit>::visit_opt_expr(visitor, self)
15638    }
15639
15640    #[inline]
15641    fn visit_children_with(&self, visitor: &mut V) {
15642        match self {
15643            Some(inner) => <Box<Expr> as VisitWith<V>>::visit_with(inner, visitor),
15644            None => {}
15645        }
15646    }
15647}
15648impl<V: ?Sized + Visit> VisitWith<V> for Option<ExprOrSpread> {
15649    #[doc = "Calls [Visit`::visit_opt_expr_or_spread`] with `self`. (Extra impl)"]
15650    #[inline]
15651    fn visit_with(&self, visitor: &mut V) {
15652        <V as Visit>::visit_opt_expr_or_spread(visitor, self)
15653    }
15654
15655    #[inline]
15656    fn visit_children_with(&self, visitor: &mut V) {
15657        match self {
15658            Some(inner) => <ExprOrSpread as VisitWith<V>>::visit_with(inner, visitor),
15659            None => {}
15660        }
15661    }
15662}
15663impl<V: ?Sized + Visit> VisitWith<V> for Option<Vec<ExprOrSpread>> {
15664    #[doc = "Calls [Visit`::visit_opt_expr_or_spreads`] with `self`. (Extra impl)"]
15665    #[inline]
15666    fn visit_with(&self, visitor: &mut V) {
15667        <V as Visit>::visit_opt_expr_or_spreads(visitor, self)
15668    }
15669
15670    #[inline]
15671    fn visit_children_with(&self, visitor: &mut V) {
15672        match self {
15673            Some(inner) => <Vec<ExprOrSpread> as VisitWith<V>>::visit_with(inner, visitor),
15674            None => {}
15675        }
15676    }
15677}
15678impl<V: ?Sized + Visit> VisitWith<V> for Option<Ident> {
15679    #[doc = "Calls [Visit`::visit_opt_ident`] with `self`. (Extra impl)"]
15680    #[inline]
15681    fn visit_with(&self, visitor: &mut V) {
15682        <V as Visit>::visit_opt_ident(visitor, self)
15683    }
15684
15685    #[inline]
15686    fn visit_children_with(&self, visitor: &mut V) {
15687        match self {
15688            Some(inner) => <Ident as VisitWith<V>>::visit_with(inner, visitor),
15689            None => {}
15690        }
15691    }
15692}
15693impl<V: ?Sized + Visit> VisitWith<V> for Option<JSXAttrValue> {
15694    #[doc = "Calls [Visit`::visit_opt_jsx_attr_value`] with `self`. (Extra impl)"]
15695    #[inline]
15696    fn visit_with(&self, visitor: &mut V) {
15697        <V as Visit>::visit_opt_jsx_attr_value(visitor, self)
15698    }
15699
15700    #[inline]
15701    fn visit_children_with(&self, visitor: &mut V) {
15702        match self {
15703            Some(inner) => <JSXAttrValue as VisitWith<V>>::visit_with(inner, visitor),
15704            None => {}
15705        }
15706    }
15707}
15708impl<V: ?Sized + Visit> VisitWith<V> for Option<JSXClosingElement> {
15709    #[doc = "Calls [Visit`::visit_opt_jsx_closing_element`] with `self`. (Extra impl)"]
15710    #[inline]
15711    fn visit_with(&self, visitor: &mut V) {
15712        <V as Visit>::visit_opt_jsx_closing_element(visitor, self)
15713    }
15714
15715    #[inline]
15716    fn visit_children_with(&self, visitor: &mut V) {
15717        match self {
15718            Some(inner) => <JSXClosingElement as VisitWith<V>>::visit_with(inner, visitor),
15719            None => {}
15720        }
15721    }
15722}
15723impl<V: ?Sized + Visit> VisitWith<V> for Option<ModuleExportName> {
15724    #[doc = "Calls [Visit`::visit_opt_module_export_name`] with `self`. (Extra impl)"]
15725    #[inline]
15726    fn visit_with(&self, visitor: &mut V) {
15727        <V as Visit>::visit_opt_module_export_name(visitor, self)
15728    }
15729
15730    #[inline]
15731    fn visit_children_with(&self, visitor: &mut V) {
15732        match self {
15733            Some(inner) => <ModuleExportName as VisitWith<V>>::visit_with(inner, visitor),
15734            None => {}
15735        }
15736    }
15737}
15738impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<ObjectLit>> {
15739    #[doc = "Calls [Visit`::visit_opt_object_lit`] with `self`. (Extra impl)"]
15740    #[inline]
15741    fn visit_with(&self, visitor: &mut V) {
15742        <V as Visit>::visit_opt_object_lit(visitor, self)
15743    }
15744
15745    #[inline]
15746    fn visit_children_with(&self, visitor: &mut V) {
15747        match self {
15748            Some(inner) => <Box<ObjectLit> as VisitWith<V>>::visit_with(inner, visitor),
15749            None => {}
15750        }
15751    }
15752}
15753impl<V: ?Sized + Visit> VisitWith<V> for Option<Pat> {
15754    #[doc = "Calls [Visit`::visit_opt_pat`] with `self`. (Extra impl)"]
15755    #[inline]
15756    fn visit_with(&self, visitor: &mut V) {
15757        <V as Visit>::visit_opt_pat(visitor, self)
15758    }
15759
15760    #[inline]
15761    fn visit_children_with(&self, visitor: &mut V) {
15762        match self {
15763            Some(inner) => <Pat as VisitWith<V>>::visit_with(inner, visitor),
15764            None => {}
15765        }
15766    }
15767}
15768impl<V: ?Sized + Visit> VisitWith<V> for Option<swc_common::Span> {
15769    #[doc = "Calls [Visit`::visit_opt_span`] with `self`. (Extra impl)"]
15770    #[inline]
15771    fn visit_with(&self, visitor: &mut V) {
15772        <V as Visit>::visit_opt_span(visitor, self)
15773    }
15774
15775    #[inline]
15776    fn visit_children_with(&self, visitor: &mut V) {
15777        match self {
15778            Some(inner) => <swc_common::Span as VisitWith<V>>::visit_with(inner, visitor),
15779            None => {}
15780        }
15781    }
15782}
15783impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<Stmt>> {
15784    #[doc = "Calls [Visit`::visit_opt_stmt`] with `self`. (Extra impl)"]
15785    #[inline]
15786    fn visit_with(&self, visitor: &mut V) {
15787        <V as Visit>::visit_opt_stmt(visitor, self)
15788    }
15789
15790    #[inline]
15791    fn visit_children_with(&self, visitor: &mut V) {
15792        match self {
15793            Some(inner) => <Box<Stmt> as VisitWith<V>>::visit_with(inner, visitor),
15794            None => {}
15795        }
15796    }
15797}
15798impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<Str>> {
15799    #[doc = "Calls [Visit`::visit_opt_str`] with `self`. (Extra impl)"]
15800    #[inline]
15801    fn visit_with(&self, visitor: &mut V) {
15802        <V as Visit>::visit_opt_str(visitor, self)
15803    }
15804
15805    #[inline]
15806    fn visit_children_with(&self, visitor: &mut V) {
15807        match self {
15808            Some(inner) => <Box<Str> as VisitWith<V>>::visit_with(inner, visitor),
15809            None => {}
15810        }
15811    }
15812}
15813impl<V: ?Sized + Visit> VisitWith<V> for Option<TruePlusMinus> {
15814    #[doc = "Calls [Visit`::visit_opt_true_plus_minus`] with `self`. (Extra impl)"]
15815    #[inline]
15816    fn visit_with(&self, visitor: &mut V) {
15817        <V as Visit>::visit_opt_true_plus_minus(visitor, self)
15818    }
15819
15820    #[inline]
15821    fn visit_children_with(&self, visitor: &mut V) {
15822        match self {
15823            Some(inner) => <TruePlusMinus as VisitWith<V>>::visit_with(inner, visitor),
15824            None => {}
15825        }
15826    }
15827}
15828impl<V: ?Sized + Visit> VisitWith<V> for Option<TsEntityName> {
15829    #[doc = "Calls [Visit`::visit_opt_ts_entity_name`] with `self`. (Extra impl)"]
15830    #[inline]
15831    fn visit_with(&self, visitor: &mut V) {
15832        <V as Visit>::visit_opt_ts_entity_name(visitor, self)
15833    }
15834
15835    #[inline]
15836    fn visit_children_with(&self, visitor: &mut V) {
15837        match self {
15838            Some(inner) => <TsEntityName as VisitWith<V>>::visit_with(inner, visitor),
15839            None => {}
15840        }
15841    }
15842}
15843impl<V: ?Sized + Visit> VisitWith<V> for Option<TsNamespaceBody> {
15844    #[doc = "Calls [Visit`::visit_opt_ts_namespace_body`] with `self`. (Extra impl)"]
15845    #[inline]
15846    fn visit_with(&self, visitor: &mut V) {
15847        <V as Visit>::visit_opt_ts_namespace_body(visitor, self)
15848    }
15849
15850    #[inline]
15851    fn visit_children_with(&self, visitor: &mut V) {
15852        match self {
15853            Some(inner) => <TsNamespaceBody as VisitWith<V>>::visit_with(inner, visitor),
15854            None => {}
15855        }
15856    }
15857}
15858impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsType>> {
15859    #[doc = "Calls [Visit`::visit_opt_ts_type`] with `self`. (Extra impl)"]
15860    #[inline]
15861    fn visit_with(&self, visitor: &mut V) {
15862        <V as Visit>::visit_opt_ts_type(visitor, self)
15863    }
15864
15865    #[inline]
15866    fn visit_children_with(&self, visitor: &mut V) {
15867        match self {
15868            Some(inner) => <Box<TsType> as VisitWith<V>>::visit_with(inner, visitor),
15869            None => {}
15870        }
15871    }
15872}
15873impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsTypeAnn>> {
15874    #[doc = "Calls [Visit`::visit_opt_ts_type_ann`] with `self`. (Extra impl)"]
15875    #[inline]
15876    fn visit_with(&self, visitor: &mut V) {
15877        <V as Visit>::visit_opt_ts_type_ann(visitor, self)
15878    }
15879
15880    #[inline]
15881    fn visit_children_with(&self, visitor: &mut V) {
15882        match self {
15883            Some(inner) => <Box<TsTypeAnn> as VisitWith<V>>::visit_with(inner, visitor),
15884            None => {}
15885        }
15886    }
15887}
15888impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsTypeParamDecl>> {
15889    #[doc = "Calls [Visit`::visit_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
15890    #[inline]
15891    fn visit_with(&self, visitor: &mut V) {
15892        <V as Visit>::visit_opt_ts_type_param_decl(visitor, self)
15893    }
15894
15895    #[inline]
15896    fn visit_children_with(&self, visitor: &mut V) {
15897        match self {
15898            Some(inner) => <Box<TsTypeParamDecl> as VisitWith<V>>::visit_with(inner, visitor),
15899            None => {}
15900        }
15901    }
15902}
15903impl<V: ?Sized + Visit> VisitWith<V> for Option<Box<TsTypeParamInstantiation>> {
15904    #[doc = "Calls [Visit`::visit_opt_ts_type_param_instantiation`] with `self`. (Extra impl)"]
15905    #[inline]
15906    fn visit_with(&self, visitor: &mut V) {
15907        <V as Visit>::visit_opt_ts_type_param_instantiation(visitor, self)
15908    }
15909
15910    #[inline]
15911    fn visit_children_with(&self, visitor: &mut V) {
15912        match self {
15913            Some(inner) => {
15914                <Box<TsTypeParamInstantiation> as VisitWith<V>>::visit_with(inner, visitor)
15915            }
15916            None => {}
15917        }
15918    }
15919}
15920impl<V: ?Sized + Visit> VisitWith<V> for Option<VarDeclOrExpr> {
15921    #[doc = "Calls [Visit`::visit_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
15922    #[inline]
15923    fn visit_with(&self, visitor: &mut V) {
15924        <V as Visit>::visit_opt_var_decl_or_expr(visitor, self)
15925    }
15926
15927    #[inline]
15928    fn visit_children_with(&self, visitor: &mut V) {
15929        match self {
15930            Some(inner) => <VarDeclOrExpr as VisitWith<V>>::visit_with(inner, visitor),
15931            None => {}
15932        }
15933    }
15934}
15935impl<V: ?Sized + Visit> VisitWith<V> for [Option<ExprOrSpread>] {
15936    #[doc = "Calls [Visit`::visit_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
15937    #[inline]
15938    fn visit_with(&self, visitor: &mut V) {
15939        <V as Visit>::visit_opt_vec_expr_or_spreads(visitor, self)
15940    }
15941
15942    #[inline]
15943    fn visit_children_with(&self, visitor: &mut V) {
15944        self.iter()
15945            .for_each(|item| <Option<ExprOrSpread> as VisitWith<V>>::visit_with(item, visitor))
15946    }
15947}
15948impl<V: ?Sized + Visit> VisitWith<V> for [Option<Pat>] {
15949    #[doc = "Calls [Visit`::visit_opt_vec_pats`] with `self`. (Extra impl)"]
15950    #[inline]
15951    fn visit_with(&self, visitor: &mut V) {
15952        <V as Visit>::visit_opt_vec_pats(visitor, self)
15953    }
15954
15955    #[inline]
15956    fn visit_children_with(&self, visitor: &mut V) {
15957        self.iter()
15958            .for_each(|item| <Option<Pat> as VisitWith<V>>::visit_with(item, visitor))
15959    }
15960}
15961impl<V: ?Sized + Visit> VisitWith<V> for [ParamOrTsParamProp] {
15962    #[doc = "Calls [Visit`::visit_param_or_ts_param_props`] with `self`. (Extra impl)"]
15963    #[inline]
15964    fn visit_with(&self, visitor: &mut V) {
15965        <V as Visit>::visit_param_or_ts_param_props(visitor, self)
15966    }
15967
15968    #[inline]
15969    fn visit_children_with(&self, visitor: &mut V) {
15970        self.iter()
15971            .for_each(|item| <ParamOrTsParamProp as VisitWith<V>>::visit_with(item, visitor))
15972    }
15973}
15974impl<V: ?Sized + Visit> VisitWith<V> for [Param] {
15975    #[doc = "Calls [Visit`::visit_params`] with `self`. (Extra impl)"]
15976    #[inline]
15977    fn visit_with(&self, visitor: &mut V) {
15978        <V as Visit>::visit_params(visitor, self)
15979    }
15980
15981    #[inline]
15982    fn visit_children_with(&self, visitor: &mut V) {
15983        self.iter()
15984            .for_each(|item| <Param as VisitWith<V>>::visit_with(item, visitor))
15985    }
15986}
15987impl<V: ?Sized + Visit> VisitWith<V> for [Pat] {
15988    #[doc = "Calls [Visit`::visit_pats`] with `self`. (Extra impl)"]
15989    #[inline]
15990    fn visit_with(&self, visitor: &mut V) {
15991        <V as Visit>::visit_pats(visitor, self)
15992    }
15993
15994    #[inline]
15995    fn visit_children_with(&self, visitor: &mut V) {
15996        self.iter()
15997            .for_each(|item| <Pat as VisitWith<V>>::visit_with(item, visitor))
15998    }
15999}
16000impl<V: ?Sized + Visit> VisitWith<V> for [PropOrSpread] {
16001    #[doc = "Calls [Visit`::visit_prop_or_spreads`] with `self`. (Extra impl)"]
16002    #[inline]
16003    fn visit_with(&self, visitor: &mut V) {
16004        <V as Visit>::visit_prop_or_spreads(visitor, self)
16005    }
16006
16007    #[inline]
16008    fn visit_children_with(&self, visitor: &mut V) {
16009        self.iter()
16010            .for_each(|item| <PropOrSpread as VisitWith<V>>::visit_with(item, visitor))
16011    }
16012}
16013impl<V: ?Sized + Visit> VisitWith<V> for swc_common::Span {
16014    #[doc = "Calls [Visit`::visit_span`] with `self`. (Extra impl)"]
16015    #[inline]
16016    fn visit_with(&self, visitor: &mut V) {
16017        <V as Visit>::visit_span(visitor, self)
16018    }
16019
16020    #[inline]
16021    fn visit_children_with(&self, visitor: &mut V) {
16022        {}
16023    }
16024}
16025impl<V: ?Sized + Visit> VisitWith<V> for [Stmt] {
16026    #[doc = "Calls [Visit`::visit_stmts`] with `self`. (Extra impl)"]
16027    #[inline]
16028    fn visit_with(&self, visitor: &mut V) {
16029        <V as Visit>::visit_stmts(visitor, self)
16030    }
16031
16032    #[inline]
16033    fn visit_children_with(&self, visitor: &mut V) {
16034        self.iter()
16035            .for_each(|item| <Stmt as VisitWith<V>>::visit_with(item, visitor))
16036    }
16037}
16038impl<V: ?Sized + Visit> VisitWith<V> for [SwitchCase] {
16039    #[doc = "Calls [Visit`::visit_switch_cases`] with `self`. (Extra impl)"]
16040    #[inline]
16041    fn visit_with(&self, visitor: &mut V) {
16042        <V as Visit>::visit_switch_cases(visitor, self)
16043    }
16044
16045    #[inline]
16046    fn visit_children_with(&self, visitor: &mut V) {
16047        self.iter()
16048            .for_each(|item| <SwitchCase as VisitWith<V>>::visit_with(item, visitor))
16049    }
16050}
16051impl<V: ?Sized + Visit> VisitWith<V> for swc_common::SyntaxContext {
16052    #[doc = "Calls [Visit`::visit_syntax_context`] with `self`. (Extra impl)"]
16053    #[inline]
16054    fn visit_with(&self, visitor: &mut V) {
16055        <V as Visit>::visit_syntax_context(visitor, self)
16056    }
16057
16058    #[inline]
16059    fn visit_children_with(&self, visitor: &mut V) {
16060        {}
16061    }
16062}
16063impl<V: ?Sized + Visit> VisitWith<V> for [TplElement] {
16064    #[doc = "Calls [Visit`::visit_tpl_elements`] with `self`. (Extra impl)"]
16065    #[inline]
16066    fn visit_with(&self, visitor: &mut V) {
16067        <V as Visit>::visit_tpl_elements(visitor, self)
16068    }
16069
16070    #[inline]
16071    fn visit_children_with(&self, visitor: &mut V) {
16072        self.iter()
16073            .for_each(|item| <TplElement as VisitWith<V>>::visit_with(item, visitor))
16074    }
16075}
16076impl<V: ?Sized + Visit> VisitWith<V> for [TsEnumMember] {
16077    #[doc = "Calls [Visit`::visit_ts_enum_members`] with `self`. (Extra impl)"]
16078    #[inline]
16079    fn visit_with(&self, visitor: &mut V) {
16080        <V as Visit>::visit_ts_enum_members(visitor, self)
16081    }
16082
16083    #[inline]
16084    fn visit_children_with(&self, visitor: &mut V) {
16085        self.iter()
16086            .for_each(|item| <TsEnumMember as VisitWith<V>>::visit_with(item, visitor))
16087    }
16088}
16089impl<V: ?Sized + Visit> VisitWith<V> for [TsExprWithTypeArgs] {
16090    #[doc = "Calls [Visit`::visit_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
16091    #[inline]
16092    fn visit_with(&self, visitor: &mut V) {
16093        <V as Visit>::visit_ts_expr_with_type_argss(visitor, self)
16094    }
16095
16096    #[inline]
16097    fn visit_children_with(&self, visitor: &mut V) {
16098        self.iter()
16099            .for_each(|item| <TsExprWithTypeArgs as VisitWith<V>>::visit_with(item, visitor))
16100    }
16101}
16102impl<V: ?Sized + Visit> VisitWith<V> for [TsFnParam] {
16103    #[doc = "Calls [Visit`::visit_ts_fn_params`] with `self`. (Extra impl)"]
16104    #[inline]
16105    fn visit_with(&self, visitor: &mut V) {
16106        <V as Visit>::visit_ts_fn_params(visitor, self)
16107    }
16108
16109    #[inline]
16110    fn visit_children_with(&self, visitor: &mut V) {
16111        self.iter()
16112            .for_each(|item| <TsFnParam as VisitWith<V>>::visit_with(item, visitor))
16113    }
16114}
16115impl<V: ?Sized + Visit> VisitWith<V> for [TsTupleElement] {
16116    #[doc = "Calls [Visit`::visit_ts_tuple_elements`] with `self`. (Extra impl)"]
16117    #[inline]
16118    fn visit_with(&self, visitor: &mut V) {
16119        <V as Visit>::visit_ts_tuple_elements(visitor, self)
16120    }
16121
16122    #[inline]
16123    fn visit_children_with(&self, visitor: &mut V) {
16124        self.iter()
16125            .for_each(|item| <TsTupleElement as VisitWith<V>>::visit_with(item, visitor))
16126    }
16127}
16128impl<V: ?Sized + Visit> VisitWith<V> for [TsTypeElement] {
16129    #[doc = "Calls [Visit`::visit_ts_type_elements`] with `self`. (Extra impl)"]
16130    #[inline]
16131    fn visit_with(&self, visitor: &mut V) {
16132        <V as Visit>::visit_ts_type_elements(visitor, self)
16133    }
16134
16135    #[inline]
16136    fn visit_children_with(&self, visitor: &mut V) {
16137        self.iter()
16138            .for_each(|item| <TsTypeElement as VisitWith<V>>::visit_with(item, visitor))
16139    }
16140}
16141impl<V: ?Sized + Visit> VisitWith<V> for [TsTypeParam] {
16142    #[doc = "Calls [Visit`::visit_ts_type_params`] with `self`. (Extra impl)"]
16143    #[inline]
16144    fn visit_with(&self, visitor: &mut V) {
16145        <V as Visit>::visit_ts_type_params(visitor, self)
16146    }
16147
16148    #[inline]
16149    fn visit_children_with(&self, visitor: &mut V) {
16150        self.iter()
16151            .for_each(|item| <TsTypeParam as VisitWith<V>>::visit_with(item, visitor))
16152    }
16153}
16154impl<V: ?Sized + Visit> VisitWith<V> for [Box<TsType>] {
16155    #[doc = "Calls [Visit`::visit_ts_types`] with `self`. (Extra impl)"]
16156    #[inline]
16157    fn visit_with(&self, visitor: &mut V) {
16158        <V as Visit>::visit_ts_types(visitor, self)
16159    }
16160
16161    #[inline]
16162    fn visit_children_with(&self, visitor: &mut V) {
16163        self.iter()
16164            .for_each(|item| <Box<TsType> as VisitWith<V>>::visit_with(item, visitor))
16165    }
16166}
16167impl<V: ?Sized + Visit> VisitWith<V> for [VarDeclarator] {
16168    #[doc = "Calls [Visit`::visit_var_declarators`] with `self`. (Extra impl)"]
16169    #[inline]
16170    fn visit_with(&self, visitor: &mut V) {
16171        <V as Visit>::visit_var_declarators(visitor, self)
16172    }
16173
16174    #[inline]
16175    fn visit_children_with(&self, visitor: &mut V) {
16176        self.iter()
16177            .for_each(|item| <VarDeclarator as VisitWith<V>>::visit_with(item, visitor))
16178    }
16179}
16180impl<V, T> VisitWith<V> for std::boxed::Box<T>
16181where
16182    V: ?Sized + Visit,
16183    T: VisitWith<V>,
16184{
16185    #[inline]
16186    fn visit_with(&self, visitor: &mut V) {
16187        let v = <T as VisitWith<V>>::visit_with(&**self, visitor);
16188        v
16189    }
16190
16191    #[inline]
16192    fn visit_children_with(&self, visitor: &mut V) {
16193        let v = <T as VisitWith<V>>::visit_children_with(&**self, visitor);
16194        v
16195    }
16196}
16197impl<V, T> VisitWith<V> for std::vec::Vec<T>
16198where
16199    V: ?Sized + Visit,
16200    [T]: VisitWith<V>,
16201{
16202    #[inline]
16203    fn visit_with(&self, visitor: &mut V) {
16204        let v = <[T] as VisitWith<V>>::visit_with(self, visitor);
16205        v
16206    }
16207
16208    #[inline]
16209    fn visit_children_with(&self, visitor: &mut V) {
16210        let v = <[T] as VisitWith<V>>::visit_children_with(self, visitor);
16211        v
16212    }
16213}
16214#[doc = r" A visitor trait for traversing the AST."]
16215#[cfg(any(docsrs, feature = "path"))]
16216#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
16217pub trait VisitAstPath {
16218    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
16219             [`Accessibility::visit_children_with_ast_path`]. If you want to recurse, you need to \
16220             call it manually."]
16221    #[inline]
16222    fn visit_accessibility<'ast: 'r, 'r>(
16223        &mut self,
16224        node: &'ast Accessibility,
16225        __ast_path: &mut AstNodePath<'r>,
16226    ) {
16227        <Accessibility as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16228            node, self, __ast_path,
16229        )
16230    }
16231    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
16232             [`ArrayLit::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16233             it manually."]
16234    #[inline]
16235    fn visit_array_lit<'ast: 'r, 'r>(
16236        &mut self,
16237        node: &'ast ArrayLit,
16238        __ast_path: &mut AstNodePath<'r>,
16239    ) {
16240        <ArrayLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16241    }
16242    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
16243             [`ArrayPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16244             it manually."]
16245    #[inline]
16246    fn visit_array_pat<'ast: 'r, 'r>(
16247        &mut self,
16248        node: &'ast ArrayPat,
16249        __ast_path: &mut AstNodePath<'r>,
16250    ) {
16251        <ArrayPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16252    }
16253    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
16254             [`ArrowExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16255             it manually."]
16256    #[inline]
16257    fn visit_arrow_expr<'ast: 'r, 'r>(
16258        &mut self,
16259        node: &'ast ArrowExpr,
16260        __ast_path: &mut AstNodePath<'r>,
16261    ) {
16262        <ArrowExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16263    }
16264    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
16265             [`AssignExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
16266             call it manually."]
16267    #[inline]
16268    fn visit_assign_expr<'ast: 'r, 'r>(
16269        &mut self,
16270        node: &'ast AssignExpr,
16271        __ast_path: &mut AstNodePath<'r>,
16272    ) {
16273        <AssignExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16274    }
16275    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
16276             [`AssignOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16277             it manually."]
16278    #[inline]
16279    fn visit_assign_op<'ast: 'r, 'r>(
16280        &mut self,
16281        node: &'ast AssignOp,
16282        __ast_path: &mut AstNodePath<'r>,
16283    ) {
16284        <AssignOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16285    }
16286    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
16287             [`AssignPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16288             it manually."]
16289    #[inline]
16290    fn visit_assign_pat<'ast: 'r, 'r>(
16291        &mut self,
16292        node: &'ast AssignPat,
16293        __ast_path: &mut AstNodePath<'r>,
16294    ) {
16295        <AssignPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16296    }
16297    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
16298             [`AssignPatProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
16299             call it manually."]
16300    #[inline]
16301    fn visit_assign_pat_prop<'ast: 'r, 'r>(
16302        &mut self,
16303        node: &'ast AssignPatProp,
16304        __ast_path: &mut AstNodePath<'r>,
16305    ) {
16306        <AssignPatProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16307            node, self, __ast_path,
16308        )
16309    }
16310    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
16311             [`AssignProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
16312             call it manually."]
16313    #[inline]
16314    fn visit_assign_prop<'ast: 'r, 'r>(
16315        &mut self,
16316        node: &'ast AssignProp,
16317        __ast_path: &mut AstNodePath<'r>,
16318    ) {
16319        <AssignProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16320    }
16321    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
16322             [`AssignTarget::visit_children_with_ast_path`]. If you want to recurse, you need to \
16323             call it manually."]
16324    #[inline]
16325    fn visit_assign_target<'ast: 'r, 'r>(
16326        &mut self,
16327        node: &'ast AssignTarget,
16328        __ast_path: &mut AstNodePath<'r>,
16329    ) {
16330        <AssignTarget as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16331            node, self, __ast_path,
16332        )
16333    }
16334    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
16335             [`AssignTargetPat::visit_children_with_ast_path`]. If you want to recurse, you need \
16336             to call it manually."]
16337    #[inline]
16338    fn visit_assign_target_pat<'ast: 'r, 'r>(
16339        &mut self,
16340        node: &'ast AssignTargetPat,
16341        __ast_path: &mut AstNodePath<'r>,
16342    ) {
16343        <AssignTargetPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16344            node, self, __ast_path,
16345        )
16346    }
16347    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
16348             [`swc_atoms :: Atom::visit_children_with_ast_path`]. If you want to recurse, you need \
16349             to call it manually."]
16350    #[inline]
16351    fn visit_atom<'ast: 'r, 'r>(
16352        &mut self,
16353        node: &'ast swc_atoms::Atom,
16354        __ast_path: &mut AstNodePath<'r>,
16355    ) {
16356        <swc_atoms::Atom as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16357            node, self, __ast_path,
16358        )
16359    }
16360    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
16361             [`AutoAccessor::visit_children_with_ast_path`]. If you want to recurse, you need to \
16362             call it manually."]
16363    #[inline]
16364    fn visit_auto_accessor<'ast: 'r, 'r>(
16365        &mut self,
16366        node: &'ast AutoAccessor,
16367        __ast_path: &mut AstNodePath<'r>,
16368    ) {
16369        <AutoAccessor as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16370            node, self, __ast_path,
16371        )
16372    }
16373    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
16374             [`AwaitExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16375             it manually."]
16376    #[inline]
16377    fn visit_await_expr<'ast: 'r, 'r>(
16378        &mut self,
16379        node: &'ast AwaitExpr,
16380        __ast_path: &mut AstNodePath<'r>,
16381    ) {
16382        <AwaitExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16383    }
16384    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
16385             [`BigInt::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16386             manually."]
16387    #[inline]
16388    fn visit_big_int<'ast: 'r, 'r>(
16389        &mut self,
16390        node: &'ast BigInt,
16391        __ast_path: &mut AstNodePath<'r>,
16392    ) {
16393        <BigInt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16394    }
16395    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
16396             [`BigIntValue::visit_children_with_ast_path`]. If you want to recurse, you need to \
16397             call it manually."]
16398    #[inline]
16399    fn visit_big_int_value<'ast: 'r, 'r>(
16400        &mut self,
16401        node: &'ast BigIntValue,
16402        __ast_path: &mut AstNodePath<'r>,
16403    ) {
16404        <BigIntValue as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16405            node, self, __ast_path,
16406        )
16407    }
16408    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
16409             [`BinExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16410             it manually."]
16411    #[inline]
16412    fn visit_bin_expr<'ast: 'r, 'r>(
16413        &mut self,
16414        node: &'ast BinExpr,
16415        __ast_path: &mut AstNodePath<'r>,
16416    ) {
16417        <BinExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16418    }
16419    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
16420             [`BinaryOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16421             it manually."]
16422    #[inline]
16423    fn visit_binary_op<'ast: 'r, 'r>(
16424        &mut self,
16425        node: &'ast BinaryOp,
16426        __ast_path: &mut AstNodePath<'r>,
16427    ) {
16428        <BinaryOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16429    }
16430    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
16431             [`BindingIdent::visit_children_with_ast_path`]. If you want to recurse, you need to \
16432             call it manually."]
16433    #[inline]
16434    fn visit_binding_ident<'ast: 'r, 'r>(
16435        &mut self,
16436        node: &'ast BindingIdent,
16437        __ast_path: &mut AstNodePath<'r>,
16438    ) {
16439        <BindingIdent as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16440            node, self, __ast_path,
16441        )
16442    }
16443    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
16444             [`BlockStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16445             it manually."]
16446    #[inline]
16447    fn visit_block_stmt<'ast: 'r, 'r>(
16448        &mut self,
16449        node: &'ast BlockStmt,
16450        __ast_path: &mut AstNodePath<'r>,
16451    ) {
16452        <BlockStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16453    }
16454    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
16455             [`BlockStmtOrExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
16456             to call it manually."]
16457    #[inline]
16458    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
16459        &mut self,
16460        node: &'ast BlockStmtOrExpr,
16461        __ast_path: &mut AstNodePath<'r>,
16462    ) {
16463        <BlockStmtOrExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16464            node, self, __ast_path,
16465        )
16466    }
16467    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
16468             [`Bool::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16469             manually."]
16470    #[inline]
16471    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
16472        <Bool as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16473    }
16474    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
16475             [`BreakStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16476             it manually."]
16477    #[inline]
16478    fn visit_break_stmt<'ast: 'r, 'r>(
16479        &mut self,
16480        node: &'ast BreakStmt,
16481        __ast_path: &mut AstNodePath<'r>,
16482    ) {
16483        <BreakStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16484    }
16485    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
16486             [`CallExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16487             it manually."]
16488    #[inline]
16489    fn visit_call_expr<'ast: 'r, 'r>(
16490        &mut self,
16491        node: &'ast CallExpr,
16492        __ast_path: &mut AstNodePath<'r>,
16493    ) {
16494        <CallExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16495    }
16496    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
16497             [`Callee::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16498             manually."]
16499    #[inline]
16500    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
16501        <Callee as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16502    }
16503    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
16504             [`CatchClause::visit_children_with_ast_path`]. If you want to recurse, you need to \
16505             call it manually."]
16506    #[inline]
16507    fn visit_catch_clause<'ast: 'r, 'r>(
16508        &mut self,
16509        node: &'ast CatchClause,
16510        __ast_path: &mut AstNodePath<'r>,
16511    ) {
16512        <CatchClause as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16513            node, self, __ast_path,
16514        )
16515    }
16516    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
16517             [`Class::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16518             manually."]
16519    #[inline]
16520    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
16521        <Class as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16522    }
16523    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
16524             [`ClassDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16525             it manually."]
16526    #[inline]
16527    fn visit_class_decl<'ast: 'r, 'r>(
16528        &mut self,
16529        node: &'ast ClassDecl,
16530        __ast_path: &mut AstNodePath<'r>,
16531    ) {
16532        <ClassDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16533    }
16534    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
16535             [`ClassExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16536             it manually."]
16537    #[inline]
16538    fn visit_class_expr<'ast: 'r, 'r>(
16539        &mut self,
16540        node: &'ast ClassExpr,
16541        __ast_path: &mut AstNodePath<'r>,
16542    ) {
16543        <ClassExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16544    }
16545    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
16546             [`ClassMember::visit_children_with_ast_path`]. If you want to recurse, you need to \
16547             call it manually."]
16548    #[inline]
16549    fn visit_class_member<'ast: 'r, 'r>(
16550        &mut self,
16551        node: &'ast ClassMember,
16552        __ast_path: &mut AstNodePath<'r>,
16553    ) {
16554        <ClassMember as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16555            node, self, __ast_path,
16556        )
16557    }
16558    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
16559             ClassMember >::visit_children_with_ast_path`]. If you want to recurse, you need to \
16560             call it manually."]
16561    #[inline]
16562    fn visit_class_members<'ast: 'r, 'r>(
16563        &mut self,
16564        node: &'ast [ClassMember],
16565        __ast_path: &mut AstNodePath<'r>,
16566    ) {
16567        <[ClassMember] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16568            node, self, __ast_path,
16569        )
16570    }
16571    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
16572             [`ClassMethod::visit_children_with_ast_path`]. If you want to recurse, you need to \
16573             call it manually."]
16574    #[inline]
16575    fn visit_class_method<'ast: 'r, 'r>(
16576        &mut self,
16577        node: &'ast ClassMethod,
16578        __ast_path: &mut AstNodePath<'r>,
16579    ) {
16580        <ClassMethod as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16581            node, self, __ast_path,
16582        )
16583    }
16584    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
16585             [`ClassProp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16586             it manually."]
16587    #[inline]
16588    fn visit_class_prop<'ast: 'r, 'r>(
16589        &mut self,
16590        node: &'ast ClassProp,
16591        __ast_path: &mut AstNodePath<'r>,
16592    ) {
16593        <ClassProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16594    }
16595    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
16596             [`ComputedPropName::visit_children_with_ast_path`]. If you want to recurse, you need \
16597             to call it manually."]
16598    #[inline]
16599    fn visit_computed_prop_name<'ast: 'r, 'r>(
16600        &mut self,
16601        node: &'ast ComputedPropName,
16602        __ast_path: &mut AstNodePath<'r>,
16603    ) {
16604        <ComputedPropName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16605            node, self, __ast_path,
16606        )
16607    }
16608    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
16609             [`CondExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16610             it manually."]
16611    #[inline]
16612    fn visit_cond_expr<'ast: 'r, 'r>(
16613        &mut self,
16614        node: &'ast CondExpr,
16615        __ast_path: &mut AstNodePath<'r>,
16616    ) {
16617        <CondExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16618    }
16619    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
16620             [`Constructor::visit_children_with_ast_path`]. If you want to recurse, you need to \
16621             call it manually."]
16622    #[inline]
16623    fn visit_constructor<'ast: 'r, 'r>(
16624        &mut self,
16625        node: &'ast Constructor,
16626        __ast_path: &mut AstNodePath<'r>,
16627    ) {
16628        <Constructor as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16629            node, self, __ast_path,
16630        )
16631    }
16632    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
16633             [`ContinueStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
16634             call it manually."]
16635    #[inline]
16636    fn visit_continue_stmt<'ast: 'r, 'r>(
16637        &mut self,
16638        node: &'ast ContinueStmt,
16639        __ast_path: &mut AstNodePath<'r>,
16640    ) {
16641        <ContinueStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16642            node, self, __ast_path,
16643        )
16644    }
16645    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
16646             [`DebuggerStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
16647             call it manually."]
16648    #[inline]
16649    fn visit_debugger_stmt<'ast: 'r, 'r>(
16650        &mut self,
16651        node: &'ast DebuggerStmt,
16652        __ast_path: &mut AstNodePath<'r>,
16653    ) {
16654        <DebuggerStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16655            node, self, __ast_path,
16656        )
16657    }
16658    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
16659             [`Decl::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16660             manually."]
16661    #[inline]
16662    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
16663        <Decl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16664    }
16665    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
16666             [`Decorator::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16667             it manually."]
16668    #[inline]
16669    fn visit_decorator<'ast: 'r, 'r>(
16670        &mut self,
16671        node: &'ast Decorator,
16672        __ast_path: &mut AstNodePath<'r>,
16673    ) {
16674        <Decorator as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16675    }
16676    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
16677             Decorator >::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16678             it manually."]
16679    #[inline]
16680    fn visit_decorators<'ast: 'r, 'r>(
16681        &mut self,
16682        node: &'ast [Decorator],
16683        __ast_path: &mut AstNodePath<'r>,
16684    ) {
16685        <[Decorator] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16686            node, self, __ast_path,
16687        )
16688    }
16689    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
16690             [`DefaultDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
16691             call it manually."]
16692    #[inline]
16693    fn visit_default_decl<'ast: 'r, 'r>(
16694        &mut self,
16695        node: &'ast DefaultDecl,
16696        __ast_path: &mut AstNodePath<'r>,
16697    ) {
16698        <DefaultDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16699            node, self, __ast_path,
16700        )
16701    }
16702    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
16703             [`DoWhileStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
16704             call it manually."]
16705    #[inline]
16706    fn visit_do_while_stmt<'ast: 'r, 'r>(
16707        &mut self,
16708        node: &'ast DoWhileStmt,
16709        __ast_path: &mut AstNodePath<'r>,
16710    ) {
16711        <DoWhileStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16712            node, self, __ast_path,
16713        )
16714    }
16715    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
16716             [`EmptyStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16717             it manually."]
16718    #[inline]
16719    fn visit_empty_stmt<'ast: 'r, 'r>(
16720        &mut self,
16721        node: &'ast EmptyStmt,
16722        __ast_path: &mut AstNodePath<'r>,
16723    ) {
16724        <EmptyStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16725    }
16726    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
16727             [`ExportAll::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16728             it manually."]
16729    #[inline]
16730    fn visit_export_all<'ast: 'r, 'r>(
16731        &mut self,
16732        node: &'ast ExportAll,
16733        __ast_path: &mut AstNodePath<'r>,
16734    ) {
16735        <ExportAll as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16736    }
16737    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
16738             [`ExportDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
16739             call it manually."]
16740    #[inline]
16741    fn visit_export_decl<'ast: 'r, 'r>(
16742        &mut self,
16743        node: &'ast ExportDecl,
16744        __ast_path: &mut AstNodePath<'r>,
16745    ) {
16746        <ExportDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16747    }
16748    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
16749             [`ExportDefaultDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
16750             to call it manually."]
16751    #[inline]
16752    fn visit_export_default_decl<'ast: 'r, 'r>(
16753        &mut self,
16754        node: &'ast ExportDefaultDecl,
16755        __ast_path: &mut AstNodePath<'r>,
16756    ) {
16757        <ExportDefaultDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16758            node, self, __ast_path,
16759        )
16760    }
16761    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
16762             [`ExportDefaultExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
16763             to call it manually."]
16764    #[inline]
16765    fn visit_export_default_expr<'ast: 'r, 'r>(
16766        &mut self,
16767        node: &'ast ExportDefaultExpr,
16768        __ast_path: &mut AstNodePath<'r>,
16769    ) {
16770        <ExportDefaultExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16771            node, self, __ast_path,
16772        )
16773    }
16774    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
16775             [`ExportDefaultSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
16776             need to call it manually."]
16777    #[inline]
16778    fn visit_export_default_specifier<'ast: 'r, 'r>(
16779        &mut self,
16780        node: &'ast ExportDefaultSpecifier,
16781        __ast_path: &mut AstNodePath<'r>,
16782    ) {
16783        <ExportDefaultSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16784            node, self, __ast_path,
16785        )
16786    }
16787    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
16788             [`ExportNamedSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
16789             need to call it manually."]
16790    #[inline]
16791    fn visit_export_named_specifier<'ast: 'r, 'r>(
16792        &mut self,
16793        node: &'ast ExportNamedSpecifier,
16794        __ast_path: &mut AstNodePath<'r>,
16795    ) {
16796        <ExportNamedSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16797            node, self, __ast_path,
16798        )
16799    }
16800    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
16801             [`ExportNamespaceSpecifier::visit_children_with_ast_path`]. If you want to recurse, \
16802             you need to call it manually."]
16803    #[inline]
16804    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
16805        &mut self,
16806        node: &'ast ExportNamespaceSpecifier,
16807        __ast_path: &mut AstNodePath<'r>,
16808    ) {
16809        <ExportNamespaceSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16810            node, self, __ast_path,
16811        )
16812    }
16813    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
16814             [`ExportSpecifier::visit_children_with_ast_path`]. If you want to recurse, you need \
16815             to call it manually."]
16816    #[inline]
16817    fn visit_export_specifier<'ast: 'r, 'r>(
16818        &mut self,
16819        node: &'ast ExportSpecifier,
16820        __ast_path: &mut AstNodePath<'r>,
16821    ) {
16822        <ExportSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16823            node, self, __ast_path,
16824        )
16825    }
16826    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
16827             [`Vec < ExportSpecifier >::visit_children_with_ast_path`]. If you want to recurse, \
16828             you need to call it manually."]
16829    #[inline]
16830    fn visit_export_specifiers<'ast: 'r, 'r>(
16831        &mut self,
16832        node: &'ast [ExportSpecifier],
16833        __ast_path: &mut AstNodePath<'r>,
16834    ) {
16835        <[ExportSpecifier] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16836            node, self, __ast_path,
16837        )
16838    }
16839    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
16840             [`Expr::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16841             manually."]
16842    #[inline]
16843    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
16844        <Expr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16845    }
16846    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
16847             [`ExprOrSpread::visit_children_with_ast_path`]. If you want to recurse, you need to \
16848             call it manually."]
16849    #[inline]
16850    fn visit_expr_or_spread<'ast: 'r, 'r>(
16851        &mut self,
16852        node: &'ast ExprOrSpread,
16853        __ast_path: &mut AstNodePath<'r>,
16854    ) {
16855        <ExprOrSpread as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16856            node, self, __ast_path,
16857        )
16858    }
16859    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
16860             ExprOrSpread >::visit_children_with_ast_path`]. If you want to recurse, you need to \
16861             call it manually."]
16862    #[inline]
16863    fn visit_expr_or_spreads<'ast: 'r, 'r>(
16864        &mut self,
16865        node: &'ast [ExprOrSpread],
16866        __ast_path: &mut AstNodePath<'r>,
16867    ) {
16868        <[ExprOrSpread] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16869            node, self, __ast_path,
16870        )
16871    }
16872    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
16873             [`ExprStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16874             it manually."]
16875    #[inline]
16876    fn visit_expr_stmt<'ast: 'r, 'r>(
16877        &mut self,
16878        node: &'ast ExprStmt,
16879        __ast_path: &mut AstNodePath<'r>,
16880    ) {
16881        <ExprStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16882    }
16883    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
16884             Box < Expr > >::visit_children_with_ast_path`]. If you want to recurse, you need to \
16885             call it manually."]
16886    #[inline]
16887    fn visit_exprs<'ast: 'r, 'r>(
16888        &mut self,
16889        node: &'ast [Box<Expr>],
16890        __ast_path: &mut AstNodePath<'r>,
16891    ) {
16892        <[Box<Expr>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
16893            node, self, __ast_path,
16894        )
16895    }
16896    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
16897             [`FnDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16898             manually."]
16899    #[inline]
16900    fn visit_fn_decl<'ast: 'r, 'r>(
16901        &mut self,
16902        node: &'ast FnDecl,
16903        __ast_path: &mut AstNodePath<'r>,
16904    ) {
16905        <FnDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16906    }
16907    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
16908             [`FnExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16909             manually."]
16910    #[inline]
16911    fn visit_fn_expr<'ast: 'r, 'r>(
16912        &mut self,
16913        node: &'ast FnExpr,
16914        __ast_path: &mut AstNodePath<'r>,
16915    ) {
16916        <FnExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16917    }
16918    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
16919             [`ForHead::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16920             it manually."]
16921    #[inline]
16922    fn visit_for_head<'ast: 'r, 'r>(
16923        &mut self,
16924        node: &'ast ForHead,
16925        __ast_path: &mut AstNodePath<'r>,
16926    ) {
16927        <ForHead as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16928    }
16929    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
16930             [`ForInStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16931             it manually."]
16932    #[inline]
16933    fn visit_for_in_stmt<'ast: 'r, 'r>(
16934        &mut self,
16935        node: &'ast ForInStmt,
16936        __ast_path: &mut AstNodePath<'r>,
16937    ) {
16938        <ForInStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16939    }
16940    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
16941             [`ForOfStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16942             it manually."]
16943    #[inline]
16944    fn visit_for_of_stmt<'ast: 'r, 'r>(
16945        &mut self,
16946        node: &'ast ForOfStmt,
16947        __ast_path: &mut AstNodePath<'r>,
16948    ) {
16949        <ForOfStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16950    }
16951    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
16952             [`ForStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16953             it manually."]
16954    #[inline]
16955    fn visit_for_stmt<'ast: 'r, 'r>(
16956        &mut self,
16957        node: &'ast ForStmt,
16958        __ast_path: &mut AstNodePath<'r>,
16959    ) {
16960        <ForStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16961    }
16962    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
16963             [`Function::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16964             it manually."]
16965    #[inline]
16966    fn visit_function<'ast: 'r, 'r>(
16967        &mut self,
16968        node: &'ast Function,
16969        __ast_path: &mut AstNodePath<'r>,
16970    ) {
16971        <Function as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16972    }
16973    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
16974             [`GetterProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
16975             call it manually."]
16976    #[inline]
16977    fn visit_getter_prop<'ast: 'r, 'r>(
16978        &mut self,
16979        node: &'ast GetterProp,
16980        __ast_path: &mut AstNodePath<'r>,
16981    ) {
16982        <GetterProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16983    }
16984    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
16985             [`Ident::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
16986             manually."]
16987    #[inline]
16988    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
16989        <Ident as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
16990    }
16991    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
16992             [`IdentName::visit_children_with_ast_path`]. If you want to recurse, you need to call \
16993             it manually."]
16994    #[inline]
16995    fn visit_ident_name<'ast: 'r, 'r>(
16996        &mut self,
16997        node: &'ast IdentName,
16998        __ast_path: &mut AstNodePath<'r>,
16999    ) {
17000        <IdentName as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17001    }
17002    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
17003             [`IfStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17004             manually."]
17005    #[inline]
17006    fn visit_if_stmt<'ast: 'r, 'r>(
17007        &mut self,
17008        node: &'ast IfStmt,
17009        __ast_path: &mut AstNodePath<'r>,
17010    ) {
17011        <IfStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17012    }
17013    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
17014             [`Import::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17015             manually."]
17016    #[inline]
17017    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
17018        <Import as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17019    }
17020    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
17021             [`ImportDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
17022             call it manually."]
17023    #[inline]
17024    fn visit_import_decl<'ast: 'r, 'r>(
17025        &mut self,
17026        node: &'ast ImportDecl,
17027        __ast_path: &mut AstNodePath<'r>,
17028    ) {
17029        <ImportDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17030    }
17031    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
17032             [`ImportDefaultSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
17033             need to call it manually."]
17034    #[inline]
17035    fn visit_import_default_specifier<'ast: 'r, 'r>(
17036        &mut self,
17037        node: &'ast ImportDefaultSpecifier,
17038        __ast_path: &mut AstNodePath<'r>,
17039    ) {
17040        <ImportDefaultSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17041            node, self, __ast_path,
17042        )
17043    }
17044    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
17045             [`ImportNamedSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
17046             need to call it manually."]
17047    #[inline]
17048    fn visit_import_named_specifier<'ast: 'r, 'r>(
17049        &mut self,
17050        node: &'ast ImportNamedSpecifier,
17051        __ast_path: &mut AstNodePath<'r>,
17052    ) {
17053        <ImportNamedSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17054            node, self, __ast_path,
17055        )
17056    }
17057    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
17058             [`ImportPhase::visit_children_with_ast_path`]. If you want to recurse, you need to \
17059             call it manually."]
17060    #[inline]
17061    fn visit_import_phase<'ast: 'r, 'r>(
17062        &mut self,
17063        node: &'ast ImportPhase,
17064        __ast_path: &mut AstNodePath<'r>,
17065    ) {
17066        <ImportPhase as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17067            node, self, __ast_path,
17068        )
17069    }
17070    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
17071             [`ImportSpecifier::visit_children_with_ast_path`]. If you want to recurse, you need \
17072             to call it manually."]
17073    #[inline]
17074    fn visit_import_specifier<'ast: 'r, 'r>(
17075        &mut self,
17076        node: &'ast ImportSpecifier,
17077        __ast_path: &mut AstNodePath<'r>,
17078    ) {
17079        <ImportSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17080            node, self, __ast_path,
17081        )
17082    }
17083    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
17084             [`Vec < ImportSpecifier >::visit_children_with_ast_path`]. If you want to recurse, \
17085             you need to call it manually."]
17086    #[inline]
17087    fn visit_import_specifiers<'ast: 'r, 'r>(
17088        &mut self,
17089        node: &'ast [ImportSpecifier],
17090        __ast_path: &mut AstNodePath<'r>,
17091    ) {
17092        <[ImportSpecifier] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17093            node, self, __ast_path,
17094        )
17095    }
17096    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
17097             [`ImportStarAsSpecifier::visit_children_with_ast_path`]. If you want to recurse, you \
17098             need to call it manually."]
17099    #[inline]
17100    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
17101        &mut self,
17102        node: &'ast ImportStarAsSpecifier,
17103        __ast_path: &mut AstNodePath<'r>,
17104    ) {
17105        <ImportStarAsSpecifier as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17106            node, self, __ast_path,
17107        )
17108    }
17109    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
17110             [`ImportWith::visit_children_with_ast_path`]. If you want to recurse, you need to \
17111             call it manually."]
17112    #[inline]
17113    fn visit_import_with<'ast: 'r, 'r>(
17114        &mut self,
17115        node: &'ast ImportWith,
17116        __ast_path: &mut AstNodePath<'r>,
17117    ) {
17118        <ImportWith as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17119    }
17120    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
17121             [`ImportWithItem::visit_children_with_ast_path`]. If you want to recurse, you need to \
17122             call it manually."]
17123    #[inline]
17124    fn visit_import_with_item<'ast: 'r, 'r>(
17125        &mut self,
17126        node: &'ast ImportWithItem,
17127        __ast_path: &mut AstNodePath<'r>,
17128    ) {
17129        <ImportWithItem as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17130            node, self, __ast_path,
17131        )
17132    }
17133    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
17134             < ImportWithItem >::visit_children_with_ast_path`]. If you want to recurse, you need \
17135             to call it manually."]
17136    #[inline]
17137    fn visit_import_with_items<'ast: 'r, 'r>(
17138        &mut self,
17139        node: &'ast [ImportWithItem],
17140        __ast_path: &mut AstNodePath<'r>,
17141    ) {
17142        <[ImportWithItem] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17143            node, self, __ast_path,
17144        )
17145    }
17146    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
17147             [`Invalid::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17148             it manually."]
17149    #[inline]
17150    fn visit_invalid<'ast: 'r, 'r>(
17151        &mut self,
17152        node: &'ast Invalid,
17153        __ast_path: &mut AstNodePath<'r>,
17154    ) {
17155        <Invalid as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17156    }
17157    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
17158             [`JSXAttr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17159             it manually."]
17160    #[inline]
17161    fn visit_jsx_attr<'ast: 'r, 'r>(
17162        &mut self,
17163        node: &'ast JSXAttr,
17164        __ast_path: &mut AstNodePath<'r>,
17165    ) {
17166        <JSXAttr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17167    }
17168    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
17169             [`JSXAttrName::visit_children_with_ast_path`]. If you want to recurse, you need to \
17170             call it manually."]
17171    #[inline]
17172    fn visit_jsx_attr_name<'ast: 'r, 'r>(
17173        &mut self,
17174        node: &'ast JSXAttrName,
17175        __ast_path: &mut AstNodePath<'r>,
17176    ) {
17177        <JSXAttrName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17178            node, self, __ast_path,
17179        )
17180    }
17181    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
17182             [`JSXAttrOrSpread::visit_children_with_ast_path`]. If you want to recurse, you need \
17183             to call it manually."]
17184    #[inline]
17185    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
17186        &mut self,
17187        node: &'ast JSXAttrOrSpread,
17188        __ast_path: &mut AstNodePath<'r>,
17189    ) {
17190        <JSXAttrOrSpread as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17191            node, self, __ast_path,
17192        )
17193    }
17194    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
17195             [`Vec < JSXAttrOrSpread >::visit_children_with_ast_path`]. If you want to recurse, \
17196             you need to call it manually."]
17197    #[inline]
17198    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
17199        &mut self,
17200        node: &'ast [JSXAttrOrSpread],
17201        __ast_path: &mut AstNodePath<'r>,
17202    ) {
17203        <[JSXAttrOrSpread] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17204            node, self, __ast_path,
17205        )
17206    }
17207    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
17208             [`JSXAttrValue::visit_children_with_ast_path`]. If you want to recurse, you need to \
17209             call it manually."]
17210    #[inline]
17211    fn visit_jsx_attr_value<'ast: 'r, 'r>(
17212        &mut self,
17213        node: &'ast JSXAttrValue,
17214        __ast_path: &mut AstNodePath<'r>,
17215    ) {
17216        <JSXAttrValue as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17217            node, self, __ast_path,
17218        )
17219    }
17220    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
17221             [`JSXClosingElement::visit_children_with_ast_path`]. If you want to recurse, you need \
17222             to call it manually."]
17223    #[inline]
17224    fn visit_jsx_closing_element<'ast: 'r, 'r>(
17225        &mut self,
17226        node: &'ast JSXClosingElement,
17227        __ast_path: &mut AstNodePath<'r>,
17228    ) {
17229        <JSXClosingElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17230            node, self, __ast_path,
17231        )
17232    }
17233    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
17234             [`JSXClosingFragment::visit_children_with_ast_path`]. If you want to recurse, you \
17235             need to call it manually."]
17236    #[inline]
17237    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
17238        &mut self,
17239        node: &'ast JSXClosingFragment,
17240        __ast_path: &mut AstNodePath<'r>,
17241    ) {
17242        <JSXClosingFragment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17243            node, self, __ast_path,
17244        )
17245    }
17246    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
17247             [`JSXElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
17248             call it manually."]
17249    #[inline]
17250    fn visit_jsx_element<'ast: 'r, 'r>(
17251        &mut self,
17252        node: &'ast JSXElement,
17253        __ast_path: &mut AstNodePath<'r>,
17254    ) {
17255        <JSXElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17256    }
17257    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
17258             [`JSXElementChild::visit_children_with_ast_path`]. If you want to recurse, you need \
17259             to call it manually."]
17260    #[inline]
17261    fn visit_jsx_element_child<'ast: 'r, 'r>(
17262        &mut self,
17263        node: &'ast JSXElementChild,
17264        __ast_path: &mut AstNodePath<'r>,
17265    ) {
17266        <JSXElementChild as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17267            node, self, __ast_path,
17268        )
17269    }
17270    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
17271             [`Vec < JSXElementChild >::visit_children_with_ast_path`]. If you want to recurse, \
17272             you need to call it manually."]
17273    #[inline]
17274    fn visit_jsx_element_childs<'ast: 'r, 'r>(
17275        &mut self,
17276        node: &'ast [JSXElementChild],
17277        __ast_path: &mut AstNodePath<'r>,
17278    ) {
17279        <[JSXElementChild] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17280            node, self, __ast_path,
17281        )
17282    }
17283    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
17284             [`JSXElementName::visit_children_with_ast_path`]. If you want to recurse, you need to \
17285             call it manually."]
17286    #[inline]
17287    fn visit_jsx_element_name<'ast: 'r, 'r>(
17288        &mut self,
17289        node: &'ast JSXElementName,
17290        __ast_path: &mut AstNodePath<'r>,
17291    ) {
17292        <JSXElementName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17293            node, self, __ast_path,
17294        )
17295    }
17296    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
17297             [`JSXEmptyExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17298             call it manually."]
17299    #[inline]
17300    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
17301        &mut self,
17302        node: &'ast JSXEmptyExpr,
17303        __ast_path: &mut AstNodePath<'r>,
17304    ) {
17305        <JSXEmptyExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17306            node, self, __ast_path,
17307        )
17308    }
17309    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
17310             [`JSXExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17311             it manually."]
17312    #[inline]
17313    fn visit_jsx_expr<'ast: 'r, 'r>(
17314        &mut self,
17315        node: &'ast JSXExpr,
17316        __ast_path: &mut AstNodePath<'r>,
17317    ) {
17318        <JSXExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17319    }
17320    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
17321             [`JSXExprContainer::visit_children_with_ast_path`]. If you want to recurse, you need \
17322             to call it manually."]
17323    #[inline]
17324    fn visit_jsx_expr_container<'ast: 'r, 'r>(
17325        &mut self,
17326        node: &'ast JSXExprContainer,
17327        __ast_path: &mut AstNodePath<'r>,
17328    ) {
17329        <JSXExprContainer as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17330            node, self, __ast_path,
17331        )
17332    }
17333    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
17334             [`JSXFragment::visit_children_with_ast_path`]. If you want to recurse, you need to \
17335             call it manually."]
17336    #[inline]
17337    fn visit_jsx_fragment<'ast: 'r, 'r>(
17338        &mut self,
17339        node: &'ast JSXFragment,
17340        __ast_path: &mut AstNodePath<'r>,
17341    ) {
17342        <JSXFragment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17343            node, self, __ast_path,
17344        )
17345    }
17346    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
17347             [`JSXMemberExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17348             call it manually."]
17349    #[inline]
17350    fn visit_jsx_member_expr<'ast: 'r, 'r>(
17351        &mut self,
17352        node: &'ast JSXMemberExpr,
17353        __ast_path: &mut AstNodePath<'r>,
17354    ) {
17355        <JSXMemberExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17356            node, self, __ast_path,
17357        )
17358    }
17359    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
17360             [`JSXNamespacedName::visit_children_with_ast_path`]. If you want to recurse, you need \
17361             to call it manually."]
17362    #[inline]
17363    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
17364        &mut self,
17365        node: &'ast JSXNamespacedName,
17366        __ast_path: &mut AstNodePath<'r>,
17367    ) {
17368        <JSXNamespacedName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17369            node, self, __ast_path,
17370        )
17371    }
17372    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
17373             [`JSXObject::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17374             it manually."]
17375    #[inline]
17376    fn visit_jsx_object<'ast: 'r, 'r>(
17377        &mut self,
17378        node: &'ast JSXObject,
17379        __ast_path: &mut AstNodePath<'r>,
17380    ) {
17381        <JSXObject as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17382    }
17383    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
17384             [`JSXOpeningElement::visit_children_with_ast_path`]. If you want to recurse, you need \
17385             to call it manually."]
17386    #[inline]
17387    fn visit_jsx_opening_element<'ast: 'r, 'r>(
17388        &mut self,
17389        node: &'ast JSXOpeningElement,
17390        __ast_path: &mut AstNodePath<'r>,
17391    ) {
17392        <JSXOpeningElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17393            node, self, __ast_path,
17394        )
17395    }
17396    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
17397             [`JSXOpeningFragment::visit_children_with_ast_path`]. If you want to recurse, you \
17398             need to call it manually."]
17399    #[inline]
17400    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
17401        &mut self,
17402        node: &'ast JSXOpeningFragment,
17403        __ast_path: &mut AstNodePath<'r>,
17404    ) {
17405        <JSXOpeningFragment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17406            node, self, __ast_path,
17407        )
17408    }
17409    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
17410             [`JSXSpreadChild::visit_children_with_ast_path`]. If you want to recurse, you need to \
17411             call it manually."]
17412    #[inline]
17413    fn visit_jsx_spread_child<'ast: 'r, 'r>(
17414        &mut self,
17415        node: &'ast JSXSpreadChild,
17416        __ast_path: &mut AstNodePath<'r>,
17417    ) {
17418        <JSXSpreadChild as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17419            node, self, __ast_path,
17420        )
17421    }
17422    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
17423             [`JSXText::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17424             it manually."]
17425    #[inline]
17426    fn visit_jsx_text<'ast: 'r, 'r>(
17427        &mut self,
17428        node: &'ast JSXText,
17429        __ast_path: &mut AstNodePath<'r>,
17430    ) {
17431        <JSXText as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17432    }
17433    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
17434             [`Key::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17435             manually."]
17436    #[inline]
17437    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
17438        <Key as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17439    }
17440    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
17441             [`KeyValuePatProp::visit_children_with_ast_path`]. If you want to recurse, you need \
17442             to call it manually."]
17443    #[inline]
17444    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
17445        &mut self,
17446        node: &'ast KeyValuePatProp,
17447        __ast_path: &mut AstNodePath<'r>,
17448    ) {
17449        <KeyValuePatProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17450            node, self, __ast_path,
17451        )
17452    }
17453    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
17454             [`KeyValueProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17455             call it manually."]
17456    #[inline]
17457    fn visit_key_value_prop<'ast: 'r, 'r>(
17458        &mut self,
17459        node: &'ast KeyValueProp,
17460        __ast_path: &mut AstNodePath<'r>,
17461    ) {
17462        <KeyValueProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17463            node, self, __ast_path,
17464        )
17465    }
17466    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
17467             [`LabeledStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
17468             call it manually."]
17469    #[inline]
17470    fn visit_labeled_stmt<'ast: 'r, 'r>(
17471        &mut self,
17472        node: &'ast LabeledStmt,
17473        __ast_path: &mut AstNodePath<'r>,
17474    ) {
17475        <LabeledStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17476            node, self, __ast_path,
17477        )
17478    }
17479    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
17480             [`Lit::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17481             manually."]
17482    #[inline]
17483    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
17484        <Lit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17485    }
17486    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
17487             [`MemberExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17488             call it manually."]
17489    #[inline]
17490    fn visit_member_expr<'ast: 'r, 'r>(
17491        &mut self,
17492        node: &'ast MemberExpr,
17493        __ast_path: &mut AstNodePath<'r>,
17494    ) {
17495        <MemberExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17496    }
17497    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
17498             [`MemberProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17499             call it manually."]
17500    #[inline]
17501    fn visit_member_prop<'ast: 'r, 'r>(
17502        &mut self,
17503        node: &'ast MemberProp,
17504        __ast_path: &mut AstNodePath<'r>,
17505    ) {
17506        <MemberProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17507    }
17508    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
17509             [`MetaPropExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17510             call it manually."]
17511    #[inline]
17512    fn visit_meta_prop_expr<'ast: 'r, 'r>(
17513        &mut self,
17514        node: &'ast MetaPropExpr,
17515        __ast_path: &mut AstNodePath<'r>,
17516    ) {
17517        <MetaPropExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17518            node, self, __ast_path,
17519        )
17520    }
17521    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
17522             [`MetaPropKind::visit_children_with_ast_path`]. If you want to recurse, you need to \
17523             call it manually."]
17524    #[inline]
17525    fn visit_meta_prop_kind<'ast: 'r, 'r>(
17526        &mut self,
17527        node: &'ast MetaPropKind,
17528        __ast_path: &mut AstNodePath<'r>,
17529    ) {
17530        <MetaPropKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17531            node, self, __ast_path,
17532        )
17533    }
17534    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
17535             [`MethodKind::visit_children_with_ast_path`]. If you want to recurse, you need to \
17536             call it manually."]
17537    #[inline]
17538    fn visit_method_kind<'ast: 'r, 'r>(
17539        &mut self,
17540        node: &'ast MethodKind,
17541        __ast_path: &mut AstNodePath<'r>,
17542    ) {
17543        <MethodKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17544    }
17545    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
17546             [`MethodProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17547             call it manually."]
17548    #[inline]
17549    fn visit_method_prop<'ast: 'r, 'r>(
17550        &mut self,
17551        node: &'ast MethodProp,
17552        __ast_path: &mut AstNodePath<'r>,
17553    ) {
17554        <MethodProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17555    }
17556    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
17557             [`Module::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17558             manually."]
17559    #[inline]
17560    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
17561        <Module as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17562    }
17563    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
17564             [`ModuleDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
17565             call it manually."]
17566    #[inline]
17567    fn visit_module_decl<'ast: 'r, 'r>(
17568        &mut self,
17569        node: &'ast ModuleDecl,
17570        __ast_path: &mut AstNodePath<'r>,
17571    ) {
17572        <ModuleDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17573    }
17574    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
17575             [`ModuleExportName::visit_children_with_ast_path`]. If you want to recurse, you need \
17576             to call it manually."]
17577    #[inline]
17578    fn visit_module_export_name<'ast: 'r, 'r>(
17579        &mut self,
17580        node: &'ast ModuleExportName,
17581        __ast_path: &mut AstNodePath<'r>,
17582    ) {
17583        <ModuleExportName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17584            node, self, __ast_path,
17585        )
17586    }
17587    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
17588             [`ModuleItem::visit_children_with_ast_path`]. If you want to recurse, you need to \
17589             call it manually."]
17590    #[inline]
17591    fn visit_module_item<'ast: 'r, 'r>(
17592        &mut self,
17593        node: &'ast ModuleItem,
17594        __ast_path: &mut AstNodePath<'r>,
17595    ) {
17596        <ModuleItem as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17597    }
17598    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
17599             ModuleItem >::visit_children_with_ast_path`]. If you want to recurse, you need to \
17600             call it manually."]
17601    #[inline]
17602    fn visit_module_items<'ast: 'r, 'r>(
17603        &mut self,
17604        node: &'ast [ModuleItem],
17605        __ast_path: &mut AstNodePath<'r>,
17606    ) {
17607        <[ModuleItem] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17608            node, self, __ast_path,
17609        )
17610    }
17611    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
17612             [`NamedExport::visit_children_with_ast_path`]. If you want to recurse, you need to \
17613             call it manually."]
17614    #[inline]
17615    fn visit_named_export<'ast: 'r, 'r>(
17616        &mut self,
17617        node: &'ast NamedExport,
17618        __ast_path: &mut AstNodePath<'r>,
17619    ) {
17620        <NamedExport as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17621            node, self, __ast_path,
17622        )
17623    }
17624    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
17625             [`NewExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17626             it manually."]
17627    #[inline]
17628    fn visit_new_expr<'ast: 'r, 'r>(
17629        &mut self,
17630        node: &'ast NewExpr,
17631        __ast_path: &mut AstNodePath<'r>,
17632    ) {
17633        <NewExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17634    }
17635    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
17636             [`Null::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17637             manually."]
17638    #[inline]
17639    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
17640        <Null as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17641    }
17642    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
17643             [`Number::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17644             manually."]
17645    #[inline]
17646    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
17647        <Number as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17648    }
17649    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
17650             [`ObjectLit::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17651             it manually."]
17652    #[inline]
17653    fn visit_object_lit<'ast: 'r, 'r>(
17654        &mut self,
17655        node: &'ast ObjectLit,
17656        __ast_path: &mut AstNodePath<'r>,
17657    ) {
17658        <ObjectLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17659    }
17660    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
17661             [`ObjectPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17662             it manually."]
17663    #[inline]
17664    fn visit_object_pat<'ast: 'r, 'r>(
17665        &mut self,
17666        node: &'ast ObjectPat,
17667        __ast_path: &mut AstNodePath<'r>,
17668    ) {
17669        <ObjectPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17670    }
17671    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
17672             [`ObjectPatProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
17673             call it manually."]
17674    #[inline]
17675    fn visit_object_pat_prop<'ast: 'r, 'r>(
17676        &mut self,
17677        node: &'ast ObjectPatProp,
17678        __ast_path: &mut AstNodePath<'r>,
17679    ) {
17680        <ObjectPatProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17681            node, self, __ast_path,
17682        )
17683    }
17684    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
17685             < ObjectPatProp >::visit_children_with_ast_path`]. If you want to recurse, you need \
17686             to call it manually."]
17687    #[inline]
17688    fn visit_object_pat_props<'ast: 'r, 'r>(
17689        &mut self,
17690        node: &'ast [ObjectPatProp],
17691        __ast_path: &mut AstNodePath<'r>,
17692    ) {
17693        <[ObjectPatProp] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17694            node, self, __ast_path,
17695        )
17696    }
17697    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
17698             [`Option < Accessibility >::visit_children_with_ast_path`]. If you want to recurse, \
17699             you need to call it manually."]
17700    #[inline]
17701    fn visit_opt_accessibility<'ast: 'r, 'r>(
17702        &mut self,
17703        node: &'ast Option<Accessibility>,
17704        __ast_path: &mut AstNodePath<'r>,
17705    ) {
17706        <Option<Accessibility> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17707            node, self, __ast_path,
17708        )
17709    }
17710    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
17711             [`Option < swc_atoms :: Atom >::visit_children_with_ast_path`]. If you want to \
17712             recurse, you need to call it manually."]
17713    #[inline]
17714    fn visit_opt_atom<'ast: 'r, 'r>(
17715        &mut self,
17716        node: &'ast Option<swc_atoms::Atom>,
17717        __ast_path: &mut AstNodePath<'r>,
17718    ) {
17719        <Option<swc_atoms::Atom> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17720            node, self, __ast_path,
17721        )
17722    }
17723    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
17724             [`Option < BlockStmt >::visit_children_with_ast_path`]. If you want to recurse, you \
17725             need to call it manually."]
17726    #[inline]
17727    fn visit_opt_block_stmt<'ast: 'r, 'r>(
17728        &mut self,
17729        node: &'ast Option<BlockStmt>,
17730        __ast_path: &mut AstNodePath<'r>,
17731    ) {
17732        <Option<BlockStmt> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17733            node, self, __ast_path,
17734        )
17735    }
17736    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
17737             [`OptCall::visit_children_with_ast_path`]. If you want to recurse, you need to call \
17738             it manually."]
17739    #[inline]
17740    fn visit_opt_call<'ast: 'r, 'r>(
17741        &mut self,
17742        node: &'ast OptCall,
17743        __ast_path: &mut AstNodePath<'r>,
17744    ) {
17745        <OptCall as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
17746    }
17747    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
17748             [`Option < CatchClause >::visit_children_with_ast_path`]. If you want to recurse, you \
17749             need to call it manually."]
17750    #[inline]
17751    fn visit_opt_catch_clause<'ast: 'r, 'r>(
17752        &mut self,
17753        node: &'ast Option<CatchClause>,
17754        __ast_path: &mut AstNodePath<'r>,
17755    ) {
17756        <Option<CatchClause> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17757            node, self, __ast_path,
17758        )
17759    }
17760    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
17761             [`OptChainBase::visit_children_with_ast_path`]. If you want to recurse, you need to \
17762             call it manually."]
17763    #[inline]
17764    fn visit_opt_chain_base<'ast: 'r, 'r>(
17765        &mut self,
17766        node: &'ast OptChainBase,
17767        __ast_path: &mut AstNodePath<'r>,
17768    ) {
17769        <OptChainBase as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17770            node, self, __ast_path,
17771        )
17772    }
17773    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
17774             [`OptChainExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
17775             call it manually."]
17776    #[inline]
17777    fn visit_opt_chain_expr<'ast: 'r, 'r>(
17778        &mut self,
17779        node: &'ast OptChainExpr,
17780        __ast_path: &mut AstNodePath<'r>,
17781    ) {
17782        <OptChainExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17783            node, self, __ast_path,
17784        )
17785    }
17786    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
17787             [`Option < Box < Expr > >::visit_children_with_ast_path`]. If you want to recurse, \
17788             you need to call it manually."]
17789    #[inline]
17790    fn visit_opt_expr<'ast: 'r, 'r>(
17791        &mut self,
17792        node: &'ast Option<Box<Expr>>,
17793        __ast_path: &mut AstNodePath<'r>,
17794    ) {
17795        <Option<Box<Expr>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17796            node, self, __ast_path,
17797        )
17798    }
17799    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
17800             [`Option < ExprOrSpread >::visit_children_with_ast_path`]. If you want to recurse, \
17801             you need to call it manually."]
17802    #[inline]
17803    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
17804        &mut self,
17805        node: &'ast Option<ExprOrSpread>,
17806        __ast_path: &mut AstNodePath<'r>,
17807    ) {
17808        <Option<ExprOrSpread> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17809            node, self, __ast_path,
17810        )
17811    }
17812    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
17813             calls [`Option < Vec < ExprOrSpread > >::visit_children_with_ast_path`]. If you want \
17814             to recurse, you need to call it manually."]
17815    #[inline]
17816    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
17817        &mut self,
17818        node: &'ast Option<Vec<ExprOrSpread>>,
17819        __ast_path: &mut AstNodePath<'r>,
17820    ) {
17821        <Option<Vec<ExprOrSpread>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17822            node, self, __ast_path,
17823        )
17824    }
17825    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
17826             Ident >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17827             manually."]
17828    #[inline]
17829    fn visit_opt_ident<'ast: 'r, 'r>(
17830        &mut self,
17831        node: &'ast Option<Ident>,
17832        __ast_path: &mut AstNodePath<'r>,
17833    ) {
17834        <Option<Ident> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17835            node, self, __ast_path,
17836        )
17837    }
17838    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
17839             [`Option < JSXAttrValue >::visit_children_with_ast_path`]. If you want to recurse, \
17840             you need to call it manually."]
17841    #[inline]
17842    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
17843        &mut self,
17844        node: &'ast Option<JSXAttrValue>,
17845        __ast_path: &mut AstNodePath<'r>,
17846    ) {
17847        <Option<JSXAttrValue> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17848            node, self, __ast_path,
17849        )
17850    }
17851    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
17852             [`Option < JSXClosingElement >::visit_children_with_ast_path`]. If you want to \
17853             recurse, you need to call it manually."]
17854    #[inline]
17855    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
17856        &mut self,
17857        node: &'ast Option<JSXClosingElement>,
17858        __ast_path: &mut AstNodePath<'r>,
17859    ) {
17860        <Option<JSXClosingElement> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17861            node, self, __ast_path,
17862        )
17863    }
17864    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
17865             [`Option < ModuleExportName >::visit_children_with_ast_path`]. If you want to \
17866             recurse, you need to call it manually."]
17867    #[inline]
17868    fn visit_opt_module_export_name<'ast: 'r, 'r>(
17869        &mut self,
17870        node: &'ast Option<ModuleExportName>,
17871        __ast_path: &mut AstNodePath<'r>,
17872    ) {
17873        <Option<ModuleExportName> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17874            node, self, __ast_path,
17875        )
17876    }
17877    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
17878             [`Option < Box < ObjectLit > >::visit_children_with_ast_path`]. If you want to \
17879             recurse, you need to call it manually."]
17880    #[inline]
17881    fn visit_opt_object_lit<'ast: 'r, 'r>(
17882        &mut self,
17883        node: &'ast Option<Box<ObjectLit>>,
17884        __ast_path: &mut AstNodePath<'r>,
17885    ) {
17886        <Option<Box<ObjectLit>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17887            node, self, __ast_path,
17888        )
17889    }
17890    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
17891             Pat >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
17892             manually."]
17893    #[inline]
17894    fn visit_opt_pat<'ast: 'r, 'r>(
17895        &mut self,
17896        node: &'ast Option<Pat>,
17897        __ast_path: &mut AstNodePath<'r>,
17898    ) {
17899        <Option<Pat> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17900            node, self, __ast_path,
17901        )
17902    }
17903    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
17904             calls [`Option < swc_common :: Span >::visit_children_with_ast_path`]. If you want to \
17905             recurse, you need to call it manually."]
17906    #[inline]
17907    fn visit_opt_span<'ast: 'r, 'r>(
17908        &mut self,
17909        node: &'ast Option<swc_common::Span>,
17910        __ast_path: &mut AstNodePath<'r>,
17911    ) {
17912        <Option<swc_common::Span> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17913            node, self, __ast_path,
17914        )
17915    }
17916    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
17917             [`Option < Box < Stmt > >::visit_children_with_ast_path`]. If you want to recurse, \
17918             you need to call it manually."]
17919    #[inline]
17920    fn visit_opt_stmt<'ast: 'r, 'r>(
17921        &mut self,
17922        node: &'ast Option<Box<Stmt>>,
17923        __ast_path: &mut AstNodePath<'r>,
17924    ) {
17925        <Option<Box<Stmt>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17926            node, self, __ast_path,
17927        )
17928    }
17929    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
17930             [`Option < Box < Str > >::visit_children_with_ast_path`]. If you want to recurse, you \
17931             need to call it manually."]
17932    #[inline]
17933    fn visit_opt_str<'ast: 'r, 'r>(
17934        &mut self,
17935        node: &'ast Option<Box<Str>>,
17936        __ast_path: &mut AstNodePath<'r>,
17937    ) {
17938        <Option<Box<Str>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17939            node, self, __ast_path,
17940        )
17941    }
17942    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
17943             [`Option < TruePlusMinus >::visit_children_with_ast_path`]. If you want to recurse, \
17944             you need to call it manually."]
17945    #[inline]
17946    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
17947        &mut self,
17948        node: &'ast Option<TruePlusMinus>,
17949        __ast_path: &mut AstNodePath<'r>,
17950    ) {
17951        <Option<TruePlusMinus> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17952            node, self, __ast_path,
17953        )
17954    }
17955    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
17956             [`Option < TsEntityName >::visit_children_with_ast_path`]. If you want to recurse, \
17957             you need to call it manually."]
17958    #[inline]
17959    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
17960        &mut self,
17961        node: &'ast Option<TsEntityName>,
17962        __ast_path: &mut AstNodePath<'r>,
17963    ) {
17964        <Option<TsEntityName> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17965            node, self, __ast_path,
17966        )
17967    }
17968    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
17969             [`Option < TsNamespaceBody >::visit_children_with_ast_path`]. If you want to recurse, \
17970             you need to call it manually."]
17971    #[inline]
17972    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
17973        &mut self,
17974        node: &'ast Option<TsNamespaceBody>,
17975        __ast_path: &mut AstNodePath<'r>,
17976    ) {
17977        <Option<TsNamespaceBody> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17978            node, self, __ast_path,
17979        )
17980    }
17981    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
17982             [`Option < Box < TsType > >::visit_children_with_ast_path`]. If you want to recurse, \
17983             you need to call it manually."]
17984    #[inline]
17985    fn visit_opt_ts_type<'ast: 'r, 'r>(
17986        &mut self,
17987        node: &'ast Option<Box<TsType>>,
17988        __ast_path: &mut AstNodePath<'r>,
17989    ) {
17990        <Option<Box<TsType>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
17991            node, self, __ast_path,
17992        )
17993    }
17994    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
17995             [`Option < Box < TsTypeAnn > >::visit_children_with_ast_path`]. If you want to \
17996             recurse, you need to call it manually."]
17997    #[inline]
17998    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
17999        &mut self,
18000        node: &'ast Option<Box<TsTypeAnn>>,
18001        __ast_path: &mut AstNodePath<'r>,
18002    ) {
18003        <Option<Box<TsTypeAnn>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18004            node, self, __ast_path,
18005        )
18006    }
18007    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
18008             calls [`Option < Box < TsTypeParamDecl > >::visit_children_with_ast_path`]. If you \
18009             want to recurse, you need to call it manually."]
18010    #[inline]
18011    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
18012        &mut self,
18013        node: &'ast Option<Box<TsTypeParamDecl>>,
18014        __ast_path: &mut AstNodePath<'r>,
18015    ) {
18016        <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18017            node, self, __ast_path,
18018        )
18019    }
18020    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
18021             this method calls [`Option < Box < TsTypeParamInstantiation > \
18022             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18023             manually."]
18024    #[inline]
18025    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
18026        &mut self,
18027        node: &'ast Option<Box<TsTypeParamInstantiation>>,
18028        __ast_path: &mut AstNodePath<'r>,
18029    ) {
18030        < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < Self > > :: visit_children_with_ast_path (node , self , __ast_path)
18031    }
18032    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
18033             [`Option < VarDeclOrExpr >::visit_children_with_ast_path`]. If you want to recurse, \
18034             you need to call it manually."]
18035    #[inline]
18036    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
18037        &mut self,
18038        node: &'ast Option<VarDeclOrExpr>,
18039        __ast_path: &mut AstNodePath<'r>,
18040    ) {
18041        <Option<VarDeclOrExpr> as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18042            node, self, __ast_path,
18043        )
18044    }
18045    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
18046             calls [`Vec < Option < ExprOrSpread > >::visit_children_with_ast_path`]. If you want \
18047             to recurse, you need to call it manually."]
18048    #[inline]
18049    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
18050        &mut self,
18051        node: &'ast [Option<ExprOrSpread>],
18052        __ast_path: &mut AstNodePath<'r>,
18053    ) {
18054        <[Option<ExprOrSpread>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18055            node, self, __ast_path,
18056        )
18057    }
18058    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
18059             < Option < Pat > >::visit_children_with_ast_path`]. If you want to recurse, you need \
18060             to call it manually."]
18061    #[inline]
18062    fn visit_opt_vec_pats<'ast: 'r, 'r>(
18063        &mut self,
18064        node: &'ast [Option<Pat>],
18065        __ast_path: &mut AstNodePath<'r>,
18066    ) {
18067        <[Option<Pat>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18068            node, self, __ast_path,
18069        )
18070    }
18071    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
18072             [`Param::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18073             manually."]
18074    #[inline]
18075    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
18076        <Param as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18077    }
18078    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
18079             [`ParamOrTsParamProp::visit_children_with_ast_path`]. If you want to recurse, you \
18080             need to call it manually."]
18081    #[inline]
18082    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
18083        &mut self,
18084        node: &'ast ParamOrTsParamProp,
18085        __ast_path: &mut AstNodePath<'r>,
18086    ) {
18087        <ParamOrTsParamProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18088            node, self, __ast_path,
18089        )
18090    }
18091    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
18092             [`Vec < ParamOrTsParamProp >::visit_children_with_ast_path`]. If you want to recurse, \
18093             you need to call it manually."]
18094    #[inline]
18095    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
18096        &mut self,
18097        node: &'ast [ParamOrTsParamProp],
18098        __ast_path: &mut AstNodePath<'r>,
18099    ) {
18100        <[ParamOrTsParamProp] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18101            node, self, __ast_path,
18102        )
18103    }
18104    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
18105             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18106             manually."]
18107    #[inline]
18108    fn visit_params<'ast: 'r, 'r>(
18109        &mut self,
18110        node: &'ast [Param],
18111        __ast_path: &mut AstNodePath<'r>,
18112    ) {
18113        <[Param] as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18114    }
18115    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
18116             [`ParenExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18117             it manually."]
18118    #[inline]
18119    fn visit_paren_expr<'ast: 'r, 'r>(
18120        &mut self,
18121        node: &'ast ParenExpr,
18122        __ast_path: &mut AstNodePath<'r>,
18123    ) {
18124        <ParenExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18125    }
18126    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
18127             [`Pat::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18128             manually."]
18129    #[inline]
18130    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
18131        <Pat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18132    }
18133    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
18134             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18135             manually."]
18136    #[inline]
18137    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
18138        <[Pat] as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18139    }
18140    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
18141             [`PrivateMethod::visit_children_with_ast_path`]. If you want to recurse, you need to \
18142             call it manually."]
18143    #[inline]
18144    fn visit_private_method<'ast: 'r, 'r>(
18145        &mut self,
18146        node: &'ast PrivateMethod,
18147        __ast_path: &mut AstNodePath<'r>,
18148    ) {
18149        <PrivateMethod as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18150            node, self, __ast_path,
18151        )
18152    }
18153    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
18154             [`PrivateName::visit_children_with_ast_path`]. If you want to recurse, you need to \
18155             call it manually."]
18156    #[inline]
18157    fn visit_private_name<'ast: 'r, 'r>(
18158        &mut self,
18159        node: &'ast PrivateName,
18160        __ast_path: &mut AstNodePath<'r>,
18161    ) {
18162        <PrivateName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18163            node, self, __ast_path,
18164        )
18165    }
18166    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
18167             [`PrivateProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
18168             call it manually."]
18169    #[inline]
18170    fn visit_private_prop<'ast: 'r, 'r>(
18171        &mut self,
18172        node: &'ast PrivateProp,
18173        __ast_path: &mut AstNodePath<'r>,
18174    ) {
18175        <PrivateProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18176            node, self, __ast_path,
18177        )
18178    }
18179    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
18180             [`Program::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18181             it manually."]
18182    #[inline]
18183    fn visit_program<'ast: 'r, 'r>(
18184        &mut self,
18185        node: &'ast Program,
18186        __ast_path: &mut AstNodePath<'r>,
18187    ) {
18188        <Program as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18189    }
18190    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
18191             [`Prop::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18192             manually."]
18193    #[inline]
18194    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
18195        <Prop as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18196    }
18197    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
18198             [`PropName::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18199             it manually."]
18200    #[inline]
18201    fn visit_prop_name<'ast: 'r, 'r>(
18202        &mut self,
18203        node: &'ast PropName,
18204        __ast_path: &mut AstNodePath<'r>,
18205    ) {
18206        <PropName as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18207    }
18208    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
18209             [`PropOrSpread::visit_children_with_ast_path`]. If you want to recurse, you need to \
18210             call it manually."]
18211    #[inline]
18212    fn visit_prop_or_spread<'ast: 'r, 'r>(
18213        &mut self,
18214        node: &'ast PropOrSpread,
18215        __ast_path: &mut AstNodePath<'r>,
18216    ) {
18217        <PropOrSpread as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18218            node, self, __ast_path,
18219        )
18220    }
18221    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
18222             PropOrSpread >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18223             call it manually."]
18224    #[inline]
18225    fn visit_prop_or_spreads<'ast: 'r, 'r>(
18226        &mut self,
18227        node: &'ast [PropOrSpread],
18228        __ast_path: &mut AstNodePath<'r>,
18229    ) {
18230        <[PropOrSpread] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18231            node, self, __ast_path,
18232        )
18233    }
18234    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
18235             [`Regex::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18236             manually."]
18237    #[inline]
18238    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
18239        <Regex as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18240    }
18241    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
18242             [`RestPat::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18243             it manually."]
18244    #[inline]
18245    fn visit_rest_pat<'ast: 'r, 'r>(
18246        &mut self,
18247        node: &'ast RestPat,
18248        __ast_path: &mut AstNodePath<'r>,
18249    ) {
18250        <RestPat as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18251    }
18252    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
18253             [`ReturnStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
18254             call it manually."]
18255    #[inline]
18256    fn visit_return_stmt<'ast: 'r, 'r>(
18257        &mut self,
18258        node: &'ast ReturnStmt,
18259        __ast_path: &mut AstNodePath<'r>,
18260    ) {
18261        <ReturnStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18262    }
18263    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
18264             [`Script::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18265             manually."]
18266    #[inline]
18267    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
18268        <Script as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18269    }
18270    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
18271             [`SeqExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18272             it manually."]
18273    #[inline]
18274    fn visit_seq_expr<'ast: 'r, 'r>(
18275        &mut self,
18276        node: &'ast SeqExpr,
18277        __ast_path: &mut AstNodePath<'r>,
18278    ) {
18279        <SeqExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18280    }
18281    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
18282             [`SetterProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
18283             call it manually."]
18284    #[inline]
18285    fn visit_setter_prop<'ast: 'r, 'r>(
18286        &mut self,
18287        node: &'ast SetterProp,
18288        __ast_path: &mut AstNodePath<'r>,
18289    ) {
18290        <SetterProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18291    }
18292    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
18293             [`SimpleAssignTarget::visit_children_with_ast_path`]. If you want to recurse, you \
18294             need to call it manually."]
18295    #[inline]
18296    fn visit_simple_assign_target<'ast: 'r, 'r>(
18297        &mut self,
18298        node: &'ast SimpleAssignTarget,
18299        __ast_path: &mut AstNodePath<'r>,
18300    ) {
18301        <SimpleAssignTarget as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18302            node, self, __ast_path,
18303        )
18304    }
18305    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
18306             [`swc_common :: Span::visit_children_with_ast_path`]. If you want to recurse, you \
18307             need to call it manually."]
18308    #[inline]
18309    fn visit_span<'ast: 'r, 'r>(
18310        &mut self,
18311        node: &'ast swc_common::Span,
18312        __ast_path: &mut AstNodePath<'r>,
18313    ) {
18314        <swc_common::Span as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18315            node, self, __ast_path,
18316        )
18317    }
18318    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
18319             [`SpreadElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
18320             call it manually."]
18321    #[inline]
18322    fn visit_spread_element<'ast: 'r, 'r>(
18323        &mut self,
18324        node: &'ast SpreadElement,
18325        __ast_path: &mut AstNodePath<'r>,
18326    ) {
18327        <SpreadElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18328            node, self, __ast_path,
18329        )
18330    }
18331    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
18332             [`StaticBlock::visit_children_with_ast_path`]. If you want to recurse, you need to \
18333             call it manually."]
18334    #[inline]
18335    fn visit_static_block<'ast: 'r, 'r>(
18336        &mut self,
18337        node: &'ast StaticBlock,
18338        __ast_path: &mut AstNodePath<'r>,
18339    ) {
18340        <StaticBlock as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18341            node, self, __ast_path,
18342        )
18343    }
18344    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
18345             [`Stmt::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18346             manually."]
18347    #[inline]
18348    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
18349        <Stmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18350    }
18351    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
18352             >::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18353             manually."]
18354    #[inline]
18355    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
18356        <[Stmt] as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18357    }
18358    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
18359             [`Str::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18360             manually."]
18361    #[inline]
18362    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
18363        <Str as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18364    }
18365    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
18366             [`Super::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18367             manually."]
18368    #[inline]
18369    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
18370        <Super as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18371    }
18372    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
18373             [`SuperProp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18374             it manually."]
18375    #[inline]
18376    fn visit_super_prop<'ast: 'r, 'r>(
18377        &mut self,
18378        node: &'ast SuperProp,
18379        __ast_path: &mut AstNodePath<'r>,
18380    ) {
18381        <SuperProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18382    }
18383    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
18384             [`SuperPropExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
18385             call it manually."]
18386    #[inline]
18387    fn visit_super_prop_expr<'ast: 'r, 'r>(
18388        &mut self,
18389        node: &'ast SuperPropExpr,
18390        __ast_path: &mut AstNodePath<'r>,
18391    ) {
18392        <SuperPropExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18393            node, self, __ast_path,
18394        )
18395    }
18396    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
18397             [`SwitchCase::visit_children_with_ast_path`]. If you want to recurse, you need to \
18398             call it manually."]
18399    #[inline]
18400    fn visit_switch_case<'ast: 'r, 'r>(
18401        &mut self,
18402        node: &'ast SwitchCase,
18403        __ast_path: &mut AstNodePath<'r>,
18404    ) {
18405        <SwitchCase as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18406    }
18407    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
18408             SwitchCase >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18409             call it manually."]
18410    #[inline]
18411    fn visit_switch_cases<'ast: 'r, 'r>(
18412        &mut self,
18413        node: &'ast [SwitchCase],
18414        __ast_path: &mut AstNodePath<'r>,
18415    ) {
18416        <[SwitchCase] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18417            node, self, __ast_path,
18418        )
18419    }
18420    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
18421             [`SwitchStmt::visit_children_with_ast_path`]. If you want to recurse, you need to \
18422             call it manually."]
18423    #[inline]
18424    fn visit_switch_stmt<'ast: 'r, 'r>(
18425        &mut self,
18426        node: &'ast SwitchStmt,
18427        __ast_path: &mut AstNodePath<'r>,
18428    ) {
18429        <SwitchStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18430    }
18431    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
18432             [`swc_common :: SyntaxContext::visit_children_with_ast_path`]. If you want to \
18433             recurse, you need to call it manually."]
18434    #[inline]
18435    fn visit_syntax_context<'ast: 'r, 'r>(
18436        &mut self,
18437        node: &'ast swc_common::SyntaxContext,
18438        __ast_path: &mut AstNodePath<'r>,
18439    ) {
18440        <swc_common::SyntaxContext as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18441            node, self, __ast_path,
18442        )
18443    }
18444    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
18445             [`TaggedTpl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18446             it manually."]
18447    #[inline]
18448    fn visit_tagged_tpl<'ast: 'r, 'r>(
18449        &mut self,
18450        node: &'ast TaggedTpl,
18451        __ast_path: &mut AstNodePath<'r>,
18452    ) {
18453        <TaggedTpl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18454    }
18455    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
18456             [`ThisExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18457             it manually."]
18458    #[inline]
18459    fn visit_this_expr<'ast: 'r, 'r>(
18460        &mut self,
18461        node: &'ast ThisExpr,
18462        __ast_path: &mut AstNodePath<'r>,
18463    ) {
18464        <ThisExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18465    }
18466    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
18467             [`ThrowStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18468             it manually."]
18469    #[inline]
18470    fn visit_throw_stmt<'ast: 'r, 'r>(
18471        &mut self,
18472        node: &'ast ThrowStmt,
18473        __ast_path: &mut AstNodePath<'r>,
18474    ) {
18475        <ThrowStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18476    }
18477    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
18478             [`Tpl::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18479             manually."]
18480    #[inline]
18481    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
18482        <Tpl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18483    }
18484    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
18485             [`TplElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
18486             call it manually."]
18487    #[inline]
18488    fn visit_tpl_element<'ast: 'r, 'r>(
18489        &mut self,
18490        node: &'ast TplElement,
18491        __ast_path: &mut AstNodePath<'r>,
18492    ) {
18493        <TplElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18494    }
18495    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
18496             TplElement >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18497             call it manually."]
18498    #[inline]
18499    fn visit_tpl_elements<'ast: 'r, 'r>(
18500        &mut self,
18501        node: &'ast [TplElement],
18502        __ast_path: &mut AstNodePath<'r>,
18503    ) {
18504        <[TplElement] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18505            node, self, __ast_path,
18506        )
18507    }
18508    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
18509             [`TruePlusMinus::visit_children_with_ast_path`]. If you want to recurse, you need to \
18510             call it manually."]
18511    #[inline]
18512    fn visit_true_plus_minus<'ast: 'r, 'r>(
18513        &mut self,
18514        node: &'ast TruePlusMinus,
18515        __ast_path: &mut AstNodePath<'r>,
18516    ) {
18517        <TruePlusMinus as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18518            node, self, __ast_path,
18519        )
18520    }
18521    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
18522             [`TryStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18523             it manually."]
18524    #[inline]
18525    fn visit_try_stmt<'ast: 'r, 'r>(
18526        &mut self,
18527        node: &'ast TryStmt,
18528        __ast_path: &mut AstNodePath<'r>,
18529    ) {
18530        <TryStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18531    }
18532    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
18533             [`TsArrayType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18534             call it manually."]
18535    #[inline]
18536    fn visit_ts_array_type<'ast: 'r, 'r>(
18537        &mut self,
18538        node: &'ast TsArrayType,
18539        __ast_path: &mut AstNodePath<'r>,
18540    ) {
18541        <TsArrayType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18542            node, self, __ast_path,
18543        )
18544    }
18545    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
18546             [`TsAsExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18547             it manually."]
18548    #[inline]
18549    fn visit_ts_as_expr<'ast: 'r, 'r>(
18550        &mut self,
18551        node: &'ast TsAsExpr,
18552        __ast_path: &mut AstNodePath<'r>,
18553    ) {
18554        <TsAsExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18555    }
18556    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
18557             [`TsCallSignatureDecl::visit_children_with_ast_path`]. If you want to recurse, you \
18558             need to call it manually."]
18559    #[inline]
18560    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
18561        &mut self,
18562        node: &'ast TsCallSignatureDecl,
18563        __ast_path: &mut AstNodePath<'r>,
18564    ) {
18565        <TsCallSignatureDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18566            node, self, __ast_path,
18567        )
18568    }
18569    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
18570             [`TsConditionalType::visit_children_with_ast_path`]. If you want to recurse, you need \
18571             to call it manually."]
18572    #[inline]
18573    fn visit_ts_conditional_type<'ast: 'r, 'r>(
18574        &mut self,
18575        node: &'ast TsConditionalType,
18576        __ast_path: &mut AstNodePath<'r>,
18577    ) {
18578        <TsConditionalType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18579            node, self, __ast_path,
18580        )
18581    }
18582    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
18583             [`TsConstAssertion::visit_children_with_ast_path`]. If you want to recurse, you need \
18584             to call it manually."]
18585    #[inline]
18586    fn visit_ts_const_assertion<'ast: 'r, 'r>(
18587        &mut self,
18588        node: &'ast TsConstAssertion,
18589        __ast_path: &mut AstNodePath<'r>,
18590    ) {
18591        <TsConstAssertion as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18592            node, self, __ast_path,
18593        )
18594    }
18595    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
18596             [`TsConstructSignatureDecl::visit_children_with_ast_path`]. If you want to recurse, \
18597             you need to call it manually."]
18598    #[inline]
18599    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
18600        &mut self,
18601        node: &'ast TsConstructSignatureDecl,
18602        __ast_path: &mut AstNodePath<'r>,
18603    ) {
18604        <TsConstructSignatureDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18605            node, self, __ast_path,
18606        )
18607    }
18608    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
18609             [`TsConstructorType::visit_children_with_ast_path`]. If you want to recurse, you need \
18610             to call it manually."]
18611    #[inline]
18612    fn visit_ts_constructor_type<'ast: 'r, 'r>(
18613        &mut self,
18614        node: &'ast TsConstructorType,
18615        __ast_path: &mut AstNodePath<'r>,
18616    ) {
18617        <TsConstructorType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18618            node, self, __ast_path,
18619        )
18620    }
18621    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
18622             [`TsEntityName::visit_children_with_ast_path`]. If you want to recurse, you need to \
18623             call it manually."]
18624    #[inline]
18625    fn visit_ts_entity_name<'ast: 'r, 'r>(
18626        &mut self,
18627        node: &'ast TsEntityName,
18628        __ast_path: &mut AstNodePath<'r>,
18629    ) {
18630        <TsEntityName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18631            node, self, __ast_path,
18632        )
18633    }
18634    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
18635             [`TsEnumDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
18636             call it manually."]
18637    #[inline]
18638    fn visit_ts_enum_decl<'ast: 'r, 'r>(
18639        &mut self,
18640        node: &'ast TsEnumDecl,
18641        __ast_path: &mut AstNodePath<'r>,
18642    ) {
18643        <TsEnumDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18644    }
18645    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
18646             [`TsEnumMember::visit_children_with_ast_path`]. If you want to recurse, you need to \
18647             call it manually."]
18648    #[inline]
18649    fn visit_ts_enum_member<'ast: 'r, 'r>(
18650        &mut self,
18651        node: &'ast TsEnumMember,
18652        __ast_path: &mut AstNodePath<'r>,
18653    ) {
18654        <TsEnumMember as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18655            node, self, __ast_path,
18656        )
18657    }
18658    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
18659             [`TsEnumMemberId::visit_children_with_ast_path`]. If you want to recurse, you need to \
18660             call it manually."]
18661    #[inline]
18662    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
18663        &mut self,
18664        node: &'ast TsEnumMemberId,
18665        __ast_path: &mut AstNodePath<'r>,
18666    ) {
18667        <TsEnumMemberId as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18668            node, self, __ast_path,
18669        )
18670    }
18671    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
18672             TsEnumMember >::visit_children_with_ast_path`]. If you want to recurse, you need to \
18673             call it manually."]
18674    #[inline]
18675    fn visit_ts_enum_members<'ast: 'r, 'r>(
18676        &mut self,
18677        node: &'ast [TsEnumMember],
18678        __ast_path: &mut AstNodePath<'r>,
18679    ) {
18680        <[TsEnumMember] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18681            node, self, __ast_path,
18682        )
18683    }
18684    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
18685             [`TsExportAssignment::visit_children_with_ast_path`]. If you want to recurse, you \
18686             need to call it manually."]
18687    #[inline]
18688    fn visit_ts_export_assignment<'ast: 'r, 'r>(
18689        &mut self,
18690        node: &'ast TsExportAssignment,
18691        __ast_path: &mut AstNodePath<'r>,
18692    ) {
18693        <TsExportAssignment as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18694            node, self, __ast_path,
18695        )
18696    }
18697    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
18698             [`TsExprWithTypeArgs::visit_children_with_ast_path`]. If you want to recurse, you \
18699             need to call it manually."]
18700    #[inline]
18701    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
18702        &mut self,
18703        node: &'ast TsExprWithTypeArgs,
18704        __ast_path: &mut AstNodePath<'r>,
18705    ) {
18706        <TsExprWithTypeArgs as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18707            node, self, __ast_path,
18708        )
18709    }
18710    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
18711             [`Vec < TsExprWithTypeArgs >::visit_children_with_ast_path`]. If you want to recurse, \
18712             you need to call it manually."]
18713    #[inline]
18714    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
18715        &mut self,
18716        node: &'ast [TsExprWithTypeArgs],
18717        __ast_path: &mut AstNodePath<'r>,
18718    ) {
18719        <[TsExprWithTypeArgs] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18720            node, self, __ast_path,
18721        )
18722    }
18723    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
18724             [`TsExternalModuleRef::visit_children_with_ast_path`]. If you want to recurse, you \
18725             need to call it manually."]
18726    #[inline]
18727    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
18728        &mut self,
18729        node: &'ast TsExternalModuleRef,
18730        __ast_path: &mut AstNodePath<'r>,
18731    ) {
18732        <TsExternalModuleRef as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18733            node, self, __ast_path,
18734        )
18735    }
18736    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
18737             [`TsFnOrConstructorType::visit_children_with_ast_path`]. If you want to recurse, you \
18738             need to call it manually."]
18739    #[inline]
18740    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
18741        &mut self,
18742        node: &'ast TsFnOrConstructorType,
18743        __ast_path: &mut AstNodePath<'r>,
18744    ) {
18745        <TsFnOrConstructorType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18746            node, self, __ast_path,
18747        )
18748    }
18749    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
18750             [`TsFnParam::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18751             it manually."]
18752    #[inline]
18753    fn visit_ts_fn_param<'ast: 'r, 'r>(
18754        &mut self,
18755        node: &'ast TsFnParam,
18756        __ast_path: &mut AstNodePath<'r>,
18757    ) {
18758        <TsFnParam as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18759    }
18760    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
18761             TsFnParam >::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18762             it manually."]
18763    #[inline]
18764    fn visit_ts_fn_params<'ast: 'r, 'r>(
18765        &mut self,
18766        node: &'ast [TsFnParam],
18767        __ast_path: &mut AstNodePath<'r>,
18768    ) {
18769        <[TsFnParam] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18770            node, self, __ast_path,
18771        )
18772    }
18773    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
18774             [`TsFnType::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18775             it manually."]
18776    #[inline]
18777    fn visit_ts_fn_type<'ast: 'r, 'r>(
18778        &mut self,
18779        node: &'ast TsFnType,
18780        __ast_path: &mut AstNodePath<'r>,
18781    ) {
18782        <TsFnType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18783    }
18784    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
18785             [`TsGetterSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
18786             to call it manually."]
18787    #[inline]
18788    fn visit_ts_getter_signature<'ast: 'r, 'r>(
18789        &mut self,
18790        node: &'ast TsGetterSignature,
18791        __ast_path: &mut AstNodePath<'r>,
18792    ) {
18793        <TsGetterSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18794            node, self, __ast_path,
18795        )
18796    }
18797    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
18798             [`TsImportEqualsDecl::visit_children_with_ast_path`]. If you want to recurse, you \
18799             need to call it manually."]
18800    #[inline]
18801    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
18802        &mut self,
18803        node: &'ast TsImportEqualsDecl,
18804        __ast_path: &mut AstNodePath<'r>,
18805    ) {
18806        <TsImportEqualsDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18807            node, self, __ast_path,
18808        )
18809    }
18810    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
18811             [`TsImportType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18812             call it manually."]
18813    #[inline]
18814    fn visit_ts_import_type<'ast: 'r, 'r>(
18815        &mut self,
18816        node: &'ast TsImportType,
18817        __ast_path: &mut AstNodePath<'r>,
18818    ) {
18819        <TsImportType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18820            node, self, __ast_path,
18821        )
18822    }
18823    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
18824             [`TsIndexSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
18825             to call it manually."]
18826    #[inline]
18827    fn visit_ts_index_signature<'ast: 'r, 'r>(
18828        &mut self,
18829        node: &'ast TsIndexSignature,
18830        __ast_path: &mut AstNodePath<'r>,
18831    ) {
18832        <TsIndexSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18833            node, self, __ast_path,
18834        )
18835    }
18836    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
18837             [`TsIndexedAccessType::visit_children_with_ast_path`]. If you want to recurse, you \
18838             need to call it manually."]
18839    #[inline]
18840    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
18841        &mut self,
18842        node: &'ast TsIndexedAccessType,
18843        __ast_path: &mut AstNodePath<'r>,
18844    ) {
18845        <TsIndexedAccessType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18846            node, self, __ast_path,
18847        )
18848    }
18849    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
18850             [`TsInferType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18851             call it manually."]
18852    #[inline]
18853    fn visit_ts_infer_type<'ast: 'r, 'r>(
18854        &mut self,
18855        node: &'ast TsInferType,
18856        __ast_path: &mut AstNodePath<'r>,
18857    ) {
18858        <TsInferType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18859            node, self, __ast_path,
18860        )
18861    }
18862    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
18863             [`TsInstantiation::visit_children_with_ast_path`]. If you want to recurse, you need \
18864             to call it manually."]
18865    #[inline]
18866    fn visit_ts_instantiation<'ast: 'r, 'r>(
18867        &mut self,
18868        node: &'ast TsInstantiation,
18869        __ast_path: &mut AstNodePath<'r>,
18870    ) {
18871        <TsInstantiation as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18872            node, self, __ast_path,
18873        )
18874    }
18875    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
18876             [`TsInterfaceBody::visit_children_with_ast_path`]. If you want to recurse, you need \
18877             to call it manually."]
18878    #[inline]
18879    fn visit_ts_interface_body<'ast: 'r, 'r>(
18880        &mut self,
18881        node: &'ast TsInterfaceBody,
18882        __ast_path: &mut AstNodePath<'r>,
18883    ) {
18884        <TsInterfaceBody as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18885            node, self, __ast_path,
18886        )
18887    }
18888    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
18889             [`TsInterfaceDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
18890             to call it manually."]
18891    #[inline]
18892    fn visit_ts_interface_decl<'ast: 'r, 'r>(
18893        &mut self,
18894        node: &'ast TsInterfaceDecl,
18895        __ast_path: &mut AstNodePath<'r>,
18896    ) {
18897        <TsInterfaceDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18898            node, self, __ast_path,
18899        )
18900    }
18901    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
18902             [`TsIntersectionType::visit_children_with_ast_path`]. If you want to recurse, you \
18903             need to call it manually."]
18904    #[inline]
18905    fn visit_ts_intersection_type<'ast: 'r, 'r>(
18906        &mut self,
18907        node: &'ast TsIntersectionType,
18908        __ast_path: &mut AstNodePath<'r>,
18909    ) {
18910        <TsIntersectionType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18911            node, self, __ast_path,
18912        )
18913    }
18914    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
18915             [`TsKeywordType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18916             call it manually."]
18917    #[inline]
18918    fn visit_ts_keyword_type<'ast: 'r, 'r>(
18919        &mut self,
18920        node: &'ast TsKeywordType,
18921        __ast_path: &mut AstNodePath<'r>,
18922    ) {
18923        <TsKeywordType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18924            node, self, __ast_path,
18925        )
18926    }
18927    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
18928             [`TsKeywordTypeKind::visit_children_with_ast_path`]. If you want to recurse, you need \
18929             to call it manually."]
18930    #[inline]
18931    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
18932        &mut self,
18933        node: &'ast TsKeywordTypeKind,
18934        __ast_path: &mut AstNodePath<'r>,
18935    ) {
18936        <TsKeywordTypeKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18937            node, self, __ast_path,
18938        )
18939    }
18940    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
18941             [`TsLit::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
18942             manually."]
18943    #[inline]
18944    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
18945        <TsLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18946    }
18947    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
18948             [`TsLitType::visit_children_with_ast_path`]. If you want to recurse, you need to call \
18949             it manually."]
18950    #[inline]
18951    fn visit_ts_lit_type<'ast: 'r, 'r>(
18952        &mut self,
18953        node: &'ast TsLitType,
18954        __ast_path: &mut AstNodePath<'r>,
18955    ) {
18956        <TsLitType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
18957    }
18958    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
18959             [`TsMappedType::visit_children_with_ast_path`]. If you want to recurse, you need to \
18960             call it manually."]
18961    #[inline]
18962    fn visit_ts_mapped_type<'ast: 'r, 'r>(
18963        &mut self,
18964        node: &'ast TsMappedType,
18965        __ast_path: &mut AstNodePath<'r>,
18966    ) {
18967        <TsMappedType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18968            node, self, __ast_path,
18969        )
18970    }
18971    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
18972             [`TsMethodSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
18973             to call it manually."]
18974    #[inline]
18975    fn visit_ts_method_signature<'ast: 'r, 'r>(
18976        &mut self,
18977        node: &'ast TsMethodSignature,
18978        __ast_path: &mut AstNodePath<'r>,
18979    ) {
18980        <TsMethodSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18981            node, self, __ast_path,
18982        )
18983    }
18984    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
18985             [`TsModuleBlock::visit_children_with_ast_path`]. If you want to recurse, you need to \
18986             call it manually."]
18987    #[inline]
18988    fn visit_ts_module_block<'ast: 'r, 'r>(
18989        &mut self,
18990        node: &'ast TsModuleBlock,
18991        __ast_path: &mut AstNodePath<'r>,
18992    ) {
18993        <TsModuleBlock as VisitWithAstPath<Self>>::visit_children_with_ast_path(
18994            node, self, __ast_path,
18995        )
18996    }
18997    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
18998             [`TsModuleDecl::visit_children_with_ast_path`]. If you want to recurse, you need to \
18999             call it manually."]
19000    #[inline]
19001    fn visit_ts_module_decl<'ast: 'r, 'r>(
19002        &mut self,
19003        node: &'ast TsModuleDecl,
19004        __ast_path: &mut AstNodePath<'r>,
19005    ) {
19006        <TsModuleDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19007            node, self, __ast_path,
19008        )
19009    }
19010    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
19011             [`TsModuleName::visit_children_with_ast_path`]. If you want to recurse, you need to \
19012             call it manually."]
19013    #[inline]
19014    fn visit_ts_module_name<'ast: 'r, 'r>(
19015        &mut self,
19016        node: &'ast TsModuleName,
19017        __ast_path: &mut AstNodePath<'r>,
19018    ) {
19019        <TsModuleName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19020            node, self, __ast_path,
19021        )
19022    }
19023    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
19024             [`TsModuleRef::visit_children_with_ast_path`]. If you want to recurse, you need to \
19025             call it manually."]
19026    #[inline]
19027    fn visit_ts_module_ref<'ast: 'r, 'r>(
19028        &mut self,
19029        node: &'ast TsModuleRef,
19030        __ast_path: &mut AstNodePath<'r>,
19031    ) {
19032        <TsModuleRef as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19033            node, self, __ast_path,
19034        )
19035    }
19036    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
19037             [`TsNamespaceBody::visit_children_with_ast_path`]. If you want to recurse, you need \
19038             to call it manually."]
19039    #[inline]
19040    fn visit_ts_namespace_body<'ast: 'r, 'r>(
19041        &mut self,
19042        node: &'ast TsNamespaceBody,
19043        __ast_path: &mut AstNodePath<'r>,
19044    ) {
19045        <TsNamespaceBody as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19046            node, self, __ast_path,
19047        )
19048    }
19049    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
19050             [`TsNamespaceDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19051             to call it manually."]
19052    #[inline]
19053    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
19054        &mut self,
19055        node: &'ast TsNamespaceDecl,
19056        __ast_path: &mut AstNodePath<'r>,
19057    ) {
19058        <TsNamespaceDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19059            node, self, __ast_path,
19060        )
19061    }
19062    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
19063             [`TsNamespaceExportDecl::visit_children_with_ast_path`]. If you want to recurse, you \
19064             need to call it manually."]
19065    #[inline]
19066    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
19067        &mut self,
19068        node: &'ast TsNamespaceExportDecl,
19069        __ast_path: &mut AstNodePath<'r>,
19070    ) {
19071        <TsNamespaceExportDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19072            node, self, __ast_path,
19073        )
19074    }
19075    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
19076             [`TsNonNullExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
19077             call it manually."]
19078    #[inline]
19079    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
19080        &mut self,
19081        node: &'ast TsNonNullExpr,
19082        __ast_path: &mut AstNodePath<'r>,
19083    ) {
19084        <TsNonNullExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19085            node, self, __ast_path,
19086        )
19087    }
19088    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
19089             [`TsOptionalType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19090             call it manually."]
19091    #[inline]
19092    fn visit_ts_optional_type<'ast: 'r, 'r>(
19093        &mut self,
19094        node: &'ast TsOptionalType,
19095        __ast_path: &mut AstNodePath<'r>,
19096    ) {
19097        <TsOptionalType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19098            node, self, __ast_path,
19099        )
19100    }
19101    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
19102             [`TsParamProp::visit_children_with_ast_path`]. If you want to recurse, you need to \
19103             call it manually."]
19104    #[inline]
19105    fn visit_ts_param_prop<'ast: 'r, 'r>(
19106        &mut self,
19107        node: &'ast TsParamProp,
19108        __ast_path: &mut AstNodePath<'r>,
19109    ) {
19110        <TsParamProp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19111            node, self, __ast_path,
19112        )
19113    }
19114    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
19115             [`TsParamPropParam::visit_children_with_ast_path`]. If you want to recurse, you need \
19116             to call it manually."]
19117    #[inline]
19118    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
19119        &mut self,
19120        node: &'ast TsParamPropParam,
19121        __ast_path: &mut AstNodePath<'r>,
19122    ) {
19123        <TsParamPropParam as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19124            node, self, __ast_path,
19125        )
19126    }
19127    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
19128             [`TsParenthesizedType::visit_children_with_ast_path`]. If you want to recurse, you \
19129             need to call it manually."]
19130    #[inline]
19131    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
19132        &mut self,
19133        node: &'ast TsParenthesizedType,
19134        __ast_path: &mut AstNodePath<'r>,
19135    ) {
19136        <TsParenthesizedType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19137            node, self, __ast_path,
19138        )
19139    }
19140    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
19141             [`TsPropertySignature::visit_children_with_ast_path`]. If you want to recurse, you \
19142             need to call it manually."]
19143    #[inline]
19144    fn visit_ts_property_signature<'ast: 'r, 'r>(
19145        &mut self,
19146        node: &'ast TsPropertySignature,
19147        __ast_path: &mut AstNodePath<'r>,
19148    ) {
19149        <TsPropertySignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19150            node, self, __ast_path,
19151        )
19152    }
19153    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
19154             [`TsQualifiedName::visit_children_with_ast_path`]. If you want to recurse, you need \
19155             to call it manually."]
19156    #[inline]
19157    fn visit_ts_qualified_name<'ast: 'r, 'r>(
19158        &mut self,
19159        node: &'ast TsQualifiedName,
19160        __ast_path: &mut AstNodePath<'r>,
19161    ) {
19162        <TsQualifiedName as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19163            node, self, __ast_path,
19164        )
19165    }
19166    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
19167             [`TsRestType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19168             call it manually."]
19169    #[inline]
19170    fn visit_ts_rest_type<'ast: 'r, 'r>(
19171        &mut self,
19172        node: &'ast TsRestType,
19173        __ast_path: &mut AstNodePath<'r>,
19174    ) {
19175        <TsRestType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19176    }
19177    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
19178             [`TsSatisfiesExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
19179             to call it manually."]
19180    #[inline]
19181    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
19182        &mut self,
19183        node: &'ast TsSatisfiesExpr,
19184        __ast_path: &mut AstNodePath<'r>,
19185    ) {
19186        <TsSatisfiesExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19187            node, self, __ast_path,
19188        )
19189    }
19190    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
19191             [`TsSetterSignature::visit_children_with_ast_path`]. If you want to recurse, you need \
19192             to call it manually."]
19193    #[inline]
19194    fn visit_ts_setter_signature<'ast: 'r, 'r>(
19195        &mut self,
19196        node: &'ast TsSetterSignature,
19197        __ast_path: &mut AstNodePath<'r>,
19198    ) {
19199        <TsSetterSignature as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19200            node, self, __ast_path,
19201        )
19202    }
19203    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
19204             [`TsThisType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19205             call it manually."]
19206    #[inline]
19207    fn visit_ts_this_type<'ast: 'r, 'r>(
19208        &mut self,
19209        node: &'ast TsThisType,
19210        __ast_path: &mut AstNodePath<'r>,
19211    ) {
19212        <TsThisType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19213    }
19214    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
19215             [`TsThisTypeOrIdent::visit_children_with_ast_path`]. If you want to recurse, you need \
19216             to call it manually."]
19217    #[inline]
19218    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
19219        &mut self,
19220        node: &'ast TsThisTypeOrIdent,
19221        __ast_path: &mut AstNodePath<'r>,
19222    ) {
19223        <TsThisTypeOrIdent as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19224            node, self, __ast_path,
19225        )
19226    }
19227    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
19228             [`TsTplLitType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19229             call it manually."]
19230    #[inline]
19231    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
19232        &mut self,
19233        node: &'ast TsTplLitType,
19234        __ast_path: &mut AstNodePath<'r>,
19235    ) {
19236        <TsTplLitType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19237            node, self, __ast_path,
19238        )
19239    }
19240    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
19241             [`TsTupleElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
19242             call it manually."]
19243    #[inline]
19244    fn visit_ts_tuple_element<'ast: 'r, 'r>(
19245        &mut self,
19246        node: &'ast TsTupleElement,
19247        __ast_path: &mut AstNodePath<'r>,
19248    ) {
19249        <TsTupleElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19250            node, self, __ast_path,
19251        )
19252    }
19253    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
19254             < TsTupleElement >::visit_children_with_ast_path`]. If you want to recurse, you need \
19255             to call it manually."]
19256    #[inline]
19257    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
19258        &mut self,
19259        node: &'ast [TsTupleElement],
19260        __ast_path: &mut AstNodePath<'r>,
19261    ) {
19262        <[TsTupleElement] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19263            node, self, __ast_path,
19264        )
19265    }
19266    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
19267             [`TsTupleType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19268             call it manually."]
19269    #[inline]
19270    fn visit_ts_tuple_type<'ast: 'r, 'r>(
19271        &mut self,
19272        node: &'ast TsTupleType,
19273        __ast_path: &mut AstNodePath<'r>,
19274    ) {
19275        <TsTupleType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19276            node, self, __ast_path,
19277        )
19278    }
19279    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
19280             [`TsType::visit_children_with_ast_path`]. If you want to recurse, you need to call it \
19281             manually."]
19282    #[inline]
19283    fn visit_ts_type<'ast: 'r, 'r>(
19284        &mut self,
19285        node: &'ast TsType,
19286        __ast_path: &mut AstNodePath<'r>,
19287    ) {
19288        <TsType as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19289    }
19290    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
19291             [`TsTypeAliasDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19292             to call it manually."]
19293    #[inline]
19294    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
19295        &mut self,
19296        node: &'ast TsTypeAliasDecl,
19297        __ast_path: &mut AstNodePath<'r>,
19298    ) {
19299        <TsTypeAliasDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19300            node, self, __ast_path,
19301        )
19302    }
19303    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
19304             [`TsTypeAnn::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19305             it manually."]
19306    #[inline]
19307    fn visit_ts_type_ann<'ast: 'r, 'r>(
19308        &mut self,
19309        node: &'ast TsTypeAnn,
19310        __ast_path: &mut AstNodePath<'r>,
19311    ) {
19312        <TsTypeAnn as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19313    }
19314    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
19315             [`TsTypeAssertion::visit_children_with_ast_path`]. If you want to recurse, you need \
19316             to call it manually."]
19317    #[inline]
19318    fn visit_ts_type_assertion<'ast: 'r, 'r>(
19319        &mut self,
19320        node: &'ast TsTypeAssertion,
19321        __ast_path: &mut AstNodePath<'r>,
19322    ) {
19323        <TsTypeAssertion as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19324            node, self, __ast_path,
19325        )
19326    }
19327    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
19328             [`TsTypeElement::visit_children_with_ast_path`]. If you want to recurse, you need to \
19329             call it manually."]
19330    #[inline]
19331    fn visit_ts_type_element<'ast: 'r, 'r>(
19332        &mut self,
19333        node: &'ast TsTypeElement,
19334        __ast_path: &mut AstNodePath<'r>,
19335    ) {
19336        <TsTypeElement as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19337            node, self, __ast_path,
19338        )
19339    }
19340    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
19341             < TsTypeElement >::visit_children_with_ast_path`]. If you want to recurse, you need \
19342             to call it manually."]
19343    #[inline]
19344    fn visit_ts_type_elements<'ast: 'r, 'r>(
19345        &mut self,
19346        node: &'ast [TsTypeElement],
19347        __ast_path: &mut AstNodePath<'r>,
19348    ) {
19349        <[TsTypeElement] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19350            node, self, __ast_path,
19351        )
19352    }
19353    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
19354             [`TsTypeLit::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19355             it manually."]
19356    #[inline]
19357    fn visit_ts_type_lit<'ast: 'r, 'r>(
19358        &mut self,
19359        node: &'ast TsTypeLit,
19360        __ast_path: &mut AstNodePath<'r>,
19361    ) {
19362        <TsTypeLit as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19363    }
19364    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
19365             [`TsTypeOperator::visit_children_with_ast_path`]. If you want to recurse, you need to \
19366             call it manually."]
19367    #[inline]
19368    fn visit_ts_type_operator<'ast: 'r, 'r>(
19369        &mut self,
19370        node: &'ast TsTypeOperator,
19371        __ast_path: &mut AstNodePath<'r>,
19372    ) {
19373        <TsTypeOperator as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19374            node, self, __ast_path,
19375        )
19376    }
19377    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
19378             [`TsTypeOperatorOp::visit_children_with_ast_path`]. If you want to recurse, you need \
19379             to call it manually."]
19380    #[inline]
19381    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
19382        &mut self,
19383        node: &'ast TsTypeOperatorOp,
19384        __ast_path: &mut AstNodePath<'r>,
19385    ) {
19386        <TsTypeOperatorOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19387            node, self, __ast_path,
19388        )
19389    }
19390    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
19391             [`TsTypeParam::visit_children_with_ast_path`]. If you want to recurse, you need to \
19392             call it manually."]
19393    #[inline]
19394    fn visit_ts_type_param<'ast: 'r, 'r>(
19395        &mut self,
19396        node: &'ast TsTypeParam,
19397        __ast_path: &mut AstNodePath<'r>,
19398    ) {
19399        <TsTypeParam as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19400            node, self, __ast_path,
19401        )
19402    }
19403    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
19404             [`TsTypeParamDecl::visit_children_with_ast_path`]. If you want to recurse, you need \
19405             to call it manually."]
19406    #[inline]
19407    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
19408        &mut self,
19409        node: &'ast TsTypeParamDecl,
19410        __ast_path: &mut AstNodePath<'r>,
19411    ) {
19412        <TsTypeParamDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19413            node, self, __ast_path,
19414        )
19415    }
19416    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
19417             [`TsTypeParamInstantiation::visit_children_with_ast_path`]. If you want to recurse, \
19418             you need to call it manually."]
19419    #[inline]
19420    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
19421        &mut self,
19422        node: &'ast TsTypeParamInstantiation,
19423        __ast_path: &mut AstNodePath<'r>,
19424    ) {
19425        <TsTypeParamInstantiation as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19426            node, self, __ast_path,
19427        )
19428    }
19429    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
19430             TsTypeParam >::visit_children_with_ast_path`]. If you want to recurse, you need to \
19431             call it manually."]
19432    #[inline]
19433    fn visit_ts_type_params<'ast: 'r, 'r>(
19434        &mut self,
19435        node: &'ast [TsTypeParam],
19436        __ast_path: &mut AstNodePath<'r>,
19437    ) {
19438        <[TsTypeParam] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19439            node, self, __ast_path,
19440        )
19441    }
19442    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
19443             [`TsTypePredicate::visit_children_with_ast_path`]. If you want to recurse, you need \
19444             to call it manually."]
19445    #[inline]
19446    fn visit_ts_type_predicate<'ast: 'r, 'r>(
19447        &mut self,
19448        node: &'ast TsTypePredicate,
19449        __ast_path: &mut AstNodePath<'r>,
19450    ) {
19451        <TsTypePredicate as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19452            node, self, __ast_path,
19453        )
19454    }
19455    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
19456             [`TsTypeQuery::visit_children_with_ast_path`]. If you want to recurse, you need to \
19457             call it manually."]
19458    #[inline]
19459    fn visit_ts_type_query<'ast: 'r, 'r>(
19460        &mut self,
19461        node: &'ast TsTypeQuery,
19462        __ast_path: &mut AstNodePath<'r>,
19463    ) {
19464        <TsTypeQuery as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19465            node, self, __ast_path,
19466        )
19467    }
19468    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
19469             [`TsTypeQueryExpr::visit_children_with_ast_path`]. If you want to recurse, you need \
19470             to call it manually."]
19471    #[inline]
19472    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
19473        &mut self,
19474        node: &'ast TsTypeQueryExpr,
19475        __ast_path: &mut AstNodePath<'r>,
19476    ) {
19477        <TsTypeQueryExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19478            node, self, __ast_path,
19479        )
19480    }
19481    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
19482             [`TsTypeRef::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19483             it manually."]
19484    #[inline]
19485    fn visit_ts_type_ref<'ast: 'r, 'r>(
19486        &mut self,
19487        node: &'ast TsTypeRef,
19488        __ast_path: &mut AstNodePath<'r>,
19489    ) {
19490        <TsTypeRef as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19491    }
19492    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
19493             < Box < TsType > >::visit_children_with_ast_path`]. If you want to recurse, you need \
19494             to call it manually."]
19495    #[inline]
19496    fn visit_ts_types<'ast: 'r, 'r>(
19497        &mut self,
19498        node: &'ast [Box<TsType>],
19499        __ast_path: &mut AstNodePath<'r>,
19500    ) {
19501        <[Box<TsType>] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19502            node, self, __ast_path,
19503        )
19504    }
19505    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
19506             [`TsUnionOrIntersectionType::visit_children_with_ast_path`]. If you want to recurse, \
19507             you need to call it manually."]
19508    #[inline]
19509    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
19510        &mut self,
19511        node: &'ast TsUnionOrIntersectionType,
19512        __ast_path: &mut AstNodePath<'r>,
19513    ) {
19514        <TsUnionOrIntersectionType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19515            node, self, __ast_path,
19516        )
19517    }
19518    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
19519             [`TsUnionType::visit_children_with_ast_path`]. If you want to recurse, you need to \
19520             call it manually."]
19521    #[inline]
19522    fn visit_ts_union_type<'ast: 'r, 'r>(
19523        &mut self,
19524        node: &'ast TsUnionType,
19525        __ast_path: &mut AstNodePath<'r>,
19526    ) {
19527        <TsUnionType as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19528            node, self, __ast_path,
19529        )
19530    }
19531    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
19532             [`UnaryExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19533             it manually."]
19534    #[inline]
19535    fn visit_unary_expr<'ast: 'r, 'r>(
19536        &mut self,
19537        node: &'ast UnaryExpr,
19538        __ast_path: &mut AstNodePath<'r>,
19539    ) {
19540        <UnaryExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19541    }
19542    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
19543             [`UnaryOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19544             it manually."]
19545    #[inline]
19546    fn visit_unary_op<'ast: 'r, 'r>(
19547        &mut self,
19548        node: &'ast UnaryOp,
19549        __ast_path: &mut AstNodePath<'r>,
19550    ) {
19551        <UnaryOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19552    }
19553    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
19554             [`UpdateExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
19555             call it manually."]
19556    #[inline]
19557    fn visit_update_expr<'ast: 'r, 'r>(
19558        &mut self,
19559        node: &'ast UpdateExpr,
19560        __ast_path: &mut AstNodePath<'r>,
19561    ) {
19562        <UpdateExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19563    }
19564    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
19565             [`UpdateOp::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19566             it manually."]
19567    #[inline]
19568    fn visit_update_op<'ast: 'r, 'r>(
19569        &mut self,
19570        node: &'ast UpdateOp,
19571        __ast_path: &mut AstNodePath<'r>,
19572    ) {
19573        <UpdateOp as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19574    }
19575    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
19576             [`UsingDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19577             it manually."]
19578    #[inline]
19579    fn visit_using_decl<'ast: 'r, 'r>(
19580        &mut self,
19581        node: &'ast UsingDecl,
19582        __ast_path: &mut AstNodePath<'r>,
19583    ) {
19584        <UsingDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19585    }
19586    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
19587             [`VarDecl::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19588             it manually."]
19589    #[inline]
19590    fn visit_var_decl<'ast: 'r, 'r>(
19591        &mut self,
19592        node: &'ast VarDecl,
19593        __ast_path: &mut AstNodePath<'r>,
19594    ) {
19595        <VarDecl as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19596    }
19597    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
19598             [`VarDeclKind::visit_children_with_ast_path`]. If you want to recurse, you need to \
19599             call it manually."]
19600    #[inline]
19601    fn visit_var_decl_kind<'ast: 'r, 'r>(
19602        &mut self,
19603        node: &'ast VarDeclKind,
19604        __ast_path: &mut AstNodePath<'r>,
19605    ) {
19606        <VarDeclKind as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19607            node, self, __ast_path,
19608        )
19609    }
19610    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
19611             [`VarDeclOrExpr::visit_children_with_ast_path`]. If you want to recurse, you need to \
19612             call it manually."]
19613    #[inline]
19614    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
19615        &mut self,
19616        node: &'ast VarDeclOrExpr,
19617        __ast_path: &mut AstNodePath<'r>,
19618    ) {
19619        <VarDeclOrExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19620            node, self, __ast_path,
19621        )
19622    }
19623    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
19624             [`VarDeclarator::visit_children_with_ast_path`]. If you want to recurse, you need to \
19625             call it manually."]
19626    #[inline]
19627    fn visit_var_declarator<'ast: 'r, 'r>(
19628        &mut self,
19629        node: &'ast VarDeclarator,
19630        __ast_path: &mut AstNodePath<'r>,
19631    ) {
19632        <VarDeclarator as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19633            node, self, __ast_path,
19634        )
19635    }
19636    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
19637             < VarDeclarator >::visit_children_with_ast_path`]. If you want to recurse, you need \
19638             to call it manually."]
19639    #[inline]
19640    fn visit_var_declarators<'ast: 'r, 'r>(
19641        &mut self,
19642        node: &'ast [VarDeclarator],
19643        __ast_path: &mut AstNodePath<'r>,
19644    ) {
19645        <[VarDeclarator] as VisitWithAstPath<Self>>::visit_children_with_ast_path(
19646            node, self, __ast_path,
19647        )
19648    }
19649    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
19650             [`WhileStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19651             it manually."]
19652    #[inline]
19653    fn visit_while_stmt<'ast: 'r, 'r>(
19654        &mut self,
19655        node: &'ast WhileStmt,
19656        __ast_path: &mut AstNodePath<'r>,
19657    ) {
19658        <WhileStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19659    }
19660    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
19661             [`WithStmt::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19662             it manually."]
19663    #[inline]
19664    fn visit_with_stmt<'ast: 'r, 'r>(
19665        &mut self,
19666        node: &'ast WithStmt,
19667        __ast_path: &mut AstNodePath<'r>,
19668    ) {
19669        <WithStmt as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19670    }
19671    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
19672             [`YieldExpr::visit_children_with_ast_path`]. If you want to recurse, you need to call \
19673             it manually."]
19674    #[inline]
19675    fn visit_yield_expr<'ast: 'r, 'r>(
19676        &mut self,
19677        node: &'ast YieldExpr,
19678        __ast_path: &mut AstNodePath<'r>,
19679    ) {
19680        <YieldExpr as VisitWithAstPath<Self>>::visit_children_with_ast_path(node, self, __ast_path)
19681    }
19682}
19683#[cfg(any(docsrs, feature = "path"))]
19684#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
19685impl<V> VisitAstPath for &mut V
19686where
19687    V: ?Sized + VisitAstPath,
19688{
19689    #[inline]
19690    fn visit_accessibility<'ast: 'r, 'r>(
19691        &mut self,
19692        node: &'ast Accessibility,
19693        __ast_path: &mut AstNodePath<'r>,
19694    ) {
19695        <V as VisitAstPath>::visit_accessibility(&mut **self, node, __ast_path)
19696    }
19697
19698    #[inline]
19699    fn visit_array_lit<'ast: 'r, 'r>(
19700        &mut self,
19701        node: &'ast ArrayLit,
19702        __ast_path: &mut AstNodePath<'r>,
19703    ) {
19704        <V as VisitAstPath>::visit_array_lit(&mut **self, node, __ast_path)
19705    }
19706
19707    #[inline]
19708    fn visit_array_pat<'ast: 'r, 'r>(
19709        &mut self,
19710        node: &'ast ArrayPat,
19711        __ast_path: &mut AstNodePath<'r>,
19712    ) {
19713        <V as VisitAstPath>::visit_array_pat(&mut **self, node, __ast_path)
19714    }
19715
19716    #[inline]
19717    fn visit_arrow_expr<'ast: 'r, 'r>(
19718        &mut self,
19719        node: &'ast ArrowExpr,
19720        __ast_path: &mut AstNodePath<'r>,
19721    ) {
19722        <V as VisitAstPath>::visit_arrow_expr(&mut **self, node, __ast_path)
19723    }
19724
19725    #[inline]
19726    fn visit_assign_expr<'ast: 'r, 'r>(
19727        &mut self,
19728        node: &'ast AssignExpr,
19729        __ast_path: &mut AstNodePath<'r>,
19730    ) {
19731        <V as VisitAstPath>::visit_assign_expr(&mut **self, node, __ast_path)
19732    }
19733
19734    #[inline]
19735    fn visit_assign_op<'ast: 'r, 'r>(
19736        &mut self,
19737        node: &'ast AssignOp,
19738        __ast_path: &mut AstNodePath<'r>,
19739    ) {
19740        <V as VisitAstPath>::visit_assign_op(&mut **self, node, __ast_path)
19741    }
19742
19743    #[inline]
19744    fn visit_assign_pat<'ast: 'r, 'r>(
19745        &mut self,
19746        node: &'ast AssignPat,
19747        __ast_path: &mut AstNodePath<'r>,
19748    ) {
19749        <V as VisitAstPath>::visit_assign_pat(&mut **self, node, __ast_path)
19750    }
19751
19752    #[inline]
19753    fn visit_assign_pat_prop<'ast: 'r, 'r>(
19754        &mut self,
19755        node: &'ast AssignPatProp,
19756        __ast_path: &mut AstNodePath<'r>,
19757    ) {
19758        <V as VisitAstPath>::visit_assign_pat_prop(&mut **self, node, __ast_path)
19759    }
19760
19761    #[inline]
19762    fn visit_assign_prop<'ast: 'r, 'r>(
19763        &mut self,
19764        node: &'ast AssignProp,
19765        __ast_path: &mut AstNodePath<'r>,
19766    ) {
19767        <V as VisitAstPath>::visit_assign_prop(&mut **self, node, __ast_path)
19768    }
19769
19770    #[inline]
19771    fn visit_assign_target<'ast: 'r, 'r>(
19772        &mut self,
19773        node: &'ast AssignTarget,
19774        __ast_path: &mut AstNodePath<'r>,
19775    ) {
19776        <V as VisitAstPath>::visit_assign_target(&mut **self, node, __ast_path)
19777    }
19778
19779    #[inline]
19780    fn visit_assign_target_pat<'ast: 'r, 'r>(
19781        &mut self,
19782        node: &'ast AssignTargetPat,
19783        __ast_path: &mut AstNodePath<'r>,
19784    ) {
19785        <V as VisitAstPath>::visit_assign_target_pat(&mut **self, node, __ast_path)
19786    }
19787
19788    #[inline]
19789    fn visit_atom<'ast: 'r, 'r>(
19790        &mut self,
19791        node: &'ast swc_atoms::Atom,
19792        __ast_path: &mut AstNodePath<'r>,
19793    ) {
19794        <V as VisitAstPath>::visit_atom(&mut **self, node, __ast_path)
19795    }
19796
19797    #[inline]
19798    fn visit_auto_accessor<'ast: 'r, 'r>(
19799        &mut self,
19800        node: &'ast AutoAccessor,
19801        __ast_path: &mut AstNodePath<'r>,
19802    ) {
19803        <V as VisitAstPath>::visit_auto_accessor(&mut **self, node, __ast_path)
19804    }
19805
19806    #[inline]
19807    fn visit_await_expr<'ast: 'r, 'r>(
19808        &mut self,
19809        node: &'ast AwaitExpr,
19810        __ast_path: &mut AstNodePath<'r>,
19811    ) {
19812        <V as VisitAstPath>::visit_await_expr(&mut **self, node, __ast_path)
19813    }
19814
19815    #[inline]
19816    fn visit_big_int<'ast: 'r, 'r>(
19817        &mut self,
19818        node: &'ast BigInt,
19819        __ast_path: &mut AstNodePath<'r>,
19820    ) {
19821        <V as VisitAstPath>::visit_big_int(&mut **self, node, __ast_path)
19822    }
19823
19824    #[inline]
19825    fn visit_big_int_value<'ast: 'r, 'r>(
19826        &mut self,
19827        node: &'ast BigIntValue,
19828        __ast_path: &mut AstNodePath<'r>,
19829    ) {
19830        <V as VisitAstPath>::visit_big_int_value(&mut **self, node, __ast_path)
19831    }
19832
19833    #[inline]
19834    fn visit_bin_expr<'ast: 'r, 'r>(
19835        &mut self,
19836        node: &'ast BinExpr,
19837        __ast_path: &mut AstNodePath<'r>,
19838    ) {
19839        <V as VisitAstPath>::visit_bin_expr(&mut **self, node, __ast_path)
19840    }
19841
19842    #[inline]
19843    fn visit_binary_op<'ast: 'r, 'r>(
19844        &mut self,
19845        node: &'ast BinaryOp,
19846        __ast_path: &mut AstNodePath<'r>,
19847    ) {
19848        <V as VisitAstPath>::visit_binary_op(&mut **self, node, __ast_path)
19849    }
19850
19851    #[inline]
19852    fn visit_binding_ident<'ast: 'r, 'r>(
19853        &mut self,
19854        node: &'ast BindingIdent,
19855        __ast_path: &mut AstNodePath<'r>,
19856    ) {
19857        <V as VisitAstPath>::visit_binding_ident(&mut **self, node, __ast_path)
19858    }
19859
19860    #[inline]
19861    fn visit_block_stmt<'ast: 'r, 'r>(
19862        &mut self,
19863        node: &'ast BlockStmt,
19864        __ast_path: &mut AstNodePath<'r>,
19865    ) {
19866        <V as VisitAstPath>::visit_block_stmt(&mut **self, node, __ast_path)
19867    }
19868
19869    #[inline]
19870    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
19871        &mut self,
19872        node: &'ast BlockStmtOrExpr,
19873        __ast_path: &mut AstNodePath<'r>,
19874    ) {
19875        <V as VisitAstPath>::visit_block_stmt_or_expr(&mut **self, node, __ast_path)
19876    }
19877
19878    #[inline]
19879    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
19880        <V as VisitAstPath>::visit_bool(&mut **self, node, __ast_path)
19881    }
19882
19883    #[inline]
19884    fn visit_break_stmt<'ast: 'r, 'r>(
19885        &mut self,
19886        node: &'ast BreakStmt,
19887        __ast_path: &mut AstNodePath<'r>,
19888    ) {
19889        <V as VisitAstPath>::visit_break_stmt(&mut **self, node, __ast_path)
19890    }
19891
19892    #[inline]
19893    fn visit_call_expr<'ast: 'r, 'r>(
19894        &mut self,
19895        node: &'ast CallExpr,
19896        __ast_path: &mut AstNodePath<'r>,
19897    ) {
19898        <V as VisitAstPath>::visit_call_expr(&mut **self, node, __ast_path)
19899    }
19900
19901    #[inline]
19902    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
19903        <V as VisitAstPath>::visit_callee(&mut **self, node, __ast_path)
19904    }
19905
19906    #[inline]
19907    fn visit_catch_clause<'ast: 'r, 'r>(
19908        &mut self,
19909        node: &'ast CatchClause,
19910        __ast_path: &mut AstNodePath<'r>,
19911    ) {
19912        <V as VisitAstPath>::visit_catch_clause(&mut **self, node, __ast_path)
19913    }
19914
19915    #[inline]
19916    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
19917        <V as VisitAstPath>::visit_class(&mut **self, node, __ast_path)
19918    }
19919
19920    #[inline]
19921    fn visit_class_decl<'ast: 'r, 'r>(
19922        &mut self,
19923        node: &'ast ClassDecl,
19924        __ast_path: &mut AstNodePath<'r>,
19925    ) {
19926        <V as VisitAstPath>::visit_class_decl(&mut **self, node, __ast_path)
19927    }
19928
19929    #[inline]
19930    fn visit_class_expr<'ast: 'r, 'r>(
19931        &mut self,
19932        node: &'ast ClassExpr,
19933        __ast_path: &mut AstNodePath<'r>,
19934    ) {
19935        <V as VisitAstPath>::visit_class_expr(&mut **self, node, __ast_path)
19936    }
19937
19938    #[inline]
19939    fn visit_class_member<'ast: 'r, 'r>(
19940        &mut self,
19941        node: &'ast ClassMember,
19942        __ast_path: &mut AstNodePath<'r>,
19943    ) {
19944        <V as VisitAstPath>::visit_class_member(&mut **self, node, __ast_path)
19945    }
19946
19947    #[inline]
19948    fn visit_class_members<'ast: 'r, 'r>(
19949        &mut self,
19950        node: &'ast [ClassMember],
19951        __ast_path: &mut AstNodePath<'r>,
19952    ) {
19953        <V as VisitAstPath>::visit_class_members(&mut **self, node, __ast_path)
19954    }
19955
19956    #[inline]
19957    fn visit_class_method<'ast: 'r, 'r>(
19958        &mut self,
19959        node: &'ast ClassMethod,
19960        __ast_path: &mut AstNodePath<'r>,
19961    ) {
19962        <V as VisitAstPath>::visit_class_method(&mut **self, node, __ast_path)
19963    }
19964
19965    #[inline]
19966    fn visit_class_prop<'ast: 'r, 'r>(
19967        &mut self,
19968        node: &'ast ClassProp,
19969        __ast_path: &mut AstNodePath<'r>,
19970    ) {
19971        <V as VisitAstPath>::visit_class_prop(&mut **self, node, __ast_path)
19972    }
19973
19974    #[inline]
19975    fn visit_computed_prop_name<'ast: 'r, 'r>(
19976        &mut self,
19977        node: &'ast ComputedPropName,
19978        __ast_path: &mut AstNodePath<'r>,
19979    ) {
19980        <V as VisitAstPath>::visit_computed_prop_name(&mut **self, node, __ast_path)
19981    }
19982
19983    #[inline]
19984    fn visit_cond_expr<'ast: 'r, 'r>(
19985        &mut self,
19986        node: &'ast CondExpr,
19987        __ast_path: &mut AstNodePath<'r>,
19988    ) {
19989        <V as VisitAstPath>::visit_cond_expr(&mut **self, node, __ast_path)
19990    }
19991
19992    #[inline]
19993    fn visit_constructor<'ast: 'r, 'r>(
19994        &mut self,
19995        node: &'ast Constructor,
19996        __ast_path: &mut AstNodePath<'r>,
19997    ) {
19998        <V as VisitAstPath>::visit_constructor(&mut **self, node, __ast_path)
19999    }
20000
20001    #[inline]
20002    fn visit_continue_stmt<'ast: 'r, 'r>(
20003        &mut self,
20004        node: &'ast ContinueStmt,
20005        __ast_path: &mut AstNodePath<'r>,
20006    ) {
20007        <V as VisitAstPath>::visit_continue_stmt(&mut **self, node, __ast_path)
20008    }
20009
20010    #[inline]
20011    fn visit_debugger_stmt<'ast: 'r, 'r>(
20012        &mut self,
20013        node: &'ast DebuggerStmt,
20014        __ast_path: &mut AstNodePath<'r>,
20015    ) {
20016        <V as VisitAstPath>::visit_debugger_stmt(&mut **self, node, __ast_path)
20017    }
20018
20019    #[inline]
20020    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
20021        <V as VisitAstPath>::visit_decl(&mut **self, node, __ast_path)
20022    }
20023
20024    #[inline]
20025    fn visit_decorator<'ast: 'r, 'r>(
20026        &mut self,
20027        node: &'ast Decorator,
20028        __ast_path: &mut AstNodePath<'r>,
20029    ) {
20030        <V as VisitAstPath>::visit_decorator(&mut **self, node, __ast_path)
20031    }
20032
20033    #[inline]
20034    fn visit_decorators<'ast: 'r, 'r>(
20035        &mut self,
20036        node: &'ast [Decorator],
20037        __ast_path: &mut AstNodePath<'r>,
20038    ) {
20039        <V as VisitAstPath>::visit_decorators(&mut **self, node, __ast_path)
20040    }
20041
20042    #[inline]
20043    fn visit_default_decl<'ast: 'r, 'r>(
20044        &mut self,
20045        node: &'ast DefaultDecl,
20046        __ast_path: &mut AstNodePath<'r>,
20047    ) {
20048        <V as VisitAstPath>::visit_default_decl(&mut **self, node, __ast_path)
20049    }
20050
20051    #[inline]
20052    fn visit_do_while_stmt<'ast: 'r, 'r>(
20053        &mut self,
20054        node: &'ast DoWhileStmt,
20055        __ast_path: &mut AstNodePath<'r>,
20056    ) {
20057        <V as VisitAstPath>::visit_do_while_stmt(&mut **self, node, __ast_path)
20058    }
20059
20060    #[inline]
20061    fn visit_empty_stmt<'ast: 'r, 'r>(
20062        &mut self,
20063        node: &'ast EmptyStmt,
20064        __ast_path: &mut AstNodePath<'r>,
20065    ) {
20066        <V as VisitAstPath>::visit_empty_stmt(&mut **self, node, __ast_path)
20067    }
20068
20069    #[inline]
20070    fn visit_export_all<'ast: 'r, 'r>(
20071        &mut self,
20072        node: &'ast ExportAll,
20073        __ast_path: &mut AstNodePath<'r>,
20074    ) {
20075        <V as VisitAstPath>::visit_export_all(&mut **self, node, __ast_path)
20076    }
20077
20078    #[inline]
20079    fn visit_export_decl<'ast: 'r, 'r>(
20080        &mut self,
20081        node: &'ast ExportDecl,
20082        __ast_path: &mut AstNodePath<'r>,
20083    ) {
20084        <V as VisitAstPath>::visit_export_decl(&mut **self, node, __ast_path)
20085    }
20086
20087    #[inline]
20088    fn visit_export_default_decl<'ast: 'r, 'r>(
20089        &mut self,
20090        node: &'ast ExportDefaultDecl,
20091        __ast_path: &mut AstNodePath<'r>,
20092    ) {
20093        <V as VisitAstPath>::visit_export_default_decl(&mut **self, node, __ast_path)
20094    }
20095
20096    #[inline]
20097    fn visit_export_default_expr<'ast: 'r, 'r>(
20098        &mut self,
20099        node: &'ast ExportDefaultExpr,
20100        __ast_path: &mut AstNodePath<'r>,
20101    ) {
20102        <V as VisitAstPath>::visit_export_default_expr(&mut **self, node, __ast_path)
20103    }
20104
20105    #[inline]
20106    fn visit_export_default_specifier<'ast: 'r, 'r>(
20107        &mut self,
20108        node: &'ast ExportDefaultSpecifier,
20109        __ast_path: &mut AstNodePath<'r>,
20110    ) {
20111        <V as VisitAstPath>::visit_export_default_specifier(&mut **self, node, __ast_path)
20112    }
20113
20114    #[inline]
20115    fn visit_export_named_specifier<'ast: 'r, 'r>(
20116        &mut self,
20117        node: &'ast ExportNamedSpecifier,
20118        __ast_path: &mut AstNodePath<'r>,
20119    ) {
20120        <V as VisitAstPath>::visit_export_named_specifier(&mut **self, node, __ast_path)
20121    }
20122
20123    #[inline]
20124    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
20125        &mut self,
20126        node: &'ast ExportNamespaceSpecifier,
20127        __ast_path: &mut AstNodePath<'r>,
20128    ) {
20129        <V as VisitAstPath>::visit_export_namespace_specifier(&mut **self, node, __ast_path)
20130    }
20131
20132    #[inline]
20133    fn visit_export_specifier<'ast: 'r, 'r>(
20134        &mut self,
20135        node: &'ast ExportSpecifier,
20136        __ast_path: &mut AstNodePath<'r>,
20137    ) {
20138        <V as VisitAstPath>::visit_export_specifier(&mut **self, node, __ast_path)
20139    }
20140
20141    #[inline]
20142    fn visit_export_specifiers<'ast: 'r, 'r>(
20143        &mut self,
20144        node: &'ast [ExportSpecifier],
20145        __ast_path: &mut AstNodePath<'r>,
20146    ) {
20147        <V as VisitAstPath>::visit_export_specifiers(&mut **self, node, __ast_path)
20148    }
20149
20150    #[inline]
20151    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
20152        <V as VisitAstPath>::visit_expr(&mut **self, node, __ast_path)
20153    }
20154
20155    #[inline]
20156    fn visit_expr_or_spread<'ast: 'r, 'r>(
20157        &mut self,
20158        node: &'ast ExprOrSpread,
20159        __ast_path: &mut AstNodePath<'r>,
20160    ) {
20161        <V as VisitAstPath>::visit_expr_or_spread(&mut **self, node, __ast_path)
20162    }
20163
20164    #[inline]
20165    fn visit_expr_or_spreads<'ast: 'r, 'r>(
20166        &mut self,
20167        node: &'ast [ExprOrSpread],
20168        __ast_path: &mut AstNodePath<'r>,
20169    ) {
20170        <V as VisitAstPath>::visit_expr_or_spreads(&mut **self, node, __ast_path)
20171    }
20172
20173    #[inline]
20174    fn visit_expr_stmt<'ast: 'r, 'r>(
20175        &mut self,
20176        node: &'ast ExprStmt,
20177        __ast_path: &mut AstNodePath<'r>,
20178    ) {
20179        <V as VisitAstPath>::visit_expr_stmt(&mut **self, node, __ast_path)
20180    }
20181
20182    #[inline]
20183    fn visit_exprs<'ast: 'r, 'r>(
20184        &mut self,
20185        node: &'ast [Box<Expr>],
20186        __ast_path: &mut AstNodePath<'r>,
20187    ) {
20188        <V as VisitAstPath>::visit_exprs(&mut **self, node, __ast_path)
20189    }
20190
20191    #[inline]
20192    fn visit_fn_decl<'ast: 'r, 'r>(
20193        &mut self,
20194        node: &'ast FnDecl,
20195        __ast_path: &mut AstNodePath<'r>,
20196    ) {
20197        <V as VisitAstPath>::visit_fn_decl(&mut **self, node, __ast_path)
20198    }
20199
20200    #[inline]
20201    fn visit_fn_expr<'ast: 'r, 'r>(
20202        &mut self,
20203        node: &'ast FnExpr,
20204        __ast_path: &mut AstNodePath<'r>,
20205    ) {
20206        <V as VisitAstPath>::visit_fn_expr(&mut **self, node, __ast_path)
20207    }
20208
20209    #[inline]
20210    fn visit_for_head<'ast: 'r, 'r>(
20211        &mut self,
20212        node: &'ast ForHead,
20213        __ast_path: &mut AstNodePath<'r>,
20214    ) {
20215        <V as VisitAstPath>::visit_for_head(&mut **self, node, __ast_path)
20216    }
20217
20218    #[inline]
20219    fn visit_for_in_stmt<'ast: 'r, 'r>(
20220        &mut self,
20221        node: &'ast ForInStmt,
20222        __ast_path: &mut AstNodePath<'r>,
20223    ) {
20224        <V as VisitAstPath>::visit_for_in_stmt(&mut **self, node, __ast_path)
20225    }
20226
20227    #[inline]
20228    fn visit_for_of_stmt<'ast: 'r, 'r>(
20229        &mut self,
20230        node: &'ast ForOfStmt,
20231        __ast_path: &mut AstNodePath<'r>,
20232    ) {
20233        <V as VisitAstPath>::visit_for_of_stmt(&mut **self, node, __ast_path)
20234    }
20235
20236    #[inline]
20237    fn visit_for_stmt<'ast: 'r, 'r>(
20238        &mut self,
20239        node: &'ast ForStmt,
20240        __ast_path: &mut AstNodePath<'r>,
20241    ) {
20242        <V as VisitAstPath>::visit_for_stmt(&mut **self, node, __ast_path)
20243    }
20244
20245    #[inline]
20246    fn visit_function<'ast: 'r, 'r>(
20247        &mut self,
20248        node: &'ast Function,
20249        __ast_path: &mut AstNodePath<'r>,
20250    ) {
20251        <V as VisitAstPath>::visit_function(&mut **self, node, __ast_path)
20252    }
20253
20254    #[inline]
20255    fn visit_getter_prop<'ast: 'r, 'r>(
20256        &mut self,
20257        node: &'ast GetterProp,
20258        __ast_path: &mut AstNodePath<'r>,
20259    ) {
20260        <V as VisitAstPath>::visit_getter_prop(&mut **self, node, __ast_path)
20261    }
20262
20263    #[inline]
20264    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
20265        <V as VisitAstPath>::visit_ident(&mut **self, node, __ast_path)
20266    }
20267
20268    #[inline]
20269    fn visit_ident_name<'ast: 'r, 'r>(
20270        &mut self,
20271        node: &'ast IdentName,
20272        __ast_path: &mut AstNodePath<'r>,
20273    ) {
20274        <V as VisitAstPath>::visit_ident_name(&mut **self, node, __ast_path)
20275    }
20276
20277    #[inline]
20278    fn visit_if_stmt<'ast: 'r, 'r>(
20279        &mut self,
20280        node: &'ast IfStmt,
20281        __ast_path: &mut AstNodePath<'r>,
20282    ) {
20283        <V as VisitAstPath>::visit_if_stmt(&mut **self, node, __ast_path)
20284    }
20285
20286    #[inline]
20287    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
20288        <V as VisitAstPath>::visit_import(&mut **self, node, __ast_path)
20289    }
20290
20291    #[inline]
20292    fn visit_import_decl<'ast: 'r, 'r>(
20293        &mut self,
20294        node: &'ast ImportDecl,
20295        __ast_path: &mut AstNodePath<'r>,
20296    ) {
20297        <V as VisitAstPath>::visit_import_decl(&mut **self, node, __ast_path)
20298    }
20299
20300    #[inline]
20301    fn visit_import_default_specifier<'ast: 'r, 'r>(
20302        &mut self,
20303        node: &'ast ImportDefaultSpecifier,
20304        __ast_path: &mut AstNodePath<'r>,
20305    ) {
20306        <V as VisitAstPath>::visit_import_default_specifier(&mut **self, node, __ast_path)
20307    }
20308
20309    #[inline]
20310    fn visit_import_named_specifier<'ast: 'r, 'r>(
20311        &mut self,
20312        node: &'ast ImportNamedSpecifier,
20313        __ast_path: &mut AstNodePath<'r>,
20314    ) {
20315        <V as VisitAstPath>::visit_import_named_specifier(&mut **self, node, __ast_path)
20316    }
20317
20318    #[inline]
20319    fn visit_import_phase<'ast: 'r, 'r>(
20320        &mut self,
20321        node: &'ast ImportPhase,
20322        __ast_path: &mut AstNodePath<'r>,
20323    ) {
20324        <V as VisitAstPath>::visit_import_phase(&mut **self, node, __ast_path)
20325    }
20326
20327    #[inline]
20328    fn visit_import_specifier<'ast: 'r, 'r>(
20329        &mut self,
20330        node: &'ast ImportSpecifier,
20331        __ast_path: &mut AstNodePath<'r>,
20332    ) {
20333        <V as VisitAstPath>::visit_import_specifier(&mut **self, node, __ast_path)
20334    }
20335
20336    #[inline]
20337    fn visit_import_specifiers<'ast: 'r, 'r>(
20338        &mut self,
20339        node: &'ast [ImportSpecifier],
20340        __ast_path: &mut AstNodePath<'r>,
20341    ) {
20342        <V as VisitAstPath>::visit_import_specifiers(&mut **self, node, __ast_path)
20343    }
20344
20345    #[inline]
20346    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
20347        &mut self,
20348        node: &'ast ImportStarAsSpecifier,
20349        __ast_path: &mut AstNodePath<'r>,
20350    ) {
20351        <V as VisitAstPath>::visit_import_star_as_specifier(&mut **self, node, __ast_path)
20352    }
20353
20354    #[inline]
20355    fn visit_import_with<'ast: 'r, 'r>(
20356        &mut self,
20357        node: &'ast ImportWith,
20358        __ast_path: &mut AstNodePath<'r>,
20359    ) {
20360        <V as VisitAstPath>::visit_import_with(&mut **self, node, __ast_path)
20361    }
20362
20363    #[inline]
20364    fn visit_import_with_item<'ast: 'r, 'r>(
20365        &mut self,
20366        node: &'ast ImportWithItem,
20367        __ast_path: &mut AstNodePath<'r>,
20368    ) {
20369        <V as VisitAstPath>::visit_import_with_item(&mut **self, node, __ast_path)
20370    }
20371
20372    #[inline]
20373    fn visit_import_with_items<'ast: 'r, 'r>(
20374        &mut self,
20375        node: &'ast [ImportWithItem],
20376        __ast_path: &mut AstNodePath<'r>,
20377    ) {
20378        <V as VisitAstPath>::visit_import_with_items(&mut **self, node, __ast_path)
20379    }
20380
20381    #[inline]
20382    fn visit_invalid<'ast: 'r, 'r>(
20383        &mut self,
20384        node: &'ast Invalid,
20385        __ast_path: &mut AstNodePath<'r>,
20386    ) {
20387        <V as VisitAstPath>::visit_invalid(&mut **self, node, __ast_path)
20388    }
20389
20390    #[inline]
20391    fn visit_jsx_attr<'ast: 'r, 'r>(
20392        &mut self,
20393        node: &'ast JSXAttr,
20394        __ast_path: &mut AstNodePath<'r>,
20395    ) {
20396        <V as VisitAstPath>::visit_jsx_attr(&mut **self, node, __ast_path)
20397    }
20398
20399    #[inline]
20400    fn visit_jsx_attr_name<'ast: 'r, 'r>(
20401        &mut self,
20402        node: &'ast JSXAttrName,
20403        __ast_path: &mut AstNodePath<'r>,
20404    ) {
20405        <V as VisitAstPath>::visit_jsx_attr_name(&mut **self, node, __ast_path)
20406    }
20407
20408    #[inline]
20409    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
20410        &mut self,
20411        node: &'ast JSXAttrOrSpread,
20412        __ast_path: &mut AstNodePath<'r>,
20413    ) {
20414        <V as VisitAstPath>::visit_jsx_attr_or_spread(&mut **self, node, __ast_path)
20415    }
20416
20417    #[inline]
20418    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
20419        &mut self,
20420        node: &'ast [JSXAttrOrSpread],
20421        __ast_path: &mut AstNodePath<'r>,
20422    ) {
20423        <V as VisitAstPath>::visit_jsx_attr_or_spreads(&mut **self, node, __ast_path)
20424    }
20425
20426    #[inline]
20427    fn visit_jsx_attr_value<'ast: 'r, 'r>(
20428        &mut self,
20429        node: &'ast JSXAttrValue,
20430        __ast_path: &mut AstNodePath<'r>,
20431    ) {
20432        <V as VisitAstPath>::visit_jsx_attr_value(&mut **self, node, __ast_path)
20433    }
20434
20435    #[inline]
20436    fn visit_jsx_closing_element<'ast: 'r, 'r>(
20437        &mut self,
20438        node: &'ast JSXClosingElement,
20439        __ast_path: &mut AstNodePath<'r>,
20440    ) {
20441        <V as VisitAstPath>::visit_jsx_closing_element(&mut **self, node, __ast_path)
20442    }
20443
20444    #[inline]
20445    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
20446        &mut self,
20447        node: &'ast JSXClosingFragment,
20448        __ast_path: &mut AstNodePath<'r>,
20449    ) {
20450        <V as VisitAstPath>::visit_jsx_closing_fragment(&mut **self, node, __ast_path)
20451    }
20452
20453    #[inline]
20454    fn visit_jsx_element<'ast: 'r, 'r>(
20455        &mut self,
20456        node: &'ast JSXElement,
20457        __ast_path: &mut AstNodePath<'r>,
20458    ) {
20459        <V as VisitAstPath>::visit_jsx_element(&mut **self, node, __ast_path)
20460    }
20461
20462    #[inline]
20463    fn visit_jsx_element_child<'ast: 'r, 'r>(
20464        &mut self,
20465        node: &'ast JSXElementChild,
20466        __ast_path: &mut AstNodePath<'r>,
20467    ) {
20468        <V as VisitAstPath>::visit_jsx_element_child(&mut **self, node, __ast_path)
20469    }
20470
20471    #[inline]
20472    fn visit_jsx_element_childs<'ast: 'r, 'r>(
20473        &mut self,
20474        node: &'ast [JSXElementChild],
20475        __ast_path: &mut AstNodePath<'r>,
20476    ) {
20477        <V as VisitAstPath>::visit_jsx_element_childs(&mut **self, node, __ast_path)
20478    }
20479
20480    #[inline]
20481    fn visit_jsx_element_name<'ast: 'r, 'r>(
20482        &mut self,
20483        node: &'ast JSXElementName,
20484        __ast_path: &mut AstNodePath<'r>,
20485    ) {
20486        <V as VisitAstPath>::visit_jsx_element_name(&mut **self, node, __ast_path)
20487    }
20488
20489    #[inline]
20490    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
20491        &mut self,
20492        node: &'ast JSXEmptyExpr,
20493        __ast_path: &mut AstNodePath<'r>,
20494    ) {
20495        <V as VisitAstPath>::visit_jsx_empty_expr(&mut **self, node, __ast_path)
20496    }
20497
20498    #[inline]
20499    fn visit_jsx_expr<'ast: 'r, 'r>(
20500        &mut self,
20501        node: &'ast JSXExpr,
20502        __ast_path: &mut AstNodePath<'r>,
20503    ) {
20504        <V as VisitAstPath>::visit_jsx_expr(&mut **self, node, __ast_path)
20505    }
20506
20507    #[inline]
20508    fn visit_jsx_expr_container<'ast: 'r, 'r>(
20509        &mut self,
20510        node: &'ast JSXExprContainer,
20511        __ast_path: &mut AstNodePath<'r>,
20512    ) {
20513        <V as VisitAstPath>::visit_jsx_expr_container(&mut **self, node, __ast_path)
20514    }
20515
20516    #[inline]
20517    fn visit_jsx_fragment<'ast: 'r, 'r>(
20518        &mut self,
20519        node: &'ast JSXFragment,
20520        __ast_path: &mut AstNodePath<'r>,
20521    ) {
20522        <V as VisitAstPath>::visit_jsx_fragment(&mut **self, node, __ast_path)
20523    }
20524
20525    #[inline]
20526    fn visit_jsx_member_expr<'ast: 'r, 'r>(
20527        &mut self,
20528        node: &'ast JSXMemberExpr,
20529        __ast_path: &mut AstNodePath<'r>,
20530    ) {
20531        <V as VisitAstPath>::visit_jsx_member_expr(&mut **self, node, __ast_path)
20532    }
20533
20534    #[inline]
20535    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
20536        &mut self,
20537        node: &'ast JSXNamespacedName,
20538        __ast_path: &mut AstNodePath<'r>,
20539    ) {
20540        <V as VisitAstPath>::visit_jsx_namespaced_name(&mut **self, node, __ast_path)
20541    }
20542
20543    #[inline]
20544    fn visit_jsx_object<'ast: 'r, 'r>(
20545        &mut self,
20546        node: &'ast JSXObject,
20547        __ast_path: &mut AstNodePath<'r>,
20548    ) {
20549        <V as VisitAstPath>::visit_jsx_object(&mut **self, node, __ast_path)
20550    }
20551
20552    #[inline]
20553    fn visit_jsx_opening_element<'ast: 'r, 'r>(
20554        &mut self,
20555        node: &'ast JSXOpeningElement,
20556        __ast_path: &mut AstNodePath<'r>,
20557    ) {
20558        <V as VisitAstPath>::visit_jsx_opening_element(&mut **self, node, __ast_path)
20559    }
20560
20561    #[inline]
20562    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
20563        &mut self,
20564        node: &'ast JSXOpeningFragment,
20565        __ast_path: &mut AstNodePath<'r>,
20566    ) {
20567        <V as VisitAstPath>::visit_jsx_opening_fragment(&mut **self, node, __ast_path)
20568    }
20569
20570    #[inline]
20571    fn visit_jsx_spread_child<'ast: 'r, 'r>(
20572        &mut self,
20573        node: &'ast JSXSpreadChild,
20574        __ast_path: &mut AstNodePath<'r>,
20575    ) {
20576        <V as VisitAstPath>::visit_jsx_spread_child(&mut **self, node, __ast_path)
20577    }
20578
20579    #[inline]
20580    fn visit_jsx_text<'ast: 'r, 'r>(
20581        &mut self,
20582        node: &'ast JSXText,
20583        __ast_path: &mut AstNodePath<'r>,
20584    ) {
20585        <V as VisitAstPath>::visit_jsx_text(&mut **self, node, __ast_path)
20586    }
20587
20588    #[inline]
20589    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
20590        <V as VisitAstPath>::visit_key(&mut **self, node, __ast_path)
20591    }
20592
20593    #[inline]
20594    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
20595        &mut self,
20596        node: &'ast KeyValuePatProp,
20597        __ast_path: &mut AstNodePath<'r>,
20598    ) {
20599        <V as VisitAstPath>::visit_key_value_pat_prop(&mut **self, node, __ast_path)
20600    }
20601
20602    #[inline]
20603    fn visit_key_value_prop<'ast: 'r, 'r>(
20604        &mut self,
20605        node: &'ast KeyValueProp,
20606        __ast_path: &mut AstNodePath<'r>,
20607    ) {
20608        <V as VisitAstPath>::visit_key_value_prop(&mut **self, node, __ast_path)
20609    }
20610
20611    #[inline]
20612    fn visit_labeled_stmt<'ast: 'r, 'r>(
20613        &mut self,
20614        node: &'ast LabeledStmt,
20615        __ast_path: &mut AstNodePath<'r>,
20616    ) {
20617        <V as VisitAstPath>::visit_labeled_stmt(&mut **self, node, __ast_path)
20618    }
20619
20620    #[inline]
20621    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
20622        <V as VisitAstPath>::visit_lit(&mut **self, node, __ast_path)
20623    }
20624
20625    #[inline]
20626    fn visit_member_expr<'ast: 'r, 'r>(
20627        &mut self,
20628        node: &'ast MemberExpr,
20629        __ast_path: &mut AstNodePath<'r>,
20630    ) {
20631        <V as VisitAstPath>::visit_member_expr(&mut **self, node, __ast_path)
20632    }
20633
20634    #[inline]
20635    fn visit_member_prop<'ast: 'r, 'r>(
20636        &mut self,
20637        node: &'ast MemberProp,
20638        __ast_path: &mut AstNodePath<'r>,
20639    ) {
20640        <V as VisitAstPath>::visit_member_prop(&mut **self, node, __ast_path)
20641    }
20642
20643    #[inline]
20644    fn visit_meta_prop_expr<'ast: 'r, 'r>(
20645        &mut self,
20646        node: &'ast MetaPropExpr,
20647        __ast_path: &mut AstNodePath<'r>,
20648    ) {
20649        <V as VisitAstPath>::visit_meta_prop_expr(&mut **self, node, __ast_path)
20650    }
20651
20652    #[inline]
20653    fn visit_meta_prop_kind<'ast: 'r, 'r>(
20654        &mut self,
20655        node: &'ast MetaPropKind,
20656        __ast_path: &mut AstNodePath<'r>,
20657    ) {
20658        <V as VisitAstPath>::visit_meta_prop_kind(&mut **self, node, __ast_path)
20659    }
20660
20661    #[inline]
20662    fn visit_method_kind<'ast: 'r, 'r>(
20663        &mut self,
20664        node: &'ast MethodKind,
20665        __ast_path: &mut AstNodePath<'r>,
20666    ) {
20667        <V as VisitAstPath>::visit_method_kind(&mut **self, node, __ast_path)
20668    }
20669
20670    #[inline]
20671    fn visit_method_prop<'ast: 'r, 'r>(
20672        &mut self,
20673        node: &'ast MethodProp,
20674        __ast_path: &mut AstNodePath<'r>,
20675    ) {
20676        <V as VisitAstPath>::visit_method_prop(&mut **self, node, __ast_path)
20677    }
20678
20679    #[inline]
20680    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
20681        <V as VisitAstPath>::visit_module(&mut **self, node, __ast_path)
20682    }
20683
20684    #[inline]
20685    fn visit_module_decl<'ast: 'r, 'r>(
20686        &mut self,
20687        node: &'ast ModuleDecl,
20688        __ast_path: &mut AstNodePath<'r>,
20689    ) {
20690        <V as VisitAstPath>::visit_module_decl(&mut **self, node, __ast_path)
20691    }
20692
20693    #[inline]
20694    fn visit_module_export_name<'ast: 'r, 'r>(
20695        &mut self,
20696        node: &'ast ModuleExportName,
20697        __ast_path: &mut AstNodePath<'r>,
20698    ) {
20699        <V as VisitAstPath>::visit_module_export_name(&mut **self, node, __ast_path)
20700    }
20701
20702    #[inline]
20703    fn visit_module_item<'ast: 'r, 'r>(
20704        &mut self,
20705        node: &'ast ModuleItem,
20706        __ast_path: &mut AstNodePath<'r>,
20707    ) {
20708        <V as VisitAstPath>::visit_module_item(&mut **self, node, __ast_path)
20709    }
20710
20711    #[inline]
20712    fn visit_module_items<'ast: 'r, 'r>(
20713        &mut self,
20714        node: &'ast [ModuleItem],
20715        __ast_path: &mut AstNodePath<'r>,
20716    ) {
20717        <V as VisitAstPath>::visit_module_items(&mut **self, node, __ast_path)
20718    }
20719
20720    #[inline]
20721    fn visit_named_export<'ast: 'r, 'r>(
20722        &mut self,
20723        node: &'ast NamedExport,
20724        __ast_path: &mut AstNodePath<'r>,
20725    ) {
20726        <V as VisitAstPath>::visit_named_export(&mut **self, node, __ast_path)
20727    }
20728
20729    #[inline]
20730    fn visit_new_expr<'ast: 'r, 'r>(
20731        &mut self,
20732        node: &'ast NewExpr,
20733        __ast_path: &mut AstNodePath<'r>,
20734    ) {
20735        <V as VisitAstPath>::visit_new_expr(&mut **self, node, __ast_path)
20736    }
20737
20738    #[inline]
20739    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
20740        <V as VisitAstPath>::visit_null(&mut **self, node, __ast_path)
20741    }
20742
20743    #[inline]
20744    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
20745        <V as VisitAstPath>::visit_number(&mut **self, node, __ast_path)
20746    }
20747
20748    #[inline]
20749    fn visit_object_lit<'ast: 'r, 'r>(
20750        &mut self,
20751        node: &'ast ObjectLit,
20752        __ast_path: &mut AstNodePath<'r>,
20753    ) {
20754        <V as VisitAstPath>::visit_object_lit(&mut **self, node, __ast_path)
20755    }
20756
20757    #[inline]
20758    fn visit_object_pat<'ast: 'r, 'r>(
20759        &mut self,
20760        node: &'ast ObjectPat,
20761        __ast_path: &mut AstNodePath<'r>,
20762    ) {
20763        <V as VisitAstPath>::visit_object_pat(&mut **self, node, __ast_path)
20764    }
20765
20766    #[inline]
20767    fn visit_object_pat_prop<'ast: 'r, 'r>(
20768        &mut self,
20769        node: &'ast ObjectPatProp,
20770        __ast_path: &mut AstNodePath<'r>,
20771    ) {
20772        <V as VisitAstPath>::visit_object_pat_prop(&mut **self, node, __ast_path)
20773    }
20774
20775    #[inline]
20776    fn visit_object_pat_props<'ast: 'r, 'r>(
20777        &mut self,
20778        node: &'ast [ObjectPatProp],
20779        __ast_path: &mut AstNodePath<'r>,
20780    ) {
20781        <V as VisitAstPath>::visit_object_pat_props(&mut **self, node, __ast_path)
20782    }
20783
20784    #[inline]
20785    fn visit_opt_accessibility<'ast: 'r, 'r>(
20786        &mut self,
20787        node: &'ast Option<Accessibility>,
20788        __ast_path: &mut AstNodePath<'r>,
20789    ) {
20790        <V as VisitAstPath>::visit_opt_accessibility(&mut **self, node, __ast_path)
20791    }
20792
20793    #[inline]
20794    fn visit_opt_atom<'ast: 'r, 'r>(
20795        &mut self,
20796        node: &'ast Option<swc_atoms::Atom>,
20797        __ast_path: &mut AstNodePath<'r>,
20798    ) {
20799        <V as VisitAstPath>::visit_opt_atom(&mut **self, node, __ast_path)
20800    }
20801
20802    #[inline]
20803    fn visit_opt_block_stmt<'ast: 'r, 'r>(
20804        &mut self,
20805        node: &'ast Option<BlockStmt>,
20806        __ast_path: &mut AstNodePath<'r>,
20807    ) {
20808        <V as VisitAstPath>::visit_opt_block_stmt(&mut **self, node, __ast_path)
20809    }
20810
20811    #[inline]
20812    fn visit_opt_call<'ast: 'r, 'r>(
20813        &mut self,
20814        node: &'ast OptCall,
20815        __ast_path: &mut AstNodePath<'r>,
20816    ) {
20817        <V as VisitAstPath>::visit_opt_call(&mut **self, node, __ast_path)
20818    }
20819
20820    #[inline]
20821    fn visit_opt_catch_clause<'ast: 'r, 'r>(
20822        &mut self,
20823        node: &'ast Option<CatchClause>,
20824        __ast_path: &mut AstNodePath<'r>,
20825    ) {
20826        <V as VisitAstPath>::visit_opt_catch_clause(&mut **self, node, __ast_path)
20827    }
20828
20829    #[inline]
20830    fn visit_opt_chain_base<'ast: 'r, 'r>(
20831        &mut self,
20832        node: &'ast OptChainBase,
20833        __ast_path: &mut AstNodePath<'r>,
20834    ) {
20835        <V as VisitAstPath>::visit_opt_chain_base(&mut **self, node, __ast_path)
20836    }
20837
20838    #[inline]
20839    fn visit_opt_chain_expr<'ast: 'r, 'r>(
20840        &mut self,
20841        node: &'ast OptChainExpr,
20842        __ast_path: &mut AstNodePath<'r>,
20843    ) {
20844        <V as VisitAstPath>::visit_opt_chain_expr(&mut **self, node, __ast_path)
20845    }
20846
20847    #[inline]
20848    fn visit_opt_expr<'ast: 'r, 'r>(
20849        &mut self,
20850        node: &'ast Option<Box<Expr>>,
20851        __ast_path: &mut AstNodePath<'r>,
20852    ) {
20853        <V as VisitAstPath>::visit_opt_expr(&mut **self, node, __ast_path)
20854    }
20855
20856    #[inline]
20857    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
20858        &mut self,
20859        node: &'ast Option<ExprOrSpread>,
20860        __ast_path: &mut AstNodePath<'r>,
20861    ) {
20862        <V as VisitAstPath>::visit_opt_expr_or_spread(&mut **self, node, __ast_path)
20863    }
20864
20865    #[inline]
20866    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
20867        &mut self,
20868        node: &'ast Option<Vec<ExprOrSpread>>,
20869        __ast_path: &mut AstNodePath<'r>,
20870    ) {
20871        <V as VisitAstPath>::visit_opt_expr_or_spreads(&mut **self, node, __ast_path)
20872    }
20873
20874    #[inline]
20875    fn visit_opt_ident<'ast: 'r, 'r>(
20876        &mut self,
20877        node: &'ast Option<Ident>,
20878        __ast_path: &mut AstNodePath<'r>,
20879    ) {
20880        <V as VisitAstPath>::visit_opt_ident(&mut **self, node, __ast_path)
20881    }
20882
20883    #[inline]
20884    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
20885        &mut self,
20886        node: &'ast Option<JSXAttrValue>,
20887        __ast_path: &mut AstNodePath<'r>,
20888    ) {
20889        <V as VisitAstPath>::visit_opt_jsx_attr_value(&mut **self, node, __ast_path)
20890    }
20891
20892    #[inline]
20893    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
20894        &mut self,
20895        node: &'ast Option<JSXClosingElement>,
20896        __ast_path: &mut AstNodePath<'r>,
20897    ) {
20898        <V as VisitAstPath>::visit_opt_jsx_closing_element(&mut **self, node, __ast_path)
20899    }
20900
20901    #[inline]
20902    fn visit_opt_module_export_name<'ast: 'r, 'r>(
20903        &mut self,
20904        node: &'ast Option<ModuleExportName>,
20905        __ast_path: &mut AstNodePath<'r>,
20906    ) {
20907        <V as VisitAstPath>::visit_opt_module_export_name(&mut **self, node, __ast_path)
20908    }
20909
20910    #[inline]
20911    fn visit_opt_object_lit<'ast: 'r, 'r>(
20912        &mut self,
20913        node: &'ast Option<Box<ObjectLit>>,
20914        __ast_path: &mut AstNodePath<'r>,
20915    ) {
20916        <V as VisitAstPath>::visit_opt_object_lit(&mut **self, node, __ast_path)
20917    }
20918
20919    #[inline]
20920    fn visit_opt_pat<'ast: 'r, 'r>(
20921        &mut self,
20922        node: &'ast Option<Pat>,
20923        __ast_path: &mut AstNodePath<'r>,
20924    ) {
20925        <V as VisitAstPath>::visit_opt_pat(&mut **self, node, __ast_path)
20926    }
20927
20928    #[inline]
20929    fn visit_opt_span<'ast: 'r, 'r>(
20930        &mut self,
20931        node: &'ast Option<swc_common::Span>,
20932        __ast_path: &mut AstNodePath<'r>,
20933    ) {
20934        <V as VisitAstPath>::visit_opt_span(&mut **self, node, __ast_path)
20935    }
20936
20937    #[inline]
20938    fn visit_opt_stmt<'ast: 'r, 'r>(
20939        &mut self,
20940        node: &'ast Option<Box<Stmt>>,
20941        __ast_path: &mut AstNodePath<'r>,
20942    ) {
20943        <V as VisitAstPath>::visit_opt_stmt(&mut **self, node, __ast_path)
20944    }
20945
20946    #[inline]
20947    fn visit_opt_str<'ast: 'r, 'r>(
20948        &mut self,
20949        node: &'ast Option<Box<Str>>,
20950        __ast_path: &mut AstNodePath<'r>,
20951    ) {
20952        <V as VisitAstPath>::visit_opt_str(&mut **self, node, __ast_path)
20953    }
20954
20955    #[inline]
20956    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
20957        &mut self,
20958        node: &'ast Option<TruePlusMinus>,
20959        __ast_path: &mut AstNodePath<'r>,
20960    ) {
20961        <V as VisitAstPath>::visit_opt_true_plus_minus(&mut **self, node, __ast_path)
20962    }
20963
20964    #[inline]
20965    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
20966        &mut self,
20967        node: &'ast Option<TsEntityName>,
20968        __ast_path: &mut AstNodePath<'r>,
20969    ) {
20970        <V as VisitAstPath>::visit_opt_ts_entity_name(&mut **self, node, __ast_path)
20971    }
20972
20973    #[inline]
20974    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
20975        &mut self,
20976        node: &'ast Option<TsNamespaceBody>,
20977        __ast_path: &mut AstNodePath<'r>,
20978    ) {
20979        <V as VisitAstPath>::visit_opt_ts_namespace_body(&mut **self, node, __ast_path)
20980    }
20981
20982    #[inline]
20983    fn visit_opt_ts_type<'ast: 'r, 'r>(
20984        &mut self,
20985        node: &'ast Option<Box<TsType>>,
20986        __ast_path: &mut AstNodePath<'r>,
20987    ) {
20988        <V as VisitAstPath>::visit_opt_ts_type(&mut **self, node, __ast_path)
20989    }
20990
20991    #[inline]
20992    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
20993        &mut self,
20994        node: &'ast Option<Box<TsTypeAnn>>,
20995        __ast_path: &mut AstNodePath<'r>,
20996    ) {
20997        <V as VisitAstPath>::visit_opt_ts_type_ann(&mut **self, node, __ast_path)
20998    }
20999
21000    #[inline]
21001    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
21002        &mut self,
21003        node: &'ast Option<Box<TsTypeParamDecl>>,
21004        __ast_path: &mut AstNodePath<'r>,
21005    ) {
21006        <V as VisitAstPath>::visit_opt_ts_type_param_decl(&mut **self, node, __ast_path)
21007    }
21008
21009    #[inline]
21010    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
21011        &mut self,
21012        node: &'ast Option<Box<TsTypeParamInstantiation>>,
21013        __ast_path: &mut AstNodePath<'r>,
21014    ) {
21015        <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
21016    }
21017
21018    #[inline]
21019    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
21020        &mut self,
21021        node: &'ast Option<VarDeclOrExpr>,
21022        __ast_path: &mut AstNodePath<'r>,
21023    ) {
21024        <V as VisitAstPath>::visit_opt_var_decl_or_expr(&mut **self, node, __ast_path)
21025    }
21026
21027    #[inline]
21028    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
21029        &mut self,
21030        node: &'ast [Option<ExprOrSpread>],
21031        __ast_path: &mut AstNodePath<'r>,
21032    ) {
21033        <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
21034    }
21035
21036    #[inline]
21037    fn visit_opt_vec_pats<'ast: 'r, 'r>(
21038        &mut self,
21039        node: &'ast [Option<Pat>],
21040        __ast_path: &mut AstNodePath<'r>,
21041    ) {
21042        <V as VisitAstPath>::visit_opt_vec_pats(&mut **self, node, __ast_path)
21043    }
21044
21045    #[inline]
21046    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
21047        <V as VisitAstPath>::visit_param(&mut **self, node, __ast_path)
21048    }
21049
21050    #[inline]
21051    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
21052        &mut self,
21053        node: &'ast ParamOrTsParamProp,
21054        __ast_path: &mut AstNodePath<'r>,
21055    ) {
21056        <V as VisitAstPath>::visit_param_or_ts_param_prop(&mut **self, node, __ast_path)
21057    }
21058
21059    #[inline]
21060    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
21061        &mut self,
21062        node: &'ast [ParamOrTsParamProp],
21063        __ast_path: &mut AstNodePath<'r>,
21064    ) {
21065        <V as VisitAstPath>::visit_param_or_ts_param_props(&mut **self, node, __ast_path)
21066    }
21067
21068    #[inline]
21069    fn visit_params<'ast: 'r, 'r>(
21070        &mut self,
21071        node: &'ast [Param],
21072        __ast_path: &mut AstNodePath<'r>,
21073    ) {
21074        <V as VisitAstPath>::visit_params(&mut **self, node, __ast_path)
21075    }
21076
21077    #[inline]
21078    fn visit_paren_expr<'ast: 'r, 'r>(
21079        &mut self,
21080        node: &'ast ParenExpr,
21081        __ast_path: &mut AstNodePath<'r>,
21082    ) {
21083        <V as VisitAstPath>::visit_paren_expr(&mut **self, node, __ast_path)
21084    }
21085
21086    #[inline]
21087    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
21088        <V as VisitAstPath>::visit_pat(&mut **self, node, __ast_path)
21089    }
21090
21091    #[inline]
21092    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
21093        <V as VisitAstPath>::visit_pats(&mut **self, node, __ast_path)
21094    }
21095
21096    #[inline]
21097    fn visit_private_method<'ast: 'r, 'r>(
21098        &mut self,
21099        node: &'ast PrivateMethod,
21100        __ast_path: &mut AstNodePath<'r>,
21101    ) {
21102        <V as VisitAstPath>::visit_private_method(&mut **self, node, __ast_path)
21103    }
21104
21105    #[inline]
21106    fn visit_private_name<'ast: 'r, 'r>(
21107        &mut self,
21108        node: &'ast PrivateName,
21109        __ast_path: &mut AstNodePath<'r>,
21110    ) {
21111        <V as VisitAstPath>::visit_private_name(&mut **self, node, __ast_path)
21112    }
21113
21114    #[inline]
21115    fn visit_private_prop<'ast: 'r, 'r>(
21116        &mut self,
21117        node: &'ast PrivateProp,
21118        __ast_path: &mut AstNodePath<'r>,
21119    ) {
21120        <V as VisitAstPath>::visit_private_prop(&mut **self, node, __ast_path)
21121    }
21122
21123    #[inline]
21124    fn visit_program<'ast: 'r, 'r>(
21125        &mut self,
21126        node: &'ast Program,
21127        __ast_path: &mut AstNodePath<'r>,
21128    ) {
21129        <V as VisitAstPath>::visit_program(&mut **self, node, __ast_path)
21130    }
21131
21132    #[inline]
21133    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
21134        <V as VisitAstPath>::visit_prop(&mut **self, node, __ast_path)
21135    }
21136
21137    #[inline]
21138    fn visit_prop_name<'ast: 'r, 'r>(
21139        &mut self,
21140        node: &'ast PropName,
21141        __ast_path: &mut AstNodePath<'r>,
21142    ) {
21143        <V as VisitAstPath>::visit_prop_name(&mut **self, node, __ast_path)
21144    }
21145
21146    #[inline]
21147    fn visit_prop_or_spread<'ast: 'r, 'r>(
21148        &mut self,
21149        node: &'ast PropOrSpread,
21150        __ast_path: &mut AstNodePath<'r>,
21151    ) {
21152        <V as VisitAstPath>::visit_prop_or_spread(&mut **self, node, __ast_path)
21153    }
21154
21155    #[inline]
21156    fn visit_prop_or_spreads<'ast: 'r, 'r>(
21157        &mut self,
21158        node: &'ast [PropOrSpread],
21159        __ast_path: &mut AstNodePath<'r>,
21160    ) {
21161        <V as VisitAstPath>::visit_prop_or_spreads(&mut **self, node, __ast_path)
21162    }
21163
21164    #[inline]
21165    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
21166        <V as VisitAstPath>::visit_regex(&mut **self, node, __ast_path)
21167    }
21168
21169    #[inline]
21170    fn visit_rest_pat<'ast: 'r, 'r>(
21171        &mut self,
21172        node: &'ast RestPat,
21173        __ast_path: &mut AstNodePath<'r>,
21174    ) {
21175        <V as VisitAstPath>::visit_rest_pat(&mut **self, node, __ast_path)
21176    }
21177
21178    #[inline]
21179    fn visit_return_stmt<'ast: 'r, 'r>(
21180        &mut self,
21181        node: &'ast ReturnStmt,
21182        __ast_path: &mut AstNodePath<'r>,
21183    ) {
21184        <V as VisitAstPath>::visit_return_stmt(&mut **self, node, __ast_path)
21185    }
21186
21187    #[inline]
21188    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
21189        <V as VisitAstPath>::visit_script(&mut **self, node, __ast_path)
21190    }
21191
21192    #[inline]
21193    fn visit_seq_expr<'ast: 'r, 'r>(
21194        &mut self,
21195        node: &'ast SeqExpr,
21196        __ast_path: &mut AstNodePath<'r>,
21197    ) {
21198        <V as VisitAstPath>::visit_seq_expr(&mut **self, node, __ast_path)
21199    }
21200
21201    #[inline]
21202    fn visit_setter_prop<'ast: 'r, 'r>(
21203        &mut self,
21204        node: &'ast SetterProp,
21205        __ast_path: &mut AstNodePath<'r>,
21206    ) {
21207        <V as VisitAstPath>::visit_setter_prop(&mut **self, node, __ast_path)
21208    }
21209
21210    #[inline]
21211    fn visit_simple_assign_target<'ast: 'r, 'r>(
21212        &mut self,
21213        node: &'ast SimpleAssignTarget,
21214        __ast_path: &mut AstNodePath<'r>,
21215    ) {
21216        <V as VisitAstPath>::visit_simple_assign_target(&mut **self, node, __ast_path)
21217    }
21218
21219    #[inline]
21220    fn visit_span<'ast: 'r, 'r>(
21221        &mut self,
21222        node: &'ast swc_common::Span,
21223        __ast_path: &mut AstNodePath<'r>,
21224    ) {
21225        <V as VisitAstPath>::visit_span(&mut **self, node, __ast_path)
21226    }
21227
21228    #[inline]
21229    fn visit_spread_element<'ast: 'r, 'r>(
21230        &mut self,
21231        node: &'ast SpreadElement,
21232        __ast_path: &mut AstNodePath<'r>,
21233    ) {
21234        <V as VisitAstPath>::visit_spread_element(&mut **self, node, __ast_path)
21235    }
21236
21237    #[inline]
21238    fn visit_static_block<'ast: 'r, 'r>(
21239        &mut self,
21240        node: &'ast StaticBlock,
21241        __ast_path: &mut AstNodePath<'r>,
21242    ) {
21243        <V as VisitAstPath>::visit_static_block(&mut **self, node, __ast_path)
21244    }
21245
21246    #[inline]
21247    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
21248        <V as VisitAstPath>::visit_stmt(&mut **self, node, __ast_path)
21249    }
21250
21251    #[inline]
21252    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
21253        <V as VisitAstPath>::visit_stmts(&mut **self, node, __ast_path)
21254    }
21255
21256    #[inline]
21257    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
21258        <V as VisitAstPath>::visit_str(&mut **self, node, __ast_path)
21259    }
21260
21261    #[inline]
21262    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
21263        <V as VisitAstPath>::visit_super(&mut **self, node, __ast_path)
21264    }
21265
21266    #[inline]
21267    fn visit_super_prop<'ast: 'r, 'r>(
21268        &mut self,
21269        node: &'ast SuperProp,
21270        __ast_path: &mut AstNodePath<'r>,
21271    ) {
21272        <V as VisitAstPath>::visit_super_prop(&mut **self, node, __ast_path)
21273    }
21274
21275    #[inline]
21276    fn visit_super_prop_expr<'ast: 'r, 'r>(
21277        &mut self,
21278        node: &'ast SuperPropExpr,
21279        __ast_path: &mut AstNodePath<'r>,
21280    ) {
21281        <V as VisitAstPath>::visit_super_prop_expr(&mut **self, node, __ast_path)
21282    }
21283
21284    #[inline]
21285    fn visit_switch_case<'ast: 'r, 'r>(
21286        &mut self,
21287        node: &'ast SwitchCase,
21288        __ast_path: &mut AstNodePath<'r>,
21289    ) {
21290        <V as VisitAstPath>::visit_switch_case(&mut **self, node, __ast_path)
21291    }
21292
21293    #[inline]
21294    fn visit_switch_cases<'ast: 'r, 'r>(
21295        &mut self,
21296        node: &'ast [SwitchCase],
21297        __ast_path: &mut AstNodePath<'r>,
21298    ) {
21299        <V as VisitAstPath>::visit_switch_cases(&mut **self, node, __ast_path)
21300    }
21301
21302    #[inline]
21303    fn visit_switch_stmt<'ast: 'r, 'r>(
21304        &mut self,
21305        node: &'ast SwitchStmt,
21306        __ast_path: &mut AstNodePath<'r>,
21307    ) {
21308        <V as VisitAstPath>::visit_switch_stmt(&mut **self, node, __ast_path)
21309    }
21310
21311    #[inline]
21312    fn visit_syntax_context<'ast: 'r, 'r>(
21313        &mut self,
21314        node: &'ast swc_common::SyntaxContext,
21315        __ast_path: &mut AstNodePath<'r>,
21316    ) {
21317        <V as VisitAstPath>::visit_syntax_context(&mut **self, node, __ast_path)
21318    }
21319
21320    #[inline]
21321    fn visit_tagged_tpl<'ast: 'r, 'r>(
21322        &mut self,
21323        node: &'ast TaggedTpl,
21324        __ast_path: &mut AstNodePath<'r>,
21325    ) {
21326        <V as VisitAstPath>::visit_tagged_tpl(&mut **self, node, __ast_path)
21327    }
21328
21329    #[inline]
21330    fn visit_this_expr<'ast: 'r, 'r>(
21331        &mut self,
21332        node: &'ast ThisExpr,
21333        __ast_path: &mut AstNodePath<'r>,
21334    ) {
21335        <V as VisitAstPath>::visit_this_expr(&mut **self, node, __ast_path)
21336    }
21337
21338    #[inline]
21339    fn visit_throw_stmt<'ast: 'r, 'r>(
21340        &mut self,
21341        node: &'ast ThrowStmt,
21342        __ast_path: &mut AstNodePath<'r>,
21343    ) {
21344        <V as VisitAstPath>::visit_throw_stmt(&mut **self, node, __ast_path)
21345    }
21346
21347    #[inline]
21348    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
21349        <V as VisitAstPath>::visit_tpl(&mut **self, node, __ast_path)
21350    }
21351
21352    #[inline]
21353    fn visit_tpl_element<'ast: 'r, 'r>(
21354        &mut self,
21355        node: &'ast TplElement,
21356        __ast_path: &mut AstNodePath<'r>,
21357    ) {
21358        <V as VisitAstPath>::visit_tpl_element(&mut **self, node, __ast_path)
21359    }
21360
21361    #[inline]
21362    fn visit_tpl_elements<'ast: 'r, 'r>(
21363        &mut self,
21364        node: &'ast [TplElement],
21365        __ast_path: &mut AstNodePath<'r>,
21366    ) {
21367        <V as VisitAstPath>::visit_tpl_elements(&mut **self, node, __ast_path)
21368    }
21369
21370    #[inline]
21371    fn visit_true_plus_minus<'ast: 'r, 'r>(
21372        &mut self,
21373        node: &'ast TruePlusMinus,
21374        __ast_path: &mut AstNodePath<'r>,
21375    ) {
21376        <V as VisitAstPath>::visit_true_plus_minus(&mut **self, node, __ast_path)
21377    }
21378
21379    #[inline]
21380    fn visit_try_stmt<'ast: 'r, 'r>(
21381        &mut self,
21382        node: &'ast TryStmt,
21383        __ast_path: &mut AstNodePath<'r>,
21384    ) {
21385        <V as VisitAstPath>::visit_try_stmt(&mut **self, node, __ast_path)
21386    }
21387
21388    #[inline]
21389    fn visit_ts_array_type<'ast: 'r, 'r>(
21390        &mut self,
21391        node: &'ast TsArrayType,
21392        __ast_path: &mut AstNodePath<'r>,
21393    ) {
21394        <V as VisitAstPath>::visit_ts_array_type(&mut **self, node, __ast_path)
21395    }
21396
21397    #[inline]
21398    fn visit_ts_as_expr<'ast: 'r, 'r>(
21399        &mut self,
21400        node: &'ast TsAsExpr,
21401        __ast_path: &mut AstNodePath<'r>,
21402    ) {
21403        <V as VisitAstPath>::visit_ts_as_expr(&mut **self, node, __ast_path)
21404    }
21405
21406    #[inline]
21407    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
21408        &mut self,
21409        node: &'ast TsCallSignatureDecl,
21410        __ast_path: &mut AstNodePath<'r>,
21411    ) {
21412        <V as VisitAstPath>::visit_ts_call_signature_decl(&mut **self, node, __ast_path)
21413    }
21414
21415    #[inline]
21416    fn visit_ts_conditional_type<'ast: 'r, 'r>(
21417        &mut self,
21418        node: &'ast TsConditionalType,
21419        __ast_path: &mut AstNodePath<'r>,
21420    ) {
21421        <V as VisitAstPath>::visit_ts_conditional_type(&mut **self, node, __ast_path)
21422    }
21423
21424    #[inline]
21425    fn visit_ts_const_assertion<'ast: 'r, 'r>(
21426        &mut self,
21427        node: &'ast TsConstAssertion,
21428        __ast_path: &mut AstNodePath<'r>,
21429    ) {
21430        <V as VisitAstPath>::visit_ts_const_assertion(&mut **self, node, __ast_path)
21431    }
21432
21433    #[inline]
21434    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
21435        &mut self,
21436        node: &'ast TsConstructSignatureDecl,
21437        __ast_path: &mut AstNodePath<'r>,
21438    ) {
21439        <V as VisitAstPath>::visit_ts_construct_signature_decl(&mut **self, node, __ast_path)
21440    }
21441
21442    #[inline]
21443    fn visit_ts_constructor_type<'ast: 'r, 'r>(
21444        &mut self,
21445        node: &'ast TsConstructorType,
21446        __ast_path: &mut AstNodePath<'r>,
21447    ) {
21448        <V as VisitAstPath>::visit_ts_constructor_type(&mut **self, node, __ast_path)
21449    }
21450
21451    #[inline]
21452    fn visit_ts_entity_name<'ast: 'r, 'r>(
21453        &mut self,
21454        node: &'ast TsEntityName,
21455        __ast_path: &mut AstNodePath<'r>,
21456    ) {
21457        <V as VisitAstPath>::visit_ts_entity_name(&mut **self, node, __ast_path)
21458    }
21459
21460    #[inline]
21461    fn visit_ts_enum_decl<'ast: 'r, 'r>(
21462        &mut self,
21463        node: &'ast TsEnumDecl,
21464        __ast_path: &mut AstNodePath<'r>,
21465    ) {
21466        <V as VisitAstPath>::visit_ts_enum_decl(&mut **self, node, __ast_path)
21467    }
21468
21469    #[inline]
21470    fn visit_ts_enum_member<'ast: 'r, 'r>(
21471        &mut self,
21472        node: &'ast TsEnumMember,
21473        __ast_path: &mut AstNodePath<'r>,
21474    ) {
21475        <V as VisitAstPath>::visit_ts_enum_member(&mut **self, node, __ast_path)
21476    }
21477
21478    #[inline]
21479    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
21480        &mut self,
21481        node: &'ast TsEnumMemberId,
21482        __ast_path: &mut AstNodePath<'r>,
21483    ) {
21484        <V as VisitAstPath>::visit_ts_enum_member_id(&mut **self, node, __ast_path)
21485    }
21486
21487    #[inline]
21488    fn visit_ts_enum_members<'ast: 'r, 'r>(
21489        &mut self,
21490        node: &'ast [TsEnumMember],
21491        __ast_path: &mut AstNodePath<'r>,
21492    ) {
21493        <V as VisitAstPath>::visit_ts_enum_members(&mut **self, node, __ast_path)
21494    }
21495
21496    #[inline]
21497    fn visit_ts_export_assignment<'ast: 'r, 'r>(
21498        &mut self,
21499        node: &'ast TsExportAssignment,
21500        __ast_path: &mut AstNodePath<'r>,
21501    ) {
21502        <V as VisitAstPath>::visit_ts_export_assignment(&mut **self, node, __ast_path)
21503    }
21504
21505    #[inline]
21506    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
21507        &mut self,
21508        node: &'ast TsExprWithTypeArgs,
21509        __ast_path: &mut AstNodePath<'r>,
21510    ) {
21511        <V as VisitAstPath>::visit_ts_expr_with_type_args(&mut **self, node, __ast_path)
21512    }
21513
21514    #[inline]
21515    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
21516        &mut self,
21517        node: &'ast [TsExprWithTypeArgs],
21518        __ast_path: &mut AstNodePath<'r>,
21519    ) {
21520        <V as VisitAstPath>::visit_ts_expr_with_type_argss(&mut **self, node, __ast_path)
21521    }
21522
21523    #[inline]
21524    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
21525        &mut self,
21526        node: &'ast TsExternalModuleRef,
21527        __ast_path: &mut AstNodePath<'r>,
21528    ) {
21529        <V as VisitAstPath>::visit_ts_external_module_ref(&mut **self, node, __ast_path)
21530    }
21531
21532    #[inline]
21533    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
21534        &mut self,
21535        node: &'ast TsFnOrConstructorType,
21536        __ast_path: &mut AstNodePath<'r>,
21537    ) {
21538        <V as VisitAstPath>::visit_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
21539    }
21540
21541    #[inline]
21542    fn visit_ts_fn_param<'ast: 'r, 'r>(
21543        &mut self,
21544        node: &'ast TsFnParam,
21545        __ast_path: &mut AstNodePath<'r>,
21546    ) {
21547        <V as VisitAstPath>::visit_ts_fn_param(&mut **self, node, __ast_path)
21548    }
21549
21550    #[inline]
21551    fn visit_ts_fn_params<'ast: 'r, 'r>(
21552        &mut self,
21553        node: &'ast [TsFnParam],
21554        __ast_path: &mut AstNodePath<'r>,
21555    ) {
21556        <V as VisitAstPath>::visit_ts_fn_params(&mut **self, node, __ast_path)
21557    }
21558
21559    #[inline]
21560    fn visit_ts_fn_type<'ast: 'r, 'r>(
21561        &mut self,
21562        node: &'ast TsFnType,
21563        __ast_path: &mut AstNodePath<'r>,
21564    ) {
21565        <V as VisitAstPath>::visit_ts_fn_type(&mut **self, node, __ast_path)
21566    }
21567
21568    #[inline]
21569    fn visit_ts_getter_signature<'ast: 'r, 'r>(
21570        &mut self,
21571        node: &'ast TsGetterSignature,
21572        __ast_path: &mut AstNodePath<'r>,
21573    ) {
21574        <V as VisitAstPath>::visit_ts_getter_signature(&mut **self, node, __ast_path)
21575    }
21576
21577    #[inline]
21578    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
21579        &mut self,
21580        node: &'ast TsImportEqualsDecl,
21581        __ast_path: &mut AstNodePath<'r>,
21582    ) {
21583        <V as VisitAstPath>::visit_ts_import_equals_decl(&mut **self, node, __ast_path)
21584    }
21585
21586    #[inline]
21587    fn visit_ts_import_type<'ast: 'r, 'r>(
21588        &mut self,
21589        node: &'ast TsImportType,
21590        __ast_path: &mut AstNodePath<'r>,
21591    ) {
21592        <V as VisitAstPath>::visit_ts_import_type(&mut **self, node, __ast_path)
21593    }
21594
21595    #[inline]
21596    fn visit_ts_index_signature<'ast: 'r, 'r>(
21597        &mut self,
21598        node: &'ast TsIndexSignature,
21599        __ast_path: &mut AstNodePath<'r>,
21600    ) {
21601        <V as VisitAstPath>::visit_ts_index_signature(&mut **self, node, __ast_path)
21602    }
21603
21604    #[inline]
21605    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
21606        &mut self,
21607        node: &'ast TsIndexedAccessType,
21608        __ast_path: &mut AstNodePath<'r>,
21609    ) {
21610        <V as VisitAstPath>::visit_ts_indexed_access_type(&mut **self, node, __ast_path)
21611    }
21612
21613    #[inline]
21614    fn visit_ts_infer_type<'ast: 'r, 'r>(
21615        &mut self,
21616        node: &'ast TsInferType,
21617        __ast_path: &mut AstNodePath<'r>,
21618    ) {
21619        <V as VisitAstPath>::visit_ts_infer_type(&mut **self, node, __ast_path)
21620    }
21621
21622    #[inline]
21623    fn visit_ts_instantiation<'ast: 'r, 'r>(
21624        &mut self,
21625        node: &'ast TsInstantiation,
21626        __ast_path: &mut AstNodePath<'r>,
21627    ) {
21628        <V as VisitAstPath>::visit_ts_instantiation(&mut **self, node, __ast_path)
21629    }
21630
21631    #[inline]
21632    fn visit_ts_interface_body<'ast: 'r, 'r>(
21633        &mut self,
21634        node: &'ast TsInterfaceBody,
21635        __ast_path: &mut AstNodePath<'r>,
21636    ) {
21637        <V as VisitAstPath>::visit_ts_interface_body(&mut **self, node, __ast_path)
21638    }
21639
21640    #[inline]
21641    fn visit_ts_interface_decl<'ast: 'r, 'r>(
21642        &mut self,
21643        node: &'ast TsInterfaceDecl,
21644        __ast_path: &mut AstNodePath<'r>,
21645    ) {
21646        <V as VisitAstPath>::visit_ts_interface_decl(&mut **self, node, __ast_path)
21647    }
21648
21649    #[inline]
21650    fn visit_ts_intersection_type<'ast: 'r, 'r>(
21651        &mut self,
21652        node: &'ast TsIntersectionType,
21653        __ast_path: &mut AstNodePath<'r>,
21654    ) {
21655        <V as VisitAstPath>::visit_ts_intersection_type(&mut **self, node, __ast_path)
21656    }
21657
21658    #[inline]
21659    fn visit_ts_keyword_type<'ast: 'r, 'r>(
21660        &mut self,
21661        node: &'ast TsKeywordType,
21662        __ast_path: &mut AstNodePath<'r>,
21663    ) {
21664        <V as VisitAstPath>::visit_ts_keyword_type(&mut **self, node, __ast_path)
21665    }
21666
21667    #[inline]
21668    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
21669        &mut self,
21670        node: &'ast TsKeywordTypeKind,
21671        __ast_path: &mut AstNodePath<'r>,
21672    ) {
21673        <V as VisitAstPath>::visit_ts_keyword_type_kind(&mut **self, node, __ast_path)
21674    }
21675
21676    #[inline]
21677    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
21678        <V as VisitAstPath>::visit_ts_lit(&mut **self, node, __ast_path)
21679    }
21680
21681    #[inline]
21682    fn visit_ts_lit_type<'ast: 'r, 'r>(
21683        &mut self,
21684        node: &'ast TsLitType,
21685        __ast_path: &mut AstNodePath<'r>,
21686    ) {
21687        <V as VisitAstPath>::visit_ts_lit_type(&mut **self, node, __ast_path)
21688    }
21689
21690    #[inline]
21691    fn visit_ts_mapped_type<'ast: 'r, 'r>(
21692        &mut self,
21693        node: &'ast TsMappedType,
21694        __ast_path: &mut AstNodePath<'r>,
21695    ) {
21696        <V as VisitAstPath>::visit_ts_mapped_type(&mut **self, node, __ast_path)
21697    }
21698
21699    #[inline]
21700    fn visit_ts_method_signature<'ast: 'r, 'r>(
21701        &mut self,
21702        node: &'ast TsMethodSignature,
21703        __ast_path: &mut AstNodePath<'r>,
21704    ) {
21705        <V as VisitAstPath>::visit_ts_method_signature(&mut **self, node, __ast_path)
21706    }
21707
21708    #[inline]
21709    fn visit_ts_module_block<'ast: 'r, 'r>(
21710        &mut self,
21711        node: &'ast TsModuleBlock,
21712        __ast_path: &mut AstNodePath<'r>,
21713    ) {
21714        <V as VisitAstPath>::visit_ts_module_block(&mut **self, node, __ast_path)
21715    }
21716
21717    #[inline]
21718    fn visit_ts_module_decl<'ast: 'r, 'r>(
21719        &mut self,
21720        node: &'ast TsModuleDecl,
21721        __ast_path: &mut AstNodePath<'r>,
21722    ) {
21723        <V as VisitAstPath>::visit_ts_module_decl(&mut **self, node, __ast_path)
21724    }
21725
21726    #[inline]
21727    fn visit_ts_module_name<'ast: 'r, 'r>(
21728        &mut self,
21729        node: &'ast TsModuleName,
21730        __ast_path: &mut AstNodePath<'r>,
21731    ) {
21732        <V as VisitAstPath>::visit_ts_module_name(&mut **self, node, __ast_path)
21733    }
21734
21735    #[inline]
21736    fn visit_ts_module_ref<'ast: 'r, 'r>(
21737        &mut self,
21738        node: &'ast TsModuleRef,
21739        __ast_path: &mut AstNodePath<'r>,
21740    ) {
21741        <V as VisitAstPath>::visit_ts_module_ref(&mut **self, node, __ast_path)
21742    }
21743
21744    #[inline]
21745    fn visit_ts_namespace_body<'ast: 'r, 'r>(
21746        &mut self,
21747        node: &'ast TsNamespaceBody,
21748        __ast_path: &mut AstNodePath<'r>,
21749    ) {
21750        <V as VisitAstPath>::visit_ts_namespace_body(&mut **self, node, __ast_path)
21751    }
21752
21753    #[inline]
21754    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
21755        &mut self,
21756        node: &'ast TsNamespaceDecl,
21757        __ast_path: &mut AstNodePath<'r>,
21758    ) {
21759        <V as VisitAstPath>::visit_ts_namespace_decl(&mut **self, node, __ast_path)
21760    }
21761
21762    #[inline]
21763    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
21764        &mut self,
21765        node: &'ast TsNamespaceExportDecl,
21766        __ast_path: &mut AstNodePath<'r>,
21767    ) {
21768        <V as VisitAstPath>::visit_ts_namespace_export_decl(&mut **self, node, __ast_path)
21769    }
21770
21771    #[inline]
21772    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
21773        &mut self,
21774        node: &'ast TsNonNullExpr,
21775        __ast_path: &mut AstNodePath<'r>,
21776    ) {
21777        <V as VisitAstPath>::visit_ts_non_null_expr(&mut **self, node, __ast_path)
21778    }
21779
21780    #[inline]
21781    fn visit_ts_optional_type<'ast: 'r, 'r>(
21782        &mut self,
21783        node: &'ast TsOptionalType,
21784        __ast_path: &mut AstNodePath<'r>,
21785    ) {
21786        <V as VisitAstPath>::visit_ts_optional_type(&mut **self, node, __ast_path)
21787    }
21788
21789    #[inline]
21790    fn visit_ts_param_prop<'ast: 'r, 'r>(
21791        &mut self,
21792        node: &'ast TsParamProp,
21793        __ast_path: &mut AstNodePath<'r>,
21794    ) {
21795        <V as VisitAstPath>::visit_ts_param_prop(&mut **self, node, __ast_path)
21796    }
21797
21798    #[inline]
21799    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
21800        &mut self,
21801        node: &'ast TsParamPropParam,
21802        __ast_path: &mut AstNodePath<'r>,
21803    ) {
21804        <V as VisitAstPath>::visit_ts_param_prop_param(&mut **self, node, __ast_path)
21805    }
21806
21807    #[inline]
21808    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
21809        &mut self,
21810        node: &'ast TsParenthesizedType,
21811        __ast_path: &mut AstNodePath<'r>,
21812    ) {
21813        <V as VisitAstPath>::visit_ts_parenthesized_type(&mut **self, node, __ast_path)
21814    }
21815
21816    #[inline]
21817    fn visit_ts_property_signature<'ast: 'r, 'r>(
21818        &mut self,
21819        node: &'ast TsPropertySignature,
21820        __ast_path: &mut AstNodePath<'r>,
21821    ) {
21822        <V as VisitAstPath>::visit_ts_property_signature(&mut **self, node, __ast_path)
21823    }
21824
21825    #[inline]
21826    fn visit_ts_qualified_name<'ast: 'r, 'r>(
21827        &mut self,
21828        node: &'ast TsQualifiedName,
21829        __ast_path: &mut AstNodePath<'r>,
21830    ) {
21831        <V as VisitAstPath>::visit_ts_qualified_name(&mut **self, node, __ast_path)
21832    }
21833
21834    #[inline]
21835    fn visit_ts_rest_type<'ast: 'r, 'r>(
21836        &mut self,
21837        node: &'ast TsRestType,
21838        __ast_path: &mut AstNodePath<'r>,
21839    ) {
21840        <V as VisitAstPath>::visit_ts_rest_type(&mut **self, node, __ast_path)
21841    }
21842
21843    #[inline]
21844    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
21845        &mut self,
21846        node: &'ast TsSatisfiesExpr,
21847        __ast_path: &mut AstNodePath<'r>,
21848    ) {
21849        <V as VisitAstPath>::visit_ts_satisfies_expr(&mut **self, node, __ast_path)
21850    }
21851
21852    #[inline]
21853    fn visit_ts_setter_signature<'ast: 'r, 'r>(
21854        &mut self,
21855        node: &'ast TsSetterSignature,
21856        __ast_path: &mut AstNodePath<'r>,
21857    ) {
21858        <V as VisitAstPath>::visit_ts_setter_signature(&mut **self, node, __ast_path)
21859    }
21860
21861    #[inline]
21862    fn visit_ts_this_type<'ast: 'r, 'r>(
21863        &mut self,
21864        node: &'ast TsThisType,
21865        __ast_path: &mut AstNodePath<'r>,
21866    ) {
21867        <V as VisitAstPath>::visit_ts_this_type(&mut **self, node, __ast_path)
21868    }
21869
21870    #[inline]
21871    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
21872        &mut self,
21873        node: &'ast TsThisTypeOrIdent,
21874        __ast_path: &mut AstNodePath<'r>,
21875    ) {
21876        <V as VisitAstPath>::visit_ts_this_type_or_ident(&mut **self, node, __ast_path)
21877    }
21878
21879    #[inline]
21880    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
21881        &mut self,
21882        node: &'ast TsTplLitType,
21883        __ast_path: &mut AstNodePath<'r>,
21884    ) {
21885        <V as VisitAstPath>::visit_ts_tpl_lit_type(&mut **self, node, __ast_path)
21886    }
21887
21888    #[inline]
21889    fn visit_ts_tuple_element<'ast: 'r, 'r>(
21890        &mut self,
21891        node: &'ast TsTupleElement,
21892        __ast_path: &mut AstNodePath<'r>,
21893    ) {
21894        <V as VisitAstPath>::visit_ts_tuple_element(&mut **self, node, __ast_path)
21895    }
21896
21897    #[inline]
21898    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
21899        &mut self,
21900        node: &'ast [TsTupleElement],
21901        __ast_path: &mut AstNodePath<'r>,
21902    ) {
21903        <V as VisitAstPath>::visit_ts_tuple_elements(&mut **self, node, __ast_path)
21904    }
21905
21906    #[inline]
21907    fn visit_ts_tuple_type<'ast: 'r, 'r>(
21908        &mut self,
21909        node: &'ast TsTupleType,
21910        __ast_path: &mut AstNodePath<'r>,
21911    ) {
21912        <V as VisitAstPath>::visit_ts_tuple_type(&mut **self, node, __ast_path)
21913    }
21914
21915    #[inline]
21916    fn visit_ts_type<'ast: 'r, 'r>(
21917        &mut self,
21918        node: &'ast TsType,
21919        __ast_path: &mut AstNodePath<'r>,
21920    ) {
21921        <V as VisitAstPath>::visit_ts_type(&mut **self, node, __ast_path)
21922    }
21923
21924    #[inline]
21925    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
21926        &mut self,
21927        node: &'ast TsTypeAliasDecl,
21928        __ast_path: &mut AstNodePath<'r>,
21929    ) {
21930        <V as VisitAstPath>::visit_ts_type_alias_decl(&mut **self, node, __ast_path)
21931    }
21932
21933    #[inline]
21934    fn visit_ts_type_ann<'ast: 'r, 'r>(
21935        &mut self,
21936        node: &'ast TsTypeAnn,
21937        __ast_path: &mut AstNodePath<'r>,
21938    ) {
21939        <V as VisitAstPath>::visit_ts_type_ann(&mut **self, node, __ast_path)
21940    }
21941
21942    #[inline]
21943    fn visit_ts_type_assertion<'ast: 'r, 'r>(
21944        &mut self,
21945        node: &'ast TsTypeAssertion,
21946        __ast_path: &mut AstNodePath<'r>,
21947    ) {
21948        <V as VisitAstPath>::visit_ts_type_assertion(&mut **self, node, __ast_path)
21949    }
21950
21951    #[inline]
21952    fn visit_ts_type_element<'ast: 'r, 'r>(
21953        &mut self,
21954        node: &'ast TsTypeElement,
21955        __ast_path: &mut AstNodePath<'r>,
21956    ) {
21957        <V as VisitAstPath>::visit_ts_type_element(&mut **self, node, __ast_path)
21958    }
21959
21960    #[inline]
21961    fn visit_ts_type_elements<'ast: 'r, 'r>(
21962        &mut self,
21963        node: &'ast [TsTypeElement],
21964        __ast_path: &mut AstNodePath<'r>,
21965    ) {
21966        <V as VisitAstPath>::visit_ts_type_elements(&mut **self, node, __ast_path)
21967    }
21968
21969    #[inline]
21970    fn visit_ts_type_lit<'ast: 'r, 'r>(
21971        &mut self,
21972        node: &'ast TsTypeLit,
21973        __ast_path: &mut AstNodePath<'r>,
21974    ) {
21975        <V as VisitAstPath>::visit_ts_type_lit(&mut **self, node, __ast_path)
21976    }
21977
21978    #[inline]
21979    fn visit_ts_type_operator<'ast: 'r, 'r>(
21980        &mut self,
21981        node: &'ast TsTypeOperator,
21982        __ast_path: &mut AstNodePath<'r>,
21983    ) {
21984        <V as VisitAstPath>::visit_ts_type_operator(&mut **self, node, __ast_path)
21985    }
21986
21987    #[inline]
21988    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
21989        &mut self,
21990        node: &'ast TsTypeOperatorOp,
21991        __ast_path: &mut AstNodePath<'r>,
21992    ) {
21993        <V as VisitAstPath>::visit_ts_type_operator_op(&mut **self, node, __ast_path)
21994    }
21995
21996    #[inline]
21997    fn visit_ts_type_param<'ast: 'r, 'r>(
21998        &mut self,
21999        node: &'ast TsTypeParam,
22000        __ast_path: &mut AstNodePath<'r>,
22001    ) {
22002        <V as VisitAstPath>::visit_ts_type_param(&mut **self, node, __ast_path)
22003    }
22004
22005    #[inline]
22006    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
22007        &mut self,
22008        node: &'ast TsTypeParamDecl,
22009        __ast_path: &mut AstNodePath<'r>,
22010    ) {
22011        <V as VisitAstPath>::visit_ts_type_param_decl(&mut **self, node, __ast_path)
22012    }
22013
22014    #[inline]
22015    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
22016        &mut self,
22017        node: &'ast TsTypeParamInstantiation,
22018        __ast_path: &mut AstNodePath<'r>,
22019    ) {
22020        <V as VisitAstPath>::visit_ts_type_param_instantiation(&mut **self, node, __ast_path)
22021    }
22022
22023    #[inline]
22024    fn visit_ts_type_params<'ast: 'r, 'r>(
22025        &mut self,
22026        node: &'ast [TsTypeParam],
22027        __ast_path: &mut AstNodePath<'r>,
22028    ) {
22029        <V as VisitAstPath>::visit_ts_type_params(&mut **self, node, __ast_path)
22030    }
22031
22032    #[inline]
22033    fn visit_ts_type_predicate<'ast: 'r, 'r>(
22034        &mut self,
22035        node: &'ast TsTypePredicate,
22036        __ast_path: &mut AstNodePath<'r>,
22037    ) {
22038        <V as VisitAstPath>::visit_ts_type_predicate(&mut **self, node, __ast_path)
22039    }
22040
22041    #[inline]
22042    fn visit_ts_type_query<'ast: 'r, 'r>(
22043        &mut self,
22044        node: &'ast TsTypeQuery,
22045        __ast_path: &mut AstNodePath<'r>,
22046    ) {
22047        <V as VisitAstPath>::visit_ts_type_query(&mut **self, node, __ast_path)
22048    }
22049
22050    #[inline]
22051    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
22052        &mut self,
22053        node: &'ast TsTypeQueryExpr,
22054        __ast_path: &mut AstNodePath<'r>,
22055    ) {
22056        <V as VisitAstPath>::visit_ts_type_query_expr(&mut **self, node, __ast_path)
22057    }
22058
22059    #[inline]
22060    fn visit_ts_type_ref<'ast: 'r, 'r>(
22061        &mut self,
22062        node: &'ast TsTypeRef,
22063        __ast_path: &mut AstNodePath<'r>,
22064    ) {
22065        <V as VisitAstPath>::visit_ts_type_ref(&mut **self, node, __ast_path)
22066    }
22067
22068    #[inline]
22069    fn visit_ts_types<'ast: 'r, 'r>(
22070        &mut self,
22071        node: &'ast [Box<TsType>],
22072        __ast_path: &mut AstNodePath<'r>,
22073    ) {
22074        <V as VisitAstPath>::visit_ts_types(&mut **self, node, __ast_path)
22075    }
22076
22077    #[inline]
22078    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
22079        &mut self,
22080        node: &'ast TsUnionOrIntersectionType,
22081        __ast_path: &mut AstNodePath<'r>,
22082    ) {
22083        <V as VisitAstPath>::visit_ts_union_or_intersection_type(&mut **self, node, __ast_path)
22084    }
22085
22086    #[inline]
22087    fn visit_ts_union_type<'ast: 'r, 'r>(
22088        &mut self,
22089        node: &'ast TsUnionType,
22090        __ast_path: &mut AstNodePath<'r>,
22091    ) {
22092        <V as VisitAstPath>::visit_ts_union_type(&mut **self, node, __ast_path)
22093    }
22094
22095    #[inline]
22096    fn visit_unary_expr<'ast: 'r, 'r>(
22097        &mut self,
22098        node: &'ast UnaryExpr,
22099        __ast_path: &mut AstNodePath<'r>,
22100    ) {
22101        <V as VisitAstPath>::visit_unary_expr(&mut **self, node, __ast_path)
22102    }
22103
22104    #[inline]
22105    fn visit_unary_op<'ast: 'r, 'r>(
22106        &mut self,
22107        node: &'ast UnaryOp,
22108        __ast_path: &mut AstNodePath<'r>,
22109    ) {
22110        <V as VisitAstPath>::visit_unary_op(&mut **self, node, __ast_path)
22111    }
22112
22113    #[inline]
22114    fn visit_update_expr<'ast: 'r, 'r>(
22115        &mut self,
22116        node: &'ast UpdateExpr,
22117        __ast_path: &mut AstNodePath<'r>,
22118    ) {
22119        <V as VisitAstPath>::visit_update_expr(&mut **self, node, __ast_path)
22120    }
22121
22122    #[inline]
22123    fn visit_update_op<'ast: 'r, 'r>(
22124        &mut self,
22125        node: &'ast UpdateOp,
22126        __ast_path: &mut AstNodePath<'r>,
22127    ) {
22128        <V as VisitAstPath>::visit_update_op(&mut **self, node, __ast_path)
22129    }
22130
22131    #[inline]
22132    fn visit_using_decl<'ast: 'r, 'r>(
22133        &mut self,
22134        node: &'ast UsingDecl,
22135        __ast_path: &mut AstNodePath<'r>,
22136    ) {
22137        <V as VisitAstPath>::visit_using_decl(&mut **self, node, __ast_path)
22138    }
22139
22140    #[inline]
22141    fn visit_var_decl<'ast: 'r, 'r>(
22142        &mut self,
22143        node: &'ast VarDecl,
22144        __ast_path: &mut AstNodePath<'r>,
22145    ) {
22146        <V as VisitAstPath>::visit_var_decl(&mut **self, node, __ast_path)
22147    }
22148
22149    #[inline]
22150    fn visit_var_decl_kind<'ast: 'r, 'r>(
22151        &mut self,
22152        node: &'ast VarDeclKind,
22153        __ast_path: &mut AstNodePath<'r>,
22154    ) {
22155        <V as VisitAstPath>::visit_var_decl_kind(&mut **self, node, __ast_path)
22156    }
22157
22158    #[inline]
22159    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
22160        &mut self,
22161        node: &'ast VarDeclOrExpr,
22162        __ast_path: &mut AstNodePath<'r>,
22163    ) {
22164        <V as VisitAstPath>::visit_var_decl_or_expr(&mut **self, node, __ast_path)
22165    }
22166
22167    #[inline]
22168    fn visit_var_declarator<'ast: 'r, 'r>(
22169        &mut self,
22170        node: &'ast VarDeclarator,
22171        __ast_path: &mut AstNodePath<'r>,
22172    ) {
22173        <V as VisitAstPath>::visit_var_declarator(&mut **self, node, __ast_path)
22174    }
22175
22176    #[inline]
22177    fn visit_var_declarators<'ast: 'r, 'r>(
22178        &mut self,
22179        node: &'ast [VarDeclarator],
22180        __ast_path: &mut AstNodePath<'r>,
22181    ) {
22182        <V as VisitAstPath>::visit_var_declarators(&mut **self, node, __ast_path)
22183    }
22184
22185    #[inline]
22186    fn visit_while_stmt<'ast: 'r, 'r>(
22187        &mut self,
22188        node: &'ast WhileStmt,
22189        __ast_path: &mut AstNodePath<'r>,
22190    ) {
22191        <V as VisitAstPath>::visit_while_stmt(&mut **self, node, __ast_path)
22192    }
22193
22194    #[inline]
22195    fn visit_with_stmt<'ast: 'r, 'r>(
22196        &mut self,
22197        node: &'ast WithStmt,
22198        __ast_path: &mut AstNodePath<'r>,
22199    ) {
22200        <V as VisitAstPath>::visit_with_stmt(&mut **self, node, __ast_path)
22201    }
22202
22203    #[inline]
22204    fn visit_yield_expr<'ast: 'r, 'r>(
22205        &mut self,
22206        node: &'ast YieldExpr,
22207        __ast_path: &mut AstNodePath<'r>,
22208    ) {
22209        <V as VisitAstPath>::visit_yield_expr(&mut **self, node, __ast_path)
22210    }
22211}
22212#[cfg(any(docsrs, feature = "path"))]
22213#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
22214impl<V> VisitAstPath for Box<V>
22215where
22216    V: ?Sized + VisitAstPath,
22217{
22218    #[inline]
22219    fn visit_accessibility<'ast: 'r, 'r>(
22220        &mut self,
22221        node: &'ast Accessibility,
22222        __ast_path: &mut AstNodePath<'r>,
22223    ) {
22224        <V as VisitAstPath>::visit_accessibility(&mut **self, node, __ast_path)
22225    }
22226
22227    #[inline]
22228    fn visit_array_lit<'ast: 'r, 'r>(
22229        &mut self,
22230        node: &'ast ArrayLit,
22231        __ast_path: &mut AstNodePath<'r>,
22232    ) {
22233        <V as VisitAstPath>::visit_array_lit(&mut **self, node, __ast_path)
22234    }
22235
22236    #[inline]
22237    fn visit_array_pat<'ast: 'r, 'r>(
22238        &mut self,
22239        node: &'ast ArrayPat,
22240        __ast_path: &mut AstNodePath<'r>,
22241    ) {
22242        <V as VisitAstPath>::visit_array_pat(&mut **self, node, __ast_path)
22243    }
22244
22245    #[inline]
22246    fn visit_arrow_expr<'ast: 'r, 'r>(
22247        &mut self,
22248        node: &'ast ArrowExpr,
22249        __ast_path: &mut AstNodePath<'r>,
22250    ) {
22251        <V as VisitAstPath>::visit_arrow_expr(&mut **self, node, __ast_path)
22252    }
22253
22254    #[inline]
22255    fn visit_assign_expr<'ast: 'r, 'r>(
22256        &mut self,
22257        node: &'ast AssignExpr,
22258        __ast_path: &mut AstNodePath<'r>,
22259    ) {
22260        <V as VisitAstPath>::visit_assign_expr(&mut **self, node, __ast_path)
22261    }
22262
22263    #[inline]
22264    fn visit_assign_op<'ast: 'r, 'r>(
22265        &mut self,
22266        node: &'ast AssignOp,
22267        __ast_path: &mut AstNodePath<'r>,
22268    ) {
22269        <V as VisitAstPath>::visit_assign_op(&mut **self, node, __ast_path)
22270    }
22271
22272    #[inline]
22273    fn visit_assign_pat<'ast: 'r, 'r>(
22274        &mut self,
22275        node: &'ast AssignPat,
22276        __ast_path: &mut AstNodePath<'r>,
22277    ) {
22278        <V as VisitAstPath>::visit_assign_pat(&mut **self, node, __ast_path)
22279    }
22280
22281    #[inline]
22282    fn visit_assign_pat_prop<'ast: 'r, 'r>(
22283        &mut self,
22284        node: &'ast AssignPatProp,
22285        __ast_path: &mut AstNodePath<'r>,
22286    ) {
22287        <V as VisitAstPath>::visit_assign_pat_prop(&mut **self, node, __ast_path)
22288    }
22289
22290    #[inline]
22291    fn visit_assign_prop<'ast: 'r, 'r>(
22292        &mut self,
22293        node: &'ast AssignProp,
22294        __ast_path: &mut AstNodePath<'r>,
22295    ) {
22296        <V as VisitAstPath>::visit_assign_prop(&mut **self, node, __ast_path)
22297    }
22298
22299    #[inline]
22300    fn visit_assign_target<'ast: 'r, 'r>(
22301        &mut self,
22302        node: &'ast AssignTarget,
22303        __ast_path: &mut AstNodePath<'r>,
22304    ) {
22305        <V as VisitAstPath>::visit_assign_target(&mut **self, node, __ast_path)
22306    }
22307
22308    #[inline]
22309    fn visit_assign_target_pat<'ast: 'r, 'r>(
22310        &mut self,
22311        node: &'ast AssignTargetPat,
22312        __ast_path: &mut AstNodePath<'r>,
22313    ) {
22314        <V as VisitAstPath>::visit_assign_target_pat(&mut **self, node, __ast_path)
22315    }
22316
22317    #[inline]
22318    fn visit_atom<'ast: 'r, 'r>(
22319        &mut self,
22320        node: &'ast swc_atoms::Atom,
22321        __ast_path: &mut AstNodePath<'r>,
22322    ) {
22323        <V as VisitAstPath>::visit_atom(&mut **self, node, __ast_path)
22324    }
22325
22326    #[inline]
22327    fn visit_auto_accessor<'ast: 'r, 'r>(
22328        &mut self,
22329        node: &'ast AutoAccessor,
22330        __ast_path: &mut AstNodePath<'r>,
22331    ) {
22332        <V as VisitAstPath>::visit_auto_accessor(&mut **self, node, __ast_path)
22333    }
22334
22335    #[inline]
22336    fn visit_await_expr<'ast: 'r, 'r>(
22337        &mut self,
22338        node: &'ast AwaitExpr,
22339        __ast_path: &mut AstNodePath<'r>,
22340    ) {
22341        <V as VisitAstPath>::visit_await_expr(&mut **self, node, __ast_path)
22342    }
22343
22344    #[inline]
22345    fn visit_big_int<'ast: 'r, 'r>(
22346        &mut self,
22347        node: &'ast BigInt,
22348        __ast_path: &mut AstNodePath<'r>,
22349    ) {
22350        <V as VisitAstPath>::visit_big_int(&mut **self, node, __ast_path)
22351    }
22352
22353    #[inline]
22354    fn visit_big_int_value<'ast: 'r, 'r>(
22355        &mut self,
22356        node: &'ast BigIntValue,
22357        __ast_path: &mut AstNodePath<'r>,
22358    ) {
22359        <V as VisitAstPath>::visit_big_int_value(&mut **self, node, __ast_path)
22360    }
22361
22362    #[inline]
22363    fn visit_bin_expr<'ast: 'r, 'r>(
22364        &mut self,
22365        node: &'ast BinExpr,
22366        __ast_path: &mut AstNodePath<'r>,
22367    ) {
22368        <V as VisitAstPath>::visit_bin_expr(&mut **self, node, __ast_path)
22369    }
22370
22371    #[inline]
22372    fn visit_binary_op<'ast: 'r, 'r>(
22373        &mut self,
22374        node: &'ast BinaryOp,
22375        __ast_path: &mut AstNodePath<'r>,
22376    ) {
22377        <V as VisitAstPath>::visit_binary_op(&mut **self, node, __ast_path)
22378    }
22379
22380    #[inline]
22381    fn visit_binding_ident<'ast: 'r, 'r>(
22382        &mut self,
22383        node: &'ast BindingIdent,
22384        __ast_path: &mut AstNodePath<'r>,
22385    ) {
22386        <V as VisitAstPath>::visit_binding_ident(&mut **self, node, __ast_path)
22387    }
22388
22389    #[inline]
22390    fn visit_block_stmt<'ast: 'r, 'r>(
22391        &mut self,
22392        node: &'ast BlockStmt,
22393        __ast_path: &mut AstNodePath<'r>,
22394    ) {
22395        <V as VisitAstPath>::visit_block_stmt(&mut **self, node, __ast_path)
22396    }
22397
22398    #[inline]
22399    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
22400        &mut self,
22401        node: &'ast BlockStmtOrExpr,
22402        __ast_path: &mut AstNodePath<'r>,
22403    ) {
22404        <V as VisitAstPath>::visit_block_stmt_or_expr(&mut **self, node, __ast_path)
22405    }
22406
22407    #[inline]
22408    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
22409        <V as VisitAstPath>::visit_bool(&mut **self, node, __ast_path)
22410    }
22411
22412    #[inline]
22413    fn visit_break_stmt<'ast: 'r, 'r>(
22414        &mut self,
22415        node: &'ast BreakStmt,
22416        __ast_path: &mut AstNodePath<'r>,
22417    ) {
22418        <V as VisitAstPath>::visit_break_stmt(&mut **self, node, __ast_path)
22419    }
22420
22421    #[inline]
22422    fn visit_call_expr<'ast: 'r, 'r>(
22423        &mut self,
22424        node: &'ast CallExpr,
22425        __ast_path: &mut AstNodePath<'r>,
22426    ) {
22427        <V as VisitAstPath>::visit_call_expr(&mut **self, node, __ast_path)
22428    }
22429
22430    #[inline]
22431    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
22432        <V as VisitAstPath>::visit_callee(&mut **self, node, __ast_path)
22433    }
22434
22435    #[inline]
22436    fn visit_catch_clause<'ast: 'r, 'r>(
22437        &mut self,
22438        node: &'ast CatchClause,
22439        __ast_path: &mut AstNodePath<'r>,
22440    ) {
22441        <V as VisitAstPath>::visit_catch_clause(&mut **self, node, __ast_path)
22442    }
22443
22444    #[inline]
22445    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
22446        <V as VisitAstPath>::visit_class(&mut **self, node, __ast_path)
22447    }
22448
22449    #[inline]
22450    fn visit_class_decl<'ast: 'r, 'r>(
22451        &mut self,
22452        node: &'ast ClassDecl,
22453        __ast_path: &mut AstNodePath<'r>,
22454    ) {
22455        <V as VisitAstPath>::visit_class_decl(&mut **self, node, __ast_path)
22456    }
22457
22458    #[inline]
22459    fn visit_class_expr<'ast: 'r, 'r>(
22460        &mut self,
22461        node: &'ast ClassExpr,
22462        __ast_path: &mut AstNodePath<'r>,
22463    ) {
22464        <V as VisitAstPath>::visit_class_expr(&mut **self, node, __ast_path)
22465    }
22466
22467    #[inline]
22468    fn visit_class_member<'ast: 'r, 'r>(
22469        &mut self,
22470        node: &'ast ClassMember,
22471        __ast_path: &mut AstNodePath<'r>,
22472    ) {
22473        <V as VisitAstPath>::visit_class_member(&mut **self, node, __ast_path)
22474    }
22475
22476    #[inline]
22477    fn visit_class_members<'ast: 'r, 'r>(
22478        &mut self,
22479        node: &'ast [ClassMember],
22480        __ast_path: &mut AstNodePath<'r>,
22481    ) {
22482        <V as VisitAstPath>::visit_class_members(&mut **self, node, __ast_path)
22483    }
22484
22485    #[inline]
22486    fn visit_class_method<'ast: 'r, 'r>(
22487        &mut self,
22488        node: &'ast ClassMethod,
22489        __ast_path: &mut AstNodePath<'r>,
22490    ) {
22491        <V as VisitAstPath>::visit_class_method(&mut **self, node, __ast_path)
22492    }
22493
22494    #[inline]
22495    fn visit_class_prop<'ast: 'r, 'r>(
22496        &mut self,
22497        node: &'ast ClassProp,
22498        __ast_path: &mut AstNodePath<'r>,
22499    ) {
22500        <V as VisitAstPath>::visit_class_prop(&mut **self, node, __ast_path)
22501    }
22502
22503    #[inline]
22504    fn visit_computed_prop_name<'ast: 'r, 'r>(
22505        &mut self,
22506        node: &'ast ComputedPropName,
22507        __ast_path: &mut AstNodePath<'r>,
22508    ) {
22509        <V as VisitAstPath>::visit_computed_prop_name(&mut **self, node, __ast_path)
22510    }
22511
22512    #[inline]
22513    fn visit_cond_expr<'ast: 'r, 'r>(
22514        &mut self,
22515        node: &'ast CondExpr,
22516        __ast_path: &mut AstNodePath<'r>,
22517    ) {
22518        <V as VisitAstPath>::visit_cond_expr(&mut **self, node, __ast_path)
22519    }
22520
22521    #[inline]
22522    fn visit_constructor<'ast: 'r, 'r>(
22523        &mut self,
22524        node: &'ast Constructor,
22525        __ast_path: &mut AstNodePath<'r>,
22526    ) {
22527        <V as VisitAstPath>::visit_constructor(&mut **self, node, __ast_path)
22528    }
22529
22530    #[inline]
22531    fn visit_continue_stmt<'ast: 'r, 'r>(
22532        &mut self,
22533        node: &'ast ContinueStmt,
22534        __ast_path: &mut AstNodePath<'r>,
22535    ) {
22536        <V as VisitAstPath>::visit_continue_stmt(&mut **self, node, __ast_path)
22537    }
22538
22539    #[inline]
22540    fn visit_debugger_stmt<'ast: 'r, 'r>(
22541        &mut self,
22542        node: &'ast DebuggerStmt,
22543        __ast_path: &mut AstNodePath<'r>,
22544    ) {
22545        <V as VisitAstPath>::visit_debugger_stmt(&mut **self, node, __ast_path)
22546    }
22547
22548    #[inline]
22549    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
22550        <V as VisitAstPath>::visit_decl(&mut **self, node, __ast_path)
22551    }
22552
22553    #[inline]
22554    fn visit_decorator<'ast: 'r, 'r>(
22555        &mut self,
22556        node: &'ast Decorator,
22557        __ast_path: &mut AstNodePath<'r>,
22558    ) {
22559        <V as VisitAstPath>::visit_decorator(&mut **self, node, __ast_path)
22560    }
22561
22562    #[inline]
22563    fn visit_decorators<'ast: 'r, 'r>(
22564        &mut self,
22565        node: &'ast [Decorator],
22566        __ast_path: &mut AstNodePath<'r>,
22567    ) {
22568        <V as VisitAstPath>::visit_decorators(&mut **self, node, __ast_path)
22569    }
22570
22571    #[inline]
22572    fn visit_default_decl<'ast: 'r, 'r>(
22573        &mut self,
22574        node: &'ast DefaultDecl,
22575        __ast_path: &mut AstNodePath<'r>,
22576    ) {
22577        <V as VisitAstPath>::visit_default_decl(&mut **self, node, __ast_path)
22578    }
22579
22580    #[inline]
22581    fn visit_do_while_stmt<'ast: 'r, 'r>(
22582        &mut self,
22583        node: &'ast DoWhileStmt,
22584        __ast_path: &mut AstNodePath<'r>,
22585    ) {
22586        <V as VisitAstPath>::visit_do_while_stmt(&mut **self, node, __ast_path)
22587    }
22588
22589    #[inline]
22590    fn visit_empty_stmt<'ast: 'r, 'r>(
22591        &mut self,
22592        node: &'ast EmptyStmt,
22593        __ast_path: &mut AstNodePath<'r>,
22594    ) {
22595        <V as VisitAstPath>::visit_empty_stmt(&mut **self, node, __ast_path)
22596    }
22597
22598    #[inline]
22599    fn visit_export_all<'ast: 'r, 'r>(
22600        &mut self,
22601        node: &'ast ExportAll,
22602        __ast_path: &mut AstNodePath<'r>,
22603    ) {
22604        <V as VisitAstPath>::visit_export_all(&mut **self, node, __ast_path)
22605    }
22606
22607    #[inline]
22608    fn visit_export_decl<'ast: 'r, 'r>(
22609        &mut self,
22610        node: &'ast ExportDecl,
22611        __ast_path: &mut AstNodePath<'r>,
22612    ) {
22613        <V as VisitAstPath>::visit_export_decl(&mut **self, node, __ast_path)
22614    }
22615
22616    #[inline]
22617    fn visit_export_default_decl<'ast: 'r, 'r>(
22618        &mut self,
22619        node: &'ast ExportDefaultDecl,
22620        __ast_path: &mut AstNodePath<'r>,
22621    ) {
22622        <V as VisitAstPath>::visit_export_default_decl(&mut **self, node, __ast_path)
22623    }
22624
22625    #[inline]
22626    fn visit_export_default_expr<'ast: 'r, 'r>(
22627        &mut self,
22628        node: &'ast ExportDefaultExpr,
22629        __ast_path: &mut AstNodePath<'r>,
22630    ) {
22631        <V as VisitAstPath>::visit_export_default_expr(&mut **self, node, __ast_path)
22632    }
22633
22634    #[inline]
22635    fn visit_export_default_specifier<'ast: 'r, 'r>(
22636        &mut self,
22637        node: &'ast ExportDefaultSpecifier,
22638        __ast_path: &mut AstNodePath<'r>,
22639    ) {
22640        <V as VisitAstPath>::visit_export_default_specifier(&mut **self, node, __ast_path)
22641    }
22642
22643    #[inline]
22644    fn visit_export_named_specifier<'ast: 'r, 'r>(
22645        &mut self,
22646        node: &'ast ExportNamedSpecifier,
22647        __ast_path: &mut AstNodePath<'r>,
22648    ) {
22649        <V as VisitAstPath>::visit_export_named_specifier(&mut **self, node, __ast_path)
22650    }
22651
22652    #[inline]
22653    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
22654        &mut self,
22655        node: &'ast ExportNamespaceSpecifier,
22656        __ast_path: &mut AstNodePath<'r>,
22657    ) {
22658        <V as VisitAstPath>::visit_export_namespace_specifier(&mut **self, node, __ast_path)
22659    }
22660
22661    #[inline]
22662    fn visit_export_specifier<'ast: 'r, 'r>(
22663        &mut self,
22664        node: &'ast ExportSpecifier,
22665        __ast_path: &mut AstNodePath<'r>,
22666    ) {
22667        <V as VisitAstPath>::visit_export_specifier(&mut **self, node, __ast_path)
22668    }
22669
22670    #[inline]
22671    fn visit_export_specifiers<'ast: 'r, 'r>(
22672        &mut self,
22673        node: &'ast [ExportSpecifier],
22674        __ast_path: &mut AstNodePath<'r>,
22675    ) {
22676        <V as VisitAstPath>::visit_export_specifiers(&mut **self, node, __ast_path)
22677    }
22678
22679    #[inline]
22680    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
22681        <V as VisitAstPath>::visit_expr(&mut **self, node, __ast_path)
22682    }
22683
22684    #[inline]
22685    fn visit_expr_or_spread<'ast: 'r, 'r>(
22686        &mut self,
22687        node: &'ast ExprOrSpread,
22688        __ast_path: &mut AstNodePath<'r>,
22689    ) {
22690        <V as VisitAstPath>::visit_expr_or_spread(&mut **self, node, __ast_path)
22691    }
22692
22693    #[inline]
22694    fn visit_expr_or_spreads<'ast: 'r, 'r>(
22695        &mut self,
22696        node: &'ast [ExprOrSpread],
22697        __ast_path: &mut AstNodePath<'r>,
22698    ) {
22699        <V as VisitAstPath>::visit_expr_or_spreads(&mut **self, node, __ast_path)
22700    }
22701
22702    #[inline]
22703    fn visit_expr_stmt<'ast: 'r, 'r>(
22704        &mut self,
22705        node: &'ast ExprStmt,
22706        __ast_path: &mut AstNodePath<'r>,
22707    ) {
22708        <V as VisitAstPath>::visit_expr_stmt(&mut **self, node, __ast_path)
22709    }
22710
22711    #[inline]
22712    fn visit_exprs<'ast: 'r, 'r>(
22713        &mut self,
22714        node: &'ast [Box<Expr>],
22715        __ast_path: &mut AstNodePath<'r>,
22716    ) {
22717        <V as VisitAstPath>::visit_exprs(&mut **self, node, __ast_path)
22718    }
22719
22720    #[inline]
22721    fn visit_fn_decl<'ast: 'r, 'r>(
22722        &mut self,
22723        node: &'ast FnDecl,
22724        __ast_path: &mut AstNodePath<'r>,
22725    ) {
22726        <V as VisitAstPath>::visit_fn_decl(&mut **self, node, __ast_path)
22727    }
22728
22729    #[inline]
22730    fn visit_fn_expr<'ast: 'r, 'r>(
22731        &mut self,
22732        node: &'ast FnExpr,
22733        __ast_path: &mut AstNodePath<'r>,
22734    ) {
22735        <V as VisitAstPath>::visit_fn_expr(&mut **self, node, __ast_path)
22736    }
22737
22738    #[inline]
22739    fn visit_for_head<'ast: 'r, 'r>(
22740        &mut self,
22741        node: &'ast ForHead,
22742        __ast_path: &mut AstNodePath<'r>,
22743    ) {
22744        <V as VisitAstPath>::visit_for_head(&mut **self, node, __ast_path)
22745    }
22746
22747    #[inline]
22748    fn visit_for_in_stmt<'ast: 'r, 'r>(
22749        &mut self,
22750        node: &'ast ForInStmt,
22751        __ast_path: &mut AstNodePath<'r>,
22752    ) {
22753        <V as VisitAstPath>::visit_for_in_stmt(&mut **self, node, __ast_path)
22754    }
22755
22756    #[inline]
22757    fn visit_for_of_stmt<'ast: 'r, 'r>(
22758        &mut self,
22759        node: &'ast ForOfStmt,
22760        __ast_path: &mut AstNodePath<'r>,
22761    ) {
22762        <V as VisitAstPath>::visit_for_of_stmt(&mut **self, node, __ast_path)
22763    }
22764
22765    #[inline]
22766    fn visit_for_stmt<'ast: 'r, 'r>(
22767        &mut self,
22768        node: &'ast ForStmt,
22769        __ast_path: &mut AstNodePath<'r>,
22770    ) {
22771        <V as VisitAstPath>::visit_for_stmt(&mut **self, node, __ast_path)
22772    }
22773
22774    #[inline]
22775    fn visit_function<'ast: 'r, 'r>(
22776        &mut self,
22777        node: &'ast Function,
22778        __ast_path: &mut AstNodePath<'r>,
22779    ) {
22780        <V as VisitAstPath>::visit_function(&mut **self, node, __ast_path)
22781    }
22782
22783    #[inline]
22784    fn visit_getter_prop<'ast: 'r, 'r>(
22785        &mut self,
22786        node: &'ast GetterProp,
22787        __ast_path: &mut AstNodePath<'r>,
22788    ) {
22789        <V as VisitAstPath>::visit_getter_prop(&mut **self, node, __ast_path)
22790    }
22791
22792    #[inline]
22793    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
22794        <V as VisitAstPath>::visit_ident(&mut **self, node, __ast_path)
22795    }
22796
22797    #[inline]
22798    fn visit_ident_name<'ast: 'r, 'r>(
22799        &mut self,
22800        node: &'ast IdentName,
22801        __ast_path: &mut AstNodePath<'r>,
22802    ) {
22803        <V as VisitAstPath>::visit_ident_name(&mut **self, node, __ast_path)
22804    }
22805
22806    #[inline]
22807    fn visit_if_stmt<'ast: 'r, 'r>(
22808        &mut self,
22809        node: &'ast IfStmt,
22810        __ast_path: &mut AstNodePath<'r>,
22811    ) {
22812        <V as VisitAstPath>::visit_if_stmt(&mut **self, node, __ast_path)
22813    }
22814
22815    #[inline]
22816    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
22817        <V as VisitAstPath>::visit_import(&mut **self, node, __ast_path)
22818    }
22819
22820    #[inline]
22821    fn visit_import_decl<'ast: 'r, 'r>(
22822        &mut self,
22823        node: &'ast ImportDecl,
22824        __ast_path: &mut AstNodePath<'r>,
22825    ) {
22826        <V as VisitAstPath>::visit_import_decl(&mut **self, node, __ast_path)
22827    }
22828
22829    #[inline]
22830    fn visit_import_default_specifier<'ast: 'r, 'r>(
22831        &mut self,
22832        node: &'ast ImportDefaultSpecifier,
22833        __ast_path: &mut AstNodePath<'r>,
22834    ) {
22835        <V as VisitAstPath>::visit_import_default_specifier(&mut **self, node, __ast_path)
22836    }
22837
22838    #[inline]
22839    fn visit_import_named_specifier<'ast: 'r, 'r>(
22840        &mut self,
22841        node: &'ast ImportNamedSpecifier,
22842        __ast_path: &mut AstNodePath<'r>,
22843    ) {
22844        <V as VisitAstPath>::visit_import_named_specifier(&mut **self, node, __ast_path)
22845    }
22846
22847    #[inline]
22848    fn visit_import_phase<'ast: 'r, 'r>(
22849        &mut self,
22850        node: &'ast ImportPhase,
22851        __ast_path: &mut AstNodePath<'r>,
22852    ) {
22853        <V as VisitAstPath>::visit_import_phase(&mut **self, node, __ast_path)
22854    }
22855
22856    #[inline]
22857    fn visit_import_specifier<'ast: 'r, 'r>(
22858        &mut self,
22859        node: &'ast ImportSpecifier,
22860        __ast_path: &mut AstNodePath<'r>,
22861    ) {
22862        <V as VisitAstPath>::visit_import_specifier(&mut **self, node, __ast_path)
22863    }
22864
22865    #[inline]
22866    fn visit_import_specifiers<'ast: 'r, 'r>(
22867        &mut self,
22868        node: &'ast [ImportSpecifier],
22869        __ast_path: &mut AstNodePath<'r>,
22870    ) {
22871        <V as VisitAstPath>::visit_import_specifiers(&mut **self, node, __ast_path)
22872    }
22873
22874    #[inline]
22875    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
22876        &mut self,
22877        node: &'ast ImportStarAsSpecifier,
22878        __ast_path: &mut AstNodePath<'r>,
22879    ) {
22880        <V as VisitAstPath>::visit_import_star_as_specifier(&mut **self, node, __ast_path)
22881    }
22882
22883    #[inline]
22884    fn visit_import_with<'ast: 'r, 'r>(
22885        &mut self,
22886        node: &'ast ImportWith,
22887        __ast_path: &mut AstNodePath<'r>,
22888    ) {
22889        <V as VisitAstPath>::visit_import_with(&mut **self, node, __ast_path)
22890    }
22891
22892    #[inline]
22893    fn visit_import_with_item<'ast: 'r, 'r>(
22894        &mut self,
22895        node: &'ast ImportWithItem,
22896        __ast_path: &mut AstNodePath<'r>,
22897    ) {
22898        <V as VisitAstPath>::visit_import_with_item(&mut **self, node, __ast_path)
22899    }
22900
22901    #[inline]
22902    fn visit_import_with_items<'ast: 'r, 'r>(
22903        &mut self,
22904        node: &'ast [ImportWithItem],
22905        __ast_path: &mut AstNodePath<'r>,
22906    ) {
22907        <V as VisitAstPath>::visit_import_with_items(&mut **self, node, __ast_path)
22908    }
22909
22910    #[inline]
22911    fn visit_invalid<'ast: 'r, 'r>(
22912        &mut self,
22913        node: &'ast Invalid,
22914        __ast_path: &mut AstNodePath<'r>,
22915    ) {
22916        <V as VisitAstPath>::visit_invalid(&mut **self, node, __ast_path)
22917    }
22918
22919    #[inline]
22920    fn visit_jsx_attr<'ast: 'r, 'r>(
22921        &mut self,
22922        node: &'ast JSXAttr,
22923        __ast_path: &mut AstNodePath<'r>,
22924    ) {
22925        <V as VisitAstPath>::visit_jsx_attr(&mut **self, node, __ast_path)
22926    }
22927
22928    #[inline]
22929    fn visit_jsx_attr_name<'ast: 'r, 'r>(
22930        &mut self,
22931        node: &'ast JSXAttrName,
22932        __ast_path: &mut AstNodePath<'r>,
22933    ) {
22934        <V as VisitAstPath>::visit_jsx_attr_name(&mut **self, node, __ast_path)
22935    }
22936
22937    #[inline]
22938    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
22939        &mut self,
22940        node: &'ast JSXAttrOrSpread,
22941        __ast_path: &mut AstNodePath<'r>,
22942    ) {
22943        <V as VisitAstPath>::visit_jsx_attr_or_spread(&mut **self, node, __ast_path)
22944    }
22945
22946    #[inline]
22947    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
22948        &mut self,
22949        node: &'ast [JSXAttrOrSpread],
22950        __ast_path: &mut AstNodePath<'r>,
22951    ) {
22952        <V as VisitAstPath>::visit_jsx_attr_or_spreads(&mut **self, node, __ast_path)
22953    }
22954
22955    #[inline]
22956    fn visit_jsx_attr_value<'ast: 'r, 'r>(
22957        &mut self,
22958        node: &'ast JSXAttrValue,
22959        __ast_path: &mut AstNodePath<'r>,
22960    ) {
22961        <V as VisitAstPath>::visit_jsx_attr_value(&mut **self, node, __ast_path)
22962    }
22963
22964    #[inline]
22965    fn visit_jsx_closing_element<'ast: 'r, 'r>(
22966        &mut self,
22967        node: &'ast JSXClosingElement,
22968        __ast_path: &mut AstNodePath<'r>,
22969    ) {
22970        <V as VisitAstPath>::visit_jsx_closing_element(&mut **self, node, __ast_path)
22971    }
22972
22973    #[inline]
22974    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
22975        &mut self,
22976        node: &'ast JSXClosingFragment,
22977        __ast_path: &mut AstNodePath<'r>,
22978    ) {
22979        <V as VisitAstPath>::visit_jsx_closing_fragment(&mut **self, node, __ast_path)
22980    }
22981
22982    #[inline]
22983    fn visit_jsx_element<'ast: 'r, 'r>(
22984        &mut self,
22985        node: &'ast JSXElement,
22986        __ast_path: &mut AstNodePath<'r>,
22987    ) {
22988        <V as VisitAstPath>::visit_jsx_element(&mut **self, node, __ast_path)
22989    }
22990
22991    #[inline]
22992    fn visit_jsx_element_child<'ast: 'r, 'r>(
22993        &mut self,
22994        node: &'ast JSXElementChild,
22995        __ast_path: &mut AstNodePath<'r>,
22996    ) {
22997        <V as VisitAstPath>::visit_jsx_element_child(&mut **self, node, __ast_path)
22998    }
22999
23000    #[inline]
23001    fn visit_jsx_element_childs<'ast: 'r, 'r>(
23002        &mut self,
23003        node: &'ast [JSXElementChild],
23004        __ast_path: &mut AstNodePath<'r>,
23005    ) {
23006        <V as VisitAstPath>::visit_jsx_element_childs(&mut **self, node, __ast_path)
23007    }
23008
23009    #[inline]
23010    fn visit_jsx_element_name<'ast: 'r, 'r>(
23011        &mut self,
23012        node: &'ast JSXElementName,
23013        __ast_path: &mut AstNodePath<'r>,
23014    ) {
23015        <V as VisitAstPath>::visit_jsx_element_name(&mut **self, node, __ast_path)
23016    }
23017
23018    #[inline]
23019    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
23020        &mut self,
23021        node: &'ast JSXEmptyExpr,
23022        __ast_path: &mut AstNodePath<'r>,
23023    ) {
23024        <V as VisitAstPath>::visit_jsx_empty_expr(&mut **self, node, __ast_path)
23025    }
23026
23027    #[inline]
23028    fn visit_jsx_expr<'ast: 'r, 'r>(
23029        &mut self,
23030        node: &'ast JSXExpr,
23031        __ast_path: &mut AstNodePath<'r>,
23032    ) {
23033        <V as VisitAstPath>::visit_jsx_expr(&mut **self, node, __ast_path)
23034    }
23035
23036    #[inline]
23037    fn visit_jsx_expr_container<'ast: 'r, 'r>(
23038        &mut self,
23039        node: &'ast JSXExprContainer,
23040        __ast_path: &mut AstNodePath<'r>,
23041    ) {
23042        <V as VisitAstPath>::visit_jsx_expr_container(&mut **self, node, __ast_path)
23043    }
23044
23045    #[inline]
23046    fn visit_jsx_fragment<'ast: 'r, 'r>(
23047        &mut self,
23048        node: &'ast JSXFragment,
23049        __ast_path: &mut AstNodePath<'r>,
23050    ) {
23051        <V as VisitAstPath>::visit_jsx_fragment(&mut **self, node, __ast_path)
23052    }
23053
23054    #[inline]
23055    fn visit_jsx_member_expr<'ast: 'r, 'r>(
23056        &mut self,
23057        node: &'ast JSXMemberExpr,
23058        __ast_path: &mut AstNodePath<'r>,
23059    ) {
23060        <V as VisitAstPath>::visit_jsx_member_expr(&mut **self, node, __ast_path)
23061    }
23062
23063    #[inline]
23064    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
23065        &mut self,
23066        node: &'ast JSXNamespacedName,
23067        __ast_path: &mut AstNodePath<'r>,
23068    ) {
23069        <V as VisitAstPath>::visit_jsx_namespaced_name(&mut **self, node, __ast_path)
23070    }
23071
23072    #[inline]
23073    fn visit_jsx_object<'ast: 'r, 'r>(
23074        &mut self,
23075        node: &'ast JSXObject,
23076        __ast_path: &mut AstNodePath<'r>,
23077    ) {
23078        <V as VisitAstPath>::visit_jsx_object(&mut **self, node, __ast_path)
23079    }
23080
23081    #[inline]
23082    fn visit_jsx_opening_element<'ast: 'r, 'r>(
23083        &mut self,
23084        node: &'ast JSXOpeningElement,
23085        __ast_path: &mut AstNodePath<'r>,
23086    ) {
23087        <V as VisitAstPath>::visit_jsx_opening_element(&mut **self, node, __ast_path)
23088    }
23089
23090    #[inline]
23091    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
23092        &mut self,
23093        node: &'ast JSXOpeningFragment,
23094        __ast_path: &mut AstNodePath<'r>,
23095    ) {
23096        <V as VisitAstPath>::visit_jsx_opening_fragment(&mut **self, node, __ast_path)
23097    }
23098
23099    #[inline]
23100    fn visit_jsx_spread_child<'ast: 'r, 'r>(
23101        &mut self,
23102        node: &'ast JSXSpreadChild,
23103        __ast_path: &mut AstNodePath<'r>,
23104    ) {
23105        <V as VisitAstPath>::visit_jsx_spread_child(&mut **self, node, __ast_path)
23106    }
23107
23108    #[inline]
23109    fn visit_jsx_text<'ast: 'r, 'r>(
23110        &mut self,
23111        node: &'ast JSXText,
23112        __ast_path: &mut AstNodePath<'r>,
23113    ) {
23114        <V as VisitAstPath>::visit_jsx_text(&mut **self, node, __ast_path)
23115    }
23116
23117    #[inline]
23118    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
23119        <V as VisitAstPath>::visit_key(&mut **self, node, __ast_path)
23120    }
23121
23122    #[inline]
23123    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
23124        &mut self,
23125        node: &'ast KeyValuePatProp,
23126        __ast_path: &mut AstNodePath<'r>,
23127    ) {
23128        <V as VisitAstPath>::visit_key_value_pat_prop(&mut **self, node, __ast_path)
23129    }
23130
23131    #[inline]
23132    fn visit_key_value_prop<'ast: 'r, 'r>(
23133        &mut self,
23134        node: &'ast KeyValueProp,
23135        __ast_path: &mut AstNodePath<'r>,
23136    ) {
23137        <V as VisitAstPath>::visit_key_value_prop(&mut **self, node, __ast_path)
23138    }
23139
23140    #[inline]
23141    fn visit_labeled_stmt<'ast: 'r, 'r>(
23142        &mut self,
23143        node: &'ast LabeledStmt,
23144        __ast_path: &mut AstNodePath<'r>,
23145    ) {
23146        <V as VisitAstPath>::visit_labeled_stmt(&mut **self, node, __ast_path)
23147    }
23148
23149    #[inline]
23150    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
23151        <V as VisitAstPath>::visit_lit(&mut **self, node, __ast_path)
23152    }
23153
23154    #[inline]
23155    fn visit_member_expr<'ast: 'r, 'r>(
23156        &mut self,
23157        node: &'ast MemberExpr,
23158        __ast_path: &mut AstNodePath<'r>,
23159    ) {
23160        <V as VisitAstPath>::visit_member_expr(&mut **self, node, __ast_path)
23161    }
23162
23163    #[inline]
23164    fn visit_member_prop<'ast: 'r, 'r>(
23165        &mut self,
23166        node: &'ast MemberProp,
23167        __ast_path: &mut AstNodePath<'r>,
23168    ) {
23169        <V as VisitAstPath>::visit_member_prop(&mut **self, node, __ast_path)
23170    }
23171
23172    #[inline]
23173    fn visit_meta_prop_expr<'ast: 'r, 'r>(
23174        &mut self,
23175        node: &'ast MetaPropExpr,
23176        __ast_path: &mut AstNodePath<'r>,
23177    ) {
23178        <V as VisitAstPath>::visit_meta_prop_expr(&mut **self, node, __ast_path)
23179    }
23180
23181    #[inline]
23182    fn visit_meta_prop_kind<'ast: 'r, 'r>(
23183        &mut self,
23184        node: &'ast MetaPropKind,
23185        __ast_path: &mut AstNodePath<'r>,
23186    ) {
23187        <V as VisitAstPath>::visit_meta_prop_kind(&mut **self, node, __ast_path)
23188    }
23189
23190    #[inline]
23191    fn visit_method_kind<'ast: 'r, 'r>(
23192        &mut self,
23193        node: &'ast MethodKind,
23194        __ast_path: &mut AstNodePath<'r>,
23195    ) {
23196        <V as VisitAstPath>::visit_method_kind(&mut **self, node, __ast_path)
23197    }
23198
23199    #[inline]
23200    fn visit_method_prop<'ast: 'r, 'r>(
23201        &mut self,
23202        node: &'ast MethodProp,
23203        __ast_path: &mut AstNodePath<'r>,
23204    ) {
23205        <V as VisitAstPath>::visit_method_prop(&mut **self, node, __ast_path)
23206    }
23207
23208    #[inline]
23209    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
23210        <V as VisitAstPath>::visit_module(&mut **self, node, __ast_path)
23211    }
23212
23213    #[inline]
23214    fn visit_module_decl<'ast: 'r, 'r>(
23215        &mut self,
23216        node: &'ast ModuleDecl,
23217        __ast_path: &mut AstNodePath<'r>,
23218    ) {
23219        <V as VisitAstPath>::visit_module_decl(&mut **self, node, __ast_path)
23220    }
23221
23222    #[inline]
23223    fn visit_module_export_name<'ast: 'r, 'r>(
23224        &mut self,
23225        node: &'ast ModuleExportName,
23226        __ast_path: &mut AstNodePath<'r>,
23227    ) {
23228        <V as VisitAstPath>::visit_module_export_name(&mut **self, node, __ast_path)
23229    }
23230
23231    #[inline]
23232    fn visit_module_item<'ast: 'r, 'r>(
23233        &mut self,
23234        node: &'ast ModuleItem,
23235        __ast_path: &mut AstNodePath<'r>,
23236    ) {
23237        <V as VisitAstPath>::visit_module_item(&mut **self, node, __ast_path)
23238    }
23239
23240    #[inline]
23241    fn visit_module_items<'ast: 'r, 'r>(
23242        &mut self,
23243        node: &'ast [ModuleItem],
23244        __ast_path: &mut AstNodePath<'r>,
23245    ) {
23246        <V as VisitAstPath>::visit_module_items(&mut **self, node, __ast_path)
23247    }
23248
23249    #[inline]
23250    fn visit_named_export<'ast: 'r, 'r>(
23251        &mut self,
23252        node: &'ast NamedExport,
23253        __ast_path: &mut AstNodePath<'r>,
23254    ) {
23255        <V as VisitAstPath>::visit_named_export(&mut **self, node, __ast_path)
23256    }
23257
23258    #[inline]
23259    fn visit_new_expr<'ast: 'r, 'r>(
23260        &mut self,
23261        node: &'ast NewExpr,
23262        __ast_path: &mut AstNodePath<'r>,
23263    ) {
23264        <V as VisitAstPath>::visit_new_expr(&mut **self, node, __ast_path)
23265    }
23266
23267    #[inline]
23268    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
23269        <V as VisitAstPath>::visit_null(&mut **self, node, __ast_path)
23270    }
23271
23272    #[inline]
23273    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
23274        <V as VisitAstPath>::visit_number(&mut **self, node, __ast_path)
23275    }
23276
23277    #[inline]
23278    fn visit_object_lit<'ast: 'r, 'r>(
23279        &mut self,
23280        node: &'ast ObjectLit,
23281        __ast_path: &mut AstNodePath<'r>,
23282    ) {
23283        <V as VisitAstPath>::visit_object_lit(&mut **self, node, __ast_path)
23284    }
23285
23286    #[inline]
23287    fn visit_object_pat<'ast: 'r, 'r>(
23288        &mut self,
23289        node: &'ast ObjectPat,
23290        __ast_path: &mut AstNodePath<'r>,
23291    ) {
23292        <V as VisitAstPath>::visit_object_pat(&mut **self, node, __ast_path)
23293    }
23294
23295    #[inline]
23296    fn visit_object_pat_prop<'ast: 'r, 'r>(
23297        &mut self,
23298        node: &'ast ObjectPatProp,
23299        __ast_path: &mut AstNodePath<'r>,
23300    ) {
23301        <V as VisitAstPath>::visit_object_pat_prop(&mut **self, node, __ast_path)
23302    }
23303
23304    #[inline]
23305    fn visit_object_pat_props<'ast: 'r, 'r>(
23306        &mut self,
23307        node: &'ast [ObjectPatProp],
23308        __ast_path: &mut AstNodePath<'r>,
23309    ) {
23310        <V as VisitAstPath>::visit_object_pat_props(&mut **self, node, __ast_path)
23311    }
23312
23313    #[inline]
23314    fn visit_opt_accessibility<'ast: 'r, 'r>(
23315        &mut self,
23316        node: &'ast Option<Accessibility>,
23317        __ast_path: &mut AstNodePath<'r>,
23318    ) {
23319        <V as VisitAstPath>::visit_opt_accessibility(&mut **self, node, __ast_path)
23320    }
23321
23322    #[inline]
23323    fn visit_opt_atom<'ast: 'r, 'r>(
23324        &mut self,
23325        node: &'ast Option<swc_atoms::Atom>,
23326        __ast_path: &mut AstNodePath<'r>,
23327    ) {
23328        <V as VisitAstPath>::visit_opt_atom(&mut **self, node, __ast_path)
23329    }
23330
23331    #[inline]
23332    fn visit_opt_block_stmt<'ast: 'r, 'r>(
23333        &mut self,
23334        node: &'ast Option<BlockStmt>,
23335        __ast_path: &mut AstNodePath<'r>,
23336    ) {
23337        <V as VisitAstPath>::visit_opt_block_stmt(&mut **self, node, __ast_path)
23338    }
23339
23340    #[inline]
23341    fn visit_opt_call<'ast: 'r, 'r>(
23342        &mut self,
23343        node: &'ast OptCall,
23344        __ast_path: &mut AstNodePath<'r>,
23345    ) {
23346        <V as VisitAstPath>::visit_opt_call(&mut **self, node, __ast_path)
23347    }
23348
23349    #[inline]
23350    fn visit_opt_catch_clause<'ast: 'r, 'r>(
23351        &mut self,
23352        node: &'ast Option<CatchClause>,
23353        __ast_path: &mut AstNodePath<'r>,
23354    ) {
23355        <V as VisitAstPath>::visit_opt_catch_clause(&mut **self, node, __ast_path)
23356    }
23357
23358    #[inline]
23359    fn visit_opt_chain_base<'ast: 'r, 'r>(
23360        &mut self,
23361        node: &'ast OptChainBase,
23362        __ast_path: &mut AstNodePath<'r>,
23363    ) {
23364        <V as VisitAstPath>::visit_opt_chain_base(&mut **self, node, __ast_path)
23365    }
23366
23367    #[inline]
23368    fn visit_opt_chain_expr<'ast: 'r, 'r>(
23369        &mut self,
23370        node: &'ast OptChainExpr,
23371        __ast_path: &mut AstNodePath<'r>,
23372    ) {
23373        <V as VisitAstPath>::visit_opt_chain_expr(&mut **self, node, __ast_path)
23374    }
23375
23376    #[inline]
23377    fn visit_opt_expr<'ast: 'r, 'r>(
23378        &mut self,
23379        node: &'ast Option<Box<Expr>>,
23380        __ast_path: &mut AstNodePath<'r>,
23381    ) {
23382        <V as VisitAstPath>::visit_opt_expr(&mut **self, node, __ast_path)
23383    }
23384
23385    #[inline]
23386    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
23387        &mut self,
23388        node: &'ast Option<ExprOrSpread>,
23389        __ast_path: &mut AstNodePath<'r>,
23390    ) {
23391        <V as VisitAstPath>::visit_opt_expr_or_spread(&mut **self, node, __ast_path)
23392    }
23393
23394    #[inline]
23395    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
23396        &mut self,
23397        node: &'ast Option<Vec<ExprOrSpread>>,
23398        __ast_path: &mut AstNodePath<'r>,
23399    ) {
23400        <V as VisitAstPath>::visit_opt_expr_or_spreads(&mut **self, node, __ast_path)
23401    }
23402
23403    #[inline]
23404    fn visit_opt_ident<'ast: 'r, 'r>(
23405        &mut self,
23406        node: &'ast Option<Ident>,
23407        __ast_path: &mut AstNodePath<'r>,
23408    ) {
23409        <V as VisitAstPath>::visit_opt_ident(&mut **self, node, __ast_path)
23410    }
23411
23412    #[inline]
23413    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
23414        &mut self,
23415        node: &'ast Option<JSXAttrValue>,
23416        __ast_path: &mut AstNodePath<'r>,
23417    ) {
23418        <V as VisitAstPath>::visit_opt_jsx_attr_value(&mut **self, node, __ast_path)
23419    }
23420
23421    #[inline]
23422    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
23423        &mut self,
23424        node: &'ast Option<JSXClosingElement>,
23425        __ast_path: &mut AstNodePath<'r>,
23426    ) {
23427        <V as VisitAstPath>::visit_opt_jsx_closing_element(&mut **self, node, __ast_path)
23428    }
23429
23430    #[inline]
23431    fn visit_opt_module_export_name<'ast: 'r, 'r>(
23432        &mut self,
23433        node: &'ast Option<ModuleExportName>,
23434        __ast_path: &mut AstNodePath<'r>,
23435    ) {
23436        <V as VisitAstPath>::visit_opt_module_export_name(&mut **self, node, __ast_path)
23437    }
23438
23439    #[inline]
23440    fn visit_opt_object_lit<'ast: 'r, 'r>(
23441        &mut self,
23442        node: &'ast Option<Box<ObjectLit>>,
23443        __ast_path: &mut AstNodePath<'r>,
23444    ) {
23445        <V as VisitAstPath>::visit_opt_object_lit(&mut **self, node, __ast_path)
23446    }
23447
23448    #[inline]
23449    fn visit_opt_pat<'ast: 'r, 'r>(
23450        &mut self,
23451        node: &'ast Option<Pat>,
23452        __ast_path: &mut AstNodePath<'r>,
23453    ) {
23454        <V as VisitAstPath>::visit_opt_pat(&mut **self, node, __ast_path)
23455    }
23456
23457    #[inline]
23458    fn visit_opt_span<'ast: 'r, 'r>(
23459        &mut self,
23460        node: &'ast Option<swc_common::Span>,
23461        __ast_path: &mut AstNodePath<'r>,
23462    ) {
23463        <V as VisitAstPath>::visit_opt_span(&mut **self, node, __ast_path)
23464    }
23465
23466    #[inline]
23467    fn visit_opt_stmt<'ast: 'r, 'r>(
23468        &mut self,
23469        node: &'ast Option<Box<Stmt>>,
23470        __ast_path: &mut AstNodePath<'r>,
23471    ) {
23472        <V as VisitAstPath>::visit_opt_stmt(&mut **self, node, __ast_path)
23473    }
23474
23475    #[inline]
23476    fn visit_opt_str<'ast: 'r, 'r>(
23477        &mut self,
23478        node: &'ast Option<Box<Str>>,
23479        __ast_path: &mut AstNodePath<'r>,
23480    ) {
23481        <V as VisitAstPath>::visit_opt_str(&mut **self, node, __ast_path)
23482    }
23483
23484    #[inline]
23485    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
23486        &mut self,
23487        node: &'ast Option<TruePlusMinus>,
23488        __ast_path: &mut AstNodePath<'r>,
23489    ) {
23490        <V as VisitAstPath>::visit_opt_true_plus_minus(&mut **self, node, __ast_path)
23491    }
23492
23493    #[inline]
23494    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
23495        &mut self,
23496        node: &'ast Option<TsEntityName>,
23497        __ast_path: &mut AstNodePath<'r>,
23498    ) {
23499        <V as VisitAstPath>::visit_opt_ts_entity_name(&mut **self, node, __ast_path)
23500    }
23501
23502    #[inline]
23503    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
23504        &mut self,
23505        node: &'ast Option<TsNamespaceBody>,
23506        __ast_path: &mut AstNodePath<'r>,
23507    ) {
23508        <V as VisitAstPath>::visit_opt_ts_namespace_body(&mut **self, node, __ast_path)
23509    }
23510
23511    #[inline]
23512    fn visit_opt_ts_type<'ast: 'r, 'r>(
23513        &mut self,
23514        node: &'ast Option<Box<TsType>>,
23515        __ast_path: &mut AstNodePath<'r>,
23516    ) {
23517        <V as VisitAstPath>::visit_opt_ts_type(&mut **self, node, __ast_path)
23518    }
23519
23520    #[inline]
23521    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
23522        &mut self,
23523        node: &'ast Option<Box<TsTypeAnn>>,
23524        __ast_path: &mut AstNodePath<'r>,
23525    ) {
23526        <V as VisitAstPath>::visit_opt_ts_type_ann(&mut **self, node, __ast_path)
23527    }
23528
23529    #[inline]
23530    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
23531        &mut self,
23532        node: &'ast Option<Box<TsTypeParamDecl>>,
23533        __ast_path: &mut AstNodePath<'r>,
23534    ) {
23535        <V as VisitAstPath>::visit_opt_ts_type_param_decl(&mut **self, node, __ast_path)
23536    }
23537
23538    #[inline]
23539    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
23540        &mut self,
23541        node: &'ast Option<Box<TsTypeParamInstantiation>>,
23542        __ast_path: &mut AstNodePath<'r>,
23543    ) {
23544        <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
23545    }
23546
23547    #[inline]
23548    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
23549        &mut self,
23550        node: &'ast Option<VarDeclOrExpr>,
23551        __ast_path: &mut AstNodePath<'r>,
23552    ) {
23553        <V as VisitAstPath>::visit_opt_var_decl_or_expr(&mut **self, node, __ast_path)
23554    }
23555
23556    #[inline]
23557    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
23558        &mut self,
23559        node: &'ast [Option<ExprOrSpread>],
23560        __ast_path: &mut AstNodePath<'r>,
23561    ) {
23562        <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
23563    }
23564
23565    #[inline]
23566    fn visit_opt_vec_pats<'ast: 'r, 'r>(
23567        &mut self,
23568        node: &'ast [Option<Pat>],
23569        __ast_path: &mut AstNodePath<'r>,
23570    ) {
23571        <V as VisitAstPath>::visit_opt_vec_pats(&mut **self, node, __ast_path)
23572    }
23573
23574    #[inline]
23575    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
23576        <V as VisitAstPath>::visit_param(&mut **self, node, __ast_path)
23577    }
23578
23579    #[inline]
23580    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
23581        &mut self,
23582        node: &'ast ParamOrTsParamProp,
23583        __ast_path: &mut AstNodePath<'r>,
23584    ) {
23585        <V as VisitAstPath>::visit_param_or_ts_param_prop(&mut **self, node, __ast_path)
23586    }
23587
23588    #[inline]
23589    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
23590        &mut self,
23591        node: &'ast [ParamOrTsParamProp],
23592        __ast_path: &mut AstNodePath<'r>,
23593    ) {
23594        <V as VisitAstPath>::visit_param_or_ts_param_props(&mut **self, node, __ast_path)
23595    }
23596
23597    #[inline]
23598    fn visit_params<'ast: 'r, 'r>(
23599        &mut self,
23600        node: &'ast [Param],
23601        __ast_path: &mut AstNodePath<'r>,
23602    ) {
23603        <V as VisitAstPath>::visit_params(&mut **self, node, __ast_path)
23604    }
23605
23606    #[inline]
23607    fn visit_paren_expr<'ast: 'r, 'r>(
23608        &mut self,
23609        node: &'ast ParenExpr,
23610        __ast_path: &mut AstNodePath<'r>,
23611    ) {
23612        <V as VisitAstPath>::visit_paren_expr(&mut **self, node, __ast_path)
23613    }
23614
23615    #[inline]
23616    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
23617        <V as VisitAstPath>::visit_pat(&mut **self, node, __ast_path)
23618    }
23619
23620    #[inline]
23621    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
23622        <V as VisitAstPath>::visit_pats(&mut **self, node, __ast_path)
23623    }
23624
23625    #[inline]
23626    fn visit_private_method<'ast: 'r, 'r>(
23627        &mut self,
23628        node: &'ast PrivateMethod,
23629        __ast_path: &mut AstNodePath<'r>,
23630    ) {
23631        <V as VisitAstPath>::visit_private_method(&mut **self, node, __ast_path)
23632    }
23633
23634    #[inline]
23635    fn visit_private_name<'ast: 'r, 'r>(
23636        &mut self,
23637        node: &'ast PrivateName,
23638        __ast_path: &mut AstNodePath<'r>,
23639    ) {
23640        <V as VisitAstPath>::visit_private_name(&mut **self, node, __ast_path)
23641    }
23642
23643    #[inline]
23644    fn visit_private_prop<'ast: 'r, 'r>(
23645        &mut self,
23646        node: &'ast PrivateProp,
23647        __ast_path: &mut AstNodePath<'r>,
23648    ) {
23649        <V as VisitAstPath>::visit_private_prop(&mut **self, node, __ast_path)
23650    }
23651
23652    #[inline]
23653    fn visit_program<'ast: 'r, 'r>(
23654        &mut self,
23655        node: &'ast Program,
23656        __ast_path: &mut AstNodePath<'r>,
23657    ) {
23658        <V as VisitAstPath>::visit_program(&mut **self, node, __ast_path)
23659    }
23660
23661    #[inline]
23662    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
23663        <V as VisitAstPath>::visit_prop(&mut **self, node, __ast_path)
23664    }
23665
23666    #[inline]
23667    fn visit_prop_name<'ast: 'r, 'r>(
23668        &mut self,
23669        node: &'ast PropName,
23670        __ast_path: &mut AstNodePath<'r>,
23671    ) {
23672        <V as VisitAstPath>::visit_prop_name(&mut **self, node, __ast_path)
23673    }
23674
23675    #[inline]
23676    fn visit_prop_or_spread<'ast: 'r, 'r>(
23677        &mut self,
23678        node: &'ast PropOrSpread,
23679        __ast_path: &mut AstNodePath<'r>,
23680    ) {
23681        <V as VisitAstPath>::visit_prop_or_spread(&mut **self, node, __ast_path)
23682    }
23683
23684    #[inline]
23685    fn visit_prop_or_spreads<'ast: 'r, 'r>(
23686        &mut self,
23687        node: &'ast [PropOrSpread],
23688        __ast_path: &mut AstNodePath<'r>,
23689    ) {
23690        <V as VisitAstPath>::visit_prop_or_spreads(&mut **self, node, __ast_path)
23691    }
23692
23693    #[inline]
23694    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
23695        <V as VisitAstPath>::visit_regex(&mut **self, node, __ast_path)
23696    }
23697
23698    #[inline]
23699    fn visit_rest_pat<'ast: 'r, 'r>(
23700        &mut self,
23701        node: &'ast RestPat,
23702        __ast_path: &mut AstNodePath<'r>,
23703    ) {
23704        <V as VisitAstPath>::visit_rest_pat(&mut **self, node, __ast_path)
23705    }
23706
23707    #[inline]
23708    fn visit_return_stmt<'ast: 'r, 'r>(
23709        &mut self,
23710        node: &'ast ReturnStmt,
23711        __ast_path: &mut AstNodePath<'r>,
23712    ) {
23713        <V as VisitAstPath>::visit_return_stmt(&mut **self, node, __ast_path)
23714    }
23715
23716    #[inline]
23717    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
23718        <V as VisitAstPath>::visit_script(&mut **self, node, __ast_path)
23719    }
23720
23721    #[inline]
23722    fn visit_seq_expr<'ast: 'r, 'r>(
23723        &mut self,
23724        node: &'ast SeqExpr,
23725        __ast_path: &mut AstNodePath<'r>,
23726    ) {
23727        <V as VisitAstPath>::visit_seq_expr(&mut **self, node, __ast_path)
23728    }
23729
23730    #[inline]
23731    fn visit_setter_prop<'ast: 'r, 'r>(
23732        &mut self,
23733        node: &'ast SetterProp,
23734        __ast_path: &mut AstNodePath<'r>,
23735    ) {
23736        <V as VisitAstPath>::visit_setter_prop(&mut **self, node, __ast_path)
23737    }
23738
23739    #[inline]
23740    fn visit_simple_assign_target<'ast: 'r, 'r>(
23741        &mut self,
23742        node: &'ast SimpleAssignTarget,
23743        __ast_path: &mut AstNodePath<'r>,
23744    ) {
23745        <V as VisitAstPath>::visit_simple_assign_target(&mut **self, node, __ast_path)
23746    }
23747
23748    #[inline]
23749    fn visit_span<'ast: 'r, 'r>(
23750        &mut self,
23751        node: &'ast swc_common::Span,
23752        __ast_path: &mut AstNodePath<'r>,
23753    ) {
23754        <V as VisitAstPath>::visit_span(&mut **self, node, __ast_path)
23755    }
23756
23757    #[inline]
23758    fn visit_spread_element<'ast: 'r, 'r>(
23759        &mut self,
23760        node: &'ast SpreadElement,
23761        __ast_path: &mut AstNodePath<'r>,
23762    ) {
23763        <V as VisitAstPath>::visit_spread_element(&mut **self, node, __ast_path)
23764    }
23765
23766    #[inline]
23767    fn visit_static_block<'ast: 'r, 'r>(
23768        &mut self,
23769        node: &'ast StaticBlock,
23770        __ast_path: &mut AstNodePath<'r>,
23771    ) {
23772        <V as VisitAstPath>::visit_static_block(&mut **self, node, __ast_path)
23773    }
23774
23775    #[inline]
23776    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
23777        <V as VisitAstPath>::visit_stmt(&mut **self, node, __ast_path)
23778    }
23779
23780    #[inline]
23781    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
23782        <V as VisitAstPath>::visit_stmts(&mut **self, node, __ast_path)
23783    }
23784
23785    #[inline]
23786    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
23787        <V as VisitAstPath>::visit_str(&mut **self, node, __ast_path)
23788    }
23789
23790    #[inline]
23791    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
23792        <V as VisitAstPath>::visit_super(&mut **self, node, __ast_path)
23793    }
23794
23795    #[inline]
23796    fn visit_super_prop<'ast: 'r, 'r>(
23797        &mut self,
23798        node: &'ast SuperProp,
23799        __ast_path: &mut AstNodePath<'r>,
23800    ) {
23801        <V as VisitAstPath>::visit_super_prop(&mut **self, node, __ast_path)
23802    }
23803
23804    #[inline]
23805    fn visit_super_prop_expr<'ast: 'r, 'r>(
23806        &mut self,
23807        node: &'ast SuperPropExpr,
23808        __ast_path: &mut AstNodePath<'r>,
23809    ) {
23810        <V as VisitAstPath>::visit_super_prop_expr(&mut **self, node, __ast_path)
23811    }
23812
23813    #[inline]
23814    fn visit_switch_case<'ast: 'r, 'r>(
23815        &mut self,
23816        node: &'ast SwitchCase,
23817        __ast_path: &mut AstNodePath<'r>,
23818    ) {
23819        <V as VisitAstPath>::visit_switch_case(&mut **self, node, __ast_path)
23820    }
23821
23822    #[inline]
23823    fn visit_switch_cases<'ast: 'r, 'r>(
23824        &mut self,
23825        node: &'ast [SwitchCase],
23826        __ast_path: &mut AstNodePath<'r>,
23827    ) {
23828        <V as VisitAstPath>::visit_switch_cases(&mut **self, node, __ast_path)
23829    }
23830
23831    #[inline]
23832    fn visit_switch_stmt<'ast: 'r, 'r>(
23833        &mut self,
23834        node: &'ast SwitchStmt,
23835        __ast_path: &mut AstNodePath<'r>,
23836    ) {
23837        <V as VisitAstPath>::visit_switch_stmt(&mut **self, node, __ast_path)
23838    }
23839
23840    #[inline]
23841    fn visit_syntax_context<'ast: 'r, 'r>(
23842        &mut self,
23843        node: &'ast swc_common::SyntaxContext,
23844        __ast_path: &mut AstNodePath<'r>,
23845    ) {
23846        <V as VisitAstPath>::visit_syntax_context(&mut **self, node, __ast_path)
23847    }
23848
23849    #[inline]
23850    fn visit_tagged_tpl<'ast: 'r, 'r>(
23851        &mut self,
23852        node: &'ast TaggedTpl,
23853        __ast_path: &mut AstNodePath<'r>,
23854    ) {
23855        <V as VisitAstPath>::visit_tagged_tpl(&mut **self, node, __ast_path)
23856    }
23857
23858    #[inline]
23859    fn visit_this_expr<'ast: 'r, 'r>(
23860        &mut self,
23861        node: &'ast ThisExpr,
23862        __ast_path: &mut AstNodePath<'r>,
23863    ) {
23864        <V as VisitAstPath>::visit_this_expr(&mut **self, node, __ast_path)
23865    }
23866
23867    #[inline]
23868    fn visit_throw_stmt<'ast: 'r, 'r>(
23869        &mut self,
23870        node: &'ast ThrowStmt,
23871        __ast_path: &mut AstNodePath<'r>,
23872    ) {
23873        <V as VisitAstPath>::visit_throw_stmt(&mut **self, node, __ast_path)
23874    }
23875
23876    #[inline]
23877    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
23878        <V as VisitAstPath>::visit_tpl(&mut **self, node, __ast_path)
23879    }
23880
23881    #[inline]
23882    fn visit_tpl_element<'ast: 'r, 'r>(
23883        &mut self,
23884        node: &'ast TplElement,
23885        __ast_path: &mut AstNodePath<'r>,
23886    ) {
23887        <V as VisitAstPath>::visit_tpl_element(&mut **self, node, __ast_path)
23888    }
23889
23890    #[inline]
23891    fn visit_tpl_elements<'ast: 'r, 'r>(
23892        &mut self,
23893        node: &'ast [TplElement],
23894        __ast_path: &mut AstNodePath<'r>,
23895    ) {
23896        <V as VisitAstPath>::visit_tpl_elements(&mut **self, node, __ast_path)
23897    }
23898
23899    #[inline]
23900    fn visit_true_plus_minus<'ast: 'r, 'r>(
23901        &mut self,
23902        node: &'ast TruePlusMinus,
23903        __ast_path: &mut AstNodePath<'r>,
23904    ) {
23905        <V as VisitAstPath>::visit_true_plus_minus(&mut **self, node, __ast_path)
23906    }
23907
23908    #[inline]
23909    fn visit_try_stmt<'ast: 'r, 'r>(
23910        &mut self,
23911        node: &'ast TryStmt,
23912        __ast_path: &mut AstNodePath<'r>,
23913    ) {
23914        <V as VisitAstPath>::visit_try_stmt(&mut **self, node, __ast_path)
23915    }
23916
23917    #[inline]
23918    fn visit_ts_array_type<'ast: 'r, 'r>(
23919        &mut self,
23920        node: &'ast TsArrayType,
23921        __ast_path: &mut AstNodePath<'r>,
23922    ) {
23923        <V as VisitAstPath>::visit_ts_array_type(&mut **self, node, __ast_path)
23924    }
23925
23926    #[inline]
23927    fn visit_ts_as_expr<'ast: 'r, 'r>(
23928        &mut self,
23929        node: &'ast TsAsExpr,
23930        __ast_path: &mut AstNodePath<'r>,
23931    ) {
23932        <V as VisitAstPath>::visit_ts_as_expr(&mut **self, node, __ast_path)
23933    }
23934
23935    #[inline]
23936    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
23937        &mut self,
23938        node: &'ast TsCallSignatureDecl,
23939        __ast_path: &mut AstNodePath<'r>,
23940    ) {
23941        <V as VisitAstPath>::visit_ts_call_signature_decl(&mut **self, node, __ast_path)
23942    }
23943
23944    #[inline]
23945    fn visit_ts_conditional_type<'ast: 'r, 'r>(
23946        &mut self,
23947        node: &'ast TsConditionalType,
23948        __ast_path: &mut AstNodePath<'r>,
23949    ) {
23950        <V as VisitAstPath>::visit_ts_conditional_type(&mut **self, node, __ast_path)
23951    }
23952
23953    #[inline]
23954    fn visit_ts_const_assertion<'ast: 'r, 'r>(
23955        &mut self,
23956        node: &'ast TsConstAssertion,
23957        __ast_path: &mut AstNodePath<'r>,
23958    ) {
23959        <V as VisitAstPath>::visit_ts_const_assertion(&mut **self, node, __ast_path)
23960    }
23961
23962    #[inline]
23963    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
23964        &mut self,
23965        node: &'ast TsConstructSignatureDecl,
23966        __ast_path: &mut AstNodePath<'r>,
23967    ) {
23968        <V as VisitAstPath>::visit_ts_construct_signature_decl(&mut **self, node, __ast_path)
23969    }
23970
23971    #[inline]
23972    fn visit_ts_constructor_type<'ast: 'r, 'r>(
23973        &mut self,
23974        node: &'ast TsConstructorType,
23975        __ast_path: &mut AstNodePath<'r>,
23976    ) {
23977        <V as VisitAstPath>::visit_ts_constructor_type(&mut **self, node, __ast_path)
23978    }
23979
23980    #[inline]
23981    fn visit_ts_entity_name<'ast: 'r, 'r>(
23982        &mut self,
23983        node: &'ast TsEntityName,
23984        __ast_path: &mut AstNodePath<'r>,
23985    ) {
23986        <V as VisitAstPath>::visit_ts_entity_name(&mut **self, node, __ast_path)
23987    }
23988
23989    #[inline]
23990    fn visit_ts_enum_decl<'ast: 'r, 'r>(
23991        &mut self,
23992        node: &'ast TsEnumDecl,
23993        __ast_path: &mut AstNodePath<'r>,
23994    ) {
23995        <V as VisitAstPath>::visit_ts_enum_decl(&mut **self, node, __ast_path)
23996    }
23997
23998    #[inline]
23999    fn visit_ts_enum_member<'ast: 'r, 'r>(
24000        &mut self,
24001        node: &'ast TsEnumMember,
24002        __ast_path: &mut AstNodePath<'r>,
24003    ) {
24004        <V as VisitAstPath>::visit_ts_enum_member(&mut **self, node, __ast_path)
24005    }
24006
24007    #[inline]
24008    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
24009        &mut self,
24010        node: &'ast TsEnumMemberId,
24011        __ast_path: &mut AstNodePath<'r>,
24012    ) {
24013        <V as VisitAstPath>::visit_ts_enum_member_id(&mut **self, node, __ast_path)
24014    }
24015
24016    #[inline]
24017    fn visit_ts_enum_members<'ast: 'r, 'r>(
24018        &mut self,
24019        node: &'ast [TsEnumMember],
24020        __ast_path: &mut AstNodePath<'r>,
24021    ) {
24022        <V as VisitAstPath>::visit_ts_enum_members(&mut **self, node, __ast_path)
24023    }
24024
24025    #[inline]
24026    fn visit_ts_export_assignment<'ast: 'r, 'r>(
24027        &mut self,
24028        node: &'ast TsExportAssignment,
24029        __ast_path: &mut AstNodePath<'r>,
24030    ) {
24031        <V as VisitAstPath>::visit_ts_export_assignment(&mut **self, node, __ast_path)
24032    }
24033
24034    #[inline]
24035    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
24036        &mut self,
24037        node: &'ast TsExprWithTypeArgs,
24038        __ast_path: &mut AstNodePath<'r>,
24039    ) {
24040        <V as VisitAstPath>::visit_ts_expr_with_type_args(&mut **self, node, __ast_path)
24041    }
24042
24043    #[inline]
24044    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
24045        &mut self,
24046        node: &'ast [TsExprWithTypeArgs],
24047        __ast_path: &mut AstNodePath<'r>,
24048    ) {
24049        <V as VisitAstPath>::visit_ts_expr_with_type_argss(&mut **self, node, __ast_path)
24050    }
24051
24052    #[inline]
24053    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
24054        &mut self,
24055        node: &'ast TsExternalModuleRef,
24056        __ast_path: &mut AstNodePath<'r>,
24057    ) {
24058        <V as VisitAstPath>::visit_ts_external_module_ref(&mut **self, node, __ast_path)
24059    }
24060
24061    #[inline]
24062    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
24063        &mut self,
24064        node: &'ast TsFnOrConstructorType,
24065        __ast_path: &mut AstNodePath<'r>,
24066    ) {
24067        <V as VisitAstPath>::visit_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
24068    }
24069
24070    #[inline]
24071    fn visit_ts_fn_param<'ast: 'r, 'r>(
24072        &mut self,
24073        node: &'ast TsFnParam,
24074        __ast_path: &mut AstNodePath<'r>,
24075    ) {
24076        <V as VisitAstPath>::visit_ts_fn_param(&mut **self, node, __ast_path)
24077    }
24078
24079    #[inline]
24080    fn visit_ts_fn_params<'ast: 'r, 'r>(
24081        &mut self,
24082        node: &'ast [TsFnParam],
24083        __ast_path: &mut AstNodePath<'r>,
24084    ) {
24085        <V as VisitAstPath>::visit_ts_fn_params(&mut **self, node, __ast_path)
24086    }
24087
24088    #[inline]
24089    fn visit_ts_fn_type<'ast: 'r, 'r>(
24090        &mut self,
24091        node: &'ast TsFnType,
24092        __ast_path: &mut AstNodePath<'r>,
24093    ) {
24094        <V as VisitAstPath>::visit_ts_fn_type(&mut **self, node, __ast_path)
24095    }
24096
24097    #[inline]
24098    fn visit_ts_getter_signature<'ast: 'r, 'r>(
24099        &mut self,
24100        node: &'ast TsGetterSignature,
24101        __ast_path: &mut AstNodePath<'r>,
24102    ) {
24103        <V as VisitAstPath>::visit_ts_getter_signature(&mut **self, node, __ast_path)
24104    }
24105
24106    #[inline]
24107    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
24108        &mut self,
24109        node: &'ast TsImportEqualsDecl,
24110        __ast_path: &mut AstNodePath<'r>,
24111    ) {
24112        <V as VisitAstPath>::visit_ts_import_equals_decl(&mut **self, node, __ast_path)
24113    }
24114
24115    #[inline]
24116    fn visit_ts_import_type<'ast: 'r, 'r>(
24117        &mut self,
24118        node: &'ast TsImportType,
24119        __ast_path: &mut AstNodePath<'r>,
24120    ) {
24121        <V as VisitAstPath>::visit_ts_import_type(&mut **self, node, __ast_path)
24122    }
24123
24124    #[inline]
24125    fn visit_ts_index_signature<'ast: 'r, 'r>(
24126        &mut self,
24127        node: &'ast TsIndexSignature,
24128        __ast_path: &mut AstNodePath<'r>,
24129    ) {
24130        <V as VisitAstPath>::visit_ts_index_signature(&mut **self, node, __ast_path)
24131    }
24132
24133    #[inline]
24134    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
24135        &mut self,
24136        node: &'ast TsIndexedAccessType,
24137        __ast_path: &mut AstNodePath<'r>,
24138    ) {
24139        <V as VisitAstPath>::visit_ts_indexed_access_type(&mut **self, node, __ast_path)
24140    }
24141
24142    #[inline]
24143    fn visit_ts_infer_type<'ast: 'r, 'r>(
24144        &mut self,
24145        node: &'ast TsInferType,
24146        __ast_path: &mut AstNodePath<'r>,
24147    ) {
24148        <V as VisitAstPath>::visit_ts_infer_type(&mut **self, node, __ast_path)
24149    }
24150
24151    #[inline]
24152    fn visit_ts_instantiation<'ast: 'r, 'r>(
24153        &mut self,
24154        node: &'ast TsInstantiation,
24155        __ast_path: &mut AstNodePath<'r>,
24156    ) {
24157        <V as VisitAstPath>::visit_ts_instantiation(&mut **self, node, __ast_path)
24158    }
24159
24160    #[inline]
24161    fn visit_ts_interface_body<'ast: 'r, 'r>(
24162        &mut self,
24163        node: &'ast TsInterfaceBody,
24164        __ast_path: &mut AstNodePath<'r>,
24165    ) {
24166        <V as VisitAstPath>::visit_ts_interface_body(&mut **self, node, __ast_path)
24167    }
24168
24169    #[inline]
24170    fn visit_ts_interface_decl<'ast: 'r, 'r>(
24171        &mut self,
24172        node: &'ast TsInterfaceDecl,
24173        __ast_path: &mut AstNodePath<'r>,
24174    ) {
24175        <V as VisitAstPath>::visit_ts_interface_decl(&mut **self, node, __ast_path)
24176    }
24177
24178    #[inline]
24179    fn visit_ts_intersection_type<'ast: 'r, 'r>(
24180        &mut self,
24181        node: &'ast TsIntersectionType,
24182        __ast_path: &mut AstNodePath<'r>,
24183    ) {
24184        <V as VisitAstPath>::visit_ts_intersection_type(&mut **self, node, __ast_path)
24185    }
24186
24187    #[inline]
24188    fn visit_ts_keyword_type<'ast: 'r, 'r>(
24189        &mut self,
24190        node: &'ast TsKeywordType,
24191        __ast_path: &mut AstNodePath<'r>,
24192    ) {
24193        <V as VisitAstPath>::visit_ts_keyword_type(&mut **self, node, __ast_path)
24194    }
24195
24196    #[inline]
24197    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
24198        &mut self,
24199        node: &'ast TsKeywordTypeKind,
24200        __ast_path: &mut AstNodePath<'r>,
24201    ) {
24202        <V as VisitAstPath>::visit_ts_keyword_type_kind(&mut **self, node, __ast_path)
24203    }
24204
24205    #[inline]
24206    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
24207        <V as VisitAstPath>::visit_ts_lit(&mut **self, node, __ast_path)
24208    }
24209
24210    #[inline]
24211    fn visit_ts_lit_type<'ast: 'r, 'r>(
24212        &mut self,
24213        node: &'ast TsLitType,
24214        __ast_path: &mut AstNodePath<'r>,
24215    ) {
24216        <V as VisitAstPath>::visit_ts_lit_type(&mut **self, node, __ast_path)
24217    }
24218
24219    #[inline]
24220    fn visit_ts_mapped_type<'ast: 'r, 'r>(
24221        &mut self,
24222        node: &'ast TsMappedType,
24223        __ast_path: &mut AstNodePath<'r>,
24224    ) {
24225        <V as VisitAstPath>::visit_ts_mapped_type(&mut **self, node, __ast_path)
24226    }
24227
24228    #[inline]
24229    fn visit_ts_method_signature<'ast: 'r, 'r>(
24230        &mut self,
24231        node: &'ast TsMethodSignature,
24232        __ast_path: &mut AstNodePath<'r>,
24233    ) {
24234        <V as VisitAstPath>::visit_ts_method_signature(&mut **self, node, __ast_path)
24235    }
24236
24237    #[inline]
24238    fn visit_ts_module_block<'ast: 'r, 'r>(
24239        &mut self,
24240        node: &'ast TsModuleBlock,
24241        __ast_path: &mut AstNodePath<'r>,
24242    ) {
24243        <V as VisitAstPath>::visit_ts_module_block(&mut **self, node, __ast_path)
24244    }
24245
24246    #[inline]
24247    fn visit_ts_module_decl<'ast: 'r, 'r>(
24248        &mut self,
24249        node: &'ast TsModuleDecl,
24250        __ast_path: &mut AstNodePath<'r>,
24251    ) {
24252        <V as VisitAstPath>::visit_ts_module_decl(&mut **self, node, __ast_path)
24253    }
24254
24255    #[inline]
24256    fn visit_ts_module_name<'ast: 'r, 'r>(
24257        &mut self,
24258        node: &'ast TsModuleName,
24259        __ast_path: &mut AstNodePath<'r>,
24260    ) {
24261        <V as VisitAstPath>::visit_ts_module_name(&mut **self, node, __ast_path)
24262    }
24263
24264    #[inline]
24265    fn visit_ts_module_ref<'ast: 'r, 'r>(
24266        &mut self,
24267        node: &'ast TsModuleRef,
24268        __ast_path: &mut AstNodePath<'r>,
24269    ) {
24270        <V as VisitAstPath>::visit_ts_module_ref(&mut **self, node, __ast_path)
24271    }
24272
24273    #[inline]
24274    fn visit_ts_namespace_body<'ast: 'r, 'r>(
24275        &mut self,
24276        node: &'ast TsNamespaceBody,
24277        __ast_path: &mut AstNodePath<'r>,
24278    ) {
24279        <V as VisitAstPath>::visit_ts_namespace_body(&mut **self, node, __ast_path)
24280    }
24281
24282    #[inline]
24283    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
24284        &mut self,
24285        node: &'ast TsNamespaceDecl,
24286        __ast_path: &mut AstNodePath<'r>,
24287    ) {
24288        <V as VisitAstPath>::visit_ts_namespace_decl(&mut **self, node, __ast_path)
24289    }
24290
24291    #[inline]
24292    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
24293        &mut self,
24294        node: &'ast TsNamespaceExportDecl,
24295        __ast_path: &mut AstNodePath<'r>,
24296    ) {
24297        <V as VisitAstPath>::visit_ts_namespace_export_decl(&mut **self, node, __ast_path)
24298    }
24299
24300    #[inline]
24301    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
24302        &mut self,
24303        node: &'ast TsNonNullExpr,
24304        __ast_path: &mut AstNodePath<'r>,
24305    ) {
24306        <V as VisitAstPath>::visit_ts_non_null_expr(&mut **self, node, __ast_path)
24307    }
24308
24309    #[inline]
24310    fn visit_ts_optional_type<'ast: 'r, 'r>(
24311        &mut self,
24312        node: &'ast TsOptionalType,
24313        __ast_path: &mut AstNodePath<'r>,
24314    ) {
24315        <V as VisitAstPath>::visit_ts_optional_type(&mut **self, node, __ast_path)
24316    }
24317
24318    #[inline]
24319    fn visit_ts_param_prop<'ast: 'r, 'r>(
24320        &mut self,
24321        node: &'ast TsParamProp,
24322        __ast_path: &mut AstNodePath<'r>,
24323    ) {
24324        <V as VisitAstPath>::visit_ts_param_prop(&mut **self, node, __ast_path)
24325    }
24326
24327    #[inline]
24328    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
24329        &mut self,
24330        node: &'ast TsParamPropParam,
24331        __ast_path: &mut AstNodePath<'r>,
24332    ) {
24333        <V as VisitAstPath>::visit_ts_param_prop_param(&mut **self, node, __ast_path)
24334    }
24335
24336    #[inline]
24337    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
24338        &mut self,
24339        node: &'ast TsParenthesizedType,
24340        __ast_path: &mut AstNodePath<'r>,
24341    ) {
24342        <V as VisitAstPath>::visit_ts_parenthesized_type(&mut **self, node, __ast_path)
24343    }
24344
24345    #[inline]
24346    fn visit_ts_property_signature<'ast: 'r, 'r>(
24347        &mut self,
24348        node: &'ast TsPropertySignature,
24349        __ast_path: &mut AstNodePath<'r>,
24350    ) {
24351        <V as VisitAstPath>::visit_ts_property_signature(&mut **self, node, __ast_path)
24352    }
24353
24354    #[inline]
24355    fn visit_ts_qualified_name<'ast: 'r, 'r>(
24356        &mut self,
24357        node: &'ast TsQualifiedName,
24358        __ast_path: &mut AstNodePath<'r>,
24359    ) {
24360        <V as VisitAstPath>::visit_ts_qualified_name(&mut **self, node, __ast_path)
24361    }
24362
24363    #[inline]
24364    fn visit_ts_rest_type<'ast: 'r, 'r>(
24365        &mut self,
24366        node: &'ast TsRestType,
24367        __ast_path: &mut AstNodePath<'r>,
24368    ) {
24369        <V as VisitAstPath>::visit_ts_rest_type(&mut **self, node, __ast_path)
24370    }
24371
24372    #[inline]
24373    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
24374        &mut self,
24375        node: &'ast TsSatisfiesExpr,
24376        __ast_path: &mut AstNodePath<'r>,
24377    ) {
24378        <V as VisitAstPath>::visit_ts_satisfies_expr(&mut **self, node, __ast_path)
24379    }
24380
24381    #[inline]
24382    fn visit_ts_setter_signature<'ast: 'r, 'r>(
24383        &mut self,
24384        node: &'ast TsSetterSignature,
24385        __ast_path: &mut AstNodePath<'r>,
24386    ) {
24387        <V as VisitAstPath>::visit_ts_setter_signature(&mut **self, node, __ast_path)
24388    }
24389
24390    #[inline]
24391    fn visit_ts_this_type<'ast: 'r, 'r>(
24392        &mut self,
24393        node: &'ast TsThisType,
24394        __ast_path: &mut AstNodePath<'r>,
24395    ) {
24396        <V as VisitAstPath>::visit_ts_this_type(&mut **self, node, __ast_path)
24397    }
24398
24399    #[inline]
24400    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
24401        &mut self,
24402        node: &'ast TsThisTypeOrIdent,
24403        __ast_path: &mut AstNodePath<'r>,
24404    ) {
24405        <V as VisitAstPath>::visit_ts_this_type_or_ident(&mut **self, node, __ast_path)
24406    }
24407
24408    #[inline]
24409    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
24410        &mut self,
24411        node: &'ast TsTplLitType,
24412        __ast_path: &mut AstNodePath<'r>,
24413    ) {
24414        <V as VisitAstPath>::visit_ts_tpl_lit_type(&mut **self, node, __ast_path)
24415    }
24416
24417    #[inline]
24418    fn visit_ts_tuple_element<'ast: 'r, 'r>(
24419        &mut self,
24420        node: &'ast TsTupleElement,
24421        __ast_path: &mut AstNodePath<'r>,
24422    ) {
24423        <V as VisitAstPath>::visit_ts_tuple_element(&mut **self, node, __ast_path)
24424    }
24425
24426    #[inline]
24427    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
24428        &mut self,
24429        node: &'ast [TsTupleElement],
24430        __ast_path: &mut AstNodePath<'r>,
24431    ) {
24432        <V as VisitAstPath>::visit_ts_tuple_elements(&mut **self, node, __ast_path)
24433    }
24434
24435    #[inline]
24436    fn visit_ts_tuple_type<'ast: 'r, 'r>(
24437        &mut self,
24438        node: &'ast TsTupleType,
24439        __ast_path: &mut AstNodePath<'r>,
24440    ) {
24441        <V as VisitAstPath>::visit_ts_tuple_type(&mut **self, node, __ast_path)
24442    }
24443
24444    #[inline]
24445    fn visit_ts_type<'ast: 'r, 'r>(
24446        &mut self,
24447        node: &'ast TsType,
24448        __ast_path: &mut AstNodePath<'r>,
24449    ) {
24450        <V as VisitAstPath>::visit_ts_type(&mut **self, node, __ast_path)
24451    }
24452
24453    #[inline]
24454    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
24455        &mut self,
24456        node: &'ast TsTypeAliasDecl,
24457        __ast_path: &mut AstNodePath<'r>,
24458    ) {
24459        <V as VisitAstPath>::visit_ts_type_alias_decl(&mut **self, node, __ast_path)
24460    }
24461
24462    #[inline]
24463    fn visit_ts_type_ann<'ast: 'r, 'r>(
24464        &mut self,
24465        node: &'ast TsTypeAnn,
24466        __ast_path: &mut AstNodePath<'r>,
24467    ) {
24468        <V as VisitAstPath>::visit_ts_type_ann(&mut **self, node, __ast_path)
24469    }
24470
24471    #[inline]
24472    fn visit_ts_type_assertion<'ast: 'r, 'r>(
24473        &mut self,
24474        node: &'ast TsTypeAssertion,
24475        __ast_path: &mut AstNodePath<'r>,
24476    ) {
24477        <V as VisitAstPath>::visit_ts_type_assertion(&mut **self, node, __ast_path)
24478    }
24479
24480    #[inline]
24481    fn visit_ts_type_element<'ast: 'r, 'r>(
24482        &mut self,
24483        node: &'ast TsTypeElement,
24484        __ast_path: &mut AstNodePath<'r>,
24485    ) {
24486        <V as VisitAstPath>::visit_ts_type_element(&mut **self, node, __ast_path)
24487    }
24488
24489    #[inline]
24490    fn visit_ts_type_elements<'ast: 'r, 'r>(
24491        &mut self,
24492        node: &'ast [TsTypeElement],
24493        __ast_path: &mut AstNodePath<'r>,
24494    ) {
24495        <V as VisitAstPath>::visit_ts_type_elements(&mut **self, node, __ast_path)
24496    }
24497
24498    #[inline]
24499    fn visit_ts_type_lit<'ast: 'r, 'r>(
24500        &mut self,
24501        node: &'ast TsTypeLit,
24502        __ast_path: &mut AstNodePath<'r>,
24503    ) {
24504        <V as VisitAstPath>::visit_ts_type_lit(&mut **self, node, __ast_path)
24505    }
24506
24507    #[inline]
24508    fn visit_ts_type_operator<'ast: 'r, 'r>(
24509        &mut self,
24510        node: &'ast TsTypeOperator,
24511        __ast_path: &mut AstNodePath<'r>,
24512    ) {
24513        <V as VisitAstPath>::visit_ts_type_operator(&mut **self, node, __ast_path)
24514    }
24515
24516    #[inline]
24517    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
24518        &mut self,
24519        node: &'ast TsTypeOperatorOp,
24520        __ast_path: &mut AstNodePath<'r>,
24521    ) {
24522        <V as VisitAstPath>::visit_ts_type_operator_op(&mut **self, node, __ast_path)
24523    }
24524
24525    #[inline]
24526    fn visit_ts_type_param<'ast: 'r, 'r>(
24527        &mut self,
24528        node: &'ast TsTypeParam,
24529        __ast_path: &mut AstNodePath<'r>,
24530    ) {
24531        <V as VisitAstPath>::visit_ts_type_param(&mut **self, node, __ast_path)
24532    }
24533
24534    #[inline]
24535    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
24536        &mut self,
24537        node: &'ast TsTypeParamDecl,
24538        __ast_path: &mut AstNodePath<'r>,
24539    ) {
24540        <V as VisitAstPath>::visit_ts_type_param_decl(&mut **self, node, __ast_path)
24541    }
24542
24543    #[inline]
24544    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
24545        &mut self,
24546        node: &'ast TsTypeParamInstantiation,
24547        __ast_path: &mut AstNodePath<'r>,
24548    ) {
24549        <V as VisitAstPath>::visit_ts_type_param_instantiation(&mut **self, node, __ast_path)
24550    }
24551
24552    #[inline]
24553    fn visit_ts_type_params<'ast: 'r, 'r>(
24554        &mut self,
24555        node: &'ast [TsTypeParam],
24556        __ast_path: &mut AstNodePath<'r>,
24557    ) {
24558        <V as VisitAstPath>::visit_ts_type_params(&mut **self, node, __ast_path)
24559    }
24560
24561    #[inline]
24562    fn visit_ts_type_predicate<'ast: 'r, 'r>(
24563        &mut self,
24564        node: &'ast TsTypePredicate,
24565        __ast_path: &mut AstNodePath<'r>,
24566    ) {
24567        <V as VisitAstPath>::visit_ts_type_predicate(&mut **self, node, __ast_path)
24568    }
24569
24570    #[inline]
24571    fn visit_ts_type_query<'ast: 'r, 'r>(
24572        &mut self,
24573        node: &'ast TsTypeQuery,
24574        __ast_path: &mut AstNodePath<'r>,
24575    ) {
24576        <V as VisitAstPath>::visit_ts_type_query(&mut **self, node, __ast_path)
24577    }
24578
24579    #[inline]
24580    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
24581        &mut self,
24582        node: &'ast TsTypeQueryExpr,
24583        __ast_path: &mut AstNodePath<'r>,
24584    ) {
24585        <V as VisitAstPath>::visit_ts_type_query_expr(&mut **self, node, __ast_path)
24586    }
24587
24588    #[inline]
24589    fn visit_ts_type_ref<'ast: 'r, 'r>(
24590        &mut self,
24591        node: &'ast TsTypeRef,
24592        __ast_path: &mut AstNodePath<'r>,
24593    ) {
24594        <V as VisitAstPath>::visit_ts_type_ref(&mut **self, node, __ast_path)
24595    }
24596
24597    #[inline]
24598    fn visit_ts_types<'ast: 'r, 'r>(
24599        &mut self,
24600        node: &'ast [Box<TsType>],
24601        __ast_path: &mut AstNodePath<'r>,
24602    ) {
24603        <V as VisitAstPath>::visit_ts_types(&mut **self, node, __ast_path)
24604    }
24605
24606    #[inline]
24607    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
24608        &mut self,
24609        node: &'ast TsUnionOrIntersectionType,
24610        __ast_path: &mut AstNodePath<'r>,
24611    ) {
24612        <V as VisitAstPath>::visit_ts_union_or_intersection_type(&mut **self, node, __ast_path)
24613    }
24614
24615    #[inline]
24616    fn visit_ts_union_type<'ast: 'r, 'r>(
24617        &mut self,
24618        node: &'ast TsUnionType,
24619        __ast_path: &mut AstNodePath<'r>,
24620    ) {
24621        <V as VisitAstPath>::visit_ts_union_type(&mut **self, node, __ast_path)
24622    }
24623
24624    #[inline]
24625    fn visit_unary_expr<'ast: 'r, 'r>(
24626        &mut self,
24627        node: &'ast UnaryExpr,
24628        __ast_path: &mut AstNodePath<'r>,
24629    ) {
24630        <V as VisitAstPath>::visit_unary_expr(&mut **self, node, __ast_path)
24631    }
24632
24633    #[inline]
24634    fn visit_unary_op<'ast: 'r, 'r>(
24635        &mut self,
24636        node: &'ast UnaryOp,
24637        __ast_path: &mut AstNodePath<'r>,
24638    ) {
24639        <V as VisitAstPath>::visit_unary_op(&mut **self, node, __ast_path)
24640    }
24641
24642    #[inline]
24643    fn visit_update_expr<'ast: 'r, 'r>(
24644        &mut self,
24645        node: &'ast UpdateExpr,
24646        __ast_path: &mut AstNodePath<'r>,
24647    ) {
24648        <V as VisitAstPath>::visit_update_expr(&mut **self, node, __ast_path)
24649    }
24650
24651    #[inline]
24652    fn visit_update_op<'ast: 'r, 'r>(
24653        &mut self,
24654        node: &'ast UpdateOp,
24655        __ast_path: &mut AstNodePath<'r>,
24656    ) {
24657        <V as VisitAstPath>::visit_update_op(&mut **self, node, __ast_path)
24658    }
24659
24660    #[inline]
24661    fn visit_using_decl<'ast: 'r, 'r>(
24662        &mut self,
24663        node: &'ast UsingDecl,
24664        __ast_path: &mut AstNodePath<'r>,
24665    ) {
24666        <V as VisitAstPath>::visit_using_decl(&mut **self, node, __ast_path)
24667    }
24668
24669    #[inline]
24670    fn visit_var_decl<'ast: 'r, 'r>(
24671        &mut self,
24672        node: &'ast VarDecl,
24673        __ast_path: &mut AstNodePath<'r>,
24674    ) {
24675        <V as VisitAstPath>::visit_var_decl(&mut **self, node, __ast_path)
24676    }
24677
24678    #[inline]
24679    fn visit_var_decl_kind<'ast: 'r, 'r>(
24680        &mut self,
24681        node: &'ast VarDeclKind,
24682        __ast_path: &mut AstNodePath<'r>,
24683    ) {
24684        <V as VisitAstPath>::visit_var_decl_kind(&mut **self, node, __ast_path)
24685    }
24686
24687    #[inline]
24688    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
24689        &mut self,
24690        node: &'ast VarDeclOrExpr,
24691        __ast_path: &mut AstNodePath<'r>,
24692    ) {
24693        <V as VisitAstPath>::visit_var_decl_or_expr(&mut **self, node, __ast_path)
24694    }
24695
24696    #[inline]
24697    fn visit_var_declarator<'ast: 'r, 'r>(
24698        &mut self,
24699        node: &'ast VarDeclarator,
24700        __ast_path: &mut AstNodePath<'r>,
24701    ) {
24702        <V as VisitAstPath>::visit_var_declarator(&mut **self, node, __ast_path)
24703    }
24704
24705    #[inline]
24706    fn visit_var_declarators<'ast: 'r, 'r>(
24707        &mut self,
24708        node: &'ast [VarDeclarator],
24709        __ast_path: &mut AstNodePath<'r>,
24710    ) {
24711        <V as VisitAstPath>::visit_var_declarators(&mut **self, node, __ast_path)
24712    }
24713
24714    #[inline]
24715    fn visit_while_stmt<'ast: 'r, 'r>(
24716        &mut self,
24717        node: &'ast WhileStmt,
24718        __ast_path: &mut AstNodePath<'r>,
24719    ) {
24720        <V as VisitAstPath>::visit_while_stmt(&mut **self, node, __ast_path)
24721    }
24722
24723    #[inline]
24724    fn visit_with_stmt<'ast: 'r, 'r>(
24725        &mut self,
24726        node: &'ast WithStmt,
24727        __ast_path: &mut AstNodePath<'r>,
24728    ) {
24729        <V as VisitAstPath>::visit_with_stmt(&mut **self, node, __ast_path)
24730    }
24731
24732    #[inline]
24733    fn visit_yield_expr<'ast: 'r, 'r>(
24734        &mut self,
24735        node: &'ast YieldExpr,
24736        __ast_path: &mut AstNodePath<'r>,
24737    ) {
24738        <V as VisitAstPath>::visit_yield_expr(&mut **self, node, __ast_path)
24739    }
24740}
24741#[cfg(any(docsrs, feature = "path"))]
24742#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
24743impl<A, B> VisitAstPath for ::swc_visit::Either<A, B>
24744where
24745    A: VisitAstPath,
24746    B: VisitAstPath,
24747{
24748    #[inline]
24749    fn visit_accessibility<'ast: 'r, 'r>(
24750        &mut self,
24751        node: &'ast Accessibility,
24752        __ast_path: &mut AstNodePath<'r>,
24753    ) {
24754        match self {
24755            swc_visit::Either::Left(visitor) => {
24756                VisitAstPath::visit_accessibility(visitor, node, __ast_path)
24757            }
24758            swc_visit::Either::Right(visitor) => {
24759                VisitAstPath::visit_accessibility(visitor, node, __ast_path)
24760            }
24761        }
24762    }
24763
24764    #[inline]
24765    fn visit_array_lit<'ast: 'r, 'r>(
24766        &mut self,
24767        node: &'ast ArrayLit,
24768        __ast_path: &mut AstNodePath<'r>,
24769    ) {
24770        match self {
24771            swc_visit::Either::Left(visitor) => {
24772                VisitAstPath::visit_array_lit(visitor, node, __ast_path)
24773            }
24774            swc_visit::Either::Right(visitor) => {
24775                VisitAstPath::visit_array_lit(visitor, node, __ast_path)
24776            }
24777        }
24778    }
24779
24780    #[inline]
24781    fn visit_array_pat<'ast: 'r, 'r>(
24782        &mut self,
24783        node: &'ast ArrayPat,
24784        __ast_path: &mut AstNodePath<'r>,
24785    ) {
24786        match self {
24787            swc_visit::Either::Left(visitor) => {
24788                VisitAstPath::visit_array_pat(visitor, node, __ast_path)
24789            }
24790            swc_visit::Either::Right(visitor) => {
24791                VisitAstPath::visit_array_pat(visitor, node, __ast_path)
24792            }
24793        }
24794    }
24795
24796    #[inline]
24797    fn visit_arrow_expr<'ast: 'r, 'r>(
24798        &mut self,
24799        node: &'ast ArrowExpr,
24800        __ast_path: &mut AstNodePath<'r>,
24801    ) {
24802        match self {
24803            swc_visit::Either::Left(visitor) => {
24804                VisitAstPath::visit_arrow_expr(visitor, node, __ast_path)
24805            }
24806            swc_visit::Either::Right(visitor) => {
24807                VisitAstPath::visit_arrow_expr(visitor, node, __ast_path)
24808            }
24809        }
24810    }
24811
24812    #[inline]
24813    fn visit_assign_expr<'ast: 'r, 'r>(
24814        &mut self,
24815        node: &'ast AssignExpr,
24816        __ast_path: &mut AstNodePath<'r>,
24817    ) {
24818        match self {
24819            swc_visit::Either::Left(visitor) => {
24820                VisitAstPath::visit_assign_expr(visitor, node, __ast_path)
24821            }
24822            swc_visit::Either::Right(visitor) => {
24823                VisitAstPath::visit_assign_expr(visitor, node, __ast_path)
24824            }
24825        }
24826    }
24827
24828    #[inline]
24829    fn visit_assign_op<'ast: 'r, 'r>(
24830        &mut self,
24831        node: &'ast AssignOp,
24832        __ast_path: &mut AstNodePath<'r>,
24833    ) {
24834        match self {
24835            swc_visit::Either::Left(visitor) => {
24836                VisitAstPath::visit_assign_op(visitor, node, __ast_path)
24837            }
24838            swc_visit::Either::Right(visitor) => {
24839                VisitAstPath::visit_assign_op(visitor, node, __ast_path)
24840            }
24841        }
24842    }
24843
24844    #[inline]
24845    fn visit_assign_pat<'ast: 'r, 'r>(
24846        &mut self,
24847        node: &'ast AssignPat,
24848        __ast_path: &mut AstNodePath<'r>,
24849    ) {
24850        match self {
24851            swc_visit::Either::Left(visitor) => {
24852                VisitAstPath::visit_assign_pat(visitor, node, __ast_path)
24853            }
24854            swc_visit::Either::Right(visitor) => {
24855                VisitAstPath::visit_assign_pat(visitor, node, __ast_path)
24856            }
24857        }
24858    }
24859
24860    #[inline]
24861    fn visit_assign_pat_prop<'ast: 'r, 'r>(
24862        &mut self,
24863        node: &'ast AssignPatProp,
24864        __ast_path: &mut AstNodePath<'r>,
24865    ) {
24866        match self {
24867            swc_visit::Either::Left(visitor) => {
24868                VisitAstPath::visit_assign_pat_prop(visitor, node, __ast_path)
24869            }
24870            swc_visit::Either::Right(visitor) => {
24871                VisitAstPath::visit_assign_pat_prop(visitor, node, __ast_path)
24872            }
24873        }
24874    }
24875
24876    #[inline]
24877    fn visit_assign_prop<'ast: 'r, 'r>(
24878        &mut self,
24879        node: &'ast AssignProp,
24880        __ast_path: &mut AstNodePath<'r>,
24881    ) {
24882        match self {
24883            swc_visit::Either::Left(visitor) => {
24884                VisitAstPath::visit_assign_prop(visitor, node, __ast_path)
24885            }
24886            swc_visit::Either::Right(visitor) => {
24887                VisitAstPath::visit_assign_prop(visitor, node, __ast_path)
24888            }
24889        }
24890    }
24891
24892    #[inline]
24893    fn visit_assign_target<'ast: 'r, 'r>(
24894        &mut self,
24895        node: &'ast AssignTarget,
24896        __ast_path: &mut AstNodePath<'r>,
24897    ) {
24898        match self {
24899            swc_visit::Either::Left(visitor) => {
24900                VisitAstPath::visit_assign_target(visitor, node, __ast_path)
24901            }
24902            swc_visit::Either::Right(visitor) => {
24903                VisitAstPath::visit_assign_target(visitor, node, __ast_path)
24904            }
24905        }
24906    }
24907
24908    #[inline]
24909    fn visit_assign_target_pat<'ast: 'r, 'r>(
24910        &mut self,
24911        node: &'ast AssignTargetPat,
24912        __ast_path: &mut AstNodePath<'r>,
24913    ) {
24914        match self {
24915            swc_visit::Either::Left(visitor) => {
24916                VisitAstPath::visit_assign_target_pat(visitor, node, __ast_path)
24917            }
24918            swc_visit::Either::Right(visitor) => {
24919                VisitAstPath::visit_assign_target_pat(visitor, node, __ast_path)
24920            }
24921        }
24922    }
24923
24924    #[inline]
24925    fn visit_atom<'ast: 'r, 'r>(
24926        &mut self,
24927        node: &'ast swc_atoms::Atom,
24928        __ast_path: &mut AstNodePath<'r>,
24929    ) {
24930        match self {
24931            swc_visit::Either::Left(visitor) => VisitAstPath::visit_atom(visitor, node, __ast_path),
24932            swc_visit::Either::Right(visitor) => {
24933                VisitAstPath::visit_atom(visitor, node, __ast_path)
24934            }
24935        }
24936    }
24937
24938    #[inline]
24939    fn visit_auto_accessor<'ast: 'r, 'r>(
24940        &mut self,
24941        node: &'ast AutoAccessor,
24942        __ast_path: &mut AstNodePath<'r>,
24943    ) {
24944        match self {
24945            swc_visit::Either::Left(visitor) => {
24946                VisitAstPath::visit_auto_accessor(visitor, node, __ast_path)
24947            }
24948            swc_visit::Either::Right(visitor) => {
24949                VisitAstPath::visit_auto_accessor(visitor, node, __ast_path)
24950            }
24951        }
24952    }
24953
24954    #[inline]
24955    fn visit_await_expr<'ast: 'r, 'r>(
24956        &mut self,
24957        node: &'ast AwaitExpr,
24958        __ast_path: &mut AstNodePath<'r>,
24959    ) {
24960        match self {
24961            swc_visit::Either::Left(visitor) => {
24962                VisitAstPath::visit_await_expr(visitor, node, __ast_path)
24963            }
24964            swc_visit::Either::Right(visitor) => {
24965                VisitAstPath::visit_await_expr(visitor, node, __ast_path)
24966            }
24967        }
24968    }
24969
24970    #[inline]
24971    fn visit_big_int<'ast: 'r, 'r>(
24972        &mut self,
24973        node: &'ast BigInt,
24974        __ast_path: &mut AstNodePath<'r>,
24975    ) {
24976        match self {
24977            swc_visit::Either::Left(visitor) => {
24978                VisitAstPath::visit_big_int(visitor, node, __ast_path)
24979            }
24980            swc_visit::Either::Right(visitor) => {
24981                VisitAstPath::visit_big_int(visitor, node, __ast_path)
24982            }
24983        }
24984    }
24985
24986    #[inline]
24987    fn visit_big_int_value<'ast: 'r, 'r>(
24988        &mut self,
24989        node: &'ast BigIntValue,
24990        __ast_path: &mut AstNodePath<'r>,
24991    ) {
24992        match self {
24993            swc_visit::Either::Left(visitor) => {
24994                VisitAstPath::visit_big_int_value(visitor, node, __ast_path)
24995            }
24996            swc_visit::Either::Right(visitor) => {
24997                VisitAstPath::visit_big_int_value(visitor, node, __ast_path)
24998            }
24999        }
25000    }
25001
25002    #[inline]
25003    fn visit_bin_expr<'ast: 'r, 'r>(
25004        &mut self,
25005        node: &'ast BinExpr,
25006        __ast_path: &mut AstNodePath<'r>,
25007    ) {
25008        match self {
25009            swc_visit::Either::Left(visitor) => {
25010                VisitAstPath::visit_bin_expr(visitor, node, __ast_path)
25011            }
25012            swc_visit::Either::Right(visitor) => {
25013                VisitAstPath::visit_bin_expr(visitor, node, __ast_path)
25014            }
25015        }
25016    }
25017
25018    #[inline]
25019    fn visit_binary_op<'ast: 'r, 'r>(
25020        &mut self,
25021        node: &'ast BinaryOp,
25022        __ast_path: &mut AstNodePath<'r>,
25023    ) {
25024        match self {
25025            swc_visit::Either::Left(visitor) => {
25026                VisitAstPath::visit_binary_op(visitor, node, __ast_path)
25027            }
25028            swc_visit::Either::Right(visitor) => {
25029                VisitAstPath::visit_binary_op(visitor, node, __ast_path)
25030            }
25031        }
25032    }
25033
25034    #[inline]
25035    fn visit_binding_ident<'ast: 'r, 'r>(
25036        &mut self,
25037        node: &'ast BindingIdent,
25038        __ast_path: &mut AstNodePath<'r>,
25039    ) {
25040        match self {
25041            swc_visit::Either::Left(visitor) => {
25042                VisitAstPath::visit_binding_ident(visitor, node, __ast_path)
25043            }
25044            swc_visit::Either::Right(visitor) => {
25045                VisitAstPath::visit_binding_ident(visitor, node, __ast_path)
25046            }
25047        }
25048    }
25049
25050    #[inline]
25051    fn visit_block_stmt<'ast: 'r, 'r>(
25052        &mut self,
25053        node: &'ast BlockStmt,
25054        __ast_path: &mut AstNodePath<'r>,
25055    ) {
25056        match self {
25057            swc_visit::Either::Left(visitor) => {
25058                VisitAstPath::visit_block_stmt(visitor, node, __ast_path)
25059            }
25060            swc_visit::Either::Right(visitor) => {
25061                VisitAstPath::visit_block_stmt(visitor, node, __ast_path)
25062            }
25063        }
25064    }
25065
25066    #[inline]
25067    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
25068        &mut self,
25069        node: &'ast BlockStmtOrExpr,
25070        __ast_path: &mut AstNodePath<'r>,
25071    ) {
25072        match self {
25073            swc_visit::Either::Left(visitor) => {
25074                VisitAstPath::visit_block_stmt_or_expr(visitor, node, __ast_path)
25075            }
25076            swc_visit::Either::Right(visitor) => {
25077                VisitAstPath::visit_block_stmt_or_expr(visitor, node, __ast_path)
25078            }
25079        }
25080    }
25081
25082    #[inline]
25083    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
25084        match self {
25085            swc_visit::Either::Left(visitor) => VisitAstPath::visit_bool(visitor, node, __ast_path),
25086            swc_visit::Either::Right(visitor) => {
25087                VisitAstPath::visit_bool(visitor, node, __ast_path)
25088            }
25089        }
25090    }
25091
25092    #[inline]
25093    fn visit_break_stmt<'ast: 'r, 'r>(
25094        &mut self,
25095        node: &'ast BreakStmt,
25096        __ast_path: &mut AstNodePath<'r>,
25097    ) {
25098        match self {
25099            swc_visit::Either::Left(visitor) => {
25100                VisitAstPath::visit_break_stmt(visitor, node, __ast_path)
25101            }
25102            swc_visit::Either::Right(visitor) => {
25103                VisitAstPath::visit_break_stmt(visitor, node, __ast_path)
25104            }
25105        }
25106    }
25107
25108    #[inline]
25109    fn visit_call_expr<'ast: 'r, 'r>(
25110        &mut self,
25111        node: &'ast CallExpr,
25112        __ast_path: &mut AstNodePath<'r>,
25113    ) {
25114        match self {
25115            swc_visit::Either::Left(visitor) => {
25116                VisitAstPath::visit_call_expr(visitor, node, __ast_path)
25117            }
25118            swc_visit::Either::Right(visitor) => {
25119                VisitAstPath::visit_call_expr(visitor, node, __ast_path)
25120            }
25121        }
25122    }
25123
25124    #[inline]
25125    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
25126        match self {
25127            swc_visit::Either::Left(visitor) => {
25128                VisitAstPath::visit_callee(visitor, node, __ast_path)
25129            }
25130            swc_visit::Either::Right(visitor) => {
25131                VisitAstPath::visit_callee(visitor, node, __ast_path)
25132            }
25133        }
25134    }
25135
25136    #[inline]
25137    fn visit_catch_clause<'ast: 'r, 'r>(
25138        &mut self,
25139        node: &'ast CatchClause,
25140        __ast_path: &mut AstNodePath<'r>,
25141    ) {
25142        match self {
25143            swc_visit::Either::Left(visitor) => {
25144                VisitAstPath::visit_catch_clause(visitor, node, __ast_path)
25145            }
25146            swc_visit::Either::Right(visitor) => {
25147                VisitAstPath::visit_catch_clause(visitor, node, __ast_path)
25148            }
25149        }
25150    }
25151
25152    #[inline]
25153    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
25154        match self {
25155            swc_visit::Either::Left(visitor) => {
25156                VisitAstPath::visit_class(visitor, node, __ast_path)
25157            }
25158            swc_visit::Either::Right(visitor) => {
25159                VisitAstPath::visit_class(visitor, node, __ast_path)
25160            }
25161        }
25162    }
25163
25164    #[inline]
25165    fn visit_class_decl<'ast: 'r, 'r>(
25166        &mut self,
25167        node: &'ast ClassDecl,
25168        __ast_path: &mut AstNodePath<'r>,
25169    ) {
25170        match self {
25171            swc_visit::Either::Left(visitor) => {
25172                VisitAstPath::visit_class_decl(visitor, node, __ast_path)
25173            }
25174            swc_visit::Either::Right(visitor) => {
25175                VisitAstPath::visit_class_decl(visitor, node, __ast_path)
25176            }
25177        }
25178    }
25179
25180    #[inline]
25181    fn visit_class_expr<'ast: 'r, 'r>(
25182        &mut self,
25183        node: &'ast ClassExpr,
25184        __ast_path: &mut AstNodePath<'r>,
25185    ) {
25186        match self {
25187            swc_visit::Either::Left(visitor) => {
25188                VisitAstPath::visit_class_expr(visitor, node, __ast_path)
25189            }
25190            swc_visit::Either::Right(visitor) => {
25191                VisitAstPath::visit_class_expr(visitor, node, __ast_path)
25192            }
25193        }
25194    }
25195
25196    #[inline]
25197    fn visit_class_member<'ast: 'r, 'r>(
25198        &mut self,
25199        node: &'ast ClassMember,
25200        __ast_path: &mut AstNodePath<'r>,
25201    ) {
25202        match self {
25203            swc_visit::Either::Left(visitor) => {
25204                VisitAstPath::visit_class_member(visitor, node, __ast_path)
25205            }
25206            swc_visit::Either::Right(visitor) => {
25207                VisitAstPath::visit_class_member(visitor, node, __ast_path)
25208            }
25209        }
25210    }
25211
25212    #[inline]
25213    fn visit_class_members<'ast: 'r, 'r>(
25214        &mut self,
25215        node: &'ast [ClassMember],
25216        __ast_path: &mut AstNodePath<'r>,
25217    ) {
25218        match self {
25219            swc_visit::Either::Left(visitor) => {
25220                VisitAstPath::visit_class_members(visitor, node, __ast_path)
25221            }
25222            swc_visit::Either::Right(visitor) => {
25223                VisitAstPath::visit_class_members(visitor, node, __ast_path)
25224            }
25225        }
25226    }
25227
25228    #[inline]
25229    fn visit_class_method<'ast: 'r, 'r>(
25230        &mut self,
25231        node: &'ast ClassMethod,
25232        __ast_path: &mut AstNodePath<'r>,
25233    ) {
25234        match self {
25235            swc_visit::Either::Left(visitor) => {
25236                VisitAstPath::visit_class_method(visitor, node, __ast_path)
25237            }
25238            swc_visit::Either::Right(visitor) => {
25239                VisitAstPath::visit_class_method(visitor, node, __ast_path)
25240            }
25241        }
25242    }
25243
25244    #[inline]
25245    fn visit_class_prop<'ast: 'r, 'r>(
25246        &mut self,
25247        node: &'ast ClassProp,
25248        __ast_path: &mut AstNodePath<'r>,
25249    ) {
25250        match self {
25251            swc_visit::Either::Left(visitor) => {
25252                VisitAstPath::visit_class_prop(visitor, node, __ast_path)
25253            }
25254            swc_visit::Either::Right(visitor) => {
25255                VisitAstPath::visit_class_prop(visitor, node, __ast_path)
25256            }
25257        }
25258    }
25259
25260    #[inline]
25261    fn visit_computed_prop_name<'ast: 'r, 'r>(
25262        &mut self,
25263        node: &'ast ComputedPropName,
25264        __ast_path: &mut AstNodePath<'r>,
25265    ) {
25266        match self {
25267            swc_visit::Either::Left(visitor) => {
25268                VisitAstPath::visit_computed_prop_name(visitor, node, __ast_path)
25269            }
25270            swc_visit::Either::Right(visitor) => {
25271                VisitAstPath::visit_computed_prop_name(visitor, node, __ast_path)
25272            }
25273        }
25274    }
25275
25276    #[inline]
25277    fn visit_cond_expr<'ast: 'r, 'r>(
25278        &mut self,
25279        node: &'ast CondExpr,
25280        __ast_path: &mut AstNodePath<'r>,
25281    ) {
25282        match self {
25283            swc_visit::Either::Left(visitor) => {
25284                VisitAstPath::visit_cond_expr(visitor, node, __ast_path)
25285            }
25286            swc_visit::Either::Right(visitor) => {
25287                VisitAstPath::visit_cond_expr(visitor, node, __ast_path)
25288            }
25289        }
25290    }
25291
25292    #[inline]
25293    fn visit_constructor<'ast: 'r, 'r>(
25294        &mut self,
25295        node: &'ast Constructor,
25296        __ast_path: &mut AstNodePath<'r>,
25297    ) {
25298        match self {
25299            swc_visit::Either::Left(visitor) => {
25300                VisitAstPath::visit_constructor(visitor, node, __ast_path)
25301            }
25302            swc_visit::Either::Right(visitor) => {
25303                VisitAstPath::visit_constructor(visitor, node, __ast_path)
25304            }
25305        }
25306    }
25307
25308    #[inline]
25309    fn visit_continue_stmt<'ast: 'r, 'r>(
25310        &mut self,
25311        node: &'ast ContinueStmt,
25312        __ast_path: &mut AstNodePath<'r>,
25313    ) {
25314        match self {
25315            swc_visit::Either::Left(visitor) => {
25316                VisitAstPath::visit_continue_stmt(visitor, node, __ast_path)
25317            }
25318            swc_visit::Either::Right(visitor) => {
25319                VisitAstPath::visit_continue_stmt(visitor, node, __ast_path)
25320            }
25321        }
25322    }
25323
25324    #[inline]
25325    fn visit_debugger_stmt<'ast: 'r, 'r>(
25326        &mut self,
25327        node: &'ast DebuggerStmt,
25328        __ast_path: &mut AstNodePath<'r>,
25329    ) {
25330        match self {
25331            swc_visit::Either::Left(visitor) => {
25332                VisitAstPath::visit_debugger_stmt(visitor, node, __ast_path)
25333            }
25334            swc_visit::Either::Right(visitor) => {
25335                VisitAstPath::visit_debugger_stmt(visitor, node, __ast_path)
25336            }
25337        }
25338    }
25339
25340    #[inline]
25341    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
25342        match self {
25343            swc_visit::Either::Left(visitor) => VisitAstPath::visit_decl(visitor, node, __ast_path),
25344            swc_visit::Either::Right(visitor) => {
25345                VisitAstPath::visit_decl(visitor, node, __ast_path)
25346            }
25347        }
25348    }
25349
25350    #[inline]
25351    fn visit_decorator<'ast: 'r, 'r>(
25352        &mut self,
25353        node: &'ast Decorator,
25354        __ast_path: &mut AstNodePath<'r>,
25355    ) {
25356        match self {
25357            swc_visit::Either::Left(visitor) => {
25358                VisitAstPath::visit_decorator(visitor, node, __ast_path)
25359            }
25360            swc_visit::Either::Right(visitor) => {
25361                VisitAstPath::visit_decorator(visitor, node, __ast_path)
25362            }
25363        }
25364    }
25365
25366    #[inline]
25367    fn visit_decorators<'ast: 'r, 'r>(
25368        &mut self,
25369        node: &'ast [Decorator],
25370        __ast_path: &mut AstNodePath<'r>,
25371    ) {
25372        match self {
25373            swc_visit::Either::Left(visitor) => {
25374                VisitAstPath::visit_decorators(visitor, node, __ast_path)
25375            }
25376            swc_visit::Either::Right(visitor) => {
25377                VisitAstPath::visit_decorators(visitor, node, __ast_path)
25378            }
25379        }
25380    }
25381
25382    #[inline]
25383    fn visit_default_decl<'ast: 'r, 'r>(
25384        &mut self,
25385        node: &'ast DefaultDecl,
25386        __ast_path: &mut AstNodePath<'r>,
25387    ) {
25388        match self {
25389            swc_visit::Either::Left(visitor) => {
25390                VisitAstPath::visit_default_decl(visitor, node, __ast_path)
25391            }
25392            swc_visit::Either::Right(visitor) => {
25393                VisitAstPath::visit_default_decl(visitor, node, __ast_path)
25394            }
25395        }
25396    }
25397
25398    #[inline]
25399    fn visit_do_while_stmt<'ast: 'r, 'r>(
25400        &mut self,
25401        node: &'ast DoWhileStmt,
25402        __ast_path: &mut AstNodePath<'r>,
25403    ) {
25404        match self {
25405            swc_visit::Either::Left(visitor) => {
25406                VisitAstPath::visit_do_while_stmt(visitor, node, __ast_path)
25407            }
25408            swc_visit::Either::Right(visitor) => {
25409                VisitAstPath::visit_do_while_stmt(visitor, node, __ast_path)
25410            }
25411        }
25412    }
25413
25414    #[inline]
25415    fn visit_empty_stmt<'ast: 'r, 'r>(
25416        &mut self,
25417        node: &'ast EmptyStmt,
25418        __ast_path: &mut AstNodePath<'r>,
25419    ) {
25420        match self {
25421            swc_visit::Either::Left(visitor) => {
25422                VisitAstPath::visit_empty_stmt(visitor, node, __ast_path)
25423            }
25424            swc_visit::Either::Right(visitor) => {
25425                VisitAstPath::visit_empty_stmt(visitor, node, __ast_path)
25426            }
25427        }
25428    }
25429
25430    #[inline]
25431    fn visit_export_all<'ast: 'r, 'r>(
25432        &mut self,
25433        node: &'ast ExportAll,
25434        __ast_path: &mut AstNodePath<'r>,
25435    ) {
25436        match self {
25437            swc_visit::Either::Left(visitor) => {
25438                VisitAstPath::visit_export_all(visitor, node, __ast_path)
25439            }
25440            swc_visit::Either::Right(visitor) => {
25441                VisitAstPath::visit_export_all(visitor, node, __ast_path)
25442            }
25443        }
25444    }
25445
25446    #[inline]
25447    fn visit_export_decl<'ast: 'r, 'r>(
25448        &mut self,
25449        node: &'ast ExportDecl,
25450        __ast_path: &mut AstNodePath<'r>,
25451    ) {
25452        match self {
25453            swc_visit::Either::Left(visitor) => {
25454                VisitAstPath::visit_export_decl(visitor, node, __ast_path)
25455            }
25456            swc_visit::Either::Right(visitor) => {
25457                VisitAstPath::visit_export_decl(visitor, node, __ast_path)
25458            }
25459        }
25460    }
25461
25462    #[inline]
25463    fn visit_export_default_decl<'ast: 'r, 'r>(
25464        &mut self,
25465        node: &'ast ExportDefaultDecl,
25466        __ast_path: &mut AstNodePath<'r>,
25467    ) {
25468        match self {
25469            swc_visit::Either::Left(visitor) => {
25470                VisitAstPath::visit_export_default_decl(visitor, node, __ast_path)
25471            }
25472            swc_visit::Either::Right(visitor) => {
25473                VisitAstPath::visit_export_default_decl(visitor, node, __ast_path)
25474            }
25475        }
25476    }
25477
25478    #[inline]
25479    fn visit_export_default_expr<'ast: 'r, 'r>(
25480        &mut self,
25481        node: &'ast ExportDefaultExpr,
25482        __ast_path: &mut AstNodePath<'r>,
25483    ) {
25484        match self {
25485            swc_visit::Either::Left(visitor) => {
25486                VisitAstPath::visit_export_default_expr(visitor, node, __ast_path)
25487            }
25488            swc_visit::Either::Right(visitor) => {
25489                VisitAstPath::visit_export_default_expr(visitor, node, __ast_path)
25490            }
25491        }
25492    }
25493
25494    #[inline]
25495    fn visit_export_default_specifier<'ast: 'r, 'r>(
25496        &mut self,
25497        node: &'ast ExportDefaultSpecifier,
25498        __ast_path: &mut AstNodePath<'r>,
25499    ) {
25500        match self {
25501            swc_visit::Either::Left(visitor) => {
25502                VisitAstPath::visit_export_default_specifier(visitor, node, __ast_path)
25503            }
25504            swc_visit::Either::Right(visitor) => {
25505                VisitAstPath::visit_export_default_specifier(visitor, node, __ast_path)
25506            }
25507        }
25508    }
25509
25510    #[inline]
25511    fn visit_export_named_specifier<'ast: 'r, 'r>(
25512        &mut self,
25513        node: &'ast ExportNamedSpecifier,
25514        __ast_path: &mut AstNodePath<'r>,
25515    ) {
25516        match self {
25517            swc_visit::Either::Left(visitor) => {
25518                VisitAstPath::visit_export_named_specifier(visitor, node, __ast_path)
25519            }
25520            swc_visit::Either::Right(visitor) => {
25521                VisitAstPath::visit_export_named_specifier(visitor, node, __ast_path)
25522            }
25523        }
25524    }
25525
25526    #[inline]
25527    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
25528        &mut self,
25529        node: &'ast ExportNamespaceSpecifier,
25530        __ast_path: &mut AstNodePath<'r>,
25531    ) {
25532        match self {
25533            swc_visit::Either::Left(visitor) => {
25534                VisitAstPath::visit_export_namespace_specifier(visitor, node, __ast_path)
25535            }
25536            swc_visit::Either::Right(visitor) => {
25537                VisitAstPath::visit_export_namespace_specifier(visitor, node, __ast_path)
25538            }
25539        }
25540    }
25541
25542    #[inline]
25543    fn visit_export_specifier<'ast: 'r, 'r>(
25544        &mut self,
25545        node: &'ast ExportSpecifier,
25546        __ast_path: &mut AstNodePath<'r>,
25547    ) {
25548        match self {
25549            swc_visit::Either::Left(visitor) => {
25550                VisitAstPath::visit_export_specifier(visitor, node, __ast_path)
25551            }
25552            swc_visit::Either::Right(visitor) => {
25553                VisitAstPath::visit_export_specifier(visitor, node, __ast_path)
25554            }
25555        }
25556    }
25557
25558    #[inline]
25559    fn visit_export_specifiers<'ast: 'r, 'r>(
25560        &mut self,
25561        node: &'ast [ExportSpecifier],
25562        __ast_path: &mut AstNodePath<'r>,
25563    ) {
25564        match self {
25565            swc_visit::Either::Left(visitor) => {
25566                VisitAstPath::visit_export_specifiers(visitor, node, __ast_path)
25567            }
25568            swc_visit::Either::Right(visitor) => {
25569                VisitAstPath::visit_export_specifiers(visitor, node, __ast_path)
25570            }
25571        }
25572    }
25573
25574    #[inline]
25575    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
25576        match self {
25577            swc_visit::Either::Left(visitor) => VisitAstPath::visit_expr(visitor, node, __ast_path),
25578            swc_visit::Either::Right(visitor) => {
25579                VisitAstPath::visit_expr(visitor, node, __ast_path)
25580            }
25581        }
25582    }
25583
25584    #[inline]
25585    fn visit_expr_or_spread<'ast: 'r, 'r>(
25586        &mut self,
25587        node: &'ast ExprOrSpread,
25588        __ast_path: &mut AstNodePath<'r>,
25589    ) {
25590        match self {
25591            swc_visit::Either::Left(visitor) => {
25592                VisitAstPath::visit_expr_or_spread(visitor, node, __ast_path)
25593            }
25594            swc_visit::Either::Right(visitor) => {
25595                VisitAstPath::visit_expr_or_spread(visitor, node, __ast_path)
25596            }
25597        }
25598    }
25599
25600    #[inline]
25601    fn visit_expr_or_spreads<'ast: 'r, 'r>(
25602        &mut self,
25603        node: &'ast [ExprOrSpread],
25604        __ast_path: &mut AstNodePath<'r>,
25605    ) {
25606        match self {
25607            swc_visit::Either::Left(visitor) => {
25608                VisitAstPath::visit_expr_or_spreads(visitor, node, __ast_path)
25609            }
25610            swc_visit::Either::Right(visitor) => {
25611                VisitAstPath::visit_expr_or_spreads(visitor, node, __ast_path)
25612            }
25613        }
25614    }
25615
25616    #[inline]
25617    fn visit_expr_stmt<'ast: 'r, 'r>(
25618        &mut self,
25619        node: &'ast ExprStmt,
25620        __ast_path: &mut AstNodePath<'r>,
25621    ) {
25622        match self {
25623            swc_visit::Either::Left(visitor) => {
25624                VisitAstPath::visit_expr_stmt(visitor, node, __ast_path)
25625            }
25626            swc_visit::Either::Right(visitor) => {
25627                VisitAstPath::visit_expr_stmt(visitor, node, __ast_path)
25628            }
25629        }
25630    }
25631
25632    #[inline]
25633    fn visit_exprs<'ast: 'r, 'r>(
25634        &mut self,
25635        node: &'ast [Box<Expr>],
25636        __ast_path: &mut AstNodePath<'r>,
25637    ) {
25638        match self {
25639            swc_visit::Either::Left(visitor) => {
25640                VisitAstPath::visit_exprs(visitor, node, __ast_path)
25641            }
25642            swc_visit::Either::Right(visitor) => {
25643                VisitAstPath::visit_exprs(visitor, node, __ast_path)
25644            }
25645        }
25646    }
25647
25648    #[inline]
25649    fn visit_fn_decl<'ast: 'r, 'r>(
25650        &mut self,
25651        node: &'ast FnDecl,
25652        __ast_path: &mut AstNodePath<'r>,
25653    ) {
25654        match self {
25655            swc_visit::Either::Left(visitor) => {
25656                VisitAstPath::visit_fn_decl(visitor, node, __ast_path)
25657            }
25658            swc_visit::Either::Right(visitor) => {
25659                VisitAstPath::visit_fn_decl(visitor, node, __ast_path)
25660            }
25661        }
25662    }
25663
25664    #[inline]
25665    fn visit_fn_expr<'ast: 'r, 'r>(
25666        &mut self,
25667        node: &'ast FnExpr,
25668        __ast_path: &mut AstNodePath<'r>,
25669    ) {
25670        match self {
25671            swc_visit::Either::Left(visitor) => {
25672                VisitAstPath::visit_fn_expr(visitor, node, __ast_path)
25673            }
25674            swc_visit::Either::Right(visitor) => {
25675                VisitAstPath::visit_fn_expr(visitor, node, __ast_path)
25676            }
25677        }
25678    }
25679
25680    #[inline]
25681    fn visit_for_head<'ast: 'r, 'r>(
25682        &mut self,
25683        node: &'ast ForHead,
25684        __ast_path: &mut AstNodePath<'r>,
25685    ) {
25686        match self {
25687            swc_visit::Either::Left(visitor) => {
25688                VisitAstPath::visit_for_head(visitor, node, __ast_path)
25689            }
25690            swc_visit::Either::Right(visitor) => {
25691                VisitAstPath::visit_for_head(visitor, node, __ast_path)
25692            }
25693        }
25694    }
25695
25696    #[inline]
25697    fn visit_for_in_stmt<'ast: 'r, 'r>(
25698        &mut self,
25699        node: &'ast ForInStmt,
25700        __ast_path: &mut AstNodePath<'r>,
25701    ) {
25702        match self {
25703            swc_visit::Either::Left(visitor) => {
25704                VisitAstPath::visit_for_in_stmt(visitor, node, __ast_path)
25705            }
25706            swc_visit::Either::Right(visitor) => {
25707                VisitAstPath::visit_for_in_stmt(visitor, node, __ast_path)
25708            }
25709        }
25710    }
25711
25712    #[inline]
25713    fn visit_for_of_stmt<'ast: 'r, 'r>(
25714        &mut self,
25715        node: &'ast ForOfStmt,
25716        __ast_path: &mut AstNodePath<'r>,
25717    ) {
25718        match self {
25719            swc_visit::Either::Left(visitor) => {
25720                VisitAstPath::visit_for_of_stmt(visitor, node, __ast_path)
25721            }
25722            swc_visit::Either::Right(visitor) => {
25723                VisitAstPath::visit_for_of_stmt(visitor, node, __ast_path)
25724            }
25725        }
25726    }
25727
25728    #[inline]
25729    fn visit_for_stmt<'ast: 'r, 'r>(
25730        &mut self,
25731        node: &'ast ForStmt,
25732        __ast_path: &mut AstNodePath<'r>,
25733    ) {
25734        match self {
25735            swc_visit::Either::Left(visitor) => {
25736                VisitAstPath::visit_for_stmt(visitor, node, __ast_path)
25737            }
25738            swc_visit::Either::Right(visitor) => {
25739                VisitAstPath::visit_for_stmt(visitor, node, __ast_path)
25740            }
25741        }
25742    }
25743
25744    #[inline]
25745    fn visit_function<'ast: 'r, 'r>(
25746        &mut self,
25747        node: &'ast Function,
25748        __ast_path: &mut AstNodePath<'r>,
25749    ) {
25750        match self {
25751            swc_visit::Either::Left(visitor) => {
25752                VisitAstPath::visit_function(visitor, node, __ast_path)
25753            }
25754            swc_visit::Either::Right(visitor) => {
25755                VisitAstPath::visit_function(visitor, node, __ast_path)
25756            }
25757        }
25758    }
25759
25760    #[inline]
25761    fn visit_getter_prop<'ast: 'r, 'r>(
25762        &mut self,
25763        node: &'ast GetterProp,
25764        __ast_path: &mut AstNodePath<'r>,
25765    ) {
25766        match self {
25767            swc_visit::Either::Left(visitor) => {
25768                VisitAstPath::visit_getter_prop(visitor, node, __ast_path)
25769            }
25770            swc_visit::Either::Right(visitor) => {
25771                VisitAstPath::visit_getter_prop(visitor, node, __ast_path)
25772            }
25773        }
25774    }
25775
25776    #[inline]
25777    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
25778        match self {
25779            swc_visit::Either::Left(visitor) => {
25780                VisitAstPath::visit_ident(visitor, node, __ast_path)
25781            }
25782            swc_visit::Either::Right(visitor) => {
25783                VisitAstPath::visit_ident(visitor, node, __ast_path)
25784            }
25785        }
25786    }
25787
25788    #[inline]
25789    fn visit_ident_name<'ast: 'r, 'r>(
25790        &mut self,
25791        node: &'ast IdentName,
25792        __ast_path: &mut AstNodePath<'r>,
25793    ) {
25794        match self {
25795            swc_visit::Either::Left(visitor) => {
25796                VisitAstPath::visit_ident_name(visitor, node, __ast_path)
25797            }
25798            swc_visit::Either::Right(visitor) => {
25799                VisitAstPath::visit_ident_name(visitor, node, __ast_path)
25800            }
25801        }
25802    }
25803
25804    #[inline]
25805    fn visit_if_stmt<'ast: 'r, 'r>(
25806        &mut self,
25807        node: &'ast IfStmt,
25808        __ast_path: &mut AstNodePath<'r>,
25809    ) {
25810        match self {
25811            swc_visit::Either::Left(visitor) => {
25812                VisitAstPath::visit_if_stmt(visitor, node, __ast_path)
25813            }
25814            swc_visit::Either::Right(visitor) => {
25815                VisitAstPath::visit_if_stmt(visitor, node, __ast_path)
25816            }
25817        }
25818    }
25819
25820    #[inline]
25821    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
25822        match self {
25823            swc_visit::Either::Left(visitor) => {
25824                VisitAstPath::visit_import(visitor, node, __ast_path)
25825            }
25826            swc_visit::Either::Right(visitor) => {
25827                VisitAstPath::visit_import(visitor, node, __ast_path)
25828            }
25829        }
25830    }
25831
25832    #[inline]
25833    fn visit_import_decl<'ast: 'r, 'r>(
25834        &mut self,
25835        node: &'ast ImportDecl,
25836        __ast_path: &mut AstNodePath<'r>,
25837    ) {
25838        match self {
25839            swc_visit::Either::Left(visitor) => {
25840                VisitAstPath::visit_import_decl(visitor, node, __ast_path)
25841            }
25842            swc_visit::Either::Right(visitor) => {
25843                VisitAstPath::visit_import_decl(visitor, node, __ast_path)
25844            }
25845        }
25846    }
25847
25848    #[inline]
25849    fn visit_import_default_specifier<'ast: 'r, 'r>(
25850        &mut self,
25851        node: &'ast ImportDefaultSpecifier,
25852        __ast_path: &mut AstNodePath<'r>,
25853    ) {
25854        match self {
25855            swc_visit::Either::Left(visitor) => {
25856                VisitAstPath::visit_import_default_specifier(visitor, node, __ast_path)
25857            }
25858            swc_visit::Either::Right(visitor) => {
25859                VisitAstPath::visit_import_default_specifier(visitor, node, __ast_path)
25860            }
25861        }
25862    }
25863
25864    #[inline]
25865    fn visit_import_named_specifier<'ast: 'r, 'r>(
25866        &mut self,
25867        node: &'ast ImportNamedSpecifier,
25868        __ast_path: &mut AstNodePath<'r>,
25869    ) {
25870        match self {
25871            swc_visit::Either::Left(visitor) => {
25872                VisitAstPath::visit_import_named_specifier(visitor, node, __ast_path)
25873            }
25874            swc_visit::Either::Right(visitor) => {
25875                VisitAstPath::visit_import_named_specifier(visitor, node, __ast_path)
25876            }
25877        }
25878    }
25879
25880    #[inline]
25881    fn visit_import_phase<'ast: 'r, 'r>(
25882        &mut self,
25883        node: &'ast ImportPhase,
25884        __ast_path: &mut AstNodePath<'r>,
25885    ) {
25886        match self {
25887            swc_visit::Either::Left(visitor) => {
25888                VisitAstPath::visit_import_phase(visitor, node, __ast_path)
25889            }
25890            swc_visit::Either::Right(visitor) => {
25891                VisitAstPath::visit_import_phase(visitor, node, __ast_path)
25892            }
25893        }
25894    }
25895
25896    #[inline]
25897    fn visit_import_specifier<'ast: 'r, 'r>(
25898        &mut self,
25899        node: &'ast ImportSpecifier,
25900        __ast_path: &mut AstNodePath<'r>,
25901    ) {
25902        match self {
25903            swc_visit::Either::Left(visitor) => {
25904                VisitAstPath::visit_import_specifier(visitor, node, __ast_path)
25905            }
25906            swc_visit::Either::Right(visitor) => {
25907                VisitAstPath::visit_import_specifier(visitor, node, __ast_path)
25908            }
25909        }
25910    }
25911
25912    #[inline]
25913    fn visit_import_specifiers<'ast: 'r, 'r>(
25914        &mut self,
25915        node: &'ast [ImportSpecifier],
25916        __ast_path: &mut AstNodePath<'r>,
25917    ) {
25918        match self {
25919            swc_visit::Either::Left(visitor) => {
25920                VisitAstPath::visit_import_specifiers(visitor, node, __ast_path)
25921            }
25922            swc_visit::Either::Right(visitor) => {
25923                VisitAstPath::visit_import_specifiers(visitor, node, __ast_path)
25924            }
25925        }
25926    }
25927
25928    #[inline]
25929    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
25930        &mut self,
25931        node: &'ast ImportStarAsSpecifier,
25932        __ast_path: &mut AstNodePath<'r>,
25933    ) {
25934        match self {
25935            swc_visit::Either::Left(visitor) => {
25936                VisitAstPath::visit_import_star_as_specifier(visitor, node, __ast_path)
25937            }
25938            swc_visit::Either::Right(visitor) => {
25939                VisitAstPath::visit_import_star_as_specifier(visitor, node, __ast_path)
25940            }
25941        }
25942    }
25943
25944    #[inline]
25945    fn visit_import_with<'ast: 'r, 'r>(
25946        &mut self,
25947        node: &'ast ImportWith,
25948        __ast_path: &mut AstNodePath<'r>,
25949    ) {
25950        match self {
25951            swc_visit::Either::Left(visitor) => {
25952                VisitAstPath::visit_import_with(visitor, node, __ast_path)
25953            }
25954            swc_visit::Either::Right(visitor) => {
25955                VisitAstPath::visit_import_with(visitor, node, __ast_path)
25956            }
25957        }
25958    }
25959
25960    #[inline]
25961    fn visit_import_with_item<'ast: 'r, 'r>(
25962        &mut self,
25963        node: &'ast ImportWithItem,
25964        __ast_path: &mut AstNodePath<'r>,
25965    ) {
25966        match self {
25967            swc_visit::Either::Left(visitor) => {
25968                VisitAstPath::visit_import_with_item(visitor, node, __ast_path)
25969            }
25970            swc_visit::Either::Right(visitor) => {
25971                VisitAstPath::visit_import_with_item(visitor, node, __ast_path)
25972            }
25973        }
25974    }
25975
25976    #[inline]
25977    fn visit_import_with_items<'ast: 'r, 'r>(
25978        &mut self,
25979        node: &'ast [ImportWithItem],
25980        __ast_path: &mut AstNodePath<'r>,
25981    ) {
25982        match self {
25983            swc_visit::Either::Left(visitor) => {
25984                VisitAstPath::visit_import_with_items(visitor, node, __ast_path)
25985            }
25986            swc_visit::Either::Right(visitor) => {
25987                VisitAstPath::visit_import_with_items(visitor, node, __ast_path)
25988            }
25989        }
25990    }
25991
25992    #[inline]
25993    fn visit_invalid<'ast: 'r, 'r>(
25994        &mut self,
25995        node: &'ast Invalid,
25996        __ast_path: &mut AstNodePath<'r>,
25997    ) {
25998        match self {
25999            swc_visit::Either::Left(visitor) => {
26000                VisitAstPath::visit_invalid(visitor, node, __ast_path)
26001            }
26002            swc_visit::Either::Right(visitor) => {
26003                VisitAstPath::visit_invalid(visitor, node, __ast_path)
26004            }
26005        }
26006    }
26007
26008    #[inline]
26009    fn visit_jsx_attr<'ast: 'r, 'r>(
26010        &mut self,
26011        node: &'ast JSXAttr,
26012        __ast_path: &mut AstNodePath<'r>,
26013    ) {
26014        match self {
26015            swc_visit::Either::Left(visitor) => {
26016                VisitAstPath::visit_jsx_attr(visitor, node, __ast_path)
26017            }
26018            swc_visit::Either::Right(visitor) => {
26019                VisitAstPath::visit_jsx_attr(visitor, node, __ast_path)
26020            }
26021        }
26022    }
26023
26024    #[inline]
26025    fn visit_jsx_attr_name<'ast: 'r, 'r>(
26026        &mut self,
26027        node: &'ast JSXAttrName,
26028        __ast_path: &mut AstNodePath<'r>,
26029    ) {
26030        match self {
26031            swc_visit::Either::Left(visitor) => {
26032                VisitAstPath::visit_jsx_attr_name(visitor, node, __ast_path)
26033            }
26034            swc_visit::Either::Right(visitor) => {
26035                VisitAstPath::visit_jsx_attr_name(visitor, node, __ast_path)
26036            }
26037        }
26038    }
26039
26040    #[inline]
26041    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
26042        &mut self,
26043        node: &'ast JSXAttrOrSpread,
26044        __ast_path: &mut AstNodePath<'r>,
26045    ) {
26046        match self {
26047            swc_visit::Either::Left(visitor) => {
26048                VisitAstPath::visit_jsx_attr_or_spread(visitor, node, __ast_path)
26049            }
26050            swc_visit::Either::Right(visitor) => {
26051                VisitAstPath::visit_jsx_attr_or_spread(visitor, node, __ast_path)
26052            }
26053        }
26054    }
26055
26056    #[inline]
26057    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
26058        &mut self,
26059        node: &'ast [JSXAttrOrSpread],
26060        __ast_path: &mut AstNodePath<'r>,
26061    ) {
26062        match self {
26063            swc_visit::Either::Left(visitor) => {
26064                VisitAstPath::visit_jsx_attr_or_spreads(visitor, node, __ast_path)
26065            }
26066            swc_visit::Either::Right(visitor) => {
26067                VisitAstPath::visit_jsx_attr_or_spreads(visitor, node, __ast_path)
26068            }
26069        }
26070    }
26071
26072    #[inline]
26073    fn visit_jsx_attr_value<'ast: 'r, 'r>(
26074        &mut self,
26075        node: &'ast JSXAttrValue,
26076        __ast_path: &mut AstNodePath<'r>,
26077    ) {
26078        match self {
26079            swc_visit::Either::Left(visitor) => {
26080                VisitAstPath::visit_jsx_attr_value(visitor, node, __ast_path)
26081            }
26082            swc_visit::Either::Right(visitor) => {
26083                VisitAstPath::visit_jsx_attr_value(visitor, node, __ast_path)
26084            }
26085        }
26086    }
26087
26088    #[inline]
26089    fn visit_jsx_closing_element<'ast: 'r, 'r>(
26090        &mut self,
26091        node: &'ast JSXClosingElement,
26092        __ast_path: &mut AstNodePath<'r>,
26093    ) {
26094        match self {
26095            swc_visit::Either::Left(visitor) => {
26096                VisitAstPath::visit_jsx_closing_element(visitor, node, __ast_path)
26097            }
26098            swc_visit::Either::Right(visitor) => {
26099                VisitAstPath::visit_jsx_closing_element(visitor, node, __ast_path)
26100            }
26101        }
26102    }
26103
26104    #[inline]
26105    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
26106        &mut self,
26107        node: &'ast JSXClosingFragment,
26108        __ast_path: &mut AstNodePath<'r>,
26109    ) {
26110        match self {
26111            swc_visit::Either::Left(visitor) => {
26112                VisitAstPath::visit_jsx_closing_fragment(visitor, node, __ast_path)
26113            }
26114            swc_visit::Either::Right(visitor) => {
26115                VisitAstPath::visit_jsx_closing_fragment(visitor, node, __ast_path)
26116            }
26117        }
26118    }
26119
26120    #[inline]
26121    fn visit_jsx_element<'ast: 'r, 'r>(
26122        &mut self,
26123        node: &'ast JSXElement,
26124        __ast_path: &mut AstNodePath<'r>,
26125    ) {
26126        match self {
26127            swc_visit::Either::Left(visitor) => {
26128                VisitAstPath::visit_jsx_element(visitor, node, __ast_path)
26129            }
26130            swc_visit::Either::Right(visitor) => {
26131                VisitAstPath::visit_jsx_element(visitor, node, __ast_path)
26132            }
26133        }
26134    }
26135
26136    #[inline]
26137    fn visit_jsx_element_child<'ast: 'r, 'r>(
26138        &mut self,
26139        node: &'ast JSXElementChild,
26140        __ast_path: &mut AstNodePath<'r>,
26141    ) {
26142        match self {
26143            swc_visit::Either::Left(visitor) => {
26144                VisitAstPath::visit_jsx_element_child(visitor, node, __ast_path)
26145            }
26146            swc_visit::Either::Right(visitor) => {
26147                VisitAstPath::visit_jsx_element_child(visitor, node, __ast_path)
26148            }
26149        }
26150    }
26151
26152    #[inline]
26153    fn visit_jsx_element_childs<'ast: 'r, 'r>(
26154        &mut self,
26155        node: &'ast [JSXElementChild],
26156        __ast_path: &mut AstNodePath<'r>,
26157    ) {
26158        match self {
26159            swc_visit::Either::Left(visitor) => {
26160                VisitAstPath::visit_jsx_element_childs(visitor, node, __ast_path)
26161            }
26162            swc_visit::Either::Right(visitor) => {
26163                VisitAstPath::visit_jsx_element_childs(visitor, node, __ast_path)
26164            }
26165        }
26166    }
26167
26168    #[inline]
26169    fn visit_jsx_element_name<'ast: 'r, 'r>(
26170        &mut self,
26171        node: &'ast JSXElementName,
26172        __ast_path: &mut AstNodePath<'r>,
26173    ) {
26174        match self {
26175            swc_visit::Either::Left(visitor) => {
26176                VisitAstPath::visit_jsx_element_name(visitor, node, __ast_path)
26177            }
26178            swc_visit::Either::Right(visitor) => {
26179                VisitAstPath::visit_jsx_element_name(visitor, node, __ast_path)
26180            }
26181        }
26182    }
26183
26184    #[inline]
26185    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
26186        &mut self,
26187        node: &'ast JSXEmptyExpr,
26188        __ast_path: &mut AstNodePath<'r>,
26189    ) {
26190        match self {
26191            swc_visit::Either::Left(visitor) => {
26192                VisitAstPath::visit_jsx_empty_expr(visitor, node, __ast_path)
26193            }
26194            swc_visit::Either::Right(visitor) => {
26195                VisitAstPath::visit_jsx_empty_expr(visitor, node, __ast_path)
26196            }
26197        }
26198    }
26199
26200    #[inline]
26201    fn visit_jsx_expr<'ast: 'r, 'r>(
26202        &mut self,
26203        node: &'ast JSXExpr,
26204        __ast_path: &mut AstNodePath<'r>,
26205    ) {
26206        match self {
26207            swc_visit::Either::Left(visitor) => {
26208                VisitAstPath::visit_jsx_expr(visitor, node, __ast_path)
26209            }
26210            swc_visit::Either::Right(visitor) => {
26211                VisitAstPath::visit_jsx_expr(visitor, node, __ast_path)
26212            }
26213        }
26214    }
26215
26216    #[inline]
26217    fn visit_jsx_expr_container<'ast: 'r, 'r>(
26218        &mut self,
26219        node: &'ast JSXExprContainer,
26220        __ast_path: &mut AstNodePath<'r>,
26221    ) {
26222        match self {
26223            swc_visit::Either::Left(visitor) => {
26224                VisitAstPath::visit_jsx_expr_container(visitor, node, __ast_path)
26225            }
26226            swc_visit::Either::Right(visitor) => {
26227                VisitAstPath::visit_jsx_expr_container(visitor, node, __ast_path)
26228            }
26229        }
26230    }
26231
26232    #[inline]
26233    fn visit_jsx_fragment<'ast: 'r, 'r>(
26234        &mut self,
26235        node: &'ast JSXFragment,
26236        __ast_path: &mut AstNodePath<'r>,
26237    ) {
26238        match self {
26239            swc_visit::Either::Left(visitor) => {
26240                VisitAstPath::visit_jsx_fragment(visitor, node, __ast_path)
26241            }
26242            swc_visit::Either::Right(visitor) => {
26243                VisitAstPath::visit_jsx_fragment(visitor, node, __ast_path)
26244            }
26245        }
26246    }
26247
26248    #[inline]
26249    fn visit_jsx_member_expr<'ast: 'r, 'r>(
26250        &mut self,
26251        node: &'ast JSXMemberExpr,
26252        __ast_path: &mut AstNodePath<'r>,
26253    ) {
26254        match self {
26255            swc_visit::Either::Left(visitor) => {
26256                VisitAstPath::visit_jsx_member_expr(visitor, node, __ast_path)
26257            }
26258            swc_visit::Either::Right(visitor) => {
26259                VisitAstPath::visit_jsx_member_expr(visitor, node, __ast_path)
26260            }
26261        }
26262    }
26263
26264    #[inline]
26265    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
26266        &mut self,
26267        node: &'ast JSXNamespacedName,
26268        __ast_path: &mut AstNodePath<'r>,
26269    ) {
26270        match self {
26271            swc_visit::Either::Left(visitor) => {
26272                VisitAstPath::visit_jsx_namespaced_name(visitor, node, __ast_path)
26273            }
26274            swc_visit::Either::Right(visitor) => {
26275                VisitAstPath::visit_jsx_namespaced_name(visitor, node, __ast_path)
26276            }
26277        }
26278    }
26279
26280    #[inline]
26281    fn visit_jsx_object<'ast: 'r, 'r>(
26282        &mut self,
26283        node: &'ast JSXObject,
26284        __ast_path: &mut AstNodePath<'r>,
26285    ) {
26286        match self {
26287            swc_visit::Either::Left(visitor) => {
26288                VisitAstPath::visit_jsx_object(visitor, node, __ast_path)
26289            }
26290            swc_visit::Either::Right(visitor) => {
26291                VisitAstPath::visit_jsx_object(visitor, node, __ast_path)
26292            }
26293        }
26294    }
26295
26296    #[inline]
26297    fn visit_jsx_opening_element<'ast: 'r, 'r>(
26298        &mut self,
26299        node: &'ast JSXOpeningElement,
26300        __ast_path: &mut AstNodePath<'r>,
26301    ) {
26302        match self {
26303            swc_visit::Either::Left(visitor) => {
26304                VisitAstPath::visit_jsx_opening_element(visitor, node, __ast_path)
26305            }
26306            swc_visit::Either::Right(visitor) => {
26307                VisitAstPath::visit_jsx_opening_element(visitor, node, __ast_path)
26308            }
26309        }
26310    }
26311
26312    #[inline]
26313    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
26314        &mut self,
26315        node: &'ast JSXOpeningFragment,
26316        __ast_path: &mut AstNodePath<'r>,
26317    ) {
26318        match self {
26319            swc_visit::Either::Left(visitor) => {
26320                VisitAstPath::visit_jsx_opening_fragment(visitor, node, __ast_path)
26321            }
26322            swc_visit::Either::Right(visitor) => {
26323                VisitAstPath::visit_jsx_opening_fragment(visitor, node, __ast_path)
26324            }
26325        }
26326    }
26327
26328    #[inline]
26329    fn visit_jsx_spread_child<'ast: 'r, 'r>(
26330        &mut self,
26331        node: &'ast JSXSpreadChild,
26332        __ast_path: &mut AstNodePath<'r>,
26333    ) {
26334        match self {
26335            swc_visit::Either::Left(visitor) => {
26336                VisitAstPath::visit_jsx_spread_child(visitor, node, __ast_path)
26337            }
26338            swc_visit::Either::Right(visitor) => {
26339                VisitAstPath::visit_jsx_spread_child(visitor, node, __ast_path)
26340            }
26341        }
26342    }
26343
26344    #[inline]
26345    fn visit_jsx_text<'ast: 'r, 'r>(
26346        &mut self,
26347        node: &'ast JSXText,
26348        __ast_path: &mut AstNodePath<'r>,
26349    ) {
26350        match self {
26351            swc_visit::Either::Left(visitor) => {
26352                VisitAstPath::visit_jsx_text(visitor, node, __ast_path)
26353            }
26354            swc_visit::Either::Right(visitor) => {
26355                VisitAstPath::visit_jsx_text(visitor, node, __ast_path)
26356            }
26357        }
26358    }
26359
26360    #[inline]
26361    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
26362        match self {
26363            swc_visit::Either::Left(visitor) => VisitAstPath::visit_key(visitor, node, __ast_path),
26364            swc_visit::Either::Right(visitor) => VisitAstPath::visit_key(visitor, node, __ast_path),
26365        }
26366    }
26367
26368    #[inline]
26369    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
26370        &mut self,
26371        node: &'ast KeyValuePatProp,
26372        __ast_path: &mut AstNodePath<'r>,
26373    ) {
26374        match self {
26375            swc_visit::Either::Left(visitor) => {
26376                VisitAstPath::visit_key_value_pat_prop(visitor, node, __ast_path)
26377            }
26378            swc_visit::Either::Right(visitor) => {
26379                VisitAstPath::visit_key_value_pat_prop(visitor, node, __ast_path)
26380            }
26381        }
26382    }
26383
26384    #[inline]
26385    fn visit_key_value_prop<'ast: 'r, 'r>(
26386        &mut self,
26387        node: &'ast KeyValueProp,
26388        __ast_path: &mut AstNodePath<'r>,
26389    ) {
26390        match self {
26391            swc_visit::Either::Left(visitor) => {
26392                VisitAstPath::visit_key_value_prop(visitor, node, __ast_path)
26393            }
26394            swc_visit::Either::Right(visitor) => {
26395                VisitAstPath::visit_key_value_prop(visitor, node, __ast_path)
26396            }
26397        }
26398    }
26399
26400    #[inline]
26401    fn visit_labeled_stmt<'ast: 'r, 'r>(
26402        &mut self,
26403        node: &'ast LabeledStmt,
26404        __ast_path: &mut AstNodePath<'r>,
26405    ) {
26406        match self {
26407            swc_visit::Either::Left(visitor) => {
26408                VisitAstPath::visit_labeled_stmt(visitor, node, __ast_path)
26409            }
26410            swc_visit::Either::Right(visitor) => {
26411                VisitAstPath::visit_labeled_stmt(visitor, node, __ast_path)
26412            }
26413        }
26414    }
26415
26416    #[inline]
26417    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
26418        match self {
26419            swc_visit::Either::Left(visitor) => VisitAstPath::visit_lit(visitor, node, __ast_path),
26420            swc_visit::Either::Right(visitor) => VisitAstPath::visit_lit(visitor, node, __ast_path),
26421        }
26422    }
26423
26424    #[inline]
26425    fn visit_member_expr<'ast: 'r, 'r>(
26426        &mut self,
26427        node: &'ast MemberExpr,
26428        __ast_path: &mut AstNodePath<'r>,
26429    ) {
26430        match self {
26431            swc_visit::Either::Left(visitor) => {
26432                VisitAstPath::visit_member_expr(visitor, node, __ast_path)
26433            }
26434            swc_visit::Either::Right(visitor) => {
26435                VisitAstPath::visit_member_expr(visitor, node, __ast_path)
26436            }
26437        }
26438    }
26439
26440    #[inline]
26441    fn visit_member_prop<'ast: 'r, 'r>(
26442        &mut self,
26443        node: &'ast MemberProp,
26444        __ast_path: &mut AstNodePath<'r>,
26445    ) {
26446        match self {
26447            swc_visit::Either::Left(visitor) => {
26448                VisitAstPath::visit_member_prop(visitor, node, __ast_path)
26449            }
26450            swc_visit::Either::Right(visitor) => {
26451                VisitAstPath::visit_member_prop(visitor, node, __ast_path)
26452            }
26453        }
26454    }
26455
26456    #[inline]
26457    fn visit_meta_prop_expr<'ast: 'r, 'r>(
26458        &mut self,
26459        node: &'ast MetaPropExpr,
26460        __ast_path: &mut AstNodePath<'r>,
26461    ) {
26462        match self {
26463            swc_visit::Either::Left(visitor) => {
26464                VisitAstPath::visit_meta_prop_expr(visitor, node, __ast_path)
26465            }
26466            swc_visit::Either::Right(visitor) => {
26467                VisitAstPath::visit_meta_prop_expr(visitor, node, __ast_path)
26468            }
26469        }
26470    }
26471
26472    #[inline]
26473    fn visit_meta_prop_kind<'ast: 'r, 'r>(
26474        &mut self,
26475        node: &'ast MetaPropKind,
26476        __ast_path: &mut AstNodePath<'r>,
26477    ) {
26478        match self {
26479            swc_visit::Either::Left(visitor) => {
26480                VisitAstPath::visit_meta_prop_kind(visitor, node, __ast_path)
26481            }
26482            swc_visit::Either::Right(visitor) => {
26483                VisitAstPath::visit_meta_prop_kind(visitor, node, __ast_path)
26484            }
26485        }
26486    }
26487
26488    #[inline]
26489    fn visit_method_kind<'ast: 'r, 'r>(
26490        &mut self,
26491        node: &'ast MethodKind,
26492        __ast_path: &mut AstNodePath<'r>,
26493    ) {
26494        match self {
26495            swc_visit::Either::Left(visitor) => {
26496                VisitAstPath::visit_method_kind(visitor, node, __ast_path)
26497            }
26498            swc_visit::Either::Right(visitor) => {
26499                VisitAstPath::visit_method_kind(visitor, node, __ast_path)
26500            }
26501        }
26502    }
26503
26504    #[inline]
26505    fn visit_method_prop<'ast: 'r, 'r>(
26506        &mut self,
26507        node: &'ast MethodProp,
26508        __ast_path: &mut AstNodePath<'r>,
26509    ) {
26510        match self {
26511            swc_visit::Either::Left(visitor) => {
26512                VisitAstPath::visit_method_prop(visitor, node, __ast_path)
26513            }
26514            swc_visit::Either::Right(visitor) => {
26515                VisitAstPath::visit_method_prop(visitor, node, __ast_path)
26516            }
26517        }
26518    }
26519
26520    #[inline]
26521    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
26522        match self {
26523            swc_visit::Either::Left(visitor) => {
26524                VisitAstPath::visit_module(visitor, node, __ast_path)
26525            }
26526            swc_visit::Either::Right(visitor) => {
26527                VisitAstPath::visit_module(visitor, node, __ast_path)
26528            }
26529        }
26530    }
26531
26532    #[inline]
26533    fn visit_module_decl<'ast: 'r, 'r>(
26534        &mut self,
26535        node: &'ast ModuleDecl,
26536        __ast_path: &mut AstNodePath<'r>,
26537    ) {
26538        match self {
26539            swc_visit::Either::Left(visitor) => {
26540                VisitAstPath::visit_module_decl(visitor, node, __ast_path)
26541            }
26542            swc_visit::Either::Right(visitor) => {
26543                VisitAstPath::visit_module_decl(visitor, node, __ast_path)
26544            }
26545        }
26546    }
26547
26548    #[inline]
26549    fn visit_module_export_name<'ast: 'r, 'r>(
26550        &mut self,
26551        node: &'ast ModuleExportName,
26552        __ast_path: &mut AstNodePath<'r>,
26553    ) {
26554        match self {
26555            swc_visit::Either::Left(visitor) => {
26556                VisitAstPath::visit_module_export_name(visitor, node, __ast_path)
26557            }
26558            swc_visit::Either::Right(visitor) => {
26559                VisitAstPath::visit_module_export_name(visitor, node, __ast_path)
26560            }
26561        }
26562    }
26563
26564    #[inline]
26565    fn visit_module_item<'ast: 'r, 'r>(
26566        &mut self,
26567        node: &'ast ModuleItem,
26568        __ast_path: &mut AstNodePath<'r>,
26569    ) {
26570        match self {
26571            swc_visit::Either::Left(visitor) => {
26572                VisitAstPath::visit_module_item(visitor, node, __ast_path)
26573            }
26574            swc_visit::Either::Right(visitor) => {
26575                VisitAstPath::visit_module_item(visitor, node, __ast_path)
26576            }
26577        }
26578    }
26579
26580    #[inline]
26581    fn visit_module_items<'ast: 'r, 'r>(
26582        &mut self,
26583        node: &'ast [ModuleItem],
26584        __ast_path: &mut AstNodePath<'r>,
26585    ) {
26586        match self {
26587            swc_visit::Either::Left(visitor) => {
26588                VisitAstPath::visit_module_items(visitor, node, __ast_path)
26589            }
26590            swc_visit::Either::Right(visitor) => {
26591                VisitAstPath::visit_module_items(visitor, node, __ast_path)
26592            }
26593        }
26594    }
26595
26596    #[inline]
26597    fn visit_named_export<'ast: 'r, 'r>(
26598        &mut self,
26599        node: &'ast NamedExport,
26600        __ast_path: &mut AstNodePath<'r>,
26601    ) {
26602        match self {
26603            swc_visit::Either::Left(visitor) => {
26604                VisitAstPath::visit_named_export(visitor, node, __ast_path)
26605            }
26606            swc_visit::Either::Right(visitor) => {
26607                VisitAstPath::visit_named_export(visitor, node, __ast_path)
26608            }
26609        }
26610    }
26611
26612    #[inline]
26613    fn visit_new_expr<'ast: 'r, 'r>(
26614        &mut self,
26615        node: &'ast NewExpr,
26616        __ast_path: &mut AstNodePath<'r>,
26617    ) {
26618        match self {
26619            swc_visit::Either::Left(visitor) => {
26620                VisitAstPath::visit_new_expr(visitor, node, __ast_path)
26621            }
26622            swc_visit::Either::Right(visitor) => {
26623                VisitAstPath::visit_new_expr(visitor, node, __ast_path)
26624            }
26625        }
26626    }
26627
26628    #[inline]
26629    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
26630        match self {
26631            swc_visit::Either::Left(visitor) => VisitAstPath::visit_null(visitor, node, __ast_path),
26632            swc_visit::Either::Right(visitor) => {
26633                VisitAstPath::visit_null(visitor, node, __ast_path)
26634            }
26635        }
26636    }
26637
26638    #[inline]
26639    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
26640        match self {
26641            swc_visit::Either::Left(visitor) => {
26642                VisitAstPath::visit_number(visitor, node, __ast_path)
26643            }
26644            swc_visit::Either::Right(visitor) => {
26645                VisitAstPath::visit_number(visitor, node, __ast_path)
26646            }
26647        }
26648    }
26649
26650    #[inline]
26651    fn visit_object_lit<'ast: 'r, 'r>(
26652        &mut self,
26653        node: &'ast ObjectLit,
26654        __ast_path: &mut AstNodePath<'r>,
26655    ) {
26656        match self {
26657            swc_visit::Either::Left(visitor) => {
26658                VisitAstPath::visit_object_lit(visitor, node, __ast_path)
26659            }
26660            swc_visit::Either::Right(visitor) => {
26661                VisitAstPath::visit_object_lit(visitor, node, __ast_path)
26662            }
26663        }
26664    }
26665
26666    #[inline]
26667    fn visit_object_pat<'ast: 'r, 'r>(
26668        &mut self,
26669        node: &'ast ObjectPat,
26670        __ast_path: &mut AstNodePath<'r>,
26671    ) {
26672        match self {
26673            swc_visit::Either::Left(visitor) => {
26674                VisitAstPath::visit_object_pat(visitor, node, __ast_path)
26675            }
26676            swc_visit::Either::Right(visitor) => {
26677                VisitAstPath::visit_object_pat(visitor, node, __ast_path)
26678            }
26679        }
26680    }
26681
26682    #[inline]
26683    fn visit_object_pat_prop<'ast: 'r, 'r>(
26684        &mut self,
26685        node: &'ast ObjectPatProp,
26686        __ast_path: &mut AstNodePath<'r>,
26687    ) {
26688        match self {
26689            swc_visit::Either::Left(visitor) => {
26690                VisitAstPath::visit_object_pat_prop(visitor, node, __ast_path)
26691            }
26692            swc_visit::Either::Right(visitor) => {
26693                VisitAstPath::visit_object_pat_prop(visitor, node, __ast_path)
26694            }
26695        }
26696    }
26697
26698    #[inline]
26699    fn visit_object_pat_props<'ast: 'r, 'r>(
26700        &mut self,
26701        node: &'ast [ObjectPatProp],
26702        __ast_path: &mut AstNodePath<'r>,
26703    ) {
26704        match self {
26705            swc_visit::Either::Left(visitor) => {
26706                VisitAstPath::visit_object_pat_props(visitor, node, __ast_path)
26707            }
26708            swc_visit::Either::Right(visitor) => {
26709                VisitAstPath::visit_object_pat_props(visitor, node, __ast_path)
26710            }
26711        }
26712    }
26713
26714    #[inline]
26715    fn visit_opt_accessibility<'ast: 'r, 'r>(
26716        &mut self,
26717        node: &'ast Option<Accessibility>,
26718        __ast_path: &mut AstNodePath<'r>,
26719    ) {
26720        match self {
26721            swc_visit::Either::Left(visitor) => {
26722                VisitAstPath::visit_opt_accessibility(visitor, node, __ast_path)
26723            }
26724            swc_visit::Either::Right(visitor) => {
26725                VisitAstPath::visit_opt_accessibility(visitor, node, __ast_path)
26726            }
26727        }
26728    }
26729
26730    #[inline]
26731    fn visit_opt_atom<'ast: 'r, 'r>(
26732        &mut self,
26733        node: &'ast Option<swc_atoms::Atom>,
26734        __ast_path: &mut AstNodePath<'r>,
26735    ) {
26736        match self {
26737            swc_visit::Either::Left(visitor) => {
26738                VisitAstPath::visit_opt_atom(visitor, node, __ast_path)
26739            }
26740            swc_visit::Either::Right(visitor) => {
26741                VisitAstPath::visit_opt_atom(visitor, node, __ast_path)
26742            }
26743        }
26744    }
26745
26746    #[inline]
26747    fn visit_opt_block_stmt<'ast: 'r, 'r>(
26748        &mut self,
26749        node: &'ast Option<BlockStmt>,
26750        __ast_path: &mut AstNodePath<'r>,
26751    ) {
26752        match self {
26753            swc_visit::Either::Left(visitor) => {
26754                VisitAstPath::visit_opt_block_stmt(visitor, node, __ast_path)
26755            }
26756            swc_visit::Either::Right(visitor) => {
26757                VisitAstPath::visit_opt_block_stmt(visitor, node, __ast_path)
26758            }
26759        }
26760    }
26761
26762    #[inline]
26763    fn visit_opt_call<'ast: 'r, 'r>(
26764        &mut self,
26765        node: &'ast OptCall,
26766        __ast_path: &mut AstNodePath<'r>,
26767    ) {
26768        match self {
26769            swc_visit::Either::Left(visitor) => {
26770                VisitAstPath::visit_opt_call(visitor, node, __ast_path)
26771            }
26772            swc_visit::Either::Right(visitor) => {
26773                VisitAstPath::visit_opt_call(visitor, node, __ast_path)
26774            }
26775        }
26776    }
26777
26778    #[inline]
26779    fn visit_opt_catch_clause<'ast: 'r, 'r>(
26780        &mut self,
26781        node: &'ast Option<CatchClause>,
26782        __ast_path: &mut AstNodePath<'r>,
26783    ) {
26784        match self {
26785            swc_visit::Either::Left(visitor) => {
26786                VisitAstPath::visit_opt_catch_clause(visitor, node, __ast_path)
26787            }
26788            swc_visit::Either::Right(visitor) => {
26789                VisitAstPath::visit_opt_catch_clause(visitor, node, __ast_path)
26790            }
26791        }
26792    }
26793
26794    #[inline]
26795    fn visit_opt_chain_base<'ast: 'r, 'r>(
26796        &mut self,
26797        node: &'ast OptChainBase,
26798        __ast_path: &mut AstNodePath<'r>,
26799    ) {
26800        match self {
26801            swc_visit::Either::Left(visitor) => {
26802                VisitAstPath::visit_opt_chain_base(visitor, node, __ast_path)
26803            }
26804            swc_visit::Either::Right(visitor) => {
26805                VisitAstPath::visit_opt_chain_base(visitor, node, __ast_path)
26806            }
26807        }
26808    }
26809
26810    #[inline]
26811    fn visit_opt_chain_expr<'ast: 'r, 'r>(
26812        &mut self,
26813        node: &'ast OptChainExpr,
26814        __ast_path: &mut AstNodePath<'r>,
26815    ) {
26816        match self {
26817            swc_visit::Either::Left(visitor) => {
26818                VisitAstPath::visit_opt_chain_expr(visitor, node, __ast_path)
26819            }
26820            swc_visit::Either::Right(visitor) => {
26821                VisitAstPath::visit_opt_chain_expr(visitor, node, __ast_path)
26822            }
26823        }
26824    }
26825
26826    #[inline]
26827    fn visit_opt_expr<'ast: 'r, 'r>(
26828        &mut self,
26829        node: &'ast Option<Box<Expr>>,
26830        __ast_path: &mut AstNodePath<'r>,
26831    ) {
26832        match self {
26833            swc_visit::Either::Left(visitor) => {
26834                VisitAstPath::visit_opt_expr(visitor, node, __ast_path)
26835            }
26836            swc_visit::Either::Right(visitor) => {
26837                VisitAstPath::visit_opt_expr(visitor, node, __ast_path)
26838            }
26839        }
26840    }
26841
26842    #[inline]
26843    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
26844        &mut self,
26845        node: &'ast Option<ExprOrSpread>,
26846        __ast_path: &mut AstNodePath<'r>,
26847    ) {
26848        match self {
26849            swc_visit::Either::Left(visitor) => {
26850                VisitAstPath::visit_opt_expr_or_spread(visitor, node, __ast_path)
26851            }
26852            swc_visit::Either::Right(visitor) => {
26853                VisitAstPath::visit_opt_expr_or_spread(visitor, node, __ast_path)
26854            }
26855        }
26856    }
26857
26858    #[inline]
26859    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
26860        &mut self,
26861        node: &'ast Option<Vec<ExprOrSpread>>,
26862        __ast_path: &mut AstNodePath<'r>,
26863    ) {
26864        match self {
26865            swc_visit::Either::Left(visitor) => {
26866                VisitAstPath::visit_opt_expr_or_spreads(visitor, node, __ast_path)
26867            }
26868            swc_visit::Either::Right(visitor) => {
26869                VisitAstPath::visit_opt_expr_or_spreads(visitor, node, __ast_path)
26870            }
26871        }
26872    }
26873
26874    #[inline]
26875    fn visit_opt_ident<'ast: 'r, 'r>(
26876        &mut self,
26877        node: &'ast Option<Ident>,
26878        __ast_path: &mut AstNodePath<'r>,
26879    ) {
26880        match self {
26881            swc_visit::Either::Left(visitor) => {
26882                VisitAstPath::visit_opt_ident(visitor, node, __ast_path)
26883            }
26884            swc_visit::Either::Right(visitor) => {
26885                VisitAstPath::visit_opt_ident(visitor, node, __ast_path)
26886            }
26887        }
26888    }
26889
26890    #[inline]
26891    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
26892        &mut self,
26893        node: &'ast Option<JSXAttrValue>,
26894        __ast_path: &mut AstNodePath<'r>,
26895    ) {
26896        match self {
26897            swc_visit::Either::Left(visitor) => {
26898                VisitAstPath::visit_opt_jsx_attr_value(visitor, node, __ast_path)
26899            }
26900            swc_visit::Either::Right(visitor) => {
26901                VisitAstPath::visit_opt_jsx_attr_value(visitor, node, __ast_path)
26902            }
26903        }
26904    }
26905
26906    #[inline]
26907    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
26908        &mut self,
26909        node: &'ast Option<JSXClosingElement>,
26910        __ast_path: &mut AstNodePath<'r>,
26911    ) {
26912        match self {
26913            swc_visit::Either::Left(visitor) => {
26914                VisitAstPath::visit_opt_jsx_closing_element(visitor, node, __ast_path)
26915            }
26916            swc_visit::Either::Right(visitor) => {
26917                VisitAstPath::visit_opt_jsx_closing_element(visitor, node, __ast_path)
26918            }
26919        }
26920    }
26921
26922    #[inline]
26923    fn visit_opt_module_export_name<'ast: 'r, 'r>(
26924        &mut self,
26925        node: &'ast Option<ModuleExportName>,
26926        __ast_path: &mut AstNodePath<'r>,
26927    ) {
26928        match self {
26929            swc_visit::Either::Left(visitor) => {
26930                VisitAstPath::visit_opt_module_export_name(visitor, node, __ast_path)
26931            }
26932            swc_visit::Either::Right(visitor) => {
26933                VisitAstPath::visit_opt_module_export_name(visitor, node, __ast_path)
26934            }
26935        }
26936    }
26937
26938    #[inline]
26939    fn visit_opt_object_lit<'ast: 'r, 'r>(
26940        &mut self,
26941        node: &'ast Option<Box<ObjectLit>>,
26942        __ast_path: &mut AstNodePath<'r>,
26943    ) {
26944        match self {
26945            swc_visit::Either::Left(visitor) => {
26946                VisitAstPath::visit_opt_object_lit(visitor, node, __ast_path)
26947            }
26948            swc_visit::Either::Right(visitor) => {
26949                VisitAstPath::visit_opt_object_lit(visitor, node, __ast_path)
26950            }
26951        }
26952    }
26953
26954    #[inline]
26955    fn visit_opt_pat<'ast: 'r, 'r>(
26956        &mut self,
26957        node: &'ast Option<Pat>,
26958        __ast_path: &mut AstNodePath<'r>,
26959    ) {
26960        match self {
26961            swc_visit::Either::Left(visitor) => {
26962                VisitAstPath::visit_opt_pat(visitor, node, __ast_path)
26963            }
26964            swc_visit::Either::Right(visitor) => {
26965                VisitAstPath::visit_opt_pat(visitor, node, __ast_path)
26966            }
26967        }
26968    }
26969
26970    #[inline]
26971    fn visit_opt_span<'ast: 'r, 'r>(
26972        &mut self,
26973        node: &'ast Option<swc_common::Span>,
26974        __ast_path: &mut AstNodePath<'r>,
26975    ) {
26976        match self {
26977            swc_visit::Either::Left(visitor) => {
26978                VisitAstPath::visit_opt_span(visitor, node, __ast_path)
26979            }
26980            swc_visit::Either::Right(visitor) => {
26981                VisitAstPath::visit_opt_span(visitor, node, __ast_path)
26982            }
26983        }
26984    }
26985
26986    #[inline]
26987    fn visit_opt_stmt<'ast: 'r, 'r>(
26988        &mut self,
26989        node: &'ast Option<Box<Stmt>>,
26990        __ast_path: &mut AstNodePath<'r>,
26991    ) {
26992        match self {
26993            swc_visit::Either::Left(visitor) => {
26994                VisitAstPath::visit_opt_stmt(visitor, node, __ast_path)
26995            }
26996            swc_visit::Either::Right(visitor) => {
26997                VisitAstPath::visit_opt_stmt(visitor, node, __ast_path)
26998            }
26999        }
27000    }
27001
27002    #[inline]
27003    fn visit_opt_str<'ast: 'r, 'r>(
27004        &mut self,
27005        node: &'ast Option<Box<Str>>,
27006        __ast_path: &mut AstNodePath<'r>,
27007    ) {
27008        match self {
27009            swc_visit::Either::Left(visitor) => {
27010                VisitAstPath::visit_opt_str(visitor, node, __ast_path)
27011            }
27012            swc_visit::Either::Right(visitor) => {
27013                VisitAstPath::visit_opt_str(visitor, node, __ast_path)
27014            }
27015        }
27016    }
27017
27018    #[inline]
27019    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
27020        &mut self,
27021        node: &'ast Option<TruePlusMinus>,
27022        __ast_path: &mut AstNodePath<'r>,
27023    ) {
27024        match self {
27025            swc_visit::Either::Left(visitor) => {
27026                VisitAstPath::visit_opt_true_plus_minus(visitor, node, __ast_path)
27027            }
27028            swc_visit::Either::Right(visitor) => {
27029                VisitAstPath::visit_opt_true_plus_minus(visitor, node, __ast_path)
27030            }
27031        }
27032    }
27033
27034    #[inline]
27035    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
27036        &mut self,
27037        node: &'ast Option<TsEntityName>,
27038        __ast_path: &mut AstNodePath<'r>,
27039    ) {
27040        match self {
27041            swc_visit::Either::Left(visitor) => {
27042                VisitAstPath::visit_opt_ts_entity_name(visitor, node, __ast_path)
27043            }
27044            swc_visit::Either::Right(visitor) => {
27045                VisitAstPath::visit_opt_ts_entity_name(visitor, node, __ast_path)
27046            }
27047        }
27048    }
27049
27050    #[inline]
27051    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
27052        &mut self,
27053        node: &'ast Option<TsNamespaceBody>,
27054        __ast_path: &mut AstNodePath<'r>,
27055    ) {
27056        match self {
27057            swc_visit::Either::Left(visitor) => {
27058                VisitAstPath::visit_opt_ts_namespace_body(visitor, node, __ast_path)
27059            }
27060            swc_visit::Either::Right(visitor) => {
27061                VisitAstPath::visit_opt_ts_namespace_body(visitor, node, __ast_path)
27062            }
27063        }
27064    }
27065
27066    #[inline]
27067    fn visit_opt_ts_type<'ast: 'r, 'r>(
27068        &mut self,
27069        node: &'ast Option<Box<TsType>>,
27070        __ast_path: &mut AstNodePath<'r>,
27071    ) {
27072        match self {
27073            swc_visit::Either::Left(visitor) => {
27074                VisitAstPath::visit_opt_ts_type(visitor, node, __ast_path)
27075            }
27076            swc_visit::Either::Right(visitor) => {
27077                VisitAstPath::visit_opt_ts_type(visitor, node, __ast_path)
27078            }
27079        }
27080    }
27081
27082    #[inline]
27083    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
27084        &mut self,
27085        node: &'ast Option<Box<TsTypeAnn>>,
27086        __ast_path: &mut AstNodePath<'r>,
27087    ) {
27088        match self {
27089            swc_visit::Either::Left(visitor) => {
27090                VisitAstPath::visit_opt_ts_type_ann(visitor, node, __ast_path)
27091            }
27092            swc_visit::Either::Right(visitor) => {
27093                VisitAstPath::visit_opt_ts_type_ann(visitor, node, __ast_path)
27094            }
27095        }
27096    }
27097
27098    #[inline]
27099    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
27100        &mut self,
27101        node: &'ast Option<Box<TsTypeParamDecl>>,
27102        __ast_path: &mut AstNodePath<'r>,
27103    ) {
27104        match self {
27105            swc_visit::Either::Left(visitor) => {
27106                VisitAstPath::visit_opt_ts_type_param_decl(visitor, node, __ast_path)
27107            }
27108            swc_visit::Either::Right(visitor) => {
27109                VisitAstPath::visit_opt_ts_type_param_decl(visitor, node, __ast_path)
27110            }
27111        }
27112    }
27113
27114    #[inline]
27115    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
27116        &mut self,
27117        node: &'ast Option<Box<TsTypeParamInstantiation>>,
27118        __ast_path: &mut AstNodePath<'r>,
27119    ) {
27120        match self {
27121            swc_visit::Either::Left(visitor) => {
27122                VisitAstPath::visit_opt_ts_type_param_instantiation(visitor, node, __ast_path)
27123            }
27124            swc_visit::Either::Right(visitor) => {
27125                VisitAstPath::visit_opt_ts_type_param_instantiation(visitor, node, __ast_path)
27126            }
27127        }
27128    }
27129
27130    #[inline]
27131    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
27132        &mut self,
27133        node: &'ast Option<VarDeclOrExpr>,
27134        __ast_path: &mut AstNodePath<'r>,
27135    ) {
27136        match self {
27137            swc_visit::Either::Left(visitor) => {
27138                VisitAstPath::visit_opt_var_decl_or_expr(visitor, node, __ast_path)
27139            }
27140            swc_visit::Either::Right(visitor) => {
27141                VisitAstPath::visit_opt_var_decl_or_expr(visitor, node, __ast_path)
27142            }
27143        }
27144    }
27145
27146    #[inline]
27147    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
27148        &mut self,
27149        node: &'ast [Option<ExprOrSpread>],
27150        __ast_path: &mut AstNodePath<'r>,
27151    ) {
27152        match self {
27153            swc_visit::Either::Left(visitor) => {
27154                VisitAstPath::visit_opt_vec_expr_or_spreads(visitor, node, __ast_path)
27155            }
27156            swc_visit::Either::Right(visitor) => {
27157                VisitAstPath::visit_opt_vec_expr_or_spreads(visitor, node, __ast_path)
27158            }
27159        }
27160    }
27161
27162    #[inline]
27163    fn visit_opt_vec_pats<'ast: 'r, 'r>(
27164        &mut self,
27165        node: &'ast [Option<Pat>],
27166        __ast_path: &mut AstNodePath<'r>,
27167    ) {
27168        match self {
27169            swc_visit::Either::Left(visitor) => {
27170                VisitAstPath::visit_opt_vec_pats(visitor, node, __ast_path)
27171            }
27172            swc_visit::Either::Right(visitor) => {
27173                VisitAstPath::visit_opt_vec_pats(visitor, node, __ast_path)
27174            }
27175        }
27176    }
27177
27178    #[inline]
27179    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
27180        match self {
27181            swc_visit::Either::Left(visitor) => {
27182                VisitAstPath::visit_param(visitor, node, __ast_path)
27183            }
27184            swc_visit::Either::Right(visitor) => {
27185                VisitAstPath::visit_param(visitor, node, __ast_path)
27186            }
27187        }
27188    }
27189
27190    #[inline]
27191    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
27192        &mut self,
27193        node: &'ast ParamOrTsParamProp,
27194        __ast_path: &mut AstNodePath<'r>,
27195    ) {
27196        match self {
27197            swc_visit::Either::Left(visitor) => {
27198                VisitAstPath::visit_param_or_ts_param_prop(visitor, node, __ast_path)
27199            }
27200            swc_visit::Either::Right(visitor) => {
27201                VisitAstPath::visit_param_or_ts_param_prop(visitor, node, __ast_path)
27202            }
27203        }
27204    }
27205
27206    #[inline]
27207    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
27208        &mut self,
27209        node: &'ast [ParamOrTsParamProp],
27210        __ast_path: &mut AstNodePath<'r>,
27211    ) {
27212        match self {
27213            swc_visit::Either::Left(visitor) => {
27214                VisitAstPath::visit_param_or_ts_param_props(visitor, node, __ast_path)
27215            }
27216            swc_visit::Either::Right(visitor) => {
27217                VisitAstPath::visit_param_or_ts_param_props(visitor, node, __ast_path)
27218            }
27219        }
27220    }
27221
27222    #[inline]
27223    fn visit_params<'ast: 'r, 'r>(
27224        &mut self,
27225        node: &'ast [Param],
27226        __ast_path: &mut AstNodePath<'r>,
27227    ) {
27228        match self {
27229            swc_visit::Either::Left(visitor) => {
27230                VisitAstPath::visit_params(visitor, node, __ast_path)
27231            }
27232            swc_visit::Either::Right(visitor) => {
27233                VisitAstPath::visit_params(visitor, node, __ast_path)
27234            }
27235        }
27236    }
27237
27238    #[inline]
27239    fn visit_paren_expr<'ast: 'r, 'r>(
27240        &mut self,
27241        node: &'ast ParenExpr,
27242        __ast_path: &mut AstNodePath<'r>,
27243    ) {
27244        match self {
27245            swc_visit::Either::Left(visitor) => {
27246                VisitAstPath::visit_paren_expr(visitor, node, __ast_path)
27247            }
27248            swc_visit::Either::Right(visitor) => {
27249                VisitAstPath::visit_paren_expr(visitor, node, __ast_path)
27250            }
27251        }
27252    }
27253
27254    #[inline]
27255    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
27256        match self {
27257            swc_visit::Either::Left(visitor) => VisitAstPath::visit_pat(visitor, node, __ast_path),
27258            swc_visit::Either::Right(visitor) => VisitAstPath::visit_pat(visitor, node, __ast_path),
27259        }
27260    }
27261
27262    #[inline]
27263    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
27264        match self {
27265            swc_visit::Either::Left(visitor) => VisitAstPath::visit_pats(visitor, node, __ast_path),
27266            swc_visit::Either::Right(visitor) => {
27267                VisitAstPath::visit_pats(visitor, node, __ast_path)
27268            }
27269        }
27270    }
27271
27272    #[inline]
27273    fn visit_private_method<'ast: 'r, 'r>(
27274        &mut self,
27275        node: &'ast PrivateMethod,
27276        __ast_path: &mut AstNodePath<'r>,
27277    ) {
27278        match self {
27279            swc_visit::Either::Left(visitor) => {
27280                VisitAstPath::visit_private_method(visitor, node, __ast_path)
27281            }
27282            swc_visit::Either::Right(visitor) => {
27283                VisitAstPath::visit_private_method(visitor, node, __ast_path)
27284            }
27285        }
27286    }
27287
27288    #[inline]
27289    fn visit_private_name<'ast: 'r, 'r>(
27290        &mut self,
27291        node: &'ast PrivateName,
27292        __ast_path: &mut AstNodePath<'r>,
27293    ) {
27294        match self {
27295            swc_visit::Either::Left(visitor) => {
27296                VisitAstPath::visit_private_name(visitor, node, __ast_path)
27297            }
27298            swc_visit::Either::Right(visitor) => {
27299                VisitAstPath::visit_private_name(visitor, node, __ast_path)
27300            }
27301        }
27302    }
27303
27304    #[inline]
27305    fn visit_private_prop<'ast: 'r, 'r>(
27306        &mut self,
27307        node: &'ast PrivateProp,
27308        __ast_path: &mut AstNodePath<'r>,
27309    ) {
27310        match self {
27311            swc_visit::Either::Left(visitor) => {
27312                VisitAstPath::visit_private_prop(visitor, node, __ast_path)
27313            }
27314            swc_visit::Either::Right(visitor) => {
27315                VisitAstPath::visit_private_prop(visitor, node, __ast_path)
27316            }
27317        }
27318    }
27319
27320    #[inline]
27321    fn visit_program<'ast: 'r, 'r>(
27322        &mut self,
27323        node: &'ast Program,
27324        __ast_path: &mut AstNodePath<'r>,
27325    ) {
27326        match self {
27327            swc_visit::Either::Left(visitor) => {
27328                VisitAstPath::visit_program(visitor, node, __ast_path)
27329            }
27330            swc_visit::Either::Right(visitor) => {
27331                VisitAstPath::visit_program(visitor, node, __ast_path)
27332            }
27333        }
27334    }
27335
27336    #[inline]
27337    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
27338        match self {
27339            swc_visit::Either::Left(visitor) => VisitAstPath::visit_prop(visitor, node, __ast_path),
27340            swc_visit::Either::Right(visitor) => {
27341                VisitAstPath::visit_prop(visitor, node, __ast_path)
27342            }
27343        }
27344    }
27345
27346    #[inline]
27347    fn visit_prop_name<'ast: 'r, 'r>(
27348        &mut self,
27349        node: &'ast PropName,
27350        __ast_path: &mut AstNodePath<'r>,
27351    ) {
27352        match self {
27353            swc_visit::Either::Left(visitor) => {
27354                VisitAstPath::visit_prop_name(visitor, node, __ast_path)
27355            }
27356            swc_visit::Either::Right(visitor) => {
27357                VisitAstPath::visit_prop_name(visitor, node, __ast_path)
27358            }
27359        }
27360    }
27361
27362    #[inline]
27363    fn visit_prop_or_spread<'ast: 'r, 'r>(
27364        &mut self,
27365        node: &'ast PropOrSpread,
27366        __ast_path: &mut AstNodePath<'r>,
27367    ) {
27368        match self {
27369            swc_visit::Either::Left(visitor) => {
27370                VisitAstPath::visit_prop_or_spread(visitor, node, __ast_path)
27371            }
27372            swc_visit::Either::Right(visitor) => {
27373                VisitAstPath::visit_prop_or_spread(visitor, node, __ast_path)
27374            }
27375        }
27376    }
27377
27378    #[inline]
27379    fn visit_prop_or_spreads<'ast: 'r, 'r>(
27380        &mut self,
27381        node: &'ast [PropOrSpread],
27382        __ast_path: &mut AstNodePath<'r>,
27383    ) {
27384        match self {
27385            swc_visit::Either::Left(visitor) => {
27386                VisitAstPath::visit_prop_or_spreads(visitor, node, __ast_path)
27387            }
27388            swc_visit::Either::Right(visitor) => {
27389                VisitAstPath::visit_prop_or_spreads(visitor, node, __ast_path)
27390            }
27391        }
27392    }
27393
27394    #[inline]
27395    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
27396        match self {
27397            swc_visit::Either::Left(visitor) => {
27398                VisitAstPath::visit_regex(visitor, node, __ast_path)
27399            }
27400            swc_visit::Either::Right(visitor) => {
27401                VisitAstPath::visit_regex(visitor, node, __ast_path)
27402            }
27403        }
27404    }
27405
27406    #[inline]
27407    fn visit_rest_pat<'ast: 'r, 'r>(
27408        &mut self,
27409        node: &'ast RestPat,
27410        __ast_path: &mut AstNodePath<'r>,
27411    ) {
27412        match self {
27413            swc_visit::Either::Left(visitor) => {
27414                VisitAstPath::visit_rest_pat(visitor, node, __ast_path)
27415            }
27416            swc_visit::Either::Right(visitor) => {
27417                VisitAstPath::visit_rest_pat(visitor, node, __ast_path)
27418            }
27419        }
27420    }
27421
27422    #[inline]
27423    fn visit_return_stmt<'ast: 'r, 'r>(
27424        &mut self,
27425        node: &'ast ReturnStmt,
27426        __ast_path: &mut AstNodePath<'r>,
27427    ) {
27428        match self {
27429            swc_visit::Either::Left(visitor) => {
27430                VisitAstPath::visit_return_stmt(visitor, node, __ast_path)
27431            }
27432            swc_visit::Either::Right(visitor) => {
27433                VisitAstPath::visit_return_stmt(visitor, node, __ast_path)
27434            }
27435        }
27436    }
27437
27438    #[inline]
27439    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
27440        match self {
27441            swc_visit::Either::Left(visitor) => {
27442                VisitAstPath::visit_script(visitor, node, __ast_path)
27443            }
27444            swc_visit::Either::Right(visitor) => {
27445                VisitAstPath::visit_script(visitor, node, __ast_path)
27446            }
27447        }
27448    }
27449
27450    #[inline]
27451    fn visit_seq_expr<'ast: 'r, 'r>(
27452        &mut self,
27453        node: &'ast SeqExpr,
27454        __ast_path: &mut AstNodePath<'r>,
27455    ) {
27456        match self {
27457            swc_visit::Either::Left(visitor) => {
27458                VisitAstPath::visit_seq_expr(visitor, node, __ast_path)
27459            }
27460            swc_visit::Either::Right(visitor) => {
27461                VisitAstPath::visit_seq_expr(visitor, node, __ast_path)
27462            }
27463        }
27464    }
27465
27466    #[inline]
27467    fn visit_setter_prop<'ast: 'r, 'r>(
27468        &mut self,
27469        node: &'ast SetterProp,
27470        __ast_path: &mut AstNodePath<'r>,
27471    ) {
27472        match self {
27473            swc_visit::Either::Left(visitor) => {
27474                VisitAstPath::visit_setter_prop(visitor, node, __ast_path)
27475            }
27476            swc_visit::Either::Right(visitor) => {
27477                VisitAstPath::visit_setter_prop(visitor, node, __ast_path)
27478            }
27479        }
27480    }
27481
27482    #[inline]
27483    fn visit_simple_assign_target<'ast: 'r, 'r>(
27484        &mut self,
27485        node: &'ast SimpleAssignTarget,
27486        __ast_path: &mut AstNodePath<'r>,
27487    ) {
27488        match self {
27489            swc_visit::Either::Left(visitor) => {
27490                VisitAstPath::visit_simple_assign_target(visitor, node, __ast_path)
27491            }
27492            swc_visit::Either::Right(visitor) => {
27493                VisitAstPath::visit_simple_assign_target(visitor, node, __ast_path)
27494            }
27495        }
27496    }
27497
27498    #[inline]
27499    fn visit_span<'ast: 'r, 'r>(
27500        &mut self,
27501        node: &'ast swc_common::Span,
27502        __ast_path: &mut AstNodePath<'r>,
27503    ) {
27504        match self {
27505            swc_visit::Either::Left(visitor) => VisitAstPath::visit_span(visitor, node, __ast_path),
27506            swc_visit::Either::Right(visitor) => {
27507                VisitAstPath::visit_span(visitor, node, __ast_path)
27508            }
27509        }
27510    }
27511
27512    #[inline]
27513    fn visit_spread_element<'ast: 'r, 'r>(
27514        &mut self,
27515        node: &'ast SpreadElement,
27516        __ast_path: &mut AstNodePath<'r>,
27517    ) {
27518        match self {
27519            swc_visit::Either::Left(visitor) => {
27520                VisitAstPath::visit_spread_element(visitor, node, __ast_path)
27521            }
27522            swc_visit::Either::Right(visitor) => {
27523                VisitAstPath::visit_spread_element(visitor, node, __ast_path)
27524            }
27525        }
27526    }
27527
27528    #[inline]
27529    fn visit_static_block<'ast: 'r, 'r>(
27530        &mut self,
27531        node: &'ast StaticBlock,
27532        __ast_path: &mut AstNodePath<'r>,
27533    ) {
27534        match self {
27535            swc_visit::Either::Left(visitor) => {
27536                VisitAstPath::visit_static_block(visitor, node, __ast_path)
27537            }
27538            swc_visit::Either::Right(visitor) => {
27539                VisitAstPath::visit_static_block(visitor, node, __ast_path)
27540            }
27541        }
27542    }
27543
27544    #[inline]
27545    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
27546        match self {
27547            swc_visit::Either::Left(visitor) => VisitAstPath::visit_stmt(visitor, node, __ast_path),
27548            swc_visit::Either::Right(visitor) => {
27549                VisitAstPath::visit_stmt(visitor, node, __ast_path)
27550            }
27551        }
27552    }
27553
27554    #[inline]
27555    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
27556        match self {
27557            swc_visit::Either::Left(visitor) => {
27558                VisitAstPath::visit_stmts(visitor, node, __ast_path)
27559            }
27560            swc_visit::Either::Right(visitor) => {
27561                VisitAstPath::visit_stmts(visitor, node, __ast_path)
27562            }
27563        }
27564    }
27565
27566    #[inline]
27567    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
27568        match self {
27569            swc_visit::Either::Left(visitor) => VisitAstPath::visit_str(visitor, node, __ast_path),
27570            swc_visit::Either::Right(visitor) => VisitAstPath::visit_str(visitor, node, __ast_path),
27571        }
27572    }
27573
27574    #[inline]
27575    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
27576        match self {
27577            swc_visit::Either::Left(visitor) => {
27578                VisitAstPath::visit_super(visitor, node, __ast_path)
27579            }
27580            swc_visit::Either::Right(visitor) => {
27581                VisitAstPath::visit_super(visitor, node, __ast_path)
27582            }
27583        }
27584    }
27585
27586    #[inline]
27587    fn visit_super_prop<'ast: 'r, 'r>(
27588        &mut self,
27589        node: &'ast SuperProp,
27590        __ast_path: &mut AstNodePath<'r>,
27591    ) {
27592        match self {
27593            swc_visit::Either::Left(visitor) => {
27594                VisitAstPath::visit_super_prop(visitor, node, __ast_path)
27595            }
27596            swc_visit::Either::Right(visitor) => {
27597                VisitAstPath::visit_super_prop(visitor, node, __ast_path)
27598            }
27599        }
27600    }
27601
27602    #[inline]
27603    fn visit_super_prop_expr<'ast: 'r, 'r>(
27604        &mut self,
27605        node: &'ast SuperPropExpr,
27606        __ast_path: &mut AstNodePath<'r>,
27607    ) {
27608        match self {
27609            swc_visit::Either::Left(visitor) => {
27610                VisitAstPath::visit_super_prop_expr(visitor, node, __ast_path)
27611            }
27612            swc_visit::Either::Right(visitor) => {
27613                VisitAstPath::visit_super_prop_expr(visitor, node, __ast_path)
27614            }
27615        }
27616    }
27617
27618    #[inline]
27619    fn visit_switch_case<'ast: 'r, 'r>(
27620        &mut self,
27621        node: &'ast SwitchCase,
27622        __ast_path: &mut AstNodePath<'r>,
27623    ) {
27624        match self {
27625            swc_visit::Either::Left(visitor) => {
27626                VisitAstPath::visit_switch_case(visitor, node, __ast_path)
27627            }
27628            swc_visit::Either::Right(visitor) => {
27629                VisitAstPath::visit_switch_case(visitor, node, __ast_path)
27630            }
27631        }
27632    }
27633
27634    #[inline]
27635    fn visit_switch_cases<'ast: 'r, 'r>(
27636        &mut self,
27637        node: &'ast [SwitchCase],
27638        __ast_path: &mut AstNodePath<'r>,
27639    ) {
27640        match self {
27641            swc_visit::Either::Left(visitor) => {
27642                VisitAstPath::visit_switch_cases(visitor, node, __ast_path)
27643            }
27644            swc_visit::Either::Right(visitor) => {
27645                VisitAstPath::visit_switch_cases(visitor, node, __ast_path)
27646            }
27647        }
27648    }
27649
27650    #[inline]
27651    fn visit_switch_stmt<'ast: 'r, 'r>(
27652        &mut self,
27653        node: &'ast SwitchStmt,
27654        __ast_path: &mut AstNodePath<'r>,
27655    ) {
27656        match self {
27657            swc_visit::Either::Left(visitor) => {
27658                VisitAstPath::visit_switch_stmt(visitor, node, __ast_path)
27659            }
27660            swc_visit::Either::Right(visitor) => {
27661                VisitAstPath::visit_switch_stmt(visitor, node, __ast_path)
27662            }
27663        }
27664    }
27665
27666    #[inline]
27667    fn visit_syntax_context<'ast: 'r, 'r>(
27668        &mut self,
27669        node: &'ast swc_common::SyntaxContext,
27670        __ast_path: &mut AstNodePath<'r>,
27671    ) {
27672        match self {
27673            swc_visit::Either::Left(visitor) => {
27674                VisitAstPath::visit_syntax_context(visitor, node, __ast_path)
27675            }
27676            swc_visit::Either::Right(visitor) => {
27677                VisitAstPath::visit_syntax_context(visitor, node, __ast_path)
27678            }
27679        }
27680    }
27681
27682    #[inline]
27683    fn visit_tagged_tpl<'ast: 'r, 'r>(
27684        &mut self,
27685        node: &'ast TaggedTpl,
27686        __ast_path: &mut AstNodePath<'r>,
27687    ) {
27688        match self {
27689            swc_visit::Either::Left(visitor) => {
27690                VisitAstPath::visit_tagged_tpl(visitor, node, __ast_path)
27691            }
27692            swc_visit::Either::Right(visitor) => {
27693                VisitAstPath::visit_tagged_tpl(visitor, node, __ast_path)
27694            }
27695        }
27696    }
27697
27698    #[inline]
27699    fn visit_this_expr<'ast: 'r, 'r>(
27700        &mut self,
27701        node: &'ast ThisExpr,
27702        __ast_path: &mut AstNodePath<'r>,
27703    ) {
27704        match self {
27705            swc_visit::Either::Left(visitor) => {
27706                VisitAstPath::visit_this_expr(visitor, node, __ast_path)
27707            }
27708            swc_visit::Either::Right(visitor) => {
27709                VisitAstPath::visit_this_expr(visitor, node, __ast_path)
27710            }
27711        }
27712    }
27713
27714    #[inline]
27715    fn visit_throw_stmt<'ast: 'r, 'r>(
27716        &mut self,
27717        node: &'ast ThrowStmt,
27718        __ast_path: &mut AstNodePath<'r>,
27719    ) {
27720        match self {
27721            swc_visit::Either::Left(visitor) => {
27722                VisitAstPath::visit_throw_stmt(visitor, node, __ast_path)
27723            }
27724            swc_visit::Either::Right(visitor) => {
27725                VisitAstPath::visit_throw_stmt(visitor, node, __ast_path)
27726            }
27727        }
27728    }
27729
27730    #[inline]
27731    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
27732        match self {
27733            swc_visit::Either::Left(visitor) => VisitAstPath::visit_tpl(visitor, node, __ast_path),
27734            swc_visit::Either::Right(visitor) => VisitAstPath::visit_tpl(visitor, node, __ast_path),
27735        }
27736    }
27737
27738    #[inline]
27739    fn visit_tpl_element<'ast: 'r, 'r>(
27740        &mut self,
27741        node: &'ast TplElement,
27742        __ast_path: &mut AstNodePath<'r>,
27743    ) {
27744        match self {
27745            swc_visit::Either::Left(visitor) => {
27746                VisitAstPath::visit_tpl_element(visitor, node, __ast_path)
27747            }
27748            swc_visit::Either::Right(visitor) => {
27749                VisitAstPath::visit_tpl_element(visitor, node, __ast_path)
27750            }
27751        }
27752    }
27753
27754    #[inline]
27755    fn visit_tpl_elements<'ast: 'r, 'r>(
27756        &mut self,
27757        node: &'ast [TplElement],
27758        __ast_path: &mut AstNodePath<'r>,
27759    ) {
27760        match self {
27761            swc_visit::Either::Left(visitor) => {
27762                VisitAstPath::visit_tpl_elements(visitor, node, __ast_path)
27763            }
27764            swc_visit::Either::Right(visitor) => {
27765                VisitAstPath::visit_tpl_elements(visitor, node, __ast_path)
27766            }
27767        }
27768    }
27769
27770    #[inline]
27771    fn visit_true_plus_minus<'ast: 'r, 'r>(
27772        &mut self,
27773        node: &'ast TruePlusMinus,
27774        __ast_path: &mut AstNodePath<'r>,
27775    ) {
27776        match self {
27777            swc_visit::Either::Left(visitor) => {
27778                VisitAstPath::visit_true_plus_minus(visitor, node, __ast_path)
27779            }
27780            swc_visit::Either::Right(visitor) => {
27781                VisitAstPath::visit_true_plus_minus(visitor, node, __ast_path)
27782            }
27783        }
27784    }
27785
27786    #[inline]
27787    fn visit_try_stmt<'ast: 'r, 'r>(
27788        &mut self,
27789        node: &'ast TryStmt,
27790        __ast_path: &mut AstNodePath<'r>,
27791    ) {
27792        match self {
27793            swc_visit::Either::Left(visitor) => {
27794                VisitAstPath::visit_try_stmt(visitor, node, __ast_path)
27795            }
27796            swc_visit::Either::Right(visitor) => {
27797                VisitAstPath::visit_try_stmt(visitor, node, __ast_path)
27798            }
27799        }
27800    }
27801
27802    #[inline]
27803    fn visit_ts_array_type<'ast: 'r, 'r>(
27804        &mut self,
27805        node: &'ast TsArrayType,
27806        __ast_path: &mut AstNodePath<'r>,
27807    ) {
27808        match self {
27809            swc_visit::Either::Left(visitor) => {
27810                VisitAstPath::visit_ts_array_type(visitor, node, __ast_path)
27811            }
27812            swc_visit::Either::Right(visitor) => {
27813                VisitAstPath::visit_ts_array_type(visitor, node, __ast_path)
27814            }
27815        }
27816    }
27817
27818    #[inline]
27819    fn visit_ts_as_expr<'ast: 'r, 'r>(
27820        &mut self,
27821        node: &'ast TsAsExpr,
27822        __ast_path: &mut AstNodePath<'r>,
27823    ) {
27824        match self {
27825            swc_visit::Either::Left(visitor) => {
27826                VisitAstPath::visit_ts_as_expr(visitor, node, __ast_path)
27827            }
27828            swc_visit::Either::Right(visitor) => {
27829                VisitAstPath::visit_ts_as_expr(visitor, node, __ast_path)
27830            }
27831        }
27832    }
27833
27834    #[inline]
27835    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
27836        &mut self,
27837        node: &'ast TsCallSignatureDecl,
27838        __ast_path: &mut AstNodePath<'r>,
27839    ) {
27840        match self {
27841            swc_visit::Either::Left(visitor) => {
27842                VisitAstPath::visit_ts_call_signature_decl(visitor, node, __ast_path)
27843            }
27844            swc_visit::Either::Right(visitor) => {
27845                VisitAstPath::visit_ts_call_signature_decl(visitor, node, __ast_path)
27846            }
27847        }
27848    }
27849
27850    #[inline]
27851    fn visit_ts_conditional_type<'ast: 'r, 'r>(
27852        &mut self,
27853        node: &'ast TsConditionalType,
27854        __ast_path: &mut AstNodePath<'r>,
27855    ) {
27856        match self {
27857            swc_visit::Either::Left(visitor) => {
27858                VisitAstPath::visit_ts_conditional_type(visitor, node, __ast_path)
27859            }
27860            swc_visit::Either::Right(visitor) => {
27861                VisitAstPath::visit_ts_conditional_type(visitor, node, __ast_path)
27862            }
27863        }
27864    }
27865
27866    #[inline]
27867    fn visit_ts_const_assertion<'ast: 'r, 'r>(
27868        &mut self,
27869        node: &'ast TsConstAssertion,
27870        __ast_path: &mut AstNodePath<'r>,
27871    ) {
27872        match self {
27873            swc_visit::Either::Left(visitor) => {
27874                VisitAstPath::visit_ts_const_assertion(visitor, node, __ast_path)
27875            }
27876            swc_visit::Either::Right(visitor) => {
27877                VisitAstPath::visit_ts_const_assertion(visitor, node, __ast_path)
27878            }
27879        }
27880    }
27881
27882    #[inline]
27883    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
27884        &mut self,
27885        node: &'ast TsConstructSignatureDecl,
27886        __ast_path: &mut AstNodePath<'r>,
27887    ) {
27888        match self {
27889            swc_visit::Either::Left(visitor) => {
27890                VisitAstPath::visit_ts_construct_signature_decl(visitor, node, __ast_path)
27891            }
27892            swc_visit::Either::Right(visitor) => {
27893                VisitAstPath::visit_ts_construct_signature_decl(visitor, node, __ast_path)
27894            }
27895        }
27896    }
27897
27898    #[inline]
27899    fn visit_ts_constructor_type<'ast: 'r, 'r>(
27900        &mut self,
27901        node: &'ast TsConstructorType,
27902        __ast_path: &mut AstNodePath<'r>,
27903    ) {
27904        match self {
27905            swc_visit::Either::Left(visitor) => {
27906                VisitAstPath::visit_ts_constructor_type(visitor, node, __ast_path)
27907            }
27908            swc_visit::Either::Right(visitor) => {
27909                VisitAstPath::visit_ts_constructor_type(visitor, node, __ast_path)
27910            }
27911        }
27912    }
27913
27914    #[inline]
27915    fn visit_ts_entity_name<'ast: 'r, 'r>(
27916        &mut self,
27917        node: &'ast TsEntityName,
27918        __ast_path: &mut AstNodePath<'r>,
27919    ) {
27920        match self {
27921            swc_visit::Either::Left(visitor) => {
27922                VisitAstPath::visit_ts_entity_name(visitor, node, __ast_path)
27923            }
27924            swc_visit::Either::Right(visitor) => {
27925                VisitAstPath::visit_ts_entity_name(visitor, node, __ast_path)
27926            }
27927        }
27928    }
27929
27930    #[inline]
27931    fn visit_ts_enum_decl<'ast: 'r, 'r>(
27932        &mut self,
27933        node: &'ast TsEnumDecl,
27934        __ast_path: &mut AstNodePath<'r>,
27935    ) {
27936        match self {
27937            swc_visit::Either::Left(visitor) => {
27938                VisitAstPath::visit_ts_enum_decl(visitor, node, __ast_path)
27939            }
27940            swc_visit::Either::Right(visitor) => {
27941                VisitAstPath::visit_ts_enum_decl(visitor, node, __ast_path)
27942            }
27943        }
27944    }
27945
27946    #[inline]
27947    fn visit_ts_enum_member<'ast: 'r, 'r>(
27948        &mut self,
27949        node: &'ast TsEnumMember,
27950        __ast_path: &mut AstNodePath<'r>,
27951    ) {
27952        match self {
27953            swc_visit::Either::Left(visitor) => {
27954                VisitAstPath::visit_ts_enum_member(visitor, node, __ast_path)
27955            }
27956            swc_visit::Either::Right(visitor) => {
27957                VisitAstPath::visit_ts_enum_member(visitor, node, __ast_path)
27958            }
27959        }
27960    }
27961
27962    #[inline]
27963    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
27964        &mut self,
27965        node: &'ast TsEnumMemberId,
27966        __ast_path: &mut AstNodePath<'r>,
27967    ) {
27968        match self {
27969            swc_visit::Either::Left(visitor) => {
27970                VisitAstPath::visit_ts_enum_member_id(visitor, node, __ast_path)
27971            }
27972            swc_visit::Either::Right(visitor) => {
27973                VisitAstPath::visit_ts_enum_member_id(visitor, node, __ast_path)
27974            }
27975        }
27976    }
27977
27978    #[inline]
27979    fn visit_ts_enum_members<'ast: 'r, 'r>(
27980        &mut self,
27981        node: &'ast [TsEnumMember],
27982        __ast_path: &mut AstNodePath<'r>,
27983    ) {
27984        match self {
27985            swc_visit::Either::Left(visitor) => {
27986                VisitAstPath::visit_ts_enum_members(visitor, node, __ast_path)
27987            }
27988            swc_visit::Either::Right(visitor) => {
27989                VisitAstPath::visit_ts_enum_members(visitor, node, __ast_path)
27990            }
27991        }
27992    }
27993
27994    #[inline]
27995    fn visit_ts_export_assignment<'ast: 'r, 'r>(
27996        &mut self,
27997        node: &'ast TsExportAssignment,
27998        __ast_path: &mut AstNodePath<'r>,
27999    ) {
28000        match self {
28001            swc_visit::Either::Left(visitor) => {
28002                VisitAstPath::visit_ts_export_assignment(visitor, node, __ast_path)
28003            }
28004            swc_visit::Either::Right(visitor) => {
28005                VisitAstPath::visit_ts_export_assignment(visitor, node, __ast_path)
28006            }
28007        }
28008    }
28009
28010    #[inline]
28011    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
28012        &mut self,
28013        node: &'ast TsExprWithTypeArgs,
28014        __ast_path: &mut AstNodePath<'r>,
28015    ) {
28016        match self {
28017            swc_visit::Either::Left(visitor) => {
28018                VisitAstPath::visit_ts_expr_with_type_args(visitor, node, __ast_path)
28019            }
28020            swc_visit::Either::Right(visitor) => {
28021                VisitAstPath::visit_ts_expr_with_type_args(visitor, node, __ast_path)
28022            }
28023        }
28024    }
28025
28026    #[inline]
28027    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
28028        &mut self,
28029        node: &'ast [TsExprWithTypeArgs],
28030        __ast_path: &mut AstNodePath<'r>,
28031    ) {
28032        match self {
28033            swc_visit::Either::Left(visitor) => {
28034                VisitAstPath::visit_ts_expr_with_type_argss(visitor, node, __ast_path)
28035            }
28036            swc_visit::Either::Right(visitor) => {
28037                VisitAstPath::visit_ts_expr_with_type_argss(visitor, node, __ast_path)
28038            }
28039        }
28040    }
28041
28042    #[inline]
28043    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
28044        &mut self,
28045        node: &'ast TsExternalModuleRef,
28046        __ast_path: &mut AstNodePath<'r>,
28047    ) {
28048        match self {
28049            swc_visit::Either::Left(visitor) => {
28050                VisitAstPath::visit_ts_external_module_ref(visitor, node, __ast_path)
28051            }
28052            swc_visit::Either::Right(visitor) => {
28053                VisitAstPath::visit_ts_external_module_ref(visitor, node, __ast_path)
28054            }
28055        }
28056    }
28057
28058    #[inline]
28059    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
28060        &mut self,
28061        node: &'ast TsFnOrConstructorType,
28062        __ast_path: &mut AstNodePath<'r>,
28063    ) {
28064        match self {
28065            swc_visit::Either::Left(visitor) => {
28066                VisitAstPath::visit_ts_fn_or_constructor_type(visitor, node, __ast_path)
28067            }
28068            swc_visit::Either::Right(visitor) => {
28069                VisitAstPath::visit_ts_fn_or_constructor_type(visitor, node, __ast_path)
28070            }
28071        }
28072    }
28073
28074    #[inline]
28075    fn visit_ts_fn_param<'ast: 'r, 'r>(
28076        &mut self,
28077        node: &'ast TsFnParam,
28078        __ast_path: &mut AstNodePath<'r>,
28079    ) {
28080        match self {
28081            swc_visit::Either::Left(visitor) => {
28082                VisitAstPath::visit_ts_fn_param(visitor, node, __ast_path)
28083            }
28084            swc_visit::Either::Right(visitor) => {
28085                VisitAstPath::visit_ts_fn_param(visitor, node, __ast_path)
28086            }
28087        }
28088    }
28089
28090    #[inline]
28091    fn visit_ts_fn_params<'ast: 'r, 'r>(
28092        &mut self,
28093        node: &'ast [TsFnParam],
28094        __ast_path: &mut AstNodePath<'r>,
28095    ) {
28096        match self {
28097            swc_visit::Either::Left(visitor) => {
28098                VisitAstPath::visit_ts_fn_params(visitor, node, __ast_path)
28099            }
28100            swc_visit::Either::Right(visitor) => {
28101                VisitAstPath::visit_ts_fn_params(visitor, node, __ast_path)
28102            }
28103        }
28104    }
28105
28106    #[inline]
28107    fn visit_ts_fn_type<'ast: 'r, 'r>(
28108        &mut self,
28109        node: &'ast TsFnType,
28110        __ast_path: &mut AstNodePath<'r>,
28111    ) {
28112        match self {
28113            swc_visit::Either::Left(visitor) => {
28114                VisitAstPath::visit_ts_fn_type(visitor, node, __ast_path)
28115            }
28116            swc_visit::Either::Right(visitor) => {
28117                VisitAstPath::visit_ts_fn_type(visitor, node, __ast_path)
28118            }
28119        }
28120    }
28121
28122    #[inline]
28123    fn visit_ts_getter_signature<'ast: 'r, 'r>(
28124        &mut self,
28125        node: &'ast TsGetterSignature,
28126        __ast_path: &mut AstNodePath<'r>,
28127    ) {
28128        match self {
28129            swc_visit::Either::Left(visitor) => {
28130                VisitAstPath::visit_ts_getter_signature(visitor, node, __ast_path)
28131            }
28132            swc_visit::Either::Right(visitor) => {
28133                VisitAstPath::visit_ts_getter_signature(visitor, node, __ast_path)
28134            }
28135        }
28136    }
28137
28138    #[inline]
28139    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
28140        &mut self,
28141        node: &'ast TsImportEqualsDecl,
28142        __ast_path: &mut AstNodePath<'r>,
28143    ) {
28144        match self {
28145            swc_visit::Either::Left(visitor) => {
28146                VisitAstPath::visit_ts_import_equals_decl(visitor, node, __ast_path)
28147            }
28148            swc_visit::Either::Right(visitor) => {
28149                VisitAstPath::visit_ts_import_equals_decl(visitor, node, __ast_path)
28150            }
28151        }
28152    }
28153
28154    #[inline]
28155    fn visit_ts_import_type<'ast: 'r, 'r>(
28156        &mut self,
28157        node: &'ast TsImportType,
28158        __ast_path: &mut AstNodePath<'r>,
28159    ) {
28160        match self {
28161            swc_visit::Either::Left(visitor) => {
28162                VisitAstPath::visit_ts_import_type(visitor, node, __ast_path)
28163            }
28164            swc_visit::Either::Right(visitor) => {
28165                VisitAstPath::visit_ts_import_type(visitor, node, __ast_path)
28166            }
28167        }
28168    }
28169
28170    #[inline]
28171    fn visit_ts_index_signature<'ast: 'r, 'r>(
28172        &mut self,
28173        node: &'ast TsIndexSignature,
28174        __ast_path: &mut AstNodePath<'r>,
28175    ) {
28176        match self {
28177            swc_visit::Either::Left(visitor) => {
28178                VisitAstPath::visit_ts_index_signature(visitor, node, __ast_path)
28179            }
28180            swc_visit::Either::Right(visitor) => {
28181                VisitAstPath::visit_ts_index_signature(visitor, node, __ast_path)
28182            }
28183        }
28184    }
28185
28186    #[inline]
28187    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
28188        &mut self,
28189        node: &'ast TsIndexedAccessType,
28190        __ast_path: &mut AstNodePath<'r>,
28191    ) {
28192        match self {
28193            swc_visit::Either::Left(visitor) => {
28194                VisitAstPath::visit_ts_indexed_access_type(visitor, node, __ast_path)
28195            }
28196            swc_visit::Either::Right(visitor) => {
28197                VisitAstPath::visit_ts_indexed_access_type(visitor, node, __ast_path)
28198            }
28199        }
28200    }
28201
28202    #[inline]
28203    fn visit_ts_infer_type<'ast: 'r, 'r>(
28204        &mut self,
28205        node: &'ast TsInferType,
28206        __ast_path: &mut AstNodePath<'r>,
28207    ) {
28208        match self {
28209            swc_visit::Either::Left(visitor) => {
28210                VisitAstPath::visit_ts_infer_type(visitor, node, __ast_path)
28211            }
28212            swc_visit::Either::Right(visitor) => {
28213                VisitAstPath::visit_ts_infer_type(visitor, node, __ast_path)
28214            }
28215        }
28216    }
28217
28218    #[inline]
28219    fn visit_ts_instantiation<'ast: 'r, 'r>(
28220        &mut self,
28221        node: &'ast TsInstantiation,
28222        __ast_path: &mut AstNodePath<'r>,
28223    ) {
28224        match self {
28225            swc_visit::Either::Left(visitor) => {
28226                VisitAstPath::visit_ts_instantiation(visitor, node, __ast_path)
28227            }
28228            swc_visit::Either::Right(visitor) => {
28229                VisitAstPath::visit_ts_instantiation(visitor, node, __ast_path)
28230            }
28231        }
28232    }
28233
28234    #[inline]
28235    fn visit_ts_interface_body<'ast: 'r, 'r>(
28236        &mut self,
28237        node: &'ast TsInterfaceBody,
28238        __ast_path: &mut AstNodePath<'r>,
28239    ) {
28240        match self {
28241            swc_visit::Either::Left(visitor) => {
28242                VisitAstPath::visit_ts_interface_body(visitor, node, __ast_path)
28243            }
28244            swc_visit::Either::Right(visitor) => {
28245                VisitAstPath::visit_ts_interface_body(visitor, node, __ast_path)
28246            }
28247        }
28248    }
28249
28250    #[inline]
28251    fn visit_ts_interface_decl<'ast: 'r, 'r>(
28252        &mut self,
28253        node: &'ast TsInterfaceDecl,
28254        __ast_path: &mut AstNodePath<'r>,
28255    ) {
28256        match self {
28257            swc_visit::Either::Left(visitor) => {
28258                VisitAstPath::visit_ts_interface_decl(visitor, node, __ast_path)
28259            }
28260            swc_visit::Either::Right(visitor) => {
28261                VisitAstPath::visit_ts_interface_decl(visitor, node, __ast_path)
28262            }
28263        }
28264    }
28265
28266    #[inline]
28267    fn visit_ts_intersection_type<'ast: 'r, 'r>(
28268        &mut self,
28269        node: &'ast TsIntersectionType,
28270        __ast_path: &mut AstNodePath<'r>,
28271    ) {
28272        match self {
28273            swc_visit::Either::Left(visitor) => {
28274                VisitAstPath::visit_ts_intersection_type(visitor, node, __ast_path)
28275            }
28276            swc_visit::Either::Right(visitor) => {
28277                VisitAstPath::visit_ts_intersection_type(visitor, node, __ast_path)
28278            }
28279        }
28280    }
28281
28282    #[inline]
28283    fn visit_ts_keyword_type<'ast: 'r, 'r>(
28284        &mut self,
28285        node: &'ast TsKeywordType,
28286        __ast_path: &mut AstNodePath<'r>,
28287    ) {
28288        match self {
28289            swc_visit::Either::Left(visitor) => {
28290                VisitAstPath::visit_ts_keyword_type(visitor, node, __ast_path)
28291            }
28292            swc_visit::Either::Right(visitor) => {
28293                VisitAstPath::visit_ts_keyword_type(visitor, node, __ast_path)
28294            }
28295        }
28296    }
28297
28298    #[inline]
28299    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
28300        &mut self,
28301        node: &'ast TsKeywordTypeKind,
28302        __ast_path: &mut AstNodePath<'r>,
28303    ) {
28304        match self {
28305            swc_visit::Either::Left(visitor) => {
28306                VisitAstPath::visit_ts_keyword_type_kind(visitor, node, __ast_path)
28307            }
28308            swc_visit::Either::Right(visitor) => {
28309                VisitAstPath::visit_ts_keyword_type_kind(visitor, node, __ast_path)
28310            }
28311        }
28312    }
28313
28314    #[inline]
28315    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
28316        match self {
28317            swc_visit::Either::Left(visitor) => {
28318                VisitAstPath::visit_ts_lit(visitor, node, __ast_path)
28319            }
28320            swc_visit::Either::Right(visitor) => {
28321                VisitAstPath::visit_ts_lit(visitor, node, __ast_path)
28322            }
28323        }
28324    }
28325
28326    #[inline]
28327    fn visit_ts_lit_type<'ast: 'r, 'r>(
28328        &mut self,
28329        node: &'ast TsLitType,
28330        __ast_path: &mut AstNodePath<'r>,
28331    ) {
28332        match self {
28333            swc_visit::Either::Left(visitor) => {
28334                VisitAstPath::visit_ts_lit_type(visitor, node, __ast_path)
28335            }
28336            swc_visit::Either::Right(visitor) => {
28337                VisitAstPath::visit_ts_lit_type(visitor, node, __ast_path)
28338            }
28339        }
28340    }
28341
28342    #[inline]
28343    fn visit_ts_mapped_type<'ast: 'r, 'r>(
28344        &mut self,
28345        node: &'ast TsMappedType,
28346        __ast_path: &mut AstNodePath<'r>,
28347    ) {
28348        match self {
28349            swc_visit::Either::Left(visitor) => {
28350                VisitAstPath::visit_ts_mapped_type(visitor, node, __ast_path)
28351            }
28352            swc_visit::Either::Right(visitor) => {
28353                VisitAstPath::visit_ts_mapped_type(visitor, node, __ast_path)
28354            }
28355        }
28356    }
28357
28358    #[inline]
28359    fn visit_ts_method_signature<'ast: 'r, 'r>(
28360        &mut self,
28361        node: &'ast TsMethodSignature,
28362        __ast_path: &mut AstNodePath<'r>,
28363    ) {
28364        match self {
28365            swc_visit::Either::Left(visitor) => {
28366                VisitAstPath::visit_ts_method_signature(visitor, node, __ast_path)
28367            }
28368            swc_visit::Either::Right(visitor) => {
28369                VisitAstPath::visit_ts_method_signature(visitor, node, __ast_path)
28370            }
28371        }
28372    }
28373
28374    #[inline]
28375    fn visit_ts_module_block<'ast: 'r, 'r>(
28376        &mut self,
28377        node: &'ast TsModuleBlock,
28378        __ast_path: &mut AstNodePath<'r>,
28379    ) {
28380        match self {
28381            swc_visit::Either::Left(visitor) => {
28382                VisitAstPath::visit_ts_module_block(visitor, node, __ast_path)
28383            }
28384            swc_visit::Either::Right(visitor) => {
28385                VisitAstPath::visit_ts_module_block(visitor, node, __ast_path)
28386            }
28387        }
28388    }
28389
28390    #[inline]
28391    fn visit_ts_module_decl<'ast: 'r, 'r>(
28392        &mut self,
28393        node: &'ast TsModuleDecl,
28394        __ast_path: &mut AstNodePath<'r>,
28395    ) {
28396        match self {
28397            swc_visit::Either::Left(visitor) => {
28398                VisitAstPath::visit_ts_module_decl(visitor, node, __ast_path)
28399            }
28400            swc_visit::Either::Right(visitor) => {
28401                VisitAstPath::visit_ts_module_decl(visitor, node, __ast_path)
28402            }
28403        }
28404    }
28405
28406    #[inline]
28407    fn visit_ts_module_name<'ast: 'r, 'r>(
28408        &mut self,
28409        node: &'ast TsModuleName,
28410        __ast_path: &mut AstNodePath<'r>,
28411    ) {
28412        match self {
28413            swc_visit::Either::Left(visitor) => {
28414                VisitAstPath::visit_ts_module_name(visitor, node, __ast_path)
28415            }
28416            swc_visit::Either::Right(visitor) => {
28417                VisitAstPath::visit_ts_module_name(visitor, node, __ast_path)
28418            }
28419        }
28420    }
28421
28422    #[inline]
28423    fn visit_ts_module_ref<'ast: 'r, 'r>(
28424        &mut self,
28425        node: &'ast TsModuleRef,
28426        __ast_path: &mut AstNodePath<'r>,
28427    ) {
28428        match self {
28429            swc_visit::Either::Left(visitor) => {
28430                VisitAstPath::visit_ts_module_ref(visitor, node, __ast_path)
28431            }
28432            swc_visit::Either::Right(visitor) => {
28433                VisitAstPath::visit_ts_module_ref(visitor, node, __ast_path)
28434            }
28435        }
28436    }
28437
28438    #[inline]
28439    fn visit_ts_namespace_body<'ast: 'r, 'r>(
28440        &mut self,
28441        node: &'ast TsNamespaceBody,
28442        __ast_path: &mut AstNodePath<'r>,
28443    ) {
28444        match self {
28445            swc_visit::Either::Left(visitor) => {
28446                VisitAstPath::visit_ts_namespace_body(visitor, node, __ast_path)
28447            }
28448            swc_visit::Either::Right(visitor) => {
28449                VisitAstPath::visit_ts_namespace_body(visitor, node, __ast_path)
28450            }
28451        }
28452    }
28453
28454    #[inline]
28455    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
28456        &mut self,
28457        node: &'ast TsNamespaceDecl,
28458        __ast_path: &mut AstNodePath<'r>,
28459    ) {
28460        match self {
28461            swc_visit::Either::Left(visitor) => {
28462                VisitAstPath::visit_ts_namespace_decl(visitor, node, __ast_path)
28463            }
28464            swc_visit::Either::Right(visitor) => {
28465                VisitAstPath::visit_ts_namespace_decl(visitor, node, __ast_path)
28466            }
28467        }
28468    }
28469
28470    #[inline]
28471    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
28472        &mut self,
28473        node: &'ast TsNamespaceExportDecl,
28474        __ast_path: &mut AstNodePath<'r>,
28475    ) {
28476        match self {
28477            swc_visit::Either::Left(visitor) => {
28478                VisitAstPath::visit_ts_namespace_export_decl(visitor, node, __ast_path)
28479            }
28480            swc_visit::Either::Right(visitor) => {
28481                VisitAstPath::visit_ts_namespace_export_decl(visitor, node, __ast_path)
28482            }
28483        }
28484    }
28485
28486    #[inline]
28487    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
28488        &mut self,
28489        node: &'ast TsNonNullExpr,
28490        __ast_path: &mut AstNodePath<'r>,
28491    ) {
28492        match self {
28493            swc_visit::Either::Left(visitor) => {
28494                VisitAstPath::visit_ts_non_null_expr(visitor, node, __ast_path)
28495            }
28496            swc_visit::Either::Right(visitor) => {
28497                VisitAstPath::visit_ts_non_null_expr(visitor, node, __ast_path)
28498            }
28499        }
28500    }
28501
28502    #[inline]
28503    fn visit_ts_optional_type<'ast: 'r, 'r>(
28504        &mut self,
28505        node: &'ast TsOptionalType,
28506        __ast_path: &mut AstNodePath<'r>,
28507    ) {
28508        match self {
28509            swc_visit::Either::Left(visitor) => {
28510                VisitAstPath::visit_ts_optional_type(visitor, node, __ast_path)
28511            }
28512            swc_visit::Either::Right(visitor) => {
28513                VisitAstPath::visit_ts_optional_type(visitor, node, __ast_path)
28514            }
28515        }
28516    }
28517
28518    #[inline]
28519    fn visit_ts_param_prop<'ast: 'r, 'r>(
28520        &mut self,
28521        node: &'ast TsParamProp,
28522        __ast_path: &mut AstNodePath<'r>,
28523    ) {
28524        match self {
28525            swc_visit::Either::Left(visitor) => {
28526                VisitAstPath::visit_ts_param_prop(visitor, node, __ast_path)
28527            }
28528            swc_visit::Either::Right(visitor) => {
28529                VisitAstPath::visit_ts_param_prop(visitor, node, __ast_path)
28530            }
28531        }
28532    }
28533
28534    #[inline]
28535    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
28536        &mut self,
28537        node: &'ast TsParamPropParam,
28538        __ast_path: &mut AstNodePath<'r>,
28539    ) {
28540        match self {
28541            swc_visit::Either::Left(visitor) => {
28542                VisitAstPath::visit_ts_param_prop_param(visitor, node, __ast_path)
28543            }
28544            swc_visit::Either::Right(visitor) => {
28545                VisitAstPath::visit_ts_param_prop_param(visitor, node, __ast_path)
28546            }
28547        }
28548    }
28549
28550    #[inline]
28551    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
28552        &mut self,
28553        node: &'ast TsParenthesizedType,
28554        __ast_path: &mut AstNodePath<'r>,
28555    ) {
28556        match self {
28557            swc_visit::Either::Left(visitor) => {
28558                VisitAstPath::visit_ts_parenthesized_type(visitor, node, __ast_path)
28559            }
28560            swc_visit::Either::Right(visitor) => {
28561                VisitAstPath::visit_ts_parenthesized_type(visitor, node, __ast_path)
28562            }
28563        }
28564    }
28565
28566    #[inline]
28567    fn visit_ts_property_signature<'ast: 'r, 'r>(
28568        &mut self,
28569        node: &'ast TsPropertySignature,
28570        __ast_path: &mut AstNodePath<'r>,
28571    ) {
28572        match self {
28573            swc_visit::Either::Left(visitor) => {
28574                VisitAstPath::visit_ts_property_signature(visitor, node, __ast_path)
28575            }
28576            swc_visit::Either::Right(visitor) => {
28577                VisitAstPath::visit_ts_property_signature(visitor, node, __ast_path)
28578            }
28579        }
28580    }
28581
28582    #[inline]
28583    fn visit_ts_qualified_name<'ast: 'r, 'r>(
28584        &mut self,
28585        node: &'ast TsQualifiedName,
28586        __ast_path: &mut AstNodePath<'r>,
28587    ) {
28588        match self {
28589            swc_visit::Either::Left(visitor) => {
28590                VisitAstPath::visit_ts_qualified_name(visitor, node, __ast_path)
28591            }
28592            swc_visit::Either::Right(visitor) => {
28593                VisitAstPath::visit_ts_qualified_name(visitor, node, __ast_path)
28594            }
28595        }
28596    }
28597
28598    #[inline]
28599    fn visit_ts_rest_type<'ast: 'r, 'r>(
28600        &mut self,
28601        node: &'ast TsRestType,
28602        __ast_path: &mut AstNodePath<'r>,
28603    ) {
28604        match self {
28605            swc_visit::Either::Left(visitor) => {
28606                VisitAstPath::visit_ts_rest_type(visitor, node, __ast_path)
28607            }
28608            swc_visit::Either::Right(visitor) => {
28609                VisitAstPath::visit_ts_rest_type(visitor, node, __ast_path)
28610            }
28611        }
28612    }
28613
28614    #[inline]
28615    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
28616        &mut self,
28617        node: &'ast TsSatisfiesExpr,
28618        __ast_path: &mut AstNodePath<'r>,
28619    ) {
28620        match self {
28621            swc_visit::Either::Left(visitor) => {
28622                VisitAstPath::visit_ts_satisfies_expr(visitor, node, __ast_path)
28623            }
28624            swc_visit::Either::Right(visitor) => {
28625                VisitAstPath::visit_ts_satisfies_expr(visitor, node, __ast_path)
28626            }
28627        }
28628    }
28629
28630    #[inline]
28631    fn visit_ts_setter_signature<'ast: 'r, 'r>(
28632        &mut self,
28633        node: &'ast TsSetterSignature,
28634        __ast_path: &mut AstNodePath<'r>,
28635    ) {
28636        match self {
28637            swc_visit::Either::Left(visitor) => {
28638                VisitAstPath::visit_ts_setter_signature(visitor, node, __ast_path)
28639            }
28640            swc_visit::Either::Right(visitor) => {
28641                VisitAstPath::visit_ts_setter_signature(visitor, node, __ast_path)
28642            }
28643        }
28644    }
28645
28646    #[inline]
28647    fn visit_ts_this_type<'ast: 'r, 'r>(
28648        &mut self,
28649        node: &'ast TsThisType,
28650        __ast_path: &mut AstNodePath<'r>,
28651    ) {
28652        match self {
28653            swc_visit::Either::Left(visitor) => {
28654                VisitAstPath::visit_ts_this_type(visitor, node, __ast_path)
28655            }
28656            swc_visit::Either::Right(visitor) => {
28657                VisitAstPath::visit_ts_this_type(visitor, node, __ast_path)
28658            }
28659        }
28660    }
28661
28662    #[inline]
28663    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
28664        &mut self,
28665        node: &'ast TsThisTypeOrIdent,
28666        __ast_path: &mut AstNodePath<'r>,
28667    ) {
28668        match self {
28669            swc_visit::Either::Left(visitor) => {
28670                VisitAstPath::visit_ts_this_type_or_ident(visitor, node, __ast_path)
28671            }
28672            swc_visit::Either::Right(visitor) => {
28673                VisitAstPath::visit_ts_this_type_or_ident(visitor, node, __ast_path)
28674            }
28675        }
28676    }
28677
28678    #[inline]
28679    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
28680        &mut self,
28681        node: &'ast TsTplLitType,
28682        __ast_path: &mut AstNodePath<'r>,
28683    ) {
28684        match self {
28685            swc_visit::Either::Left(visitor) => {
28686                VisitAstPath::visit_ts_tpl_lit_type(visitor, node, __ast_path)
28687            }
28688            swc_visit::Either::Right(visitor) => {
28689                VisitAstPath::visit_ts_tpl_lit_type(visitor, node, __ast_path)
28690            }
28691        }
28692    }
28693
28694    #[inline]
28695    fn visit_ts_tuple_element<'ast: 'r, 'r>(
28696        &mut self,
28697        node: &'ast TsTupleElement,
28698        __ast_path: &mut AstNodePath<'r>,
28699    ) {
28700        match self {
28701            swc_visit::Either::Left(visitor) => {
28702                VisitAstPath::visit_ts_tuple_element(visitor, node, __ast_path)
28703            }
28704            swc_visit::Either::Right(visitor) => {
28705                VisitAstPath::visit_ts_tuple_element(visitor, node, __ast_path)
28706            }
28707        }
28708    }
28709
28710    #[inline]
28711    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
28712        &mut self,
28713        node: &'ast [TsTupleElement],
28714        __ast_path: &mut AstNodePath<'r>,
28715    ) {
28716        match self {
28717            swc_visit::Either::Left(visitor) => {
28718                VisitAstPath::visit_ts_tuple_elements(visitor, node, __ast_path)
28719            }
28720            swc_visit::Either::Right(visitor) => {
28721                VisitAstPath::visit_ts_tuple_elements(visitor, node, __ast_path)
28722            }
28723        }
28724    }
28725
28726    #[inline]
28727    fn visit_ts_tuple_type<'ast: 'r, 'r>(
28728        &mut self,
28729        node: &'ast TsTupleType,
28730        __ast_path: &mut AstNodePath<'r>,
28731    ) {
28732        match self {
28733            swc_visit::Either::Left(visitor) => {
28734                VisitAstPath::visit_ts_tuple_type(visitor, node, __ast_path)
28735            }
28736            swc_visit::Either::Right(visitor) => {
28737                VisitAstPath::visit_ts_tuple_type(visitor, node, __ast_path)
28738            }
28739        }
28740    }
28741
28742    #[inline]
28743    fn visit_ts_type<'ast: 'r, 'r>(
28744        &mut self,
28745        node: &'ast TsType,
28746        __ast_path: &mut AstNodePath<'r>,
28747    ) {
28748        match self {
28749            swc_visit::Either::Left(visitor) => {
28750                VisitAstPath::visit_ts_type(visitor, node, __ast_path)
28751            }
28752            swc_visit::Either::Right(visitor) => {
28753                VisitAstPath::visit_ts_type(visitor, node, __ast_path)
28754            }
28755        }
28756    }
28757
28758    #[inline]
28759    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
28760        &mut self,
28761        node: &'ast TsTypeAliasDecl,
28762        __ast_path: &mut AstNodePath<'r>,
28763    ) {
28764        match self {
28765            swc_visit::Either::Left(visitor) => {
28766                VisitAstPath::visit_ts_type_alias_decl(visitor, node, __ast_path)
28767            }
28768            swc_visit::Either::Right(visitor) => {
28769                VisitAstPath::visit_ts_type_alias_decl(visitor, node, __ast_path)
28770            }
28771        }
28772    }
28773
28774    #[inline]
28775    fn visit_ts_type_ann<'ast: 'r, 'r>(
28776        &mut self,
28777        node: &'ast TsTypeAnn,
28778        __ast_path: &mut AstNodePath<'r>,
28779    ) {
28780        match self {
28781            swc_visit::Either::Left(visitor) => {
28782                VisitAstPath::visit_ts_type_ann(visitor, node, __ast_path)
28783            }
28784            swc_visit::Either::Right(visitor) => {
28785                VisitAstPath::visit_ts_type_ann(visitor, node, __ast_path)
28786            }
28787        }
28788    }
28789
28790    #[inline]
28791    fn visit_ts_type_assertion<'ast: 'r, 'r>(
28792        &mut self,
28793        node: &'ast TsTypeAssertion,
28794        __ast_path: &mut AstNodePath<'r>,
28795    ) {
28796        match self {
28797            swc_visit::Either::Left(visitor) => {
28798                VisitAstPath::visit_ts_type_assertion(visitor, node, __ast_path)
28799            }
28800            swc_visit::Either::Right(visitor) => {
28801                VisitAstPath::visit_ts_type_assertion(visitor, node, __ast_path)
28802            }
28803        }
28804    }
28805
28806    #[inline]
28807    fn visit_ts_type_element<'ast: 'r, 'r>(
28808        &mut self,
28809        node: &'ast TsTypeElement,
28810        __ast_path: &mut AstNodePath<'r>,
28811    ) {
28812        match self {
28813            swc_visit::Either::Left(visitor) => {
28814                VisitAstPath::visit_ts_type_element(visitor, node, __ast_path)
28815            }
28816            swc_visit::Either::Right(visitor) => {
28817                VisitAstPath::visit_ts_type_element(visitor, node, __ast_path)
28818            }
28819        }
28820    }
28821
28822    #[inline]
28823    fn visit_ts_type_elements<'ast: 'r, 'r>(
28824        &mut self,
28825        node: &'ast [TsTypeElement],
28826        __ast_path: &mut AstNodePath<'r>,
28827    ) {
28828        match self {
28829            swc_visit::Either::Left(visitor) => {
28830                VisitAstPath::visit_ts_type_elements(visitor, node, __ast_path)
28831            }
28832            swc_visit::Either::Right(visitor) => {
28833                VisitAstPath::visit_ts_type_elements(visitor, node, __ast_path)
28834            }
28835        }
28836    }
28837
28838    #[inline]
28839    fn visit_ts_type_lit<'ast: 'r, 'r>(
28840        &mut self,
28841        node: &'ast TsTypeLit,
28842        __ast_path: &mut AstNodePath<'r>,
28843    ) {
28844        match self {
28845            swc_visit::Either::Left(visitor) => {
28846                VisitAstPath::visit_ts_type_lit(visitor, node, __ast_path)
28847            }
28848            swc_visit::Either::Right(visitor) => {
28849                VisitAstPath::visit_ts_type_lit(visitor, node, __ast_path)
28850            }
28851        }
28852    }
28853
28854    #[inline]
28855    fn visit_ts_type_operator<'ast: 'r, 'r>(
28856        &mut self,
28857        node: &'ast TsTypeOperator,
28858        __ast_path: &mut AstNodePath<'r>,
28859    ) {
28860        match self {
28861            swc_visit::Either::Left(visitor) => {
28862                VisitAstPath::visit_ts_type_operator(visitor, node, __ast_path)
28863            }
28864            swc_visit::Either::Right(visitor) => {
28865                VisitAstPath::visit_ts_type_operator(visitor, node, __ast_path)
28866            }
28867        }
28868    }
28869
28870    #[inline]
28871    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
28872        &mut self,
28873        node: &'ast TsTypeOperatorOp,
28874        __ast_path: &mut AstNodePath<'r>,
28875    ) {
28876        match self {
28877            swc_visit::Either::Left(visitor) => {
28878                VisitAstPath::visit_ts_type_operator_op(visitor, node, __ast_path)
28879            }
28880            swc_visit::Either::Right(visitor) => {
28881                VisitAstPath::visit_ts_type_operator_op(visitor, node, __ast_path)
28882            }
28883        }
28884    }
28885
28886    #[inline]
28887    fn visit_ts_type_param<'ast: 'r, 'r>(
28888        &mut self,
28889        node: &'ast TsTypeParam,
28890        __ast_path: &mut AstNodePath<'r>,
28891    ) {
28892        match self {
28893            swc_visit::Either::Left(visitor) => {
28894                VisitAstPath::visit_ts_type_param(visitor, node, __ast_path)
28895            }
28896            swc_visit::Either::Right(visitor) => {
28897                VisitAstPath::visit_ts_type_param(visitor, node, __ast_path)
28898            }
28899        }
28900    }
28901
28902    #[inline]
28903    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
28904        &mut self,
28905        node: &'ast TsTypeParamDecl,
28906        __ast_path: &mut AstNodePath<'r>,
28907    ) {
28908        match self {
28909            swc_visit::Either::Left(visitor) => {
28910                VisitAstPath::visit_ts_type_param_decl(visitor, node, __ast_path)
28911            }
28912            swc_visit::Either::Right(visitor) => {
28913                VisitAstPath::visit_ts_type_param_decl(visitor, node, __ast_path)
28914            }
28915        }
28916    }
28917
28918    #[inline]
28919    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
28920        &mut self,
28921        node: &'ast TsTypeParamInstantiation,
28922        __ast_path: &mut AstNodePath<'r>,
28923    ) {
28924        match self {
28925            swc_visit::Either::Left(visitor) => {
28926                VisitAstPath::visit_ts_type_param_instantiation(visitor, node, __ast_path)
28927            }
28928            swc_visit::Either::Right(visitor) => {
28929                VisitAstPath::visit_ts_type_param_instantiation(visitor, node, __ast_path)
28930            }
28931        }
28932    }
28933
28934    #[inline]
28935    fn visit_ts_type_params<'ast: 'r, 'r>(
28936        &mut self,
28937        node: &'ast [TsTypeParam],
28938        __ast_path: &mut AstNodePath<'r>,
28939    ) {
28940        match self {
28941            swc_visit::Either::Left(visitor) => {
28942                VisitAstPath::visit_ts_type_params(visitor, node, __ast_path)
28943            }
28944            swc_visit::Either::Right(visitor) => {
28945                VisitAstPath::visit_ts_type_params(visitor, node, __ast_path)
28946            }
28947        }
28948    }
28949
28950    #[inline]
28951    fn visit_ts_type_predicate<'ast: 'r, 'r>(
28952        &mut self,
28953        node: &'ast TsTypePredicate,
28954        __ast_path: &mut AstNodePath<'r>,
28955    ) {
28956        match self {
28957            swc_visit::Either::Left(visitor) => {
28958                VisitAstPath::visit_ts_type_predicate(visitor, node, __ast_path)
28959            }
28960            swc_visit::Either::Right(visitor) => {
28961                VisitAstPath::visit_ts_type_predicate(visitor, node, __ast_path)
28962            }
28963        }
28964    }
28965
28966    #[inline]
28967    fn visit_ts_type_query<'ast: 'r, 'r>(
28968        &mut self,
28969        node: &'ast TsTypeQuery,
28970        __ast_path: &mut AstNodePath<'r>,
28971    ) {
28972        match self {
28973            swc_visit::Either::Left(visitor) => {
28974                VisitAstPath::visit_ts_type_query(visitor, node, __ast_path)
28975            }
28976            swc_visit::Either::Right(visitor) => {
28977                VisitAstPath::visit_ts_type_query(visitor, node, __ast_path)
28978            }
28979        }
28980    }
28981
28982    #[inline]
28983    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
28984        &mut self,
28985        node: &'ast TsTypeQueryExpr,
28986        __ast_path: &mut AstNodePath<'r>,
28987    ) {
28988        match self {
28989            swc_visit::Either::Left(visitor) => {
28990                VisitAstPath::visit_ts_type_query_expr(visitor, node, __ast_path)
28991            }
28992            swc_visit::Either::Right(visitor) => {
28993                VisitAstPath::visit_ts_type_query_expr(visitor, node, __ast_path)
28994            }
28995        }
28996    }
28997
28998    #[inline]
28999    fn visit_ts_type_ref<'ast: 'r, 'r>(
29000        &mut self,
29001        node: &'ast TsTypeRef,
29002        __ast_path: &mut AstNodePath<'r>,
29003    ) {
29004        match self {
29005            swc_visit::Either::Left(visitor) => {
29006                VisitAstPath::visit_ts_type_ref(visitor, node, __ast_path)
29007            }
29008            swc_visit::Either::Right(visitor) => {
29009                VisitAstPath::visit_ts_type_ref(visitor, node, __ast_path)
29010            }
29011        }
29012    }
29013
29014    #[inline]
29015    fn visit_ts_types<'ast: 'r, 'r>(
29016        &mut self,
29017        node: &'ast [Box<TsType>],
29018        __ast_path: &mut AstNodePath<'r>,
29019    ) {
29020        match self {
29021            swc_visit::Either::Left(visitor) => {
29022                VisitAstPath::visit_ts_types(visitor, node, __ast_path)
29023            }
29024            swc_visit::Either::Right(visitor) => {
29025                VisitAstPath::visit_ts_types(visitor, node, __ast_path)
29026            }
29027        }
29028    }
29029
29030    #[inline]
29031    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
29032        &mut self,
29033        node: &'ast TsUnionOrIntersectionType,
29034        __ast_path: &mut AstNodePath<'r>,
29035    ) {
29036        match self {
29037            swc_visit::Either::Left(visitor) => {
29038                VisitAstPath::visit_ts_union_or_intersection_type(visitor, node, __ast_path)
29039            }
29040            swc_visit::Either::Right(visitor) => {
29041                VisitAstPath::visit_ts_union_or_intersection_type(visitor, node, __ast_path)
29042            }
29043        }
29044    }
29045
29046    #[inline]
29047    fn visit_ts_union_type<'ast: 'r, 'r>(
29048        &mut self,
29049        node: &'ast TsUnionType,
29050        __ast_path: &mut AstNodePath<'r>,
29051    ) {
29052        match self {
29053            swc_visit::Either::Left(visitor) => {
29054                VisitAstPath::visit_ts_union_type(visitor, node, __ast_path)
29055            }
29056            swc_visit::Either::Right(visitor) => {
29057                VisitAstPath::visit_ts_union_type(visitor, node, __ast_path)
29058            }
29059        }
29060    }
29061
29062    #[inline]
29063    fn visit_unary_expr<'ast: 'r, 'r>(
29064        &mut self,
29065        node: &'ast UnaryExpr,
29066        __ast_path: &mut AstNodePath<'r>,
29067    ) {
29068        match self {
29069            swc_visit::Either::Left(visitor) => {
29070                VisitAstPath::visit_unary_expr(visitor, node, __ast_path)
29071            }
29072            swc_visit::Either::Right(visitor) => {
29073                VisitAstPath::visit_unary_expr(visitor, node, __ast_path)
29074            }
29075        }
29076    }
29077
29078    #[inline]
29079    fn visit_unary_op<'ast: 'r, 'r>(
29080        &mut self,
29081        node: &'ast UnaryOp,
29082        __ast_path: &mut AstNodePath<'r>,
29083    ) {
29084        match self {
29085            swc_visit::Either::Left(visitor) => {
29086                VisitAstPath::visit_unary_op(visitor, node, __ast_path)
29087            }
29088            swc_visit::Either::Right(visitor) => {
29089                VisitAstPath::visit_unary_op(visitor, node, __ast_path)
29090            }
29091        }
29092    }
29093
29094    #[inline]
29095    fn visit_update_expr<'ast: 'r, 'r>(
29096        &mut self,
29097        node: &'ast UpdateExpr,
29098        __ast_path: &mut AstNodePath<'r>,
29099    ) {
29100        match self {
29101            swc_visit::Either::Left(visitor) => {
29102                VisitAstPath::visit_update_expr(visitor, node, __ast_path)
29103            }
29104            swc_visit::Either::Right(visitor) => {
29105                VisitAstPath::visit_update_expr(visitor, node, __ast_path)
29106            }
29107        }
29108    }
29109
29110    #[inline]
29111    fn visit_update_op<'ast: 'r, 'r>(
29112        &mut self,
29113        node: &'ast UpdateOp,
29114        __ast_path: &mut AstNodePath<'r>,
29115    ) {
29116        match self {
29117            swc_visit::Either::Left(visitor) => {
29118                VisitAstPath::visit_update_op(visitor, node, __ast_path)
29119            }
29120            swc_visit::Either::Right(visitor) => {
29121                VisitAstPath::visit_update_op(visitor, node, __ast_path)
29122            }
29123        }
29124    }
29125
29126    #[inline]
29127    fn visit_using_decl<'ast: 'r, 'r>(
29128        &mut self,
29129        node: &'ast UsingDecl,
29130        __ast_path: &mut AstNodePath<'r>,
29131    ) {
29132        match self {
29133            swc_visit::Either::Left(visitor) => {
29134                VisitAstPath::visit_using_decl(visitor, node, __ast_path)
29135            }
29136            swc_visit::Either::Right(visitor) => {
29137                VisitAstPath::visit_using_decl(visitor, node, __ast_path)
29138            }
29139        }
29140    }
29141
29142    #[inline]
29143    fn visit_var_decl<'ast: 'r, 'r>(
29144        &mut self,
29145        node: &'ast VarDecl,
29146        __ast_path: &mut AstNodePath<'r>,
29147    ) {
29148        match self {
29149            swc_visit::Either::Left(visitor) => {
29150                VisitAstPath::visit_var_decl(visitor, node, __ast_path)
29151            }
29152            swc_visit::Either::Right(visitor) => {
29153                VisitAstPath::visit_var_decl(visitor, node, __ast_path)
29154            }
29155        }
29156    }
29157
29158    #[inline]
29159    fn visit_var_decl_kind<'ast: 'r, 'r>(
29160        &mut self,
29161        node: &'ast VarDeclKind,
29162        __ast_path: &mut AstNodePath<'r>,
29163    ) {
29164        match self {
29165            swc_visit::Either::Left(visitor) => {
29166                VisitAstPath::visit_var_decl_kind(visitor, node, __ast_path)
29167            }
29168            swc_visit::Either::Right(visitor) => {
29169                VisitAstPath::visit_var_decl_kind(visitor, node, __ast_path)
29170            }
29171        }
29172    }
29173
29174    #[inline]
29175    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
29176        &mut self,
29177        node: &'ast VarDeclOrExpr,
29178        __ast_path: &mut AstNodePath<'r>,
29179    ) {
29180        match self {
29181            swc_visit::Either::Left(visitor) => {
29182                VisitAstPath::visit_var_decl_or_expr(visitor, node, __ast_path)
29183            }
29184            swc_visit::Either::Right(visitor) => {
29185                VisitAstPath::visit_var_decl_or_expr(visitor, node, __ast_path)
29186            }
29187        }
29188    }
29189
29190    #[inline]
29191    fn visit_var_declarator<'ast: 'r, 'r>(
29192        &mut self,
29193        node: &'ast VarDeclarator,
29194        __ast_path: &mut AstNodePath<'r>,
29195    ) {
29196        match self {
29197            swc_visit::Either::Left(visitor) => {
29198                VisitAstPath::visit_var_declarator(visitor, node, __ast_path)
29199            }
29200            swc_visit::Either::Right(visitor) => {
29201                VisitAstPath::visit_var_declarator(visitor, node, __ast_path)
29202            }
29203        }
29204    }
29205
29206    #[inline]
29207    fn visit_var_declarators<'ast: 'r, 'r>(
29208        &mut self,
29209        node: &'ast [VarDeclarator],
29210        __ast_path: &mut AstNodePath<'r>,
29211    ) {
29212        match self {
29213            swc_visit::Either::Left(visitor) => {
29214                VisitAstPath::visit_var_declarators(visitor, node, __ast_path)
29215            }
29216            swc_visit::Either::Right(visitor) => {
29217                VisitAstPath::visit_var_declarators(visitor, node, __ast_path)
29218            }
29219        }
29220    }
29221
29222    #[inline]
29223    fn visit_while_stmt<'ast: 'r, 'r>(
29224        &mut self,
29225        node: &'ast WhileStmt,
29226        __ast_path: &mut AstNodePath<'r>,
29227    ) {
29228        match self {
29229            swc_visit::Either::Left(visitor) => {
29230                VisitAstPath::visit_while_stmt(visitor, node, __ast_path)
29231            }
29232            swc_visit::Either::Right(visitor) => {
29233                VisitAstPath::visit_while_stmt(visitor, node, __ast_path)
29234            }
29235        }
29236    }
29237
29238    #[inline]
29239    fn visit_with_stmt<'ast: 'r, 'r>(
29240        &mut self,
29241        node: &'ast WithStmt,
29242        __ast_path: &mut AstNodePath<'r>,
29243    ) {
29244        match self {
29245            swc_visit::Either::Left(visitor) => {
29246                VisitAstPath::visit_with_stmt(visitor, node, __ast_path)
29247            }
29248            swc_visit::Either::Right(visitor) => {
29249                VisitAstPath::visit_with_stmt(visitor, node, __ast_path)
29250            }
29251        }
29252    }
29253
29254    #[inline]
29255    fn visit_yield_expr<'ast: 'r, 'r>(
29256        &mut self,
29257        node: &'ast YieldExpr,
29258        __ast_path: &mut AstNodePath<'r>,
29259    ) {
29260        match self {
29261            swc_visit::Either::Left(visitor) => {
29262                VisitAstPath::visit_yield_expr(visitor, node, __ast_path)
29263            }
29264            swc_visit::Either::Right(visitor) => {
29265                VisitAstPath::visit_yield_expr(visitor, node, __ast_path)
29266            }
29267        }
29268    }
29269}
29270#[cfg(any(docsrs, feature = "path"))]
29271#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
29272impl<V> VisitAstPath for ::swc_visit::Optional<V>
29273where
29274    V: VisitAstPath,
29275{
29276    #[inline]
29277    fn visit_accessibility<'ast: 'r, 'r>(
29278        &mut self,
29279        node: &'ast Accessibility,
29280        __ast_path: &mut AstNodePath<'r>,
29281    ) {
29282        if self.enabled {
29283            <V as VisitAstPath>::visit_accessibility(&mut self.visitor, node, __ast_path)
29284        } else {
29285        }
29286    }
29287
29288    #[inline]
29289    fn visit_array_lit<'ast: 'r, 'r>(
29290        &mut self,
29291        node: &'ast ArrayLit,
29292        __ast_path: &mut AstNodePath<'r>,
29293    ) {
29294        if self.enabled {
29295            <V as VisitAstPath>::visit_array_lit(&mut self.visitor, node, __ast_path)
29296        } else {
29297        }
29298    }
29299
29300    #[inline]
29301    fn visit_array_pat<'ast: 'r, 'r>(
29302        &mut self,
29303        node: &'ast ArrayPat,
29304        __ast_path: &mut AstNodePath<'r>,
29305    ) {
29306        if self.enabled {
29307            <V as VisitAstPath>::visit_array_pat(&mut self.visitor, node, __ast_path)
29308        } else {
29309        }
29310    }
29311
29312    #[inline]
29313    fn visit_arrow_expr<'ast: 'r, 'r>(
29314        &mut self,
29315        node: &'ast ArrowExpr,
29316        __ast_path: &mut AstNodePath<'r>,
29317    ) {
29318        if self.enabled {
29319            <V as VisitAstPath>::visit_arrow_expr(&mut self.visitor, node, __ast_path)
29320        } else {
29321        }
29322    }
29323
29324    #[inline]
29325    fn visit_assign_expr<'ast: 'r, 'r>(
29326        &mut self,
29327        node: &'ast AssignExpr,
29328        __ast_path: &mut AstNodePath<'r>,
29329    ) {
29330        if self.enabled {
29331            <V as VisitAstPath>::visit_assign_expr(&mut self.visitor, node, __ast_path)
29332        } else {
29333        }
29334    }
29335
29336    #[inline]
29337    fn visit_assign_op<'ast: 'r, 'r>(
29338        &mut self,
29339        node: &'ast AssignOp,
29340        __ast_path: &mut AstNodePath<'r>,
29341    ) {
29342        if self.enabled {
29343            <V as VisitAstPath>::visit_assign_op(&mut self.visitor, node, __ast_path)
29344        } else {
29345        }
29346    }
29347
29348    #[inline]
29349    fn visit_assign_pat<'ast: 'r, 'r>(
29350        &mut self,
29351        node: &'ast AssignPat,
29352        __ast_path: &mut AstNodePath<'r>,
29353    ) {
29354        if self.enabled {
29355            <V as VisitAstPath>::visit_assign_pat(&mut self.visitor, node, __ast_path)
29356        } else {
29357        }
29358    }
29359
29360    #[inline]
29361    fn visit_assign_pat_prop<'ast: 'r, 'r>(
29362        &mut self,
29363        node: &'ast AssignPatProp,
29364        __ast_path: &mut AstNodePath<'r>,
29365    ) {
29366        if self.enabled {
29367            <V as VisitAstPath>::visit_assign_pat_prop(&mut self.visitor, node, __ast_path)
29368        } else {
29369        }
29370    }
29371
29372    #[inline]
29373    fn visit_assign_prop<'ast: 'r, 'r>(
29374        &mut self,
29375        node: &'ast AssignProp,
29376        __ast_path: &mut AstNodePath<'r>,
29377    ) {
29378        if self.enabled {
29379            <V as VisitAstPath>::visit_assign_prop(&mut self.visitor, node, __ast_path)
29380        } else {
29381        }
29382    }
29383
29384    #[inline]
29385    fn visit_assign_target<'ast: 'r, 'r>(
29386        &mut self,
29387        node: &'ast AssignTarget,
29388        __ast_path: &mut AstNodePath<'r>,
29389    ) {
29390        if self.enabled {
29391            <V as VisitAstPath>::visit_assign_target(&mut self.visitor, node, __ast_path)
29392        } else {
29393        }
29394    }
29395
29396    #[inline]
29397    fn visit_assign_target_pat<'ast: 'r, 'r>(
29398        &mut self,
29399        node: &'ast AssignTargetPat,
29400        __ast_path: &mut AstNodePath<'r>,
29401    ) {
29402        if self.enabled {
29403            <V as VisitAstPath>::visit_assign_target_pat(&mut self.visitor, node, __ast_path)
29404        } else {
29405        }
29406    }
29407
29408    #[inline]
29409    fn visit_atom<'ast: 'r, 'r>(
29410        &mut self,
29411        node: &'ast swc_atoms::Atom,
29412        __ast_path: &mut AstNodePath<'r>,
29413    ) {
29414        if self.enabled {
29415            <V as VisitAstPath>::visit_atom(&mut self.visitor, node, __ast_path)
29416        } else {
29417        }
29418    }
29419
29420    #[inline]
29421    fn visit_auto_accessor<'ast: 'r, 'r>(
29422        &mut self,
29423        node: &'ast AutoAccessor,
29424        __ast_path: &mut AstNodePath<'r>,
29425    ) {
29426        if self.enabled {
29427            <V as VisitAstPath>::visit_auto_accessor(&mut self.visitor, node, __ast_path)
29428        } else {
29429        }
29430    }
29431
29432    #[inline]
29433    fn visit_await_expr<'ast: 'r, 'r>(
29434        &mut self,
29435        node: &'ast AwaitExpr,
29436        __ast_path: &mut AstNodePath<'r>,
29437    ) {
29438        if self.enabled {
29439            <V as VisitAstPath>::visit_await_expr(&mut self.visitor, node, __ast_path)
29440        } else {
29441        }
29442    }
29443
29444    #[inline]
29445    fn visit_big_int<'ast: 'r, 'r>(
29446        &mut self,
29447        node: &'ast BigInt,
29448        __ast_path: &mut AstNodePath<'r>,
29449    ) {
29450        if self.enabled {
29451            <V as VisitAstPath>::visit_big_int(&mut self.visitor, node, __ast_path)
29452        } else {
29453        }
29454    }
29455
29456    #[inline]
29457    fn visit_big_int_value<'ast: 'r, 'r>(
29458        &mut self,
29459        node: &'ast BigIntValue,
29460        __ast_path: &mut AstNodePath<'r>,
29461    ) {
29462        if self.enabled {
29463            <V as VisitAstPath>::visit_big_int_value(&mut self.visitor, node, __ast_path)
29464        } else {
29465        }
29466    }
29467
29468    #[inline]
29469    fn visit_bin_expr<'ast: 'r, 'r>(
29470        &mut self,
29471        node: &'ast BinExpr,
29472        __ast_path: &mut AstNodePath<'r>,
29473    ) {
29474        if self.enabled {
29475            <V as VisitAstPath>::visit_bin_expr(&mut self.visitor, node, __ast_path)
29476        } else {
29477        }
29478    }
29479
29480    #[inline]
29481    fn visit_binary_op<'ast: 'r, 'r>(
29482        &mut self,
29483        node: &'ast BinaryOp,
29484        __ast_path: &mut AstNodePath<'r>,
29485    ) {
29486        if self.enabled {
29487            <V as VisitAstPath>::visit_binary_op(&mut self.visitor, node, __ast_path)
29488        } else {
29489        }
29490    }
29491
29492    #[inline]
29493    fn visit_binding_ident<'ast: 'r, 'r>(
29494        &mut self,
29495        node: &'ast BindingIdent,
29496        __ast_path: &mut AstNodePath<'r>,
29497    ) {
29498        if self.enabled {
29499            <V as VisitAstPath>::visit_binding_ident(&mut self.visitor, node, __ast_path)
29500        } else {
29501        }
29502    }
29503
29504    #[inline]
29505    fn visit_block_stmt<'ast: 'r, 'r>(
29506        &mut self,
29507        node: &'ast BlockStmt,
29508        __ast_path: &mut AstNodePath<'r>,
29509    ) {
29510        if self.enabled {
29511            <V as VisitAstPath>::visit_block_stmt(&mut self.visitor, node, __ast_path)
29512        } else {
29513        }
29514    }
29515
29516    #[inline]
29517    fn visit_block_stmt_or_expr<'ast: 'r, 'r>(
29518        &mut self,
29519        node: &'ast BlockStmtOrExpr,
29520        __ast_path: &mut AstNodePath<'r>,
29521    ) {
29522        if self.enabled {
29523            <V as VisitAstPath>::visit_block_stmt_or_expr(&mut self.visitor, node, __ast_path)
29524        } else {
29525        }
29526    }
29527
29528    #[inline]
29529    fn visit_bool<'ast: 'r, 'r>(&mut self, node: &'ast Bool, __ast_path: &mut AstNodePath<'r>) {
29530        if self.enabled {
29531            <V as VisitAstPath>::visit_bool(&mut self.visitor, node, __ast_path)
29532        } else {
29533        }
29534    }
29535
29536    #[inline]
29537    fn visit_break_stmt<'ast: 'r, 'r>(
29538        &mut self,
29539        node: &'ast BreakStmt,
29540        __ast_path: &mut AstNodePath<'r>,
29541    ) {
29542        if self.enabled {
29543            <V as VisitAstPath>::visit_break_stmt(&mut self.visitor, node, __ast_path)
29544        } else {
29545        }
29546    }
29547
29548    #[inline]
29549    fn visit_call_expr<'ast: 'r, 'r>(
29550        &mut self,
29551        node: &'ast CallExpr,
29552        __ast_path: &mut AstNodePath<'r>,
29553    ) {
29554        if self.enabled {
29555            <V as VisitAstPath>::visit_call_expr(&mut self.visitor, node, __ast_path)
29556        } else {
29557        }
29558    }
29559
29560    #[inline]
29561    fn visit_callee<'ast: 'r, 'r>(&mut self, node: &'ast Callee, __ast_path: &mut AstNodePath<'r>) {
29562        if self.enabled {
29563            <V as VisitAstPath>::visit_callee(&mut self.visitor, node, __ast_path)
29564        } else {
29565        }
29566    }
29567
29568    #[inline]
29569    fn visit_catch_clause<'ast: 'r, 'r>(
29570        &mut self,
29571        node: &'ast CatchClause,
29572        __ast_path: &mut AstNodePath<'r>,
29573    ) {
29574        if self.enabled {
29575            <V as VisitAstPath>::visit_catch_clause(&mut self.visitor, node, __ast_path)
29576        } else {
29577        }
29578    }
29579
29580    #[inline]
29581    fn visit_class<'ast: 'r, 'r>(&mut self, node: &'ast Class, __ast_path: &mut AstNodePath<'r>) {
29582        if self.enabled {
29583            <V as VisitAstPath>::visit_class(&mut self.visitor, node, __ast_path)
29584        } else {
29585        }
29586    }
29587
29588    #[inline]
29589    fn visit_class_decl<'ast: 'r, 'r>(
29590        &mut self,
29591        node: &'ast ClassDecl,
29592        __ast_path: &mut AstNodePath<'r>,
29593    ) {
29594        if self.enabled {
29595            <V as VisitAstPath>::visit_class_decl(&mut self.visitor, node, __ast_path)
29596        } else {
29597        }
29598    }
29599
29600    #[inline]
29601    fn visit_class_expr<'ast: 'r, 'r>(
29602        &mut self,
29603        node: &'ast ClassExpr,
29604        __ast_path: &mut AstNodePath<'r>,
29605    ) {
29606        if self.enabled {
29607            <V as VisitAstPath>::visit_class_expr(&mut self.visitor, node, __ast_path)
29608        } else {
29609        }
29610    }
29611
29612    #[inline]
29613    fn visit_class_member<'ast: 'r, 'r>(
29614        &mut self,
29615        node: &'ast ClassMember,
29616        __ast_path: &mut AstNodePath<'r>,
29617    ) {
29618        if self.enabled {
29619            <V as VisitAstPath>::visit_class_member(&mut self.visitor, node, __ast_path)
29620        } else {
29621        }
29622    }
29623
29624    #[inline]
29625    fn visit_class_members<'ast: 'r, 'r>(
29626        &mut self,
29627        node: &'ast [ClassMember],
29628        __ast_path: &mut AstNodePath<'r>,
29629    ) {
29630        if self.enabled {
29631            <V as VisitAstPath>::visit_class_members(&mut self.visitor, node, __ast_path)
29632        } else {
29633        }
29634    }
29635
29636    #[inline]
29637    fn visit_class_method<'ast: 'r, 'r>(
29638        &mut self,
29639        node: &'ast ClassMethod,
29640        __ast_path: &mut AstNodePath<'r>,
29641    ) {
29642        if self.enabled {
29643            <V as VisitAstPath>::visit_class_method(&mut self.visitor, node, __ast_path)
29644        } else {
29645        }
29646    }
29647
29648    #[inline]
29649    fn visit_class_prop<'ast: 'r, 'r>(
29650        &mut self,
29651        node: &'ast ClassProp,
29652        __ast_path: &mut AstNodePath<'r>,
29653    ) {
29654        if self.enabled {
29655            <V as VisitAstPath>::visit_class_prop(&mut self.visitor, node, __ast_path)
29656        } else {
29657        }
29658    }
29659
29660    #[inline]
29661    fn visit_computed_prop_name<'ast: 'r, 'r>(
29662        &mut self,
29663        node: &'ast ComputedPropName,
29664        __ast_path: &mut AstNodePath<'r>,
29665    ) {
29666        if self.enabled {
29667            <V as VisitAstPath>::visit_computed_prop_name(&mut self.visitor, node, __ast_path)
29668        } else {
29669        }
29670    }
29671
29672    #[inline]
29673    fn visit_cond_expr<'ast: 'r, 'r>(
29674        &mut self,
29675        node: &'ast CondExpr,
29676        __ast_path: &mut AstNodePath<'r>,
29677    ) {
29678        if self.enabled {
29679            <V as VisitAstPath>::visit_cond_expr(&mut self.visitor, node, __ast_path)
29680        } else {
29681        }
29682    }
29683
29684    #[inline]
29685    fn visit_constructor<'ast: 'r, 'r>(
29686        &mut self,
29687        node: &'ast Constructor,
29688        __ast_path: &mut AstNodePath<'r>,
29689    ) {
29690        if self.enabled {
29691            <V as VisitAstPath>::visit_constructor(&mut self.visitor, node, __ast_path)
29692        } else {
29693        }
29694    }
29695
29696    #[inline]
29697    fn visit_continue_stmt<'ast: 'r, 'r>(
29698        &mut self,
29699        node: &'ast ContinueStmt,
29700        __ast_path: &mut AstNodePath<'r>,
29701    ) {
29702        if self.enabled {
29703            <V as VisitAstPath>::visit_continue_stmt(&mut self.visitor, node, __ast_path)
29704        } else {
29705        }
29706    }
29707
29708    #[inline]
29709    fn visit_debugger_stmt<'ast: 'r, 'r>(
29710        &mut self,
29711        node: &'ast DebuggerStmt,
29712        __ast_path: &mut AstNodePath<'r>,
29713    ) {
29714        if self.enabled {
29715            <V as VisitAstPath>::visit_debugger_stmt(&mut self.visitor, node, __ast_path)
29716        } else {
29717        }
29718    }
29719
29720    #[inline]
29721    fn visit_decl<'ast: 'r, 'r>(&mut self, node: &'ast Decl, __ast_path: &mut AstNodePath<'r>) {
29722        if self.enabled {
29723            <V as VisitAstPath>::visit_decl(&mut self.visitor, node, __ast_path)
29724        } else {
29725        }
29726    }
29727
29728    #[inline]
29729    fn visit_decorator<'ast: 'r, 'r>(
29730        &mut self,
29731        node: &'ast Decorator,
29732        __ast_path: &mut AstNodePath<'r>,
29733    ) {
29734        if self.enabled {
29735            <V as VisitAstPath>::visit_decorator(&mut self.visitor, node, __ast_path)
29736        } else {
29737        }
29738    }
29739
29740    #[inline]
29741    fn visit_decorators<'ast: 'r, 'r>(
29742        &mut self,
29743        node: &'ast [Decorator],
29744        __ast_path: &mut AstNodePath<'r>,
29745    ) {
29746        if self.enabled {
29747            <V as VisitAstPath>::visit_decorators(&mut self.visitor, node, __ast_path)
29748        } else {
29749        }
29750    }
29751
29752    #[inline]
29753    fn visit_default_decl<'ast: 'r, 'r>(
29754        &mut self,
29755        node: &'ast DefaultDecl,
29756        __ast_path: &mut AstNodePath<'r>,
29757    ) {
29758        if self.enabled {
29759            <V as VisitAstPath>::visit_default_decl(&mut self.visitor, node, __ast_path)
29760        } else {
29761        }
29762    }
29763
29764    #[inline]
29765    fn visit_do_while_stmt<'ast: 'r, 'r>(
29766        &mut self,
29767        node: &'ast DoWhileStmt,
29768        __ast_path: &mut AstNodePath<'r>,
29769    ) {
29770        if self.enabled {
29771            <V as VisitAstPath>::visit_do_while_stmt(&mut self.visitor, node, __ast_path)
29772        } else {
29773        }
29774    }
29775
29776    #[inline]
29777    fn visit_empty_stmt<'ast: 'r, 'r>(
29778        &mut self,
29779        node: &'ast EmptyStmt,
29780        __ast_path: &mut AstNodePath<'r>,
29781    ) {
29782        if self.enabled {
29783            <V as VisitAstPath>::visit_empty_stmt(&mut self.visitor, node, __ast_path)
29784        } else {
29785        }
29786    }
29787
29788    #[inline]
29789    fn visit_export_all<'ast: 'r, 'r>(
29790        &mut self,
29791        node: &'ast ExportAll,
29792        __ast_path: &mut AstNodePath<'r>,
29793    ) {
29794        if self.enabled {
29795            <V as VisitAstPath>::visit_export_all(&mut self.visitor, node, __ast_path)
29796        } else {
29797        }
29798    }
29799
29800    #[inline]
29801    fn visit_export_decl<'ast: 'r, 'r>(
29802        &mut self,
29803        node: &'ast ExportDecl,
29804        __ast_path: &mut AstNodePath<'r>,
29805    ) {
29806        if self.enabled {
29807            <V as VisitAstPath>::visit_export_decl(&mut self.visitor, node, __ast_path)
29808        } else {
29809        }
29810    }
29811
29812    #[inline]
29813    fn visit_export_default_decl<'ast: 'r, 'r>(
29814        &mut self,
29815        node: &'ast ExportDefaultDecl,
29816        __ast_path: &mut AstNodePath<'r>,
29817    ) {
29818        if self.enabled {
29819            <V as VisitAstPath>::visit_export_default_decl(&mut self.visitor, node, __ast_path)
29820        } else {
29821        }
29822    }
29823
29824    #[inline]
29825    fn visit_export_default_expr<'ast: 'r, 'r>(
29826        &mut self,
29827        node: &'ast ExportDefaultExpr,
29828        __ast_path: &mut AstNodePath<'r>,
29829    ) {
29830        if self.enabled {
29831            <V as VisitAstPath>::visit_export_default_expr(&mut self.visitor, node, __ast_path)
29832        } else {
29833        }
29834    }
29835
29836    #[inline]
29837    fn visit_export_default_specifier<'ast: 'r, 'r>(
29838        &mut self,
29839        node: &'ast ExportDefaultSpecifier,
29840        __ast_path: &mut AstNodePath<'r>,
29841    ) {
29842        if self.enabled {
29843            <V as VisitAstPath>::visit_export_default_specifier(&mut self.visitor, node, __ast_path)
29844        } else {
29845        }
29846    }
29847
29848    #[inline]
29849    fn visit_export_named_specifier<'ast: 'r, 'r>(
29850        &mut self,
29851        node: &'ast ExportNamedSpecifier,
29852        __ast_path: &mut AstNodePath<'r>,
29853    ) {
29854        if self.enabled {
29855            <V as VisitAstPath>::visit_export_named_specifier(&mut self.visitor, node, __ast_path)
29856        } else {
29857        }
29858    }
29859
29860    #[inline]
29861    fn visit_export_namespace_specifier<'ast: 'r, 'r>(
29862        &mut self,
29863        node: &'ast ExportNamespaceSpecifier,
29864        __ast_path: &mut AstNodePath<'r>,
29865    ) {
29866        if self.enabled {
29867            <V as VisitAstPath>::visit_export_namespace_specifier(
29868                &mut self.visitor,
29869                node,
29870                __ast_path,
29871            )
29872        } else {
29873        }
29874    }
29875
29876    #[inline]
29877    fn visit_export_specifier<'ast: 'r, 'r>(
29878        &mut self,
29879        node: &'ast ExportSpecifier,
29880        __ast_path: &mut AstNodePath<'r>,
29881    ) {
29882        if self.enabled {
29883            <V as VisitAstPath>::visit_export_specifier(&mut self.visitor, node, __ast_path)
29884        } else {
29885        }
29886    }
29887
29888    #[inline]
29889    fn visit_export_specifiers<'ast: 'r, 'r>(
29890        &mut self,
29891        node: &'ast [ExportSpecifier],
29892        __ast_path: &mut AstNodePath<'r>,
29893    ) {
29894        if self.enabled {
29895            <V as VisitAstPath>::visit_export_specifiers(&mut self.visitor, node, __ast_path)
29896        } else {
29897        }
29898    }
29899
29900    #[inline]
29901    fn visit_expr<'ast: 'r, 'r>(&mut self, node: &'ast Expr, __ast_path: &mut AstNodePath<'r>) {
29902        if self.enabled {
29903            <V as VisitAstPath>::visit_expr(&mut self.visitor, node, __ast_path)
29904        } else {
29905        }
29906    }
29907
29908    #[inline]
29909    fn visit_expr_or_spread<'ast: 'r, 'r>(
29910        &mut self,
29911        node: &'ast ExprOrSpread,
29912        __ast_path: &mut AstNodePath<'r>,
29913    ) {
29914        if self.enabled {
29915            <V as VisitAstPath>::visit_expr_or_spread(&mut self.visitor, node, __ast_path)
29916        } else {
29917        }
29918    }
29919
29920    #[inline]
29921    fn visit_expr_or_spreads<'ast: 'r, 'r>(
29922        &mut self,
29923        node: &'ast [ExprOrSpread],
29924        __ast_path: &mut AstNodePath<'r>,
29925    ) {
29926        if self.enabled {
29927            <V as VisitAstPath>::visit_expr_or_spreads(&mut self.visitor, node, __ast_path)
29928        } else {
29929        }
29930    }
29931
29932    #[inline]
29933    fn visit_expr_stmt<'ast: 'r, 'r>(
29934        &mut self,
29935        node: &'ast ExprStmt,
29936        __ast_path: &mut AstNodePath<'r>,
29937    ) {
29938        if self.enabled {
29939            <V as VisitAstPath>::visit_expr_stmt(&mut self.visitor, node, __ast_path)
29940        } else {
29941        }
29942    }
29943
29944    #[inline]
29945    fn visit_exprs<'ast: 'r, 'r>(
29946        &mut self,
29947        node: &'ast [Box<Expr>],
29948        __ast_path: &mut AstNodePath<'r>,
29949    ) {
29950        if self.enabled {
29951            <V as VisitAstPath>::visit_exprs(&mut self.visitor, node, __ast_path)
29952        } else {
29953        }
29954    }
29955
29956    #[inline]
29957    fn visit_fn_decl<'ast: 'r, 'r>(
29958        &mut self,
29959        node: &'ast FnDecl,
29960        __ast_path: &mut AstNodePath<'r>,
29961    ) {
29962        if self.enabled {
29963            <V as VisitAstPath>::visit_fn_decl(&mut self.visitor, node, __ast_path)
29964        } else {
29965        }
29966    }
29967
29968    #[inline]
29969    fn visit_fn_expr<'ast: 'r, 'r>(
29970        &mut self,
29971        node: &'ast FnExpr,
29972        __ast_path: &mut AstNodePath<'r>,
29973    ) {
29974        if self.enabled {
29975            <V as VisitAstPath>::visit_fn_expr(&mut self.visitor, node, __ast_path)
29976        } else {
29977        }
29978    }
29979
29980    #[inline]
29981    fn visit_for_head<'ast: 'r, 'r>(
29982        &mut self,
29983        node: &'ast ForHead,
29984        __ast_path: &mut AstNodePath<'r>,
29985    ) {
29986        if self.enabled {
29987            <V as VisitAstPath>::visit_for_head(&mut self.visitor, node, __ast_path)
29988        } else {
29989        }
29990    }
29991
29992    #[inline]
29993    fn visit_for_in_stmt<'ast: 'r, 'r>(
29994        &mut self,
29995        node: &'ast ForInStmt,
29996        __ast_path: &mut AstNodePath<'r>,
29997    ) {
29998        if self.enabled {
29999            <V as VisitAstPath>::visit_for_in_stmt(&mut self.visitor, node, __ast_path)
30000        } else {
30001        }
30002    }
30003
30004    #[inline]
30005    fn visit_for_of_stmt<'ast: 'r, 'r>(
30006        &mut self,
30007        node: &'ast ForOfStmt,
30008        __ast_path: &mut AstNodePath<'r>,
30009    ) {
30010        if self.enabled {
30011            <V as VisitAstPath>::visit_for_of_stmt(&mut self.visitor, node, __ast_path)
30012        } else {
30013        }
30014    }
30015
30016    #[inline]
30017    fn visit_for_stmt<'ast: 'r, 'r>(
30018        &mut self,
30019        node: &'ast ForStmt,
30020        __ast_path: &mut AstNodePath<'r>,
30021    ) {
30022        if self.enabled {
30023            <V as VisitAstPath>::visit_for_stmt(&mut self.visitor, node, __ast_path)
30024        } else {
30025        }
30026    }
30027
30028    #[inline]
30029    fn visit_function<'ast: 'r, 'r>(
30030        &mut self,
30031        node: &'ast Function,
30032        __ast_path: &mut AstNodePath<'r>,
30033    ) {
30034        if self.enabled {
30035            <V as VisitAstPath>::visit_function(&mut self.visitor, node, __ast_path)
30036        } else {
30037        }
30038    }
30039
30040    #[inline]
30041    fn visit_getter_prop<'ast: 'r, 'r>(
30042        &mut self,
30043        node: &'ast GetterProp,
30044        __ast_path: &mut AstNodePath<'r>,
30045    ) {
30046        if self.enabled {
30047            <V as VisitAstPath>::visit_getter_prop(&mut self.visitor, node, __ast_path)
30048        } else {
30049        }
30050    }
30051
30052    #[inline]
30053    fn visit_ident<'ast: 'r, 'r>(&mut self, node: &'ast Ident, __ast_path: &mut AstNodePath<'r>) {
30054        if self.enabled {
30055            <V as VisitAstPath>::visit_ident(&mut self.visitor, node, __ast_path)
30056        } else {
30057        }
30058    }
30059
30060    #[inline]
30061    fn visit_ident_name<'ast: 'r, 'r>(
30062        &mut self,
30063        node: &'ast IdentName,
30064        __ast_path: &mut AstNodePath<'r>,
30065    ) {
30066        if self.enabled {
30067            <V as VisitAstPath>::visit_ident_name(&mut self.visitor, node, __ast_path)
30068        } else {
30069        }
30070    }
30071
30072    #[inline]
30073    fn visit_if_stmt<'ast: 'r, 'r>(
30074        &mut self,
30075        node: &'ast IfStmt,
30076        __ast_path: &mut AstNodePath<'r>,
30077    ) {
30078        if self.enabled {
30079            <V as VisitAstPath>::visit_if_stmt(&mut self.visitor, node, __ast_path)
30080        } else {
30081        }
30082    }
30083
30084    #[inline]
30085    fn visit_import<'ast: 'r, 'r>(&mut self, node: &'ast Import, __ast_path: &mut AstNodePath<'r>) {
30086        if self.enabled {
30087            <V as VisitAstPath>::visit_import(&mut self.visitor, node, __ast_path)
30088        } else {
30089        }
30090    }
30091
30092    #[inline]
30093    fn visit_import_decl<'ast: 'r, 'r>(
30094        &mut self,
30095        node: &'ast ImportDecl,
30096        __ast_path: &mut AstNodePath<'r>,
30097    ) {
30098        if self.enabled {
30099            <V as VisitAstPath>::visit_import_decl(&mut self.visitor, node, __ast_path)
30100        } else {
30101        }
30102    }
30103
30104    #[inline]
30105    fn visit_import_default_specifier<'ast: 'r, 'r>(
30106        &mut self,
30107        node: &'ast ImportDefaultSpecifier,
30108        __ast_path: &mut AstNodePath<'r>,
30109    ) {
30110        if self.enabled {
30111            <V as VisitAstPath>::visit_import_default_specifier(&mut self.visitor, node, __ast_path)
30112        } else {
30113        }
30114    }
30115
30116    #[inline]
30117    fn visit_import_named_specifier<'ast: 'r, 'r>(
30118        &mut self,
30119        node: &'ast ImportNamedSpecifier,
30120        __ast_path: &mut AstNodePath<'r>,
30121    ) {
30122        if self.enabled {
30123            <V as VisitAstPath>::visit_import_named_specifier(&mut self.visitor, node, __ast_path)
30124        } else {
30125        }
30126    }
30127
30128    #[inline]
30129    fn visit_import_phase<'ast: 'r, 'r>(
30130        &mut self,
30131        node: &'ast ImportPhase,
30132        __ast_path: &mut AstNodePath<'r>,
30133    ) {
30134        if self.enabled {
30135            <V as VisitAstPath>::visit_import_phase(&mut self.visitor, node, __ast_path)
30136        } else {
30137        }
30138    }
30139
30140    #[inline]
30141    fn visit_import_specifier<'ast: 'r, 'r>(
30142        &mut self,
30143        node: &'ast ImportSpecifier,
30144        __ast_path: &mut AstNodePath<'r>,
30145    ) {
30146        if self.enabled {
30147            <V as VisitAstPath>::visit_import_specifier(&mut self.visitor, node, __ast_path)
30148        } else {
30149        }
30150    }
30151
30152    #[inline]
30153    fn visit_import_specifiers<'ast: 'r, 'r>(
30154        &mut self,
30155        node: &'ast [ImportSpecifier],
30156        __ast_path: &mut AstNodePath<'r>,
30157    ) {
30158        if self.enabled {
30159            <V as VisitAstPath>::visit_import_specifiers(&mut self.visitor, node, __ast_path)
30160        } else {
30161        }
30162    }
30163
30164    #[inline]
30165    fn visit_import_star_as_specifier<'ast: 'r, 'r>(
30166        &mut self,
30167        node: &'ast ImportStarAsSpecifier,
30168        __ast_path: &mut AstNodePath<'r>,
30169    ) {
30170        if self.enabled {
30171            <V as VisitAstPath>::visit_import_star_as_specifier(&mut self.visitor, node, __ast_path)
30172        } else {
30173        }
30174    }
30175
30176    #[inline]
30177    fn visit_import_with<'ast: 'r, 'r>(
30178        &mut self,
30179        node: &'ast ImportWith,
30180        __ast_path: &mut AstNodePath<'r>,
30181    ) {
30182        if self.enabled {
30183            <V as VisitAstPath>::visit_import_with(&mut self.visitor, node, __ast_path)
30184        } else {
30185        }
30186    }
30187
30188    #[inline]
30189    fn visit_import_with_item<'ast: 'r, 'r>(
30190        &mut self,
30191        node: &'ast ImportWithItem,
30192        __ast_path: &mut AstNodePath<'r>,
30193    ) {
30194        if self.enabled {
30195            <V as VisitAstPath>::visit_import_with_item(&mut self.visitor, node, __ast_path)
30196        } else {
30197        }
30198    }
30199
30200    #[inline]
30201    fn visit_import_with_items<'ast: 'r, 'r>(
30202        &mut self,
30203        node: &'ast [ImportWithItem],
30204        __ast_path: &mut AstNodePath<'r>,
30205    ) {
30206        if self.enabled {
30207            <V as VisitAstPath>::visit_import_with_items(&mut self.visitor, node, __ast_path)
30208        } else {
30209        }
30210    }
30211
30212    #[inline]
30213    fn visit_invalid<'ast: 'r, 'r>(
30214        &mut self,
30215        node: &'ast Invalid,
30216        __ast_path: &mut AstNodePath<'r>,
30217    ) {
30218        if self.enabled {
30219            <V as VisitAstPath>::visit_invalid(&mut self.visitor, node, __ast_path)
30220        } else {
30221        }
30222    }
30223
30224    #[inline]
30225    fn visit_jsx_attr<'ast: 'r, 'r>(
30226        &mut self,
30227        node: &'ast JSXAttr,
30228        __ast_path: &mut AstNodePath<'r>,
30229    ) {
30230        if self.enabled {
30231            <V as VisitAstPath>::visit_jsx_attr(&mut self.visitor, node, __ast_path)
30232        } else {
30233        }
30234    }
30235
30236    #[inline]
30237    fn visit_jsx_attr_name<'ast: 'r, 'r>(
30238        &mut self,
30239        node: &'ast JSXAttrName,
30240        __ast_path: &mut AstNodePath<'r>,
30241    ) {
30242        if self.enabled {
30243            <V as VisitAstPath>::visit_jsx_attr_name(&mut self.visitor, node, __ast_path)
30244        } else {
30245        }
30246    }
30247
30248    #[inline]
30249    fn visit_jsx_attr_or_spread<'ast: 'r, 'r>(
30250        &mut self,
30251        node: &'ast JSXAttrOrSpread,
30252        __ast_path: &mut AstNodePath<'r>,
30253    ) {
30254        if self.enabled {
30255            <V as VisitAstPath>::visit_jsx_attr_or_spread(&mut self.visitor, node, __ast_path)
30256        } else {
30257        }
30258    }
30259
30260    #[inline]
30261    fn visit_jsx_attr_or_spreads<'ast: 'r, 'r>(
30262        &mut self,
30263        node: &'ast [JSXAttrOrSpread],
30264        __ast_path: &mut AstNodePath<'r>,
30265    ) {
30266        if self.enabled {
30267            <V as VisitAstPath>::visit_jsx_attr_or_spreads(&mut self.visitor, node, __ast_path)
30268        } else {
30269        }
30270    }
30271
30272    #[inline]
30273    fn visit_jsx_attr_value<'ast: 'r, 'r>(
30274        &mut self,
30275        node: &'ast JSXAttrValue,
30276        __ast_path: &mut AstNodePath<'r>,
30277    ) {
30278        if self.enabled {
30279            <V as VisitAstPath>::visit_jsx_attr_value(&mut self.visitor, node, __ast_path)
30280        } else {
30281        }
30282    }
30283
30284    #[inline]
30285    fn visit_jsx_closing_element<'ast: 'r, 'r>(
30286        &mut self,
30287        node: &'ast JSXClosingElement,
30288        __ast_path: &mut AstNodePath<'r>,
30289    ) {
30290        if self.enabled {
30291            <V as VisitAstPath>::visit_jsx_closing_element(&mut self.visitor, node, __ast_path)
30292        } else {
30293        }
30294    }
30295
30296    #[inline]
30297    fn visit_jsx_closing_fragment<'ast: 'r, 'r>(
30298        &mut self,
30299        node: &'ast JSXClosingFragment,
30300        __ast_path: &mut AstNodePath<'r>,
30301    ) {
30302        if self.enabled {
30303            <V as VisitAstPath>::visit_jsx_closing_fragment(&mut self.visitor, node, __ast_path)
30304        } else {
30305        }
30306    }
30307
30308    #[inline]
30309    fn visit_jsx_element<'ast: 'r, 'r>(
30310        &mut self,
30311        node: &'ast JSXElement,
30312        __ast_path: &mut AstNodePath<'r>,
30313    ) {
30314        if self.enabled {
30315            <V as VisitAstPath>::visit_jsx_element(&mut self.visitor, node, __ast_path)
30316        } else {
30317        }
30318    }
30319
30320    #[inline]
30321    fn visit_jsx_element_child<'ast: 'r, 'r>(
30322        &mut self,
30323        node: &'ast JSXElementChild,
30324        __ast_path: &mut AstNodePath<'r>,
30325    ) {
30326        if self.enabled {
30327            <V as VisitAstPath>::visit_jsx_element_child(&mut self.visitor, node, __ast_path)
30328        } else {
30329        }
30330    }
30331
30332    #[inline]
30333    fn visit_jsx_element_childs<'ast: 'r, 'r>(
30334        &mut self,
30335        node: &'ast [JSXElementChild],
30336        __ast_path: &mut AstNodePath<'r>,
30337    ) {
30338        if self.enabled {
30339            <V as VisitAstPath>::visit_jsx_element_childs(&mut self.visitor, node, __ast_path)
30340        } else {
30341        }
30342    }
30343
30344    #[inline]
30345    fn visit_jsx_element_name<'ast: 'r, 'r>(
30346        &mut self,
30347        node: &'ast JSXElementName,
30348        __ast_path: &mut AstNodePath<'r>,
30349    ) {
30350        if self.enabled {
30351            <V as VisitAstPath>::visit_jsx_element_name(&mut self.visitor, node, __ast_path)
30352        } else {
30353        }
30354    }
30355
30356    #[inline]
30357    fn visit_jsx_empty_expr<'ast: 'r, 'r>(
30358        &mut self,
30359        node: &'ast JSXEmptyExpr,
30360        __ast_path: &mut AstNodePath<'r>,
30361    ) {
30362        if self.enabled {
30363            <V as VisitAstPath>::visit_jsx_empty_expr(&mut self.visitor, node, __ast_path)
30364        } else {
30365        }
30366    }
30367
30368    #[inline]
30369    fn visit_jsx_expr<'ast: 'r, 'r>(
30370        &mut self,
30371        node: &'ast JSXExpr,
30372        __ast_path: &mut AstNodePath<'r>,
30373    ) {
30374        if self.enabled {
30375            <V as VisitAstPath>::visit_jsx_expr(&mut self.visitor, node, __ast_path)
30376        } else {
30377        }
30378    }
30379
30380    #[inline]
30381    fn visit_jsx_expr_container<'ast: 'r, 'r>(
30382        &mut self,
30383        node: &'ast JSXExprContainer,
30384        __ast_path: &mut AstNodePath<'r>,
30385    ) {
30386        if self.enabled {
30387            <V as VisitAstPath>::visit_jsx_expr_container(&mut self.visitor, node, __ast_path)
30388        } else {
30389        }
30390    }
30391
30392    #[inline]
30393    fn visit_jsx_fragment<'ast: 'r, 'r>(
30394        &mut self,
30395        node: &'ast JSXFragment,
30396        __ast_path: &mut AstNodePath<'r>,
30397    ) {
30398        if self.enabled {
30399            <V as VisitAstPath>::visit_jsx_fragment(&mut self.visitor, node, __ast_path)
30400        } else {
30401        }
30402    }
30403
30404    #[inline]
30405    fn visit_jsx_member_expr<'ast: 'r, 'r>(
30406        &mut self,
30407        node: &'ast JSXMemberExpr,
30408        __ast_path: &mut AstNodePath<'r>,
30409    ) {
30410        if self.enabled {
30411            <V as VisitAstPath>::visit_jsx_member_expr(&mut self.visitor, node, __ast_path)
30412        } else {
30413        }
30414    }
30415
30416    #[inline]
30417    fn visit_jsx_namespaced_name<'ast: 'r, 'r>(
30418        &mut self,
30419        node: &'ast JSXNamespacedName,
30420        __ast_path: &mut AstNodePath<'r>,
30421    ) {
30422        if self.enabled {
30423            <V as VisitAstPath>::visit_jsx_namespaced_name(&mut self.visitor, node, __ast_path)
30424        } else {
30425        }
30426    }
30427
30428    #[inline]
30429    fn visit_jsx_object<'ast: 'r, 'r>(
30430        &mut self,
30431        node: &'ast JSXObject,
30432        __ast_path: &mut AstNodePath<'r>,
30433    ) {
30434        if self.enabled {
30435            <V as VisitAstPath>::visit_jsx_object(&mut self.visitor, node, __ast_path)
30436        } else {
30437        }
30438    }
30439
30440    #[inline]
30441    fn visit_jsx_opening_element<'ast: 'r, 'r>(
30442        &mut self,
30443        node: &'ast JSXOpeningElement,
30444        __ast_path: &mut AstNodePath<'r>,
30445    ) {
30446        if self.enabled {
30447            <V as VisitAstPath>::visit_jsx_opening_element(&mut self.visitor, node, __ast_path)
30448        } else {
30449        }
30450    }
30451
30452    #[inline]
30453    fn visit_jsx_opening_fragment<'ast: 'r, 'r>(
30454        &mut self,
30455        node: &'ast JSXOpeningFragment,
30456        __ast_path: &mut AstNodePath<'r>,
30457    ) {
30458        if self.enabled {
30459            <V as VisitAstPath>::visit_jsx_opening_fragment(&mut self.visitor, node, __ast_path)
30460        } else {
30461        }
30462    }
30463
30464    #[inline]
30465    fn visit_jsx_spread_child<'ast: 'r, 'r>(
30466        &mut self,
30467        node: &'ast JSXSpreadChild,
30468        __ast_path: &mut AstNodePath<'r>,
30469    ) {
30470        if self.enabled {
30471            <V as VisitAstPath>::visit_jsx_spread_child(&mut self.visitor, node, __ast_path)
30472        } else {
30473        }
30474    }
30475
30476    #[inline]
30477    fn visit_jsx_text<'ast: 'r, 'r>(
30478        &mut self,
30479        node: &'ast JSXText,
30480        __ast_path: &mut AstNodePath<'r>,
30481    ) {
30482        if self.enabled {
30483            <V as VisitAstPath>::visit_jsx_text(&mut self.visitor, node, __ast_path)
30484        } else {
30485        }
30486    }
30487
30488    #[inline]
30489    fn visit_key<'ast: 'r, 'r>(&mut self, node: &'ast Key, __ast_path: &mut AstNodePath<'r>) {
30490        if self.enabled {
30491            <V as VisitAstPath>::visit_key(&mut self.visitor, node, __ast_path)
30492        } else {
30493        }
30494    }
30495
30496    #[inline]
30497    fn visit_key_value_pat_prop<'ast: 'r, 'r>(
30498        &mut self,
30499        node: &'ast KeyValuePatProp,
30500        __ast_path: &mut AstNodePath<'r>,
30501    ) {
30502        if self.enabled {
30503            <V as VisitAstPath>::visit_key_value_pat_prop(&mut self.visitor, node, __ast_path)
30504        } else {
30505        }
30506    }
30507
30508    #[inline]
30509    fn visit_key_value_prop<'ast: 'r, 'r>(
30510        &mut self,
30511        node: &'ast KeyValueProp,
30512        __ast_path: &mut AstNodePath<'r>,
30513    ) {
30514        if self.enabled {
30515            <V as VisitAstPath>::visit_key_value_prop(&mut self.visitor, node, __ast_path)
30516        } else {
30517        }
30518    }
30519
30520    #[inline]
30521    fn visit_labeled_stmt<'ast: 'r, 'r>(
30522        &mut self,
30523        node: &'ast LabeledStmt,
30524        __ast_path: &mut AstNodePath<'r>,
30525    ) {
30526        if self.enabled {
30527            <V as VisitAstPath>::visit_labeled_stmt(&mut self.visitor, node, __ast_path)
30528        } else {
30529        }
30530    }
30531
30532    #[inline]
30533    fn visit_lit<'ast: 'r, 'r>(&mut self, node: &'ast Lit, __ast_path: &mut AstNodePath<'r>) {
30534        if self.enabled {
30535            <V as VisitAstPath>::visit_lit(&mut self.visitor, node, __ast_path)
30536        } else {
30537        }
30538    }
30539
30540    #[inline]
30541    fn visit_member_expr<'ast: 'r, 'r>(
30542        &mut self,
30543        node: &'ast MemberExpr,
30544        __ast_path: &mut AstNodePath<'r>,
30545    ) {
30546        if self.enabled {
30547            <V as VisitAstPath>::visit_member_expr(&mut self.visitor, node, __ast_path)
30548        } else {
30549        }
30550    }
30551
30552    #[inline]
30553    fn visit_member_prop<'ast: 'r, 'r>(
30554        &mut self,
30555        node: &'ast MemberProp,
30556        __ast_path: &mut AstNodePath<'r>,
30557    ) {
30558        if self.enabled {
30559            <V as VisitAstPath>::visit_member_prop(&mut self.visitor, node, __ast_path)
30560        } else {
30561        }
30562    }
30563
30564    #[inline]
30565    fn visit_meta_prop_expr<'ast: 'r, 'r>(
30566        &mut self,
30567        node: &'ast MetaPropExpr,
30568        __ast_path: &mut AstNodePath<'r>,
30569    ) {
30570        if self.enabled {
30571            <V as VisitAstPath>::visit_meta_prop_expr(&mut self.visitor, node, __ast_path)
30572        } else {
30573        }
30574    }
30575
30576    #[inline]
30577    fn visit_meta_prop_kind<'ast: 'r, 'r>(
30578        &mut self,
30579        node: &'ast MetaPropKind,
30580        __ast_path: &mut AstNodePath<'r>,
30581    ) {
30582        if self.enabled {
30583            <V as VisitAstPath>::visit_meta_prop_kind(&mut self.visitor, node, __ast_path)
30584        } else {
30585        }
30586    }
30587
30588    #[inline]
30589    fn visit_method_kind<'ast: 'r, 'r>(
30590        &mut self,
30591        node: &'ast MethodKind,
30592        __ast_path: &mut AstNodePath<'r>,
30593    ) {
30594        if self.enabled {
30595            <V as VisitAstPath>::visit_method_kind(&mut self.visitor, node, __ast_path)
30596        } else {
30597        }
30598    }
30599
30600    #[inline]
30601    fn visit_method_prop<'ast: 'r, 'r>(
30602        &mut self,
30603        node: &'ast MethodProp,
30604        __ast_path: &mut AstNodePath<'r>,
30605    ) {
30606        if self.enabled {
30607            <V as VisitAstPath>::visit_method_prop(&mut self.visitor, node, __ast_path)
30608        } else {
30609        }
30610    }
30611
30612    #[inline]
30613    fn visit_module<'ast: 'r, 'r>(&mut self, node: &'ast Module, __ast_path: &mut AstNodePath<'r>) {
30614        if self.enabled {
30615            <V as VisitAstPath>::visit_module(&mut self.visitor, node, __ast_path)
30616        } else {
30617        }
30618    }
30619
30620    #[inline]
30621    fn visit_module_decl<'ast: 'r, 'r>(
30622        &mut self,
30623        node: &'ast ModuleDecl,
30624        __ast_path: &mut AstNodePath<'r>,
30625    ) {
30626        if self.enabled {
30627            <V as VisitAstPath>::visit_module_decl(&mut self.visitor, node, __ast_path)
30628        } else {
30629        }
30630    }
30631
30632    #[inline]
30633    fn visit_module_export_name<'ast: 'r, 'r>(
30634        &mut self,
30635        node: &'ast ModuleExportName,
30636        __ast_path: &mut AstNodePath<'r>,
30637    ) {
30638        if self.enabled {
30639            <V as VisitAstPath>::visit_module_export_name(&mut self.visitor, node, __ast_path)
30640        } else {
30641        }
30642    }
30643
30644    #[inline]
30645    fn visit_module_item<'ast: 'r, 'r>(
30646        &mut self,
30647        node: &'ast ModuleItem,
30648        __ast_path: &mut AstNodePath<'r>,
30649    ) {
30650        if self.enabled {
30651            <V as VisitAstPath>::visit_module_item(&mut self.visitor, node, __ast_path)
30652        } else {
30653        }
30654    }
30655
30656    #[inline]
30657    fn visit_module_items<'ast: 'r, 'r>(
30658        &mut self,
30659        node: &'ast [ModuleItem],
30660        __ast_path: &mut AstNodePath<'r>,
30661    ) {
30662        if self.enabled {
30663            <V as VisitAstPath>::visit_module_items(&mut self.visitor, node, __ast_path)
30664        } else {
30665        }
30666    }
30667
30668    #[inline]
30669    fn visit_named_export<'ast: 'r, 'r>(
30670        &mut self,
30671        node: &'ast NamedExport,
30672        __ast_path: &mut AstNodePath<'r>,
30673    ) {
30674        if self.enabled {
30675            <V as VisitAstPath>::visit_named_export(&mut self.visitor, node, __ast_path)
30676        } else {
30677        }
30678    }
30679
30680    #[inline]
30681    fn visit_new_expr<'ast: 'r, 'r>(
30682        &mut self,
30683        node: &'ast NewExpr,
30684        __ast_path: &mut AstNodePath<'r>,
30685    ) {
30686        if self.enabled {
30687            <V as VisitAstPath>::visit_new_expr(&mut self.visitor, node, __ast_path)
30688        } else {
30689        }
30690    }
30691
30692    #[inline]
30693    fn visit_null<'ast: 'r, 'r>(&mut self, node: &'ast Null, __ast_path: &mut AstNodePath<'r>) {
30694        if self.enabled {
30695            <V as VisitAstPath>::visit_null(&mut self.visitor, node, __ast_path)
30696        } else {
30697        }
30698    }
30699
30700    #[inline]
30701    fn visit_number<'ast: 'r, 'r>(&mut self, node: &'ast Number, __ast_path: &mut AstNodePath<'r>) {
30702        if self.enabled {
30703            <V as VisitAstPath>::visit_number(&mut self.visitor, node, __ast_path)
30704        } else {
30705        }
30706    }
30707
30708    #[inline]
30709    fn visit_object_lit<'ast: 'r, 'r>(
30710        &mut self,
30711        node: &'ast ObjectLit,
30712        __ast_path: &mut AstNodePath<'r>,
30713    ) {
30714        if self.enabled {
30715            <V as VisitAstPath>::visit_object_lit(&mut self.visitor, node, __ast_path)
30716        } else {
30717        }
30718    }
30719
30720    #[inline]
30721    fn visit_object_pat<'ast: 'r, 'r>(
30722        &mut self,
30723        node: &'ast ObjectPat,
30724        __ast_path: &mut AstNodePath<'r>,
30725    ) {
30726        if self.enabled {
30727            <V as VisitAstPath>::visit_object_pat(&mut self.visitor, node, __ast_path)
30728        } else {
30729        }
30730    }
30731
30732    #[inline]
30733    fn visit_object_pat_prop<'ast: 'r, 'r>(
30734        &mut self,
30735        node: &'ast ObjectPatProp,
30736        __ast_path: &mut AstNodePath<'r>,
30737    ) {
30738        if self.enabled {
30739            <V as VisitAstPath>::visit_object_pat_prop(&mut self.visitor, node, __ast_path)
30740        } else {
30741        }
30742    }
30743
30744    #[inline]
30745    fn visit_object_pat_props<'ast: 'r, 'r>(
30746        &mut self,
30747        node: &'ast [ObjectPatProp],
30748        __ast_path: &mut AstNodePath<'r>,
30749    ) {
30750        if self.enabled {
30751            <V as VisitAstPath>::visit_object_pat_props(&mut self.visitor, node, __ast_path)
30752        } else {
30753        }
30754    }
30755
30756    #[inline]
30757    fn visit_opt_accessibility<'ast: 'r, 'r>(
30758        &mut self,
30759        node: &'ast Option<Accessibility>,
30760        __ast_path: &mut AstNodePath<'r>,
30761    ) {
30762        if self.enabled {
30763            <V as VisitAstPath>::visit_opt_accessibility(&mut self.visitor, node, __ast_path)
30764        } else {
30765        }
30766    }
30767
30768    #[inline]
30769    fn visit_opt_atom<'ast: 'r, 'r>(
30770        &mut self,
30771        node: &'ast Option<swc_atoms::Atom>,
30772        __ast_path: &mut AstNodePath<'r>,
30773    ) {
30774        if self.enabled {
30775            <V as VisitAstPath>::visit_opt_atom(&mut self.visitor, node, __ast_path)
30776        } else {
30777        }
30778    }
30779
30780    #[inline]
30781    fn visit_opt_block_stmt<'ast: 'r, 'r>(
30782        &mut self,
30783        node: &'ast Option<BlockStmt>,
30784        __ast_path: &mut AstNodePath<'r>,
30785    ) {
30786        if self.enabled {
30787            <V as VisitAstPath>::visit_opt_block_stmt(&mut self.visitor, node, __ast_path)
30788        } else {
30789        }
30790    }
30791
30792    #[inline]
30793    fn visit_opt_call<'ast: 'r, 'r>(
30794        &mut self,
30795        node: &'ast OptCall,
30796        __ast_path: &mut AstNodePath<'r>,
30797    ) {
30798        if self.enabled {
30799            <V as VisitAstPath>::visit_opt_call(&mut self.visitor, node, __ast_path)
30800        } else {
30801        }
30802    }
30803
30804    #[inline]
30805    fn visit_opt_catch_clause<'ast: 'r, 'r>(
30806        &mut self,
30807        node: &'ast Option<CatchClause>,
30808        __ast_path: &mut AstNodePath<'r>,
30809    ) {
30810        if self.enabled {
30811            <V as VisitAstPath>::visit_opt_catch_clause(&mut self.visitor, node, __ast_path)
30812        } else {
30813        }
30814    }
30815
30816    #[inline]
30817    fn visit_opt_chain_base<'ast: 'r, 'r>(
30818        &mut self,
30819        node: &'ast OptChainBase,
30820        __ast_path: &mut AstNodePath<'r>,
30821    ) {
30822        if self.enabled {
30823            <V as VisitAstPath>::visit_opt_chain_base(&mut self.visitor, node, __ast_path)
30824        } else {
30825        }
30826    }
30827
30828    #[inline]
30829    fn visit_opt_chain_expr<'ast: 'r, 'r>(
30830        &mut self,
30831        node: &'ast OptChainExpr,
30832        __ast_path: &mut AstNodePath<'r>,
30833    ) {
30834        if self.enabled {
30835            <V as VisitAstPath>::visit_opt_chain_expr(&mut self.visitor, node, __ast_path)
30836        } else {
30837        }
30838    }
30839
30840    #[inline]
30841    fn visit_opt_expr<'ast: 'r, 'r>(
30842        &mut self,
30843        node: &'ast Option<Box<Expr>>,
30844        __ast_path: &mut AstNodePath<'r>,
30845    ) {
30846        if self.enabled {
30847            <V as VisitAstPath>::visit_opt_expr(&mut self.visitor, node, __ast_path)
30848        } else {
30849        }
30850    }
30851
30852    #[inline]
30853    fn visit_opt_expr_or_spread<'ast: 'r, 'r>(
30854        &mut self,
30855        node: &'ast Option<ExprOrSpread>,
30856        __ast_path: &mut AstNodePath<'r>,
30857    ) {
30858        if self.enabled {
30859            <V as VisitAstPath>::visit_opt_expr_or_spread(&mut self.visitor, node, __ast_path)
30860        } else {
30861        }
30862    }
30863
30864    #[inline]
30865    fn visit_opt_expr_or_spreads<'ast: 'r, 'r>(
30866        &mut self,
30867        node: &'ast Option<Vec<ExprOrSpread>>,
30868        __ast_path: &mut AstNodePath<'r>,
30869    ) {
30870        if self.enabled {
30871            <V as VisitAstPath>::visit_opt_expr_or_spreads(&mut self.visitor, node, __ast_path)
30872        } else {
30873        }
30874    }
30875
30876    #[inline]
30877    fn visit_opt_ident<'ast: 'r, 'r>(
30878        &mut self,
30879        node: &'ast Option<Ident>,
30880        __ast_path: &mut AstNodePath<'r>,
30881    ) {
30882        if self.enabled {
30883            <V as VisitAstPath>::visit_opt_ident(&mut self.visitor, node, __ast_path)
30884        } else {
30885        }
30886    }
30887
30888    #[inline]
30889    fn visit_opt_jsx_attr_value<'ast: 'r, 'r>(
30890        &mut self,
30891        node: &'ast Option<JSXAttrValue>,
30892        __ast_path: &mut AstNodePath<'r>,
30893    ) {
30894        if self.enabled {
30895            <V as VisitAstPath>::visit_opt_jsx_attr_value(&mut self.visitor, node, __ast_path)
30896        } else {
30897        }
30898    }
30899
30900    #[inline]
30901    fn visit_opt_jsx_closing_element<'ast: 'r, 'r>(
30902        &mut self,
30903        node: &'ast Option<JSXClosingElement>,
30904        __ast_path: &mut AstNodePath<'r>,
30905    ) {
30906        if self.enabled {
30907            <V as VisitAstPath>::visit_opt_jsx_closing_element(&mut self.visitor, node, __ast_path)
30908        } else {
30909        }
30910    }
30911
30912    #[inline]
30913    fn visit_opt_module_export_name<'ast: 'r, 'r>(
30914        &mut self,
30915        node: &'ast Option<ModuleExportName>,
30916        __ast_path: &mut AstNodePath<'r>,
30917    ) {
30918        if self.enabled {
30919            <V as VisitAstPath>::visit_opt_module_export_name(&mut self.visitor, node, __ast_path)
30920        } else {
30921        }
30922    }
30923
30924    #[inline]
30925    fn visit_opt_object_lit<'ast: 'r, 'r>(
30926        &mut self,
30927        node: &'ast Option<Box<ObjectLit>>,
30928        __ast_path: &mut AstNodePath<'r>,
30929    ) {
30930        if self.enabled {
30931            <V as VisitAstPath>::visit_opt_object_lit(&mut self.visitor, node, __ast_path)
30932        } else {
30933        }
30934    }
30935
30936    #[inline]
30937    fn visit_opt_pat<'ast: 'r, 'r>(
30938        &mut self,
30939        node: &'ast Option<Pat>,
30940        __ast_path: &mut AstNodePath<'r>,
30941    ) {
30942        if self.enabled {
30943            <V as VisitAstPath>::visit_opt_pat(&mut self.visitor, node, __ast_path)
30944        } else {
30945        }
30946    }
30947
30948    #[inline]
30949    fn visit_opt_span<'ast: 'r, 'r>(
30950        &mut self,
30951        node: &'ast Option<swc_common::Span>,
30952        __ast_path: &mut AstNodePath<'r>,
30953    ) {
30954        if self.enabled {
30955            <V as VisitAstPath>::visit_opt_span(&mut self.visitor, node, __ast_path)
30956        } else {
30957        }
30958    }
30959
30960    #[inline]
30961    fn visit_opt_stmt<'ast: 'r, 'r>(
30962        &mut self,
30963        node: &'ast Option<Box<Stmt>>,
30964        __ast_path: &mut AstNodePath<'r>,
30965    ) {
30966        if self.enabled {
30967            <V as VisitAstPath>::visit_opt_stmt(&mut self.visitor, node, __ast_path)
30968        } else {
30969        }
30970    }
30971
30972    #[inline]
30973    fn visit_opt_str<'ast: 'r, 'r>(
30974        &mut self,
30975        node: &'ast Option<Box<Str>>,
30976        __ast_path: &mut AstNodePath<'r>,
30977    ) {
30978        if self.enabled {
30979            <V as VisitAstPath>::visit_opt_str(&mut self.visitor, node, __ast_path)
30980        } else {
30981        }
30982    }
30983
30984    #[inline]
30985    fn visit_opt_true_plus_minus<'ast: 'r, 'r>(
30986        &mut self,
30987        node: &'ast Option<TruePlusMinus>,
30988        __ast_path: &mut AstNodePath<'r>,
30989    ) {
30990        if self.enabled {
30991            <V as VisitAstPath>::visit_opt_true_plus_minus(&mut self.visitor, node, __ast_path)
30992        } else {
30993        }
30994    }
30995
30996    #[inline]
30997    fn visit_opt_ts_entity_name<'ast: 'r, 'r>(
30998        &mut self,
30999        node: &'ast Option<TsEntityName>,
31000        __ast_path: &mut AstNodePath<'r>,
31001    ) {
31002        if self.enabled {
31003            <V as VisitAstPath>::visit_opt_ts_entity_name(&mut self.visitor, node, __ast_path)
31004        } else {
31005        }
31006    }
31007
31008    #[inline]
31009    fn visit_opt_ts_namespace_body<'ast: 'r, 'r>(
31010        &mut self,
31011        node: &'ast Option<TsNamespaceBody>,
31012        __ast_path: &mut AstNodePath<'r>,
31013    ) {
31014        if self.enabled {
31015            <V as VisitAstPath>::visit_opt_ts_namespace_body(&mut self.visitor, node, __ast_path)
31016        } else {
31017        }
31018    }
31019
31020    #[inline]
31021    fn visit_opt_ts_type<'ast: 'r, 'r>(
31022        &mut self,
31023        node: &'ast Option<Box<TsType>>,
31024        __ast_path: &mut AstNodePath<'r>,
31025    ) {
31026        if self.enabled {
31027            <V as VisitAstPath>::visit_opt_ts_type(&mut self.visitor, node, __ast_path)
31028        } else {
31029        }
31030    }
31031
31032    #[inline]
31033    fn visit_opt_ts_type_ann<'ast: 'r, 'r>(
31034        &mut self,
31035        node: &'ast Option<Box<TsTypeAnn>>,
31036        __ast_path: &mut AstNodePath<'r>,
31037    ) {
31038        if self.enabled {
31039            <V as VisitAstPath>::visit_opt_ts_type_ann(&mut self.visitor, node, __ast_path)
31040        } else {
31041        }
31042    }
31043
31044    #[inline]
31045    fn visit_opt_ts_type_param_decl<'ast: 'r, 'r>(
31046        &mut self,
31047        node: &'ast Option<Box<TsTypeParamDecl>>,
31048        __ast_path: &mut AstNodePath<'r>,
31049    ) {
31050        if self.enabled {
31051            <V as VisitAstPath>::visit_opt_ts_type_param_decl(&mut self.visitor, node, __ast_path)
31052        } else {
31053        }
31054    }
31055
31056    #[inline]
31057    fn visit_opt_ts_type_param_instantiation<'ast: 'r, 'r>(
31058        &mut self,
31059        node: &'ast Option<Box<TsTypeParamInstantiation>>,
31060        __ast_path: &mut AstNodePath<'r>,
31061    ) {
31062        if self.enabled {
31063            <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(
31064                &mut self.visitor,
31065                node,
31066                __ast_path,
31067            )
31068        } else {
31069        }
31070    }
31071
31072    #[inline]
31073    fn visit_opt_var_decl_or_expr<'ast: 'r, 'r>(
31074        &mut self,
31075        node: &'ast Option<VarDeclOrExpr>,
31076        __ast_path: &mut AstNodePath<'r>,
31077    ) {
31078        if self.enabled {
31079            <V as VisitAstPath>::visit_opt_var_decl_or_expr(&mut self.visitor, node, __ast_path)
31080        } else {
31081        }
31082    }
31083
31084    #[inline]
31085    fn visit_opt_vec_expr_or_spreads<'ast: 'r, 'r>(
31086        &mut self,
31087        node: &'ast [Option<ExprOrSpread>],
31088        __ast_path: &mut AstNodePath<'r>,
31089    ) {
31090        if self.enabled {
31091            <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(&mut self.visitor, node, __ast_path)
31092        } else {
31093        }
31094    }
31095
31096    #[inline]
31097    fn visit_opt_vec_pats<'ast: 'r, 'r>(
31098        &mut self,
31099        node: &'ast [Option<Pat>],
31100        __ast_path: &mut AstNodePath<'r>,
31101    ) {
31102        if self.enabled {
31103            <V as VisitAstPath>::visit_opt_vec_pats(&mut self.visitor, node, __ast_path)
31104        } else {
31105        }
31106    }
31107
31108    #[inline]
31109    fn visit_param<'ast: 'r, 'r>(&mut self, node: &'ast Param, __ast_path: &mut AstNodePath<'r>) {
31110        if self.enabled {
31111            <V as VisitAstPath>::visit_param(&mut self.visitor, node, __ast_path)
31112        } else {
31113        }
31114    }
31115
31116    #[inline]
31117    fn visit_param_or_ts_param_prop<'ast: 'r, 'r>(
31118        &mut self,
31119        node: &'ast ParamOrTsParamProp,
31120        __ast_path: &mut AstNodePath<'r>,
31121    ) {
31122        if self.enabled {
31123            <V as VisitAstPath>::visit_param_or_ts_param_prop(&mut self.visitor, node, __ast_path)
31124        } else {
31125        }
31126    }
31127
31128    #[inline]
31129    fn visit_param_or_ts_param_props<'ast: 'r, 'r>(
31130        &mut self,
31131        node: &'ast [ParamOrTsParamProp],
31132        __ast_path: &mut AstNodePath<'r>,
31133    ) {
31134        if self.enabled {
31135            <V as VisitAstPath>::visit_param_or_ts_param_props(&mut self.visitor, node, __ast_path)
31136        } else {
31137        }
31138    }
31139
31140    #[inline]
31141    fn visit_params<'ast: 'r, 'r>(
31142        &mut self,
31143        node: &'ast [Param],
31144        __ast_path: &mut AstNodePath<'r>,
31145    ) {
31146        if self.enabled {
31147            <V as VisitAstPath>::visit_params(&mut self.visitor, node, __ast_path)
31148        } else {
31149        }
31150    }
31151
31152    #[inline]
31153    fn visit_paren_expr<'ast: 'r, 'r>(
31154        &mut self,
31155        node: &'ast ParenExpr,
31156        __ast_path: &mut AstNodePath<'r>,
31157    ) {
31158        if self.enabled {
31159            <V as VisitAstPath>::visit_paren_expr(&mut self.visitor, node, __ast_path)
31160        } else {
31161        }
31162    }
31163
31164    #[inline]
31165    fn visit_pat<'ast: 'r, 'r>(&mut self, node: &'ast Pat, __ast_path: &mut AstNodePath<'r>) {
31166        if self.enabled {
31167            <V as VisitAstPath>::visit_pat(&mut self.visitor, node, __ast_path)
31168        } else {
31169        }
31170    }
31171
31172    #[inline]
31173    fn visit_pats<'ast: 'r, 'r>(&mut self, node: &'ast [Pat], __ast_path: &mut AstNodePath<'r>) {
31174        if self.enabled {
31175            <V as VisitAstPath>::visit_pats(&mut self.visitor, node, __ast_path)
31176        } else {
31177        }
31178    }
31179
31180    #[inline]
31181    fn visit_private_method<'ast: 'r, 'r>(
31182        &mut self,
31183        node: &'ast PrivateMethod,
31184        __ast_path: &mut AstNodePath<'r>,
31185    ) {
31186        if self.enabled {
31187            <V as VisitAstPath>::visit_private_method(&mut self.visitor, node, __ast_path)
31188        } else {
31189        }
31190    }
31191
31192    #[inline]
31193    fn visit_private_name<'ast: 'r, 'r>(
31194        &mut self,
31195        node: &'ast PrivateName,
31196        __ast_path: &mut AstNodePath<'r>,
31197    ) {
31198        if self.enabled {
31199            <V as VisitAstPath>::visit_private_name(&mut self.visitor, node, __ast_path)
31200        } else {
31201        }
31202    }
31203
31204    #[inline]
31205    fn visit_private_prop<'ast: 'r, 'r>(
31206        &mut self,
31207        node: &'ast PrivateProp,
31208        __ast_path: &mut AstNodePath<'r>,
31209    ) {
31210        if self.enabled {
31211            <V as VisitAstPath>::visit_private_prop(&mut self.visitor, node, __ast_path)
31212        } else {
31213        }
31214    }
31215
31216    #[inline]
31217    fn visit_program<'ast: 'r, 'r>(
31218        &mut self,
31219        node: &'ast Program,
31220        __ast_path: &mut AstNodePath<'r>,
31221    ) {
31222        if self.enabled {
31223            <V as VisitAstPath>::visit_program(&mut self.visitor, node, __ast_path)
31224        } else {
31225        }
31226    }
31227
31228    #[inline]
31229    fn visit_prop<'ast: 'r, 'r>(&mut self, node: &'ast Prop, __ast_path: &mut AstNodePath<'r>) {
31230        if self.enabled {
31231            <V as VisitAstPath>::visit_prop(&mut self.visitor, node, __ast_path)
31232        } else {
31233        }
31234    }
31235
31236    #[inline]
31237    fn visit_prop_name<'ast: 'r, 'r>(
31238        &mut self,
31239        node: &'ast PropName,
31240        __ast_path: &mut AstNodePath<'r>,
31241    ) {
31242        if self.enabled {
31243            <V as VisitAstPath>::visit_prop_name(&mut self.visitor, node, __ast_path)
31244        } else {
31245        }
31246    }
31247
31248    #[inline]
31249    fn visit_prop_or_spread<'ast: 'r, 'r>(
31250        &mut self,
31251        node: &'ast PropOrSpread,
31252        __ast_path: &mut AstNodePath<'r>,
31253    ) {
31254        if self.enabled {
31255            <V as VisitAstPath>::visit_prop_or_spread(&mut self.visitor, node, __ast_path)
31256        } else {
31257        }
31258    }
31259
31260    #[inline]
31261    fn visit_prop_or_spreads<'ast: 'r, 'r>(
31262        &mut self,
31263        node: &'ast [PropOrSpread],
31264        __ast_path: &mut AstNodePath<'r>,
31265    ) {
31266        if self.enabled {
31267            <V as VisitAstPath>::visit_prop_or_spreads(&mut self.visitor, node, __ast_path)
31268        } else {
31269        }
31270    }
31271
31272    #[inline]
31273    fn visit_regex<'ast: 'r, 'r>(&mut self, node: &'ast Regex, __ast_path: &mut AstNodePath<'r>) {
31274        if self.enabled {
31275            <V as VisitAstPath>::visit_regex(&mut self.visitor, node, __ast_path)
31276        } else {
31277        }
31278    }
31279
31280    #[inline]
31281    fn visit_rest_pat<'ast: 'r, 'r>(
31282        &mut self,
31283        node: &'ast RestPat,
31284        __ast_path: &mut AstNodePath<'r>,
31285    ) {
31286        if self.enabled {
31287            <V as VisitAstPath>::visit_rest_pat(&mut self.visitor, node, __ast_path)
31288        } else {
31289        }
31290    }
31291
31292    #[inline]
31293    fn visit_return_stmt<'ast: 'r, 'r>(
31294        &mut self,
31295        node: &'ast ReturnStmt,
31296        __ast_path: &mut AstNodePath<'r>,
31297    ) {
31298        if self.enabled {
31299            <V as VisitAstPath>::visit_return_stmt(&mut self.visitor, node, __ast_path)
31300        } else {
31301        }
31302    }
31303
31304    #[inline]
31305    fn visit_script<'ast: 'r, 'r>(&mut self, node: &'ast Script, __ast_path: &mut AstNodePath<'r>) {
31306        if self.enabled {
31307            <V as VisitAstPath>::visit_script(&mut self.visitor, node, __ast_path)
31308        } else {
31309        }
31310    }
31311
31312    #[inline]
31313    fn visit_seq_expr<'ast: 'r, 'r>(
31314        &mut self,
31315        node: &'ast SeqExpr,
31316        __ast_path: &mut AstNodePath<'r>,
31317    ) {
31318        if self.enabled {
31319            <V as VisitAstPath>::visit_seq_expr(&mut self.visitor, node, __ast_path)
31320        } else {
31321        }
31322    }
31323
31324    #[inline]
31325    fn visit_setter_prop<'ast: 'r, 'r>(
31326        &mut self,
31327        node: &'ast SetterProp,
31328        __ast_path: &mut AstNodePath<'r>,
31329    ) {
31330        if self.enabled {
31331            <V as VisitAstPath>::visit_setter_prop(&mut self.visitor, node, __ast_path)
31332        } else {
31333        }
31334    }
31335
31336    #[inline]
31337    fn visit_simple_assign_target<'ast: 'r, 'r>(
31338        &mut self,
31339        node: &'ast SimpleAssignTarget,
31340        __ast_path: &mut AstNodePath<'r>,
31341    ) {
31342        if self.enabled {
31343            <V as VisitAstPath>::visit_simple_assign_target(&mut self.visitor, node, __ast_path)
31344        } else {
31345        }
31346    }
31347
31348    #[inline]
31349    fn visit_span<'ast: 'r, 'r>(
31350        &mut self,
31351        node: &'ast swc_common::Span,
31352        __ast_path: &mut AstNodePath<'r>,
31353    ) {
31354        if self.enabled {
31355            <V as VisitAstPath>::visit_span(&mut self.visitor, node, __ast_path)
31356        } else {
31357        }
31358    }
31359
31360    #[inline]
31361    fn visit_spread_element<'ast: 'r, 'r>(
31362        &mut self,
31363        node: &'ast SpreadElement,
31364        __ast_path: &mut AstNodePath<'r>,
31365    ) {
31366        if self.enabled {
31367            <V as VisitAstPath>::visit_spread_element(&mut self.visitor, node, __ast_path)
31368        } else {
31369        }
31370    }
31371
31372    #[inline]
31373    fn visit_static_block<'ast: 'r, 'r>(
31374        &mut self,
31375        node: &'ast StaticBlock,
31376        __ast_path: &mut AstNodePath<'r>,
31377    ) {
31378        if self.enabled {
31379            <V as VisitAstPath>::visit_static_block(&mut self.visitor, node, __ast_path)
31380        } else {
31381        }
31382    }
31383
31384    #[inline]
31385    fn visit_stmt<'ast: 'r, 'r>(&mut self, node: &'ast Stmt, __ast_path: &mut AstNodePath<'r>) {
31386        if self.enabled {
31387            <V as VisitAstPath>::visit_stmt(&mut self.visitor, node, __ast_path)
31388        } else {
31389        }
31390    }
31391
31392    #[inline]
31393    fn visit_stmts<'ast: 'r, 'r>(&mut self, node: &'ast [Stmt], __ast_path: &mut AstNodePath<'r>) {
31394        if self.enabled {
31395            <V as VisitAstPath>::visit_stmts(&mut self.visitor, node, __ast_path)
31396        } else {
31397        }
31398    }
31399
31400    #[inline]
31401    fn visit_str<'ast: 'r, 'r>(&mut self, node: &'ast Str, __ast_path: &mut AstNodePath<'r>) {
31402        if self.enabled {
31403            <V as VisitAstPath>::visit_str(&mut self.visitor, node, __ast_path)
31404        } else {
31405        }
31406    }
31407
31408    #[inline]
31409    fn visit_super<'ast: 'r, 'r>(&mut self, node: &'ast Super, __ast_path: &mut AstNodePath<'r>) {
31410        if self.enabled {
31411            <V as VisitAstPath>::visit_super(&mut self.visitor, node, __ast_path)
31412        } else {
31413        }
31414    }
31415
31416    #[inline]
31417    fn visit_super_prop<'ast: 'r, 'r>(
31418        &mut self,
31419        node: &'ast SuperProp,
31420        __ast_path: &mut AstNodePath<'r>,
31421    ) {
31422        if self.enabled {
31423            <V as VisitAstPath>::visit_super_prop(&mut self.visitor, node, __ast_path)
31424        } else {
31425        }
31426    }
31427
31428    #[inline]
31429    fn visit_super_prop_expr<'ast: 'r, 'r>(
31430        &mut self,
31431        node: &'ast SuperPropExpr,
31432        __ast_path: &mut AstNodePath<'r>,
31433    ) {
31434        if self.enabled {
31435            <V as VisitAstPath>::visit_super_prop_expr(&mut self.visitor, node, __ast_path)
31436        } else {
31437        }
31438    }
31439
31440    #[inline]
31441    fn visit_switch_case<'ast: 'r, 'r>(
31442        &mut self,
31443        node: &'ast SwitchCase,
31444        __ast_path: &mut AstNodePath<'r>,
31445    ) {
31446        if self.enabled {
31447            <V as VisitAstPath>::visit_switch_case(&mut self.visitor, node, __ast_path)
31448        } else {
31449        }
31450    }
31451
31452    #[inline]
31453    fn visit_switch_cases<'ast: 'r, 'r>(
31454        &mut self,
31455        node: &'ast [SwitchCase],
31456        __ast_path: &mut AstNodePath<'r>,
31457    ) {
31458        if self.enabled {
31459            <V as VisitAstPath>::visit_switch_cases(&mut self.visitor, node, __ast_path)
31460        } else {
31461        }
31462    }
31463
31464    #[inline]
31465    fn visit_switch_stmt<'ast: 'r, 'r>(
31466        &mut self,
31467        node: &'ast SwitchStmt,
31468        __ast_path: &mut AstNodePath<'r>,
31469    ) {
31470        if self.enabled {
31471            <V as VisitAstPath>::visit_switch_stmt(&mut self.visitor, node, __ast_path)
31472        } else {
31473        }
31474    }
31475
31476    #[inline]
31477    fn visit_syntax_context<'ast: 'r, 'r>(
31478        &mut self,
31479        node: &'ast swc_common::SyntaxContext,
31480        __ast_path: &mut AstNodePath<'r>,
31481    ) {
31482        if self.enabled {
31483            <V as VisitAstPath>::visit_syntax_context(&mut self.visitor, node, __ast_path)
31484        } else {
31485        }
31486    }
31487
31488    #[inline]
31489    fn visit_tagged_tpl<'ast: 'r, 'r>(
31490        &mut self,
31491        node: &'ast TaggedTpl,
31492        __ast_path: &mut AstNodePath<'r>,
31493    ) {
31494        if self.enabled {
31495            <V as VisitAstPath>::visit_tagged_tpl(&mut self.visitor, node, __ast_path)
31496        } else {
31497        }
31498    }
31499
31500    #[inline]
31501    fn visit_this_expr<'ast: 'r, 'r>(
31502        &mut self,
31503        node: &'ast ThisExpr,
31504        __ast_path: &mut AstNodePath<'r>,
31505    ) {
31506        if self.enabled {
31507            <V as VisitAstPath>::visit_this_expr(&mut self.visitor, node, __ast_path)
31508        } else {
31509        }
31510    }
31511
31512    #[inline]
31513    fn visit_throw_stmt<'ast: 'r, 'r>(
31514        &mut self,
31515        node: &'ast ThrowStmt,
31516        __ast_path: &mut AstNodePath<'r>,
31517    ) {
31518        if self.enabled {
31519            <V as VisitAstPath>::visit_throw_stmt(&mut self.visitor, node, __ast_path)
31520        } else {
31521        }
31522    }
31523
31524    #[inline]
31525    fn visit_tpl<'ast: 'r, 'r>(&mut self, node: &'ast Tpl, __ast_path: &mut AstNodePath<'r>) {
31526        if self.enabled {
31527            <V as VisitAstPath>::visit_tpl(&mut self.visitor, node, __ast_path)
31528        } else {
31529        }
31530    }
31531
31532    #[inline]
31533    fn visit_tpl_element<'ast: 'r, 'r>(
31534        &mut self,
31535        node: &'ast TplElement,
31536        __ast_path: &mut AstNodePath<'r>,
31537    ) {
31538        if self.enabled {
31539            <V as VisitAstPath>::visit_tpl_element(&mut self.visitor, node, __ast_path)
31540        } else {
31541        }
31542    }
31543
31544    #[inline]
31545    fn visit_tpl_elements<'ast: 'r, 'r>(
31546        &mut self,
31547        node: &'ast [TplElement],
31548        __ast_path: &mut AstNodePath<'r>,
31549    ) {
31550        if self.enabled {
31551            <V as VisitAstPath>::visit_tpl_elements(&mut self.visitor, node, __ast_path)
31552        } else {
31553        }
31554    }
31555
31556    #[inline]
31557    fn visit_true_plus_minus<'ast: 'r, 'r>(
31558        &mut self,
31559        node: &'ast TruePlusMinus,
31560        __ast_path: &mut AstNodePath<'r>,
31561    ) {
31562        if self.enabled {
31563            <V as VisitAstPath>::visit_true_plus_minus(&mut self.visitor, node, __ast_path)
31564        } else {
31565        }
31566    }
31567
31568    #[inline]
31569    fn visit_try_stmt<'ast: 'r, 'r>(
31570        &mut self,
31571        node: &'ast TryStmt,
31572        __ast_path: &mut AstNodePath<'r>,
31573    ) {
31574        if self.enabled {
31575            <V as VisitAstPath>::visit_try_stmt(&mut self.visitor, node, __ast_path)
31576        } else {
31577        }
31578    }
31579
31580    #[inline]
31581    fn visit_ts_array_type<'ast: 'r, 'r>(
31582        &mut self,
31583        node: &'ast TsArrayType,
31584        __ast_path: &mut AstNodePath<'r>,
31585    ) {
31586        if self.enabled {
31587            <V as VisitAstPath>::visit_ts_array_type(&mut self.visitor, node, __ast_path)
31588        } else {
31589        }
31590    }
31591
31592    #[inline]
31593    fn visit_ts_as_expr<'ast: 'r, 'r>(
31594        &mut self,
31595        node: &'ast TsAsExpr,
31596        __ast_path: &mut AstNodePath<'r>,
31597    ) {
31598        if self.enabled {
31599            <V as VisitAstPath>::visit_ts_as_expr(&mut self.visitor, node, __ast_path)
31600        } else {
31601        }
31602    }
31603
31604    #[inline]
31605    fn visit_ts_call_signature_decl<'ast: 'r, 'r>(
31606        &mut self,
31607        node: &'ast TsCallSignatureDecl,
31608        __ast_path: &mut AstNodePath<'r>,
31609    ) {
31610        if self.enabled {
31611            <V as VisitAstPath>::visit_ts_call_signature_decl(&mut self.visitor, node, __ast_path)
31612        } else {
31613        }
31614    }
31615
31616    #[inline]
31617    fn visit_ts_conditional_type<'ast: 'r, 'r>(
31618        &mut self,
31619        node: &'ast TsConditionalType,
31620        __ast_path: &mut AstNodePath<'r>,
31621    ) {
31622        if self.enabled {
31623            <V as VisitAstPath>::visit_ts_conditional_type(&mut self.visitor, node, __ast_path)
31624        } else {
31625        }
31626    }
31627
31628    #[inline]
31629    fn visit_ts_const_assertion<'ast: 'r, 'r>(
31630        &mut self,
31631        node: &'ast TsConstAssertion,
31632        __ast_path: &mut AstNodePath<'r>,
31633    ) {
31634        if self.enabled {
31635            <V as VisitAstPath>::visit_ts_const_assertion(&mut self.visitor, node, __ast_path)
31636        } else {
31637        }
31638    }
31639
31640    #[inline]
31641    fn visit_ts_construct_signature_decl<'ast: 'r, 'r>(
31642        &mut self,
31643        node: &'ast TsConstructSignatureDecl,
31644        __ast_path: &mut AstNodePath<'r>,
31645    ) {
31646        if self.enabled {
31647            <V as VisitAstPath>::visit_ts_construct_signature_decl(
31648                &mut self.visitor,
31649                node,
31650                __ast_path,
31651            )
31652        } else {
31653        }
31654    }
31655
31656    #[inline]
31657    fn visit_ts_constructor_type<'ast: 'r, 'r>(
31658        &mut self,
31659        node: &'ast TsConstructorType,
31660        __ast_path: &mut AstNodePath<'r>,
31661    ) {
31662        if self.enabled {
31663            <V as VisitAstPath>::visit_ts_constructor_type(&mut self.visitor, node, __ast_path)
31664        } else {
31665        }
31666    }
31667
31668    #[inline]
31669    fn visit_ts_entity_name<'ast: 'r, 'r>(
31670        &mut self,
31671        node: &'ast TsEntityName,
31672        __ast_path: &mut AstNodePath<'r>,
31673    ) {
31674        if self.enabled {
31675            <V as VisitAstPath>::visit_ts_entity_name(&mut self.visitor, node, __ast_path)
31676        } else {
31677        }
31678    }
31679
31680    #[inline]
31681    fn visit_ts_enum_decl<'ast: 'r, 'r>(
31682        &mut self,
31683        node: &'ast TsEnumDecl,
31684        __ast_path: &mut AstNodePath<'r>,
31685    ) {
31686        if self.enabled {
31687            <V as VisitAstPath>::visit_ts_enum_decl(&mut self.visitor, node, __ast_path)
31688        } else {
31689        }
31690    }
31691
31692    #[inline]
31693    fn visit_ts_enum_member<'ast: 'r, 'r>(
31694        &mut self,
31695        node: &'ast TsEnumMember,
31696        __ast_path: &mut AstNodePath<'r>,
31697    ) {
31698        if self.enabled {
31699            <V as VisitAstPath>::visit_ts_enum_member(&mut self.visitor, node, __ast_path)
31700        } else {
31701        }
31702    }
31703
31704    #[inline]
31705    fn visit_ts_enum_member_id<'ast: 'r, 'r>(
31706        &mut self,
31707        node: &'ast TsEnumMemberId,
31708        __ast_path: &mut AstNodePath<'r>,
31709    ) {
31710        if self.enabled {
31711            <V as VisitAstPath>::visit_ts_enum_member_id(&mut self.visitor, node, __ast_path)
31712        } else {
31713        }
31714    }
31715
31716    #[inline]
31717    fn visit_ts_enum_members<'ast: 'r, 'r>(
31718        &mut self,
31719        node: &'ast [TsEnumMember],
31720        __ast_path: &mut AstNodePath<'r>,
31721    ) {
31722        if self.enabled {
31723            <V as VisitAstPath>::visit_ts_enum_members(&mut self.visitor, node, __ast_path)
31724        } else {
31725        }
31726    }
31727
31728    #[inline]
31729    fn visit_ts_export_assignment<'ast: 'r, 'r>(
31730        &mut self,
31731        node: &'ast TsExportAssignment,
31732        __ast_path: &mut AstNodePath<'r>,
31733    ) {
31734        if self.enabled {
31735            <V as VisitAstPath>::visit_ts_export_assignment(&mut self.visitor, node, __ast_path)
31736        } else {
31737        }
31738    }
31739
31740    #[inline]
31741    fn visit_ts_expr_with_type_args<'ast: 'r, 'r>(
31742        &mut self,
31743        node: &'ast TsExprWithTypeArgs,
31744        __ast_path: &mut AstNodePath<'r>,
31745    ) {
31746        if self.enabled {
31747            <V as VisitAstPath>::visit_ts_expr_with_type_args(&mut self.visitor, node, __ast_path)
31748        } else {
31749        }
31750    }
31751
31752    #[inline]
31753    fn visit_ts_expr_with_type_argss<'ast: 'r, 'r>(
31754        &mut self,
31755        node: &'ast [TsExprWithTypeArgs],
31756        __ast_path: &mut AstNodePath<'r>,
31757    ) {
31758        if self.enabled {
31759            <V as VisitAstPath>::visit_ts_expr_with_type_argss(&mut self.visitor, node, __ast_path)
31760        } else {
31761        }
31762    }
31763
31764    #[inline]
31765    fn visit_ts_external_module_ref<'ast: 'r, 'r>(
31766        &mut self,
31767        node: &'ast TsExternalModuleRef,
31768        __ast_path: &mut AstNodePath<'r>,
31769    ) {
31770        if self.enabled {
31771            <V as VisitAstPath>::visit_ts_external_module_ref(&mut self.visitor, node, __ast_path)
31772        } else {
31773        }
31774    }
31775
31776    #[inline]
31777    fn visit_ts_fn_or_constructor_type<'ast: 'r, 'r>(
31778        &mut self,
31779        node: &'ast TsFnOrConstructorType,
31780        __ast_path: &mut AstNodePath<'r>,
31781    ) {
31782        if self.enabled {
31783            <V as VisitAstPath>::visit_ts_fn_or_constructor_type(
31784                &mut self.visitor,
31785                node,
31786                __ast_path,
31787            )
31788        } else {
31789        }
31790    }
31791
31792    #[inline]
31793    fn visit_ts_fn_param<'ast: 'r, 'r>(
31794        &mut self,
31795        node: &'ast TsFnParam,
31796        __ast_path: &mut AstNodePath<'r>,
31797    ) {
31798        if self.enabled {
31799            <V as VisitAstPath>::visit_ts_fn_param(&mut self.visitor, node, __ast_path)
31800        } else {
31801        }
31802    }
31803
31804    #[inline]
31805    fn visit_ts_fn_params<'ast: 'r, 'r>(
31806        &mut self,
31807        node: &'ast [TsFnParam],
31808        __ast_path: &mut AstNodePath<'r>,
31809    ) {
31810        if self.enabled {
31811            <V as VisitAstPath>::visit_ts_fn_params(&mut self.visitor, node, __ast_path)
31812        } else {
31813        }
31814    }
31815
31816    #[inline]
31817    fn visit_ts_fn_type<'ast: 'r, 'r>(
31818        &mut self,
31819        node: &'ast TsFnType,
31820        __ast_path: &mut AstNodePath<'r>,
31821    ) {
31822        if self.enabled {
31823            <V as VisitAstPath>::visit_ts_fn_type(&mut self.visitor, node, __ast_path)
31824        } else {
31825        }
31826    }
31827
31828    #[inline]
31829    fn visit_ts_getter_signature<'ast: 'r, 'r>(
31830        &mut self,
31831        node: &'ast TsGetterSignature,
31832        __ast_path: &mut AstNodePath<'r>,
31833    ) {
31834        if self.enabled {
31835            <V as VisitAstPath>::visit_ts_getter_signature(&mut self.visitor, node, __ast_path)
31836        } else {
31837        }
31838    }
31839
31840    #[inline]
31841    fn visit_ts_import_equals_decl<'ast: 'r, 'r>(
31842        &mut self,
31843        node: &'ast TsImportEqualsDecl,
31844        __ast_path: &mut AstNodePath<'r>,
31845    ) {
31846        if self.enabled {
31847            <V as VisitAstPath>::visit_ts_import_equals_decl(&mut self.visitor, node, __ast_path)
31848        } else {
31849        }
31850    }
31851
31852    #[inline]
31853    fn visit_ts_import_type<'ast: 'r, 'r>(
31854        &mut self,
31855        node: &'ast TsImportType,
31856        __ast_path: &mut AstNodePath<'r>,
31857    ) {
31858        if self.enabled {
31859            <V as VisitAstPath>::visit_ts_import_type(&mut self.visitor, node, __ast_path)
31860        } else {
31861        }
31862    }
31863
31864    #[inline]
31865    fn visit_ts_index_signature<'ast: 'r, 'r>(
31866        &mut self,
31867        node: &'ast TsIndexSignature,
31868        __ast_path: &mut AstNodePath<'r>,
31869    ) {
31870        if self.enabled {
31871            <V as VisitAstPath>::visit_ts_index_signature(&mut self.visitor, node, __ast_path)
31872        } else {
31873        }
31874    }
31875
31876    #[inline]
31877    fn visit_ts_indexed_access_type<'ast: 'r, 'r>(
31878        &mut self,
31879        node: &'ast TsIndexedAccessType,
31880        __ast_path: &mut AstNodePath<'r>,
31881    ) {
31882        if self.enabled {
31883            <V as VisitAstPath>::visit_ts_indexed_access_type(&mut self.visitor, node, __ast_path)
31884        } else {
31885        }
31886    }
31887
31888    #[inline]
31889    fn visit_ts_infer_type<'ast: 'r, 'r>(
31890        &mut self,
31891        node: &'ast TsInferType,
31892        __ast_path: &mut AstNodePath<'r>,
31893    ) {
31894        if self.enabled {
31895            <V as VisitAstPath>::visit_ts_infer_type(&mut self.visitor, node, __ast_path)
31896        } else {
31897        }
31898    }
31899
31900    #[inline]
31901    fn visit_ts_instantiation<'ast: 'r, 'r>(
31902        &mut self,
31903        node: &'ast TsInstantiation,
31904        __ast_path: &mut AstNodePath<'r>,
31905    ) {
31906        if self.enabled {
31907            <V as VisitAstPath>::visit_ts_instantiation(&mut self.visitor, node, __ast_path)
31908        } else {
31909        }
31910    }
31911
31912    #[inline]
31913    fn visit_ts_interface_body<'ast: 'r, 'r>(
31914        &mut self,
31915        node: &'ast TsInterfaceBody,
31916        __ast_path: &mut AstNodePath<'r>,
31917    ) {
31918        if self.enabled {
31919            <V as VisitAstPath>::visit_ts_interface_body(&mut self.visitor, node, __ast_path)
31920        } else {
31921        }
31922    }
31923
31924    #[inline]
31925    fn visit_ts_interface_decl<'ast: 'r, 'r>(
31926        &mut self,
31927        node: &'ast TsInterfaceDecl,
31928        __ast_path: &mut AstNodePath<'r>,
31929    ) {
31930        if self.enabled {
31931            <V as VisitAstPath>::visit_ts_interface_decl(&mut self.visitor, node, __ast_path)
31932        } else {
31933        }
31934    }
31935
31936    #[inline]
31937    fn visit_ts_intersection_type<'ast: 'r, 'r>(
31938        &mut self,
31939        node: &'ast TsIntersectionType,
31940        __ast_path: &mut AstNodePath<'r>,
31941    ) {
31942        if self.enabled {
31943            <V as VisitAstPath>::visit_ts_intersection_type(&mut self.visitor, node, __ast_path)
31944        } else {
31945        }
31946    }
31947
31948    #[inline]
31949    fn visit_ts_keyword_type<'ast: 'r, 'r>(
31950        &mut self,
31951        node: &'ast TsKeywordType,
31952        __ast_path: &mut AstNodePath<'r>,
31953    ) {
31954        if self.enabled {
31955            <V as VisitAstPath>::visit_ts_keyword_type(&mut self.visitor, node, __ast_path)
31956        } else {
31957        }
31958    }
31959
31960    #[inline]
31961    fn visit_ts_keyword_type_kind<'ast: 'r, 'r>(
31962        &mut self,
31963        node: &'ast TsKeywordTypeKind,
31964        __ast_path: &mut AstNodePath<'r>,
31965    ) {
31966        if self.enabled {
31967            <V as VisitAstPath>::visit_ts_keyword_type_kind(&mut self.visitor, node, __ast_path)
31968        } else {
31969        }
31970    }
31971
31972    #[inline]
31973    fn visit_ts_lit<'ast: 'r, 'r>(&mut self, node: &'ast TsLit, __ast_path: &mut AstNodePath<'r>) {
31974        if self.enabled {
31975            <V as VisitAstPath>::visit_ts_lit(&mut self.visitor, node, __ast_path)
31976        } else {
31977        }
31978    }
31979
31980    #[inline]
31981    fn visit_ts_lit_type<'ast: 'r, 'r>(
31982        &mut self,
31983        node: &'ast TsLitType,
31984        __ast_path: &mut AstNodePath<'r>,
31985    ) {
31986        if self.enabled {
31987            <V as VisitAstPath>::visit_ts_lit_type(&mut self.visitor, node, __ast_path)
31988        } else {
31989        }
31990    }
31991
31992    #[inline]
31993    fn visit_ts_mapped_type<'ast: 'r, 'r>(
31994        &mut self,
31995        node: &'ast TsMappedType,
31996        __ast_path: &mut AstNodePath<'r>,
31997    ) {
31998        if self.enabled {
31999            <V as VisitAstPath>::visit_ts_mapped_type(&mut self.visitor, node, __ast_path)
32000        } else {
32001        }
32002    }
32003
32004    #[inline]
32005    fn visit_ts_method_signature<'ast: 'r, 'r>(
32006        &mut self,
32007        node: &'ast TsMethodSignature,
32008        __ast_path: &mut AstNodePath<'r>,
32009    ) {
32010        if self.enabled {
32011            <V as VisitAstPath>::visit_ts_method_signature(&mut self.visitor, node, __ast_path)
32012        } else {
32013        }
32014    }
32015
32016    #[inline]
32017    fn visit_ts_module_block<'ast: 'r, 'r>(
32018        &mut self,
32019        node: &'ast TsModuleBlock,
32020        __ast_path: &mut AstNodePath<'r>,
32021    ) {
32022        if self.enabled {
32023            <V as VisitAstPath>::visit_ts_module_block(&mut self.visitor, node, __ast_path)
32024        } else {
32025        }
32026    }
32027
32028    #[inline]
32029    fn visit_ts_module_decl<'ast: 'r, 'r>(
32030        &mut self,
32031        node: &'ast TsModuleDecl,
32032        __ast_path: &mut AstNodePath<'r>,
32033    ) {
32034        if self.enabled {
32035            <V as VisitAstPath>::visit_ts_module_decl(&mut self.visitor, node, __ast_path)
32036        } else {
32037        }
32038    }
32039
32040    #[inline]
32041    fn visit_ts_module_name<'ast: 'r, 'r>(
32042        &mut self,
32043        node: &'ast TsModuleName,
32044        __ast_path: &mut AstNodePath<'r>,
32045    ) {
32046        if self.enabled {
32047            <V as VisitAstPath>::visit_ts_module_name(&mut self.visitor, node, __ast_path)
32048        } else {
32049        }
32050    }
32051
32052    #[inline]
32053    fn visit_ts_module_ref<'ast: 'r, 'r>(
32054        &mut self,
32055        node: &'ast TsModuleRef,
32056        __ast_path: &mut AstNodePath<'r>,
32057    ) {
32058        if self.enabled {
32059            <V as VisitAstPath>::visit_ts_module_ref(&mut self.visitor, node, __ast_path)
32060        } else {
32061        }
32062    }
32063
32064    #[inline]
32065    fn visit_ts_namespace_body<'ast: 'r, 'r>(
32066        &mut self,
32067        node: &'ast TsNamespaceBody,
32068        __ast_path: &mut AstNodePath<'r>,
32069    ) {
32070        if self.enabled {
32071            <V as VisitAstPath>::visit_ts_namespace_body(&mut self.visitor, node, __ast_path)
32072        } else {
32073        }
32074    }
32075
32076    #[inline]
32077    fn visit_ts_namespace_decl<'ast: 'r, 'r>(
32078        &mut self,
32079        node: &'ast TsNamespaceDecl,
32080        __ast_path: &mut AstNodePath<'r>,
32081    ) {
32082        if self.enabled {
32083            <V as VisitAstPath>::visit_ts_namespace_decl(&mut self.visitor, node, __ast_path)
32084        } else {
32085        }
32086    }
32087
32088    #[inline]
32089    fn visit_ts_namespace_export_decl<'ast: 'r, 'r>(
32090        &mut self,
32091        node: &'ast TsNamespaceExportDecl,
32092        __ast_path: &mut AstNodePath<'r>,
32093    ) {
32094        if self.enabled {
32095            <V as VisitAstPath>::visit_ts_namespace_export_decl(&mut self.visitor, node, __ast_path)
32096        } else {
32097        }
32098    }
32099
32100    #[inline]
32101    fn visit_ts_non_null_expr<'ast: 'r, 'r>(
32102        &mut self,
32103        node: &'ast TsNonNullExpr,
32104        __ast_path: &mut AstNodePath<'r>,
32105    ) {
32106        if self.enabled {
32107            <V as VisitAstPath>::visit_ts_non_null_expr(&mut self.visitor, node, __ast_path)
32108        } else {
32109        }
32110    }
32111
32112    #[inline]
32113    fn visit_ts_optional_type<'ast: 'r, 'r>(
32114        &mut self,
32115        node: &'ast TsOptionalType,
32116        __ast_path: &mut AstNodePath<'r>,
32117    ) {
32118        if self.enabled {
32119            <V as VisitAstPath>::visit_ts_optional_type(&mut self.visitor, node, __ast_path)
32120        } else {
32121        }
32122    }
32123
32124    #[inline]
32125    fn visit_ts_param_prop<'ast: 'r, 'r>(
32126        &mut self,
32127        node: &'ast TsParamProp,
32128        __ast_path: &mut AstNodePath<'r>,
32129    ) {
32130        if self.enabled {
32131            <V as VisitAstPath>::visit_ts_param_prop(&mut self.visitor, node, __ast_path)
32132        } else {
32133        }
32134    }
32135
32136    #[inline]
32137    fn visit_ts_param_prop_param<'ast: 'r, 'r>(
32138        &mut self,
32139        node: &'ast TsParamPropParam,
32140        __ast_path: &mut AstNodePath<'r>,
32141    ) {
32142        if self.enabled {
32143            <V as VisitAstPath>::visit_ts_param_prop_param(&mut self.visitor, node, __ast_path)
32144        } else {
32145        }
32146    }
32147
32148    #[inline]
32149    fn visit_ts_parenthesized_type<'ast: 'r, 'r>(
32150        &mut self,
32151        node: &'ast TsParenthesizedType,
32152        __ast_path: &mut AstNodePath<'r>,
32153    ) {
32154        if self.enabled {
32155            <V as VisitAstPath>::visit_ts_parenthesized_type(&mut self.visitor, node, __ast_path)
32156        } else {
32157        }
32158    }
32159
32160    #[inline]
32161    fn visit_ts_property_signature<'ast: 'r, 'r>(
32162        &mut self,
32163        node: &'ast TsPropertySignature,
32164        __ast_path: &mut AstNodePath<'r>,
32165    ) {
32166        if self.enabled {
32167            <V as VisitAstPath>::visit_ts_property_signature(&mut self.visitor, node, __ast_path)
32168        } else {
32169        }
32170    }
32171
32172    #[inline]
32173    fn visit_ts_qualified_name<'ast: 'r, 'r>(
32174        &mut self,
32175        node: &'ast TsQualifiedName,
32176        __ast_path: &mut AstNodePath<'r>,
32177    ) {
32178        if self.enabled {
32179            <V as VisitAstPath>::visit_ts_qualified_name(&mut self.visitor, node, __ast_path)
32180        } else {
32181        }
32182    }
32183
32184    #[inline]
32185    fn visit_ts_rest_type<'ast: 'r, 'r>(
32186        &mut self,
32187        node: &'ast TsRestType,
32188        __ast_path: &mut AstNodePath<'r>,
32189    ) {
32190        if self.enabled {
32191            <V as VisitAstPath>::visit_ts_rest_type(&mut self.visitor, node, __ast_path)
32192        } else {
32193        }
32194    }
32195
32196    #[inline]
32197    fn visit_ts_satisfies_expr<'ast: 'r, 'r>(
32198        &mut self,
32199        node: &'ast TsSatisfiesExpr,
32200        __ast_path: &mut AstNodePath<'r>,
32201    ) {
32202        if self.enabled {
32203            <V as VisitAstPath>::visit_ts_satisfies_expr(&mut self.visitor, node, __ast_path)
32204        } else {
32205        }
32206    }
32207
32208    #[inline]
32209    fn visit_ts_setter_signature<'ast: 'r, 'r>(
32210        &mut self,
32211        node: &'ast TsSetterSignature,
32212        __ast_path: &mut AstNodePath<'r>,
32213    ) {
32214        if self.enabled {
32215            <V as VisitAstPath>::visit_ts_setter_signature(&mut self.visitor, node, __ast_path)
32216        } else {
32217        }
32218    }
32219
32220    #[inline]
32221    fn visit_ts_this_type<'ast: 'r, 'r>(
32222        &mut self,
32223        node: &'ast TsThisType,
32224        __ast_path: &mut AstNodePath<'r>,
32225    ) {
32226        if self.enabled {
32227            <V as VisitAstPath>::visit_ts_this_type(&mut self.visitor, node, __ast_path)
32228        } else {
32229        }
32230    }
32231
32232    #[inline]
32233    fn visit_ts_this_type_or_ident<'ast: 'r, 'r>(
32234        &mut self,
32235        node: &'ast TsThisTypeOrIdent,
32236        __ast_path: &mut AstNodePath<'r>,
32237    ) {
32238        if self.enabled {
32239            <V as VisitAstPath>::visit_ts_this_type_or_ident(&mut self.visitor, node, __ast_path)
32240        } else {
32241        }
32242    }
32243
32244    #[inline]
32245    fn visit_ts_tpl_lit_type<'ast: 'r, 'r>(
32246        &mut self,
32247        node: &'ast TsTplLitType,
32248        __ast_path: &mut AstNodePath<'r>,
32249    ) {
32250        if self.enabled {
32251            <V as VisitAstPath>::visit_ts_tpl_lit_type(&mut self.visitor, node, __ast_path)
32252        } else {
32253        }
32254    }
32255
32256    #[inline]
32257    fn visit_ts_tuple_element<'ast: 'r, 'r>(
32258        &mut self,
32259        node: &'ast TsTupleElement,
32260        __ast_path: &mut AstNodePath<'r>,
32261    ) {
32262        if self.enabled {
32263            <V as VisitAstPath>::visit_ts_tuple_element(&mut self.visitor, node, __ast_path)
32264        } else {
32265        }
32266    }
32267
32268    #[inline]
32269    fn visit_ts_tuple_elements<'ast: 'r, 'r>(
32270        &mut self,
32271        node: &'ast [TsTupleElement],
32272        __ast_path: &mut AstNodePath<'r>,
32273    ) {
32274        if self.enabled {
32275            <V as VisitAstPath>::visit_ts_tuple_elements(&mut self.visitor, node, __ast_path)
32276        } else {
32277        }
32278    }
32279
32280    #[inline]
32281    fn visit_ts_tuple_type<'ast: 'r, 'r>(
32282        &mut self,
32283        node: &'ast TsTupleType,
32284        __ast_path: &mut AstNodePath<'r>,
32285    ) {
32286        if self.enabled {
32287            <V as VisitAstPath>::visit_ts_tuple_type(&mut self.visitor, node, __ast_path)
32288        } else {
32289        }
32290    }
32291
32292    #[inline]
32293    fn visit_ts_type<'ast: 'r, 'r>(
32294        &mut self,
32295        node: &'ast TsType,
32296        __ast_path: &mut AstNodePath<'r>,
32297    ) {
32298        if self.enabled {
32299            <V as VisitAstPath>::visit_ts_type(&mut self.visitor, node, __ast_path)
32300        } else {
32301        }
32302    }
32303
32304    #[inline]
32305    fn visit_ts_type_alias_decl<'ast: 'r, 'r>(
32306        &mut self,
32307        node: &'ast TsTypeAliasDecl,
32308        __ast_path: &mut AstNodePath<'r>,
32309    ) {
32310        if self.enabled {
32311            <V as VisitAstPath>::visit_ts_type_alias_decl(&mut self.visitor, node, __ast_path)
32312        } else {
32313        }
32314    }
32315
32316    #[inline]
32317    fn visit_ts_type_ann<'ast: 'r, 'r>(
32318        &mut self,
32319        node: &'ast TsTypeAnn,
32320        __ast_path: &mut AstNodePath<'r>,
32321    ) {
32322        if self.enabled {
32323            <V as VisitAstPath>::visit_ts_type_ann(&mut self.visitor, node, __ast_path)
32324        } else {
32325        }
32326    }
32327
32328    #[inline]
32329    fn visit_ts_type_assertion<'ast: 'r, 'r>(
32330        &mut self,
32331        node: &'ast TsTypeAssertion,
32332        __ast_path: &mut AstNodePath<'r>,
32333    ) {
32334        if self.enabled {
32335            <V as VisitAstPath>::visit_ts_type_assertion(&mut self.visitor, node, __ast_path)
32336        } else {
32337        }
32338    }
32339
32340    #[inline]
32341    fn visit_ts_type_element<'ast: 'r, 'r>(
32342        &mut self,
32343        node: &'ast TsTypeElement,
32344        __ast_path: &mut AstNodePath<'r>,
32345    ) {
32346        if self.enabled {
32347            <V as VisitAstPath>::visit_ts_type_element(&mut self.visitor, node, __ast_path)
32348        } else {
32349        }
32350    }
32351
32352    #[inline]
32353    fn visit_ts_type_elements<'ast: 'r, 'r>(
32354        &mut self,
32355        node: &'ast [TsTypeElement],
32356        __ast_path: &mut AstNodePath<'r>,
32357    ) {
32358        if self.enabled {
32359            <V as VisitAstPath>::visit_ts_type_elements(&mut self.visitor, node, __ast_path)
32360        } else {
32361        }
32362    }
32363
32364    #[inline]
32365    fn visit_ts_type_lit<'ast: 'r, 'r>(
32366        &mut self,
32367        node: &'ast TsTypeLit,
32368        __ast_path: &mut AstNodePath<'r>,
32369    ) {
32370        if self.enabled {
32371            <V as VisitAstPath>::visit_ts_type_lit(&mut self.visitor, node, __ast_path)
32372        } else {
32373        }
32374    }
32375
32376    #[inline]
32377    fn visit_ts_type_operator<'ast: 'r, 'r>(
32378        &mut self,
32379        node: &'ast TsTypeOperator,
32380        __ast_path: &mut AstNodePath<'r>,
32381    ) {
32382        if self.enabled {
32383            <V as VisitAstPath>::visit_ts_type_operator(&mut self.visitor, node, __ast_path)
32384        } else {
32385        }
32386    }
32387
32388    #[inline]
32389    fn visit_ts_type_operator_op<'ast: 'r, 'r>(
32390        &mut self,
32391        node: &'ast TsTypeOperatorOp,
32392        __ast_path: &mut AstNodePath<'r>,
32393    ) {
32394        if self.enabled {
32395            <V as VisitAstPath>::visit_ts_type_operator_op(&mut self.visitor, node, __ast_path)
32396        } else {
32397        }
32398    }
32399
32400    #[inline]
32401    fn visit_ts_type_param<'ast: 'r, 'r>(
32402        &mut self,
32403        node: &'ast TsTypeParam,
32404        __ast_path: &mut AstNodePath<'r>,
32405    ) {
32406        if self.enabled {
32407            <V as VisitAstPath>::visit_ts_type_param(&mut self.visitor, node, __ast_path)
32408        } else {
32409        }
32410    }
32411
32412    #[inline]
32413    fn visit_ts_type_param_decl<'ast: 'r, 'r>(
32414        &mut self,
32415        node: &'ast TsTypeParamDecl,
32416        __ast_path: &mut AstNodePath<'r>,
32417    ) {
32418        if self.enabled {
32419            <V as VisitAstPath>::visit_ts_type_param_decl(&mut self.visitor, node, __ast_path)
32420        } else {
32421        }
32422    }
32423
32424    #[inline]
32425    fn visit_ts_type_param_instantiation<'ast: 'r, 'r>(
32426        &mut self,
32427        node: &'ast TsTypeParamInstantiation,
32428        __ast_path: &mut AstNodePath<'r>,
32429    ) {
32430        if self.enabled {
32431            <V as VisitAstPath>::visit_ts_type_param_instantiation(
32432                &mut self.visitor,
32433                node,
32434                __ast_path,
32435            )
32436        } else {
32437        }
32438    }
32439
32440    #[inline]
32441    fn visit_ts_type_params<'ast: 'r, 'r>(
32442        &mut self,
32443        node: &'ast [TsTypeParam],
32444        __ast_path: &mut AstNodePath<'r>,
32445    ) {
32446        if self.enabled {
32447            <V as VisitAstPath>::visit_ts_type_params(&mut self.visitor, node, __ast_path)
32448        } else {
32449        }
32450    }
32451
32452    #[inline]
32453    fn visit_ts_type_predicate<'ast: 'r, 'r>(
32454        &mut self,
32455        node: &'ast TsTypePredicate,
32456        __ast_path: &mut AstNodePath<'r>,
32457    ) {
32458        if self.enabled {
32459            <V as VisitAstPath>::visit_ts_type_predicate(&mut self.visitor, node, __ast_path)
32460        } else {
32461        }
32462    }
32463
32464    #[inline]
32465    fn visit_ts_type_query<'ast: 'r, 'r>(
32466        &mut self,
32467        node: &'ast TsTypeQuery,
32468        __ast_path: &mut AstNodePath<'r>,
32469    ) {
32470        if self.enabled {
32471            <V as VisitAstPath>::visit_ts_type_query(&mut self.visitor, node, __ast_path)
32472        } else {
32473        }
32474    }
32475
32476    #[inline]
32477    fn visit_ts_type_query_expr<'ast: 'r, 'r>(
32478        &mut self,
32479        node: &'ast TsTypeQueryExpr,
32480        __ast_path: &mut AstNodePath<'r>,
32481    ) {
32482        if self.enabled {
32483            <V as VisitAstPath>::visit_ts_type_query_expr(&mut self.visitor, node, __ast_path)
32484        } else {
32485        }
32486    }
32487
32488    #[inline]
32489    fn visit_ts_type_ref<'ast: 'r, 'r>(
32490        &mut self,
32491        node: &'ast TsTypeRef,
32492        __ast_path: &mut AstNodePath<'r>,
32493    ) {
32494        if self.enabled {
32495            <V as VisitAstPath>::visit_ts_type_ref(&mut self.visitor, node, __ast_path)
32496        } else {
32497        }
32498    }
32499
32500    #[inline]
32501    fn visit_ts_types<'ast: 'r, 'r>(
32502        &mut self,
32503        node: &'ast [Box<TsType>],
32504        __ast_path: &mut AstNodePath<'r>,
32505    ) {
32506        if self.enabled {
32507            <V as VisitAstPath>::visit_ts_types(&mut self.visitor, node, __ast_path)
32508        } else {
32509        }
32510    }
32511
32512    #[inline]
32513    fn visit_ts_union_or_intersection_type<'ast: 'r, 'r>(
32514        &mut self,
32515        node: &'ast TsUnionOrIntersectionType,
32516        __ast_path: &mut AstNodePath<'r>,
32517    ) {
32518        if self.enabled {
32519            <V as VisitAstPath>::visit_ts_union_or_intersection_type(
32520                &mut self.visitor,
32521                node,
32522                __ast_path,
32523            )
32524        } else {
32525        }
32526    }
32527
32528    #[inline]
32529    fn visit_ts_union_type<'ast: 'r, 'r>(
32530        &mut self,
32531        node: &'ast TsUnionType,
32532        __ast_path: &mut AstNodePath<'r>,
32533    ) {
32534        if self.enabled {
32535            <V as VisitAstPath>::visit_ts_union_type(&mut self.visitor, node, __ast_path)
32536        } else {
32537        }
32538    }
32539
32540    #[inline]
32541    fn visit_unary_expr<'ast: 'r, 'r>(
32542        &mut self,
32543        node: &'ast UnaryExpr,
32544        __ast_path: &mut AstNodePath<'r>,
32545    ) {
32546        if self.enabled {
32547            <V as VisitAstPath>::visit_unary_expr(&mut self.visitor, node, __ast_path)
32548        } else {
32549        }
32550    }
32551
32552    #[inline]
32553    fn visit_unary_op<'ast: 'r, 'r>(
32554        &mut self,
32555        node: &'ast UnaryOp,
32556        __ast_path: &mut AstNodePath<'r>,
32557    ) {
32558        if self.enabled {
32559            <V as VisitAstPath>::visit_unary_op(&mut self.visitor, node, __ast_path)
32560        } else {
32561        }
32562    }
32563
32564    #[inline]
32565    fn visit_update_expr<'ast: 'r, 'r>(
32566        &mut self,
32567        node: &'ast UpdateExpr,
32568        __ast_path: &mut AstNodePath<'r>,
32569    ) {
32570        if self.enabled {
32571            <V as VisitAstPath>::visit_update_expr(&mut self.visitor, node, __ast_path)
32572        } else {
32573        }
32574    }
32575
32576    #[inline]
32577    fn visit_update_op<'ast: 'r, 'r>(
32578        &mut self,
32579        node: &'ast UpdateOp,
32580        __ast_path: &mut AstNodePath<'r>,
32581    ) {
32582        if self.enabled {
32583            <V as VisitAstPath>::visit_update_op(&mut self.visitor, node, __ast_path)
32584        } else {
32585        }
32586    }
32587
32588    #[inline]
32589    fn visit_using_decl<'ast: 'r, 'r>(
32590        &mut self,
32591        node: &'ast UsingDecl,
32592        __ast_path: &mut AstNodePath<'r>,
32593    ) {
32594        if self.enabled {
32595            <V as VisitAstPath>::visit_using_decl(&mut self.visitor, node, __ast_path)
32596        } else {
32597        }
32598    }
32599
32600    #[inline]
32601    fn visit_var_decl<'ast: 'r, 'r>(
32602        &mut self,
32603        node: &'ast VarDecl,
32604        __ast_path: &mut AstNodePath<'r>,
32605    ) {
32606        if self.enabled {
32607            <V as VisitAstPath>::visit_var_decl(&mut self.visitor, node, __ast_path)
32608        } else {
32609        }
32610    }
32611
32612    #[inline]
32613    fn visit_var_decl_kind<'ast: 'r, 'r>(
32614        &mut self,
32615        node: &'ast VarDeclKind,
32616        __ast_path: &mut AstNodePath<'r>,
32617    ) {
32618        if self.enabled {
32619            <V as VisitAstPath>::visit_var_decl_kind(&mut self.visitor, node, __ast_path)
32620        } else {
32621        }
32622    }
32623
32624    #[inline]
32625    fn visit_var_decl_or_expr<'ast: 'r, 'r>(
32626        &mut self,
32627        node: &'ast VarDeclOrExpr,
32628        __ast_path: &mut AstNodePath<'r>,
32629    ) {
32630        if self.enabled {
32631            <V as VisitAstPath>::visit_var_decl_or_expr(&mut self.visitor, node, __ast_path)
32632        } else {
32633        }
32634    }
32635
32636    #[inline]
32637    fn visit_var_declarator<'ast: 'r, 'r>(
32638        &mut self,
32639        node: &'ast VarDeclarator,
32640        __ast_path: &mut AstNodePath<'r>,
32641    ) {
32642        if self.enabled {
32643            <V as VisitAstPath>::visit_var_declarator(&mut self.visitor, node, __ast_path)
32644        } else {
32645        }
32646    }
32647
32648    #[inline]
32649    fn visit_var_declarators<'ast: 'r, 'r>(
32650        &mut self,
32651        node: &'ast [VarDeclarator],
32652        __ast_path: &mut AstNodePath<'r>,
32653    ) {
32654        if self.enabled {
32655            <V as VisitAstPath>::visit_var_declarators(&mut self.visitor, node, __ast_path)
32656        } else {
32657        }
32658    }
32659
32660    #[inline]
32661    fn visit_while_stmt<'ast: 'r, 'r>(
32662        &mut self,
32663        node: &'ast WhileStmt,
32664        __ast_path: &mut AstNodePath<'r>,
32665    ) {
32666        if self.enabled {
32667            <V as VisitAstPath>::visit_while_stmt(&mut self.visitor, node, __ast_path)
32668        } else {
32669        }
32670    }
32671
32672    #[inline]
32673    fn visit_with_stmt<'ast: 'r, 'r>(
32674        &mut self,
32675        node: &'ast WithStmt,
32676        __ast_path: &mut AstNodePath<'r>,
32677    ) {
32678        if self.enabled {
32679            <V as VisitAstPath>::visit_with_stmt(&mut self.visitor, node, __ast_path)
32680        } else {
32681        }
32682    }
32683
32684    #[inline]
32685    fn visit_yield_expr<'ast: 'r, 'r>(
32686        &mut self,
32687        node: &'ast YieldExpr,
32688        __ast_path: &mut AstNodePath<'r>,
32689    ) {
32690        if self.enabled {
32691            <V as VisitAstPath>::visit_yield_expr(&mut self.visitor, node, __ast_path)
32692        } else {
32693        }
32694    }
32695}
32696#[doc = r" A trait implemented for types that can be visited using a visitor."]
32697#[cfg(any(docsrs, feature = "path"))]
32698#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32699pub trait VisitWithAstPath<V: ?Sized + VisitAstPath> {
32700    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
32701    fn visit_with_ast_path<'ast: 'r, 'r>(
32702        &'ast self,
32703        visitor: &mut V,
32704        __ast_path: &mut AstNodePath<'r>,
32705    );
32706    #[doc = r" Visit children nodes of `self`` with `visitor`."]
32707    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32708        &'ast self,
32709        visitor: &mut V,
32710        __ast_path: &mut AstNodePath<'r>,
32711    );
32712}
32713#[cfg(any(docsrs, feature = "path"))]
32714#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32715impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Accessibility {
32716    #[doc = "Calls [VisitAstPath`::visit_accessibility`] with `self`."]
32717    fn visit_with_ast_path<'ast: 'r, 'r>(
32718        &'ast self,
32719        visitor: &mut V,
32720        __ast_path: &mut AstNodePath<'r>,
32721    ) {
32722        <V as VisitAstPath>::visit_accessibility(visitor, self, __ast_path)
32723    }
32724
32725    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32726        &'ast self,
32727        visitor: &mut V,
32728        __ast_path: &mut AstNodePath<'r>,
32729    ) {
32730        match self {
32731            Accessibility::Public => {}
32732            Accessibility::Protected => {}
32733            Accessibility::Private => {}
32734        }
32735    }
32736}
32737#[cfg(any(docsrs, feature = "path"))]
32738#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32739impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ArrayLit {
32740    #[doc = "Calls [VisitAstPath`::visit_array_lit`] with `self`."]
32741    fn visit_with_ast_path<'ast: 'r, 'r>(
32742        &'ast self,
32743        visitor: &mut V,
32744        __ast_path: &mut AstNodePath<'r>,
32745    ) {
32746        <V as VisitAstPath>::visit_array_lit(visitor, self, __ast_path)
32747    }
32748
32749    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32750        &'ast self,
32751        visitor: &mut V,
32752        __ast_path: &mut AstNodePath<'r>,
32753    ) {
32754        match self {
32755            ArrayLit { span, elems } => {
32756                {
32757                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayLit(
32758                        self,
32759                        self::fields::ArrayLitField::Span,
32760                    ));
32761                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
32762                        span,
32763                        visitor,
32764                        &mut *__ast_path,
32765                    )
32766                };
32767                {
32768                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayLit(
32769                        self,
32770                        self::fields::ArrayLitField::Elems(usize::MAX),
32771                    ));
32772                    <Vec<Option<ExprOrSpread>> as VisitWithAstPath<V>>::visit_with_ast_path(
32773                        elems,
32774                        visitor,
32775                        &mut *__ast_path,
32776                    )
32777                };
32778            }
32779        }
32780    }
32781}
32782#[cfg(any(docsrs, feature = "path"))]
32783#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32784impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ArrayPat {
32785    #[doc = "Calls [VisitAstPath`::visit_array_pat`] with `self`."]
32786    fn visit_with_ast_path<'ast: 'r, 'r>(
32787        &'ast self,
32788        visitor: &mut V,
32789        __ast_path: &mut AstNodePath<'r>,
32790    ) {
32791        <V as VisitAstPath>::visit_array_pat(visitor, self, __ast_path)
32792    }
32793
32794    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32795        &'ast self,
32796        visitor: &mut V,
32797        __ast_path: &mut AstNodePath<'r>,
32798    ) {
32799        match self {
32800            ArrayPat {
32801                span,
32802                elems,
32803                optional,
32804                type_ann,
32805            } => {
32806                {
32807                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayPat(
32808                        self,
32809                        self::fields::ArrayPatField::Span,
32810                    ));
32811                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
32812                        span,
32813                        visitor,
32814                        &mut *__ast_path,
32815                    )
32816                };
32817                {
32818                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayPat(
32819                        self,
32820                        self::fields::ArrayPatField::Elems(usize::MAX),
32821                    ));
32822                    <Vec<Option<Pat>> as VisitWithAstPath<V>>::visit_with_ast_path(
32823                        elems,
32824                        visitor,
32825                        &mut *__ast_path,
32826                    )
32827                };
32828                {
32829                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrayPat(
32830                        self,
32831                        self::fields::ArrayPatField::TypeAnn,
32832                    ));
32833                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
32834                        type_ann,
32835                        visitor,
32836                        &mut *__ast_path,
32837                    )
32838                };
32839            }
32840        }
32841    }
32842}
32843#[cfg(any(docsrs, feature = "path"))]
32844#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32845impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ArrowExpr {
32846    #[doc = "Calls [VisitAstPath`::visit_arrow_expr`] with `self`."]
32847    fn visit_with_ast_path<'ast: 'r, 'r>(
32848        &'ast self,
32849        visitor: &mut V,
32850        __ast_path: &mut AstNodePath<'r>,
32851    ) {
32852        <V as VisitAstPath>::visit_arrow_expr(visitor, self, __ast_path)
32853    }
32854
32855    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32856        &'ast self,
32857        visitor: &mut V,
32858        __ast_path: &mut AstNodePath<'r>,
32859    ) {
32860        match self {
32861            ArrowExpr {
32862                span,
32863                ctxt,
32864                params,
32865                body,
32866                is_async,
32867                is_generator,
32868                type_params,
32869                return_type,
32870            } => {
32871                {
32872                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
32873                        self,
32874                        self::fields::ArrowExprField::Span,
32875                    ));
32876                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
32877                        span,
32878                        visitor,
32879                        &mut *__ast_path,
32880                    )
32881                };
32882                {
32883                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
32884                        self,
32885                        self::fields::ArrowExprField::Ctxt,
32886                    ));
32887                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
32888                        ctxt,
32889                        visitor,
32890                        &mut *__ast_path,
32891                    )
32892                };
32893                {
32894                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
32895                        self,
32896                        self::fields::ArrowExprField::Params(usize::MAX),
32897                    ));
32898                    <Vec<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
32899                        params,
32900                        visitor,
32901                        &mut *__ast_path,
32902                    )
32903                };
32904                {
32905                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
32906                        self,
32907                        self::fields::ArrowExprField::Body,
32908                    ));
32909                    <Box<BlockStmtOrExpr> as VisitWithAstPath<V>>::visit_with_ast_path(
32910                        body,
32911                        visitor,
32912                        &mut *__ast_path,
32913                    )
32914                };
32915                {
32916                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
32917                        self,
32918                        self::fields::ArrowExprField::TypeParams,
32919                    ));
32920                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
32921                        type_params,
32922                        visitor,
32923                        &mut *__ast_path,
32924                    )
32925                };
32926                {
32927                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ArrowExpr(
32928                        self,
32929                        self::fields::ArrowExprField::ReturnType,
32930                    ));
32931                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
32932                        return_type,
32933                        visitor,
32934                        &mut *__ast_path,
32935                    )
32936                };
32937            }
32938        }
32939    }
32940}
32941#[cfg(any(docsrs, feature = "path"))]
32942#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
32943impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignExpr {
32944    #[doc = "Calls [VisitAstPath`::visit_assign_expr`] with `self`."]
32945    fn visit_with_ast_path<'ast: 'r, 'r>(
32946        &'ast self,
32947        visitor: &mut V,
32948        __ast_path: &mut AstNodePath<'r>,
32949    ) {
32950        <V as VisitAstPath>::visit_assign_expr(visitor, self, __ast_path)
32951    }
32952
32953    fn visit_children_with_ast_path<'ast: 'r, 'r>(
32954        &'ast self,
32955        visitor: &mut V,
32956        __ast_path: &mut AstNodePath<'r>,
32957    ) {
32958        match self {
32959            AssignExpr {
32960                span,
32961                op,
32962                left,
32963                right,
32964            } => {
32965                {
32966                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
32967                        self,
32968                        self::fields::AssignExprField::Span,
32969                    ));
32970                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
32971                        span,
32972                        visitor,
32973                        &mut *__ast_path,
32974                    )
32975                };
32976                {
32977                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
32978                        self,
32979                        self::fields::AssignExprField::Op,
32980                    ));
32981                    <AssignOp as VisitWithAstPath<V>>::visit_with_ast_path(
32982                        op,
32983                        visitor,
32984                        &mut *__ast_path,
32985                    )
32986                };
32987                {
32988                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
32989                        self,
32990                        self::fields::AssignExprField::Left,
32991                    ));
32992                    <AssignTarget as VisitWithAstPath<V>>::visit_with_ast_path(
32993                        left,
32994                        visitor,
32995                        &mut *__ast_path,
32996                    )
32997                };
32998                {
32999                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignExpr(
33000                        self,
33001                        self::fields::AssignExprField::Right,
33002                    ));
33003                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33004                        right,
33005                        visitor,
33006                        &mut *__ast_path,
33007                    )
33008                };
33009            }
33010        }
33011    }
33012}
33013#[cfg(any(docsrs, feature = "path"))]
33014#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33015impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignOp {
33016    #[doc = "Calls [VisitAstPath`::visit_assign_op`] with `self`."]
33017    fn visit_with_ast_path<'ast: 'r, 'r>(
33018        &'ast self,
33019        visitor: &mut V,
33020        __ast_path: &mut AstNodePath<'r>,
33021    ) {
33022        <V as VisitAstPath>::visit_assign_op(visitor, self, __ast_path)
33023    }
33024
33025    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33026        &'ast self,
33027        visitor: &mut V,
33028        __ast_path: &mut AstNodePath<'r>,
33029    ) {
33030        match self {
33031            AssignOp::Assign => {}
33032            AssignOp::AddAssign => {}
33033            AssignOp::SubAssign => {}
33034            AssignOp::MulAssign => {}
33035            AssignOp::DivAssign => {}
33036            AssignOp::ModAssign => {}
33037            AssignOp::LShiftAssign => {}
33038            AssignOp::RShiftAssign => {}
33039            AssignOp::ZeroFillRShiftAssign => {}
33040            AssignOp::BitOrAssign => {}
33041            AssignOp::BitXorAssign => {}
33042            AssignOp::BitAndAssign => {}
33043            AssignOp::ExpAssign => {}
33044            AssignOp::AndAssign => {}
33045            AssignOp::OrAssign => {}
33046            AssignOp::NullishAssign => {}
33047        }
33048    }
33049}
33050#[cfg(any(docsrs, feature = "path"))]
33051#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33052impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignPat {
33053    #[doc = "Calls [VisitAstPath`::visit_assign_pat`] with `self`."]
33054    fn visit_with_ast_path<'ast: 'r, 'r>(
33055        &'ast self,
33056        visitor: &mut V,
33057        __ast_path: &mut AstNodePath<'r>,
33058    ) {
33059        <V as VisitAstPath>::visit_assign_pat(visitor, self, __ast_path)
33060    }
33061
33062    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33063        &'ast self,
33064        visitor: &mut V,
33065        __ast_path: &mut AstNodePath<'r>,
33066    ) {
33067        match self {
33068            AssignPat { span, left, right } => {
33069                {
33070                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPat(
33071                        self,
33072                        self::fields::AssignPatField::Span,
33073                    ));
33074                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33075                        span,
33076                        visitor,
33077                        &mut *__ast_path,
33078                    )
33079                };
33080                {
33081                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPat(
33082                        self,
33083                        self::fields::AssignPatField::Left,
33084                    ));
33085                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
33086                        left,
33087                        visitor,
33088                        &mut *__ast_path,
33089                    )
33090                };
33091                {
33092                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPat(
33093                        self,
33094                        self::fields::AssignPatField::Right,
33095                    ));
33096                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33097                        right,
33098                        visitor,
33099                        &mut *__ast_path,
33100                    )
33101                };
33102            }
33103        }
33104    }
33105}
33106#[cfg(any(docsrs, feature = "path"))]
33107#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33108impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignPatProp {
33109    #[doc = "Calls [VisitAstPath`::visit_assign_pat_prop`] with `self`."]
33110    fn visit_with_ast_path<'ast: 'r, 'r>(
33111        &'ast self,
33112        visitor: &mut V,
33113        __ast_path: &mut AstNodePath<'r>,
33114    ) {
33115        <V as VisitAstPath>::visit_assign_pat_prop(visitor, self, __ast_path)
33116    }
33117
33118    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33119        &'ast self,
33120        visitor: &mut V,
33121        __ast_path: &mut AstNodePath<'r>,
33122    ) {
33123        match self {
33124            AssignPatProp { span, key, value } => {
33125                {
33126                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPatProp(
33127                        self,
33128                        self::fields::AssignPatPropField::Span,
33129                    ));
33130                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33131                        span,
33132                        visitor,
33133                        &mut *__ast_path,
33134                    )
33135                };
33136                {
33137                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPatProp(
33138                        self,
33139                        self::fields::AssignPatPropField::Key,
33140                    ));
33141                    <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
33142                        key,
33143                        visitor,
33144                        &mut *__ast_path,
33145                    )
33146                };
33147                {
33148                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignPatProp(
33149                        self,
33150                        self::fields::AssignPatPropField::Value,
33151                    ));
33152                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
33153                        value,
33154                        visitor,
33155                        &mut *__ast_path,
33156                    )
33157                };
33158            }
33159        }
33160    }
33161}
33162#[cfg(any(docsrs, feature = "path"))]
33163#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33164impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignProp {
33165    #[doc = "Calls [VisitAstPath`::visit_assign_prop`] with `self`."]
33166    fn visit_with_ast_path<'ast: 'r, 'r>(
33167        &'ast self,
33168        visitor: &mut V,
33169        __ast_path: &mut AstNodePath<'r>,
33170    ) {
33171        <V as VisitAstPath>::visit_assign_prop(visitor, self, __ast_path)
33172    }
33173
33174    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33175        &'ast self,
33176        visitor: &mut V,
33177        __ast_path: &mut AstNodePath<'r>,
33178    ) {
33179        match self {
33180            AssignProp { span, key, value } => {
33181                {
33182                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignProp(
33183                        self,
33184                        self::fields::AssignPropField::Span,
33185                    ));
33186                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33187                        span,
33188                        visitor,
33189                        &mut *__ast_path,
33190                    )
33191                };
33192                {
33193                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignProp(
33194                        self,
33195                        self::fields::AssignPropField::Key,
33196                    ));
33197                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
33198                        key,
33199                        visitor,
33200                        &mut *__ast_path,
33201                    )
33202                };
33203                {
33204                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignProp(
33205                        self,
33206                        self::fields::AssignPropField::Value,
33207                    ));
33208                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33209                        value,
33210                        visitor,
33211                        &mut *__ast_path,
33212                    )
33213                };
33214            }
33215        }
33216    }
33217}
33218#[cfg(any(docsrs, feature = "path"))]
33219#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33220impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignTarget {
33221    #[doc = "Calls [VisitAstPath`::visit_assign_target`] with `self`."]
33222    fn visit_with_ast_path<'ast: 'r, 'r>(
33223        &'ast self,
33224        visitor: &mut V,
33225        __ast_path: &mut AstNodePath<'r>,
33226    ) {
33227        <V as VisitAstPath>::visit_assign_target(visitor, self, __ast_path)
33228    }
33229
33230    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33231        &'ast self,
33232        visitor: &mut V,
33233        __ast_path: &mut AstNodePath<'r>,
33234    ) {
33235        match self {
33236            AssignTarget::Simple { 0: _field_0 } => {
33237                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTarget(
33238                    self,
33239                    self::fields::AssignTargetField::Simple,
33240                ));
33241                <SimpleAssignTarget as VisitWithAstPath<V>>::visit_with_ast_path(
33242                    _field_0,
33243                    visitor,
33244                    &mut *__ast_path,
33245                );
33246            }
33247            AssignTarget::Pat { 0: _field_0 } => {
33248                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTarget(
33249                    self,
33250                    self::fields::AssignTargetField::Pat,
33251                ));
33252                <AssignTargetPat as VisitWithAstPath<V>>::visit_with_ast_path(
33253                    _field_0,
33254                    visitor,
33255                    &mut *__ast_path,
33256                );
33257            }
33258        }
33259    }
33260}
33261#[cfg(any(docsrs, feature = "path"))]
33262#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33263impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AssignTargetPat {
33264    #[doc = "Calls [VisitAstPath`::visit_assign_target_pat`] with `self`."]
33265    fn visit_with_ast_path<'ast: 'r, 'r>(
33266        &'ast self,
33267        visitor: &mut V,
33268        __ast_path: &mut AstNodePath<'r>,
33269    ) {
33270        <V as VisitAstPath>::visit_assign_target_pat(visitor, self, __ast_path)
33271    }
33272
33273    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33274        &'ast self,
33275        visitor: &mut V,
33276        __ast_path: &mut AstNodePath<'r>,
33277    ) {
33278        match self {
33279            AssignTargetPat::Array { 0: _field_0 } => {
33280                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTargetPat(
33281                    self,
33282                    self::fields::AssignTargetPatField::Array,
33283                ));
33284                <ArrayPat as VisitWithAstPath<V>>::visit_with_ast_path(
33285                    _field_0,
33286                    visitor,
33287                    &mut *__ast_path,
33288                );
33289            }
33290            AssignTargetPat::Object { 0: _field_0 } => {
33291                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTargetPat(
33292                    self,
33293                    self::fields::AssignTargetPatField::Object,
33294                ));
33295                <ObjectPat as VisitWithAstPath<V>>::visit_with_ast_path(
33296                    _field_0,
33297                    visitor,
33298                    &mut *__ast_path,
33299                );
33300            }
33301            AssignTargetPat::Invalid { 0: _field_0 } => {
33302                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AssignTargetPat(
33303                    self,
33304                    self::fields::AssignTargetPatField::Invalid,
33305                ));
33306                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
33307                    _field_0,
33308                    visitor,
33309                    &mut *__ast_path,
33310                );
33311            }
33312        }
33313    }
33314}
33315#[cfg(any(docsrs, feature = "path"))]
33316#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33317impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AutoAccessor {
33318    #[doc = "Calls [VisitAstPath`::visit_auto_accessor`] with `self`."]
33319    fn visit_with_ast_path<'ast: 'r, 'r>(
33320        &'ast self,
33321        visitor: &mut V,
33322        __ast_path: &mut AstNodePath<'r>,
33323    ) {
33324        <V as VisitAstPath>::visit_auto_accessor(visitor, self, __ast_path)
33325    }
33326
33327    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33328        &'ast self,
33329        visitor: &mut V,
33330        __ast_path: &mut AstNodePath<'r>,
33331    ) {
33332        match self {
33333            AutoAccessor {
33334                span,
33335                key,
33336                value,
33337                type_ann,
33338                is_static,
33339                decorators,
33340                accessibility,
33341                is_abstract,
33342                is_override,
33343                definite,
33344            } => {
33345                {
33346                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33347                        self,
33348                        self::fields::AutoAccessorField::Span,
33349                    ));
33350                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33351                        span,
33352                        visitor,
33353                        &mut *__ast_path,
33354                    )
33355                };
33356                {
33357                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33358                        self,
33359                        self::fields::AutoAccessorField::Key,
33360                    ));
33361                    <Key as VisitWithAstPath<V>>::visit_with_ast_path(
33362                        key,
33363                        visitor,
33364                        &mut *__ast_path,
33365                    )
33366                };
33367                {
33368                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33369                        self,
33370                        self::fields::AutoAccessorField::Value,
33371                    ));
33372                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
33373                        value,
33374                        visitor,
33375                        &mut *__ast_path,
33376                    )
33377                };
33378                {
33379                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33380                        self,
33381                        self::fields::AutoAccessorField::TypeAnn,
33382                    ));
33383                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
33384                        type_ann,
33385                        visitor,
33386                        &mut *__ast_path,
33387                    )
33388                };
33389                {
33390                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33391                        self,
33392                        self::fields::AutoAccessorField::Decorators(usize::MAX),
33393                    ));
33394                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
33395                        decorators,
33396                        visitor,
33397                        &mut *__ast_path,
33398                    )
33399                };
33400                {
33401                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AutoAccessor(
33402                        self,
33403                        self::fields::AutoAccessorField::Accessibility,
33404                    ));
33405                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
33406                        accessibility,
33407                        visitor,
33408                        &mut *__ast_path,
33409                    )
33410                };
33411            }
33412        }
33413    }
33414}
33415#[cfg(any(docsrs, feature = "path"))]
33416#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33417impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for AwaitExpr {
33418    #[doc = "Calls [VisitAstPath`::visit_await_expr`] with `self`."]
33419    fn visit_with_ast_path<'ast: 'r, 'r>(
33420        &'ast self,
33421        visitor: &mut V,
33422        __ast_path: &mut AstNodePath<'r>,
33423    ) {
33424        <V as VisitAstPath>::visit_await_expr(visitor, self, __ast_path)
33425    }
33426
33427    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33428        &'ast self,
33429        visitor: &mut V,
33430        __ast_path: &mut AstNodePath<'r>,
33431    ) {
33432        match self {
33433            AwaitExpr { span, arg } => {
33434                {
33435                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AwaitExpr(
33436                        self,
33437                        self::fields::AwaitExprField::Span,
33438                    ));
33439                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33440                        span,
33441                        visitor,
33442                        &mut *__ast_path,
33443                    )
33444                };
33445                {
33446                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::AwaitExpr(
33447                        self,
33448                        self::fields::AwaitExprField::Arg,
33449                    ));
33450                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33451                        arg,
33452                        visitor,
33453                        &mut *__ast_path,
33454                    )
33455                };
33456            }
33457        }
33458    }
33459}
33460#[cfg(any(docsrs, feature = "path"))]
33461#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33462impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BigInt {
33463    #[doc = "Calls [VisitAstPath`::visit_big_int`] with `self`."]
33464    fn visit_with_ast_path<'ast: 'r, 'r>(
33465        &'ast self,
33466        visitor: &mut V,
33467        __ast_path: &mut AstNodePath<'r>,
33468    ) {
33469        <V as VisitAstPath>::visit_big_int(visitor, self, __ast_path)
33470    }
33471
33472    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33473        &'ast self,
33474        visitor: &mut V,
33475        __ast_path: &mut AstNodePath<'r>,
33476    ) {
33477        match self {
33478            BigInt { span, value, raw } => {
33479                {
33480                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BigInt(
33481                        self,
33482                        self::fields::BigIntField::Span,
33483                    ));
33484                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33485                        span,
33486                        visitor,
33487                        &mut *__ast_path,
33488                    )
33489                };
33490                {
33491                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BigInt(
33492                        self,
33493                        self::fields::BigIntField::Value,
33494                    ));
33495                    <Box<BigIntValue> as VisitWithAstPath<V>>::visit_with_ast_path(
33496                        value,
33497                        visitor,
33498                        &mut *__ast_path,
33499                    )
33500                };
33501                {
33502                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BigInt(
33503                        self,
33504                        self::fields::BigIntField::Raw,
33505                    ));
33506                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
33507                        raw,
33508                        visitor,
33509                        &mut *__ast_path,
33510                    )
33511                };
33512            }
33513        }
33514    }
33515}
33516#[cfg(any(docsrs, feature = "path"))]
33517#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33518impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BinExpr {
33519    #[doc = "Calls [VisitAstPath`::visit_bin_expr`] with `self`."]
33520    fn visit_with_ast_path<'ast: 'r, 'r>(
33521        &'ast self,
33522        visitor: &mut V,
33523        __ast_path: &mut AstNodePath<'r>,
33524    ) {
33525        <V as VisitAstPath>::visit_bin_expr(visitor, self, __ast_path)
33526    }
33527
33528    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33529        &'ast self,
33530        visitor: &mut V,
33531        __ast_path: &mut AstNodePath<'r>,
33532    ) {
33533        match self {
33534            BinExpr {
33535                span,
33536                op,
33537                left,
33538                right,
33539            } => {
33540                {
33541                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33542                        self,
33543                        self::fields::BinExprField::Span,
33544                    ));
33545                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33546                        span,
33547                        visitor,
33548                        &mut *__ast_path,
33549                    )
33550                };
33551                {
33552                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33553                        self,
33554                        self::fields::BinExprField::Op,
33555                    ));
33556                    <BinaryOp as VisitWithAstPath<V>>::visit_with_ast_path(
33557                        op,
33558                        visitor,
33559                        &mut *__ast_path,
33560                    )
33561                };
33562                {
33563                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33564                        self,
33565                        self::fields::BinExprField::Left,
33566                    ));
33567                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33568                        left,
33569                        visitor,
33570                        &mut *__ast_path,
33571                    )
33572                };
33573                {
33574                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BinExpr(
33575                        self,
33576                        self::fields::BinExprField::Right,
33577                    ));
33578                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33579                        right,
33580                        visitor,
33581                        &mut *__ast_path,
33582                    )
33583                };
33584            }
33585        }
33586    }
33587}
33588#[cfg(any(docsrs, feature = "path"))]
33589#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33590impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BinaryOp {
33591    #[doc = "Calls [VisitAstPath`::visit_binary_op`] with `self`."]
33592    fn visit_with_ast_path<'ast: 'r, 'r>(
33593        &'ast self,
33594        visitor: &mut V,
33595        __ast_path: &mut AstNodePath<'r>,
33596    ) {
33597        <V as VisitAstPath>::visit_binary_op(visitor, self, __ast_path)
33598    }
33599
33600    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33601        &'ast self,
33602        visitor: &mut V,
33603        __ast_path: &mut AstNodePath<'r>,
33604    ) {
33605        match self {
33606            BinaryOp::EqEq => {}
33607            BinaryOp::NotEq => {}
33608            BinaryOp::EqEqEq => {}
33609            BinaryOp::NotEqEq => {}
33610            BinaryOp::Lt => {}
33611            BinaryOp::LtEq => {}
33612            BinaryOp::Gt => {}
33613            BinaryOp::GtEq => {}
33614            BinaryOp::LShift => {}
33615            BinaryOp::RShift => {}
33616            BinaryOp::ZeroFillRShift => {}
33617            BinaryOp::Add => {}
33618            BinaryOp::Sub => {}
33619            BinaryOp::Mul => {}
33620            BinaryOp::Div => {}
33621            BinaryOp::Mod => {}
33622            BinaryOp::BitOr => {}
33623            BinaryOp::BitXor => {}
33624            BinaryOp::BitAnd => {}
33625            BinaryOp::LogicalOr => {}
33626            BinaryOp::LogicalAnd => {}
33627            BinaryOp::In => {}
33628            BinaryOp::InstanceOf => {}
33629            BinaryOp::Exp => {}
33630            BinaryOp::NullishCoalescing => {}
33631        }
33632    }
33633}
33634#[cfg(any(docsrs, feature = "path"))]
33635#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33636impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BindingIdent {
33637    #[doc = "Calls [VisitAstPath`::visit_binding_ident`] with `self`."]
33638    fn visit_with_ast_path<'ast: 'r, 'r>(
33639        &'ast self,
33640        visitor: &mut V,
33641        __ast_path: &mut AstNodePath<'r>,
33642    ) {
33643        <V as VisitAstPath>::visit_binding_ident(visitor, self, __ast_path)
33644    }
33645
33646    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33647        &'ast self,
33648        visitor: &mut V,
33649        __ast_path: &mut AstNodePath<'r>,
33650    ) {
33651        match self {
33652            BindingIdent { id, type_ann } => {
33653                {
33654                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BindingIdent(
33655                        self,
33656                        self::fields::BindingIdentField::Id,
33657                    ));
33658                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
33659                        id,
33660                        visitor,
33661                        &mut *__ast_path,
33662                    )
33663                };
33664                {
33665                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BindingIdent(
33666                        self,
33667                        self::fields::BindingIdentField::TypeAnn,
33668                    ));
33669                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
33670                        type_ann,
33671                        visitor,
33672                        &mut *__ast_path,
33673                    )
33674                };
33675            }
33676        }
33677    }
33678}
33679#[cfg(any(docsrs, feature = "path"))]
33680#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33681impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BlockStmt {
33682    #[doc = "Calls [VisitAstPath`::visit_block_stmt`] with `self`."]
33683    fn visit_with_ast_path<'ast: 'r, 'r>(
33684        &'ast self,
33685        visitor: &mut V,
33686        __ast_path: &mut AstNodePath<'r>,
33687    ) {
33688        <V as VisitAstPath>::visit_block_stmt(visitor, self, __ast_path)
33689    }
33690
33691    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33692        &'ast self,
33693        visitor: &mut V,
33694        __ast_path: &mut AstNodePath<'r>,
33695    ) {
33696        match self {
33697            BlockStmt { span, ctxt, stmts } => {
33698                {
33699                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmt(
33700                        self,
33701                        self::fields::BlockStmtField::Span,
33702                    ));
33703                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33704                        span,
33705                        visitor,
33706                        &mut *__ast_path,
33707                    )
33708                };
33709                {
33710                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmt(
33711                        self,
33712                        self::fields::BlockStmtField::Ctxt,
33713                    ));
33714                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
33715                        ctxt,
33716                        visitor,
33717                        &mut *__ast_path,
33718                    )
33719                };
33720                {
33721                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmt(
33722                        self,
33723                        self::fields::BlockStmtField::Stmts(usize::MAX),
33724                    ));
33725                    <Vec<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
33726                        stmts,
33727                        visitor,
33728                        &mut *__ast_path,
33729                    )
33730                };
33731            }
33732        }
33733    }
33734}
33735#[cfg(any(docsrs, feature = "path"))]
33736#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33737impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BlockStmtOrExpr {
33738    #[doc = "Calls [VisitAstPath`::visit_block_stmt_or_expr`] with `self`."]
33739    fn visit_with_ast_path<'ast: 'r, 'r>(
33740        &'ast self,
33741        visitor: &mut V,
33742        __ast_path: &mut AstNodePath<'r>,
33743    ) {
33744        <V as VisitAstPath>::visit_block_stmt_or_expr(visitor, self, __ast_path)
33745    }
33746
33747    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33748        &'ast self,
33749        visitor: &mut V,
33750        __ast_path: &mut AstNodePath<'r>,
33751    ) {
33752        match self {
33753            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
33754                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmtOrExpr(
33755                    self,
33756                    self::fields::BlockStmtOrExprField::BlockStmt,
33757                ));
33758                <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
33759                    _field_0,
33760                    visitor,
33761                    &mut *__ast_path,
33762                );
33763            }
33764            BlockStmtOrExpr::Expr { 0: _field_0 } => {
33765                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BlockStmtOrExpr(
33766                    self,
33767                    self::fields::BlockStmtOrExprField::Expr,
33768                ));
33769                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33770                    _field_0,
33771                    visitor,
33772                    &mut *__ast_path,
33773                );
33774            }
33775        }
33776    }
33777}
33778#[cfg(any(docsrs, feature = "path"))]
33779#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33780impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Bool {
33781    #[doc = "Calls [VisitAstPath`::visit_bool`] with `self`."]
33782    fn visit_with_ast_path<'ast: 'r, 'r>(
33783        &'ast self,
33784        visitor: &mut V,
33785        __ast_path: &mut AstNodePath<'r>,
33786    ) {
33787        <V as VisitAstPath>::visit_bool(visitor, self, __ast_path)
33788    }
33789
33790    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33791        &'ast self,
33792        visitor: &mut V,
33793        __ast_path: &mut AstNodePath<'r>,
33794    ) {
33795        match self {
33796            Bool { span, value } => {
33797                {
33798                    let mut __ast_path = __ast_path
33799                        .with_guard(AstParentNodeRef::Bool(self, self::fields::BoolField::Span));
33800                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33801                        span,
33802                        visitor,
33803                        &mut *__ast_path,
33804                    )
33805                };
33806            }
33807        }
33808    }
33809}
33810#[cfg(any(docsrs, feature = "path"))]
33811#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33812impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BreakStmt {
33813    #[doc = "Calls [VisitAstPath`::visit_break_stmt`] with `self`."]
33814    fn visit_with_ast_path<'ast: 'r, 'r>(
33815        &'ast self,
33816        visitor: &mut V,
33817        __ast_path: &mut AstNodePath<'r>,
33818    ) {
33819        <V as VisitAstPath>::visit_break_stmt(visitor, self, __ast_path)
33820    }
33821
33822    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33823        &'ast self,
33824        visitor: &mut V,
33825        __ast_path: &mut AstNodePath<'r>,
33826    ) {
33827        match self {
33828            BreakStmt { span, label } => {
33829                {
33830                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BreakStmt(
33831                        self,
33832                        self::fields::BreakStmtField::Span,
33833                    ));
33834                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33835                        span,
33836                        visitor,
33837                        &mut *__ast_path,
33838                    )
33839                };
33840                {
33841                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::BreakStmt(
33842                        self,
33843                        self::fields::BreakStmtField::Label,
33844                    ));
33845                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
33846                        label,
33847                        visitor,
33848                        &mut *__ast_path,
33849                    )
33850                };
33851            }
33852        }
33853    }
33854}
33855#[cfg(any(docsrs, feature = "path"))]
33856#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33857impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for CallExpr {
33858    #[doc = "Calls [VisitAstPath`::visit_call_expr`] with `self`."]
33859    fn visit_with_ast_path<'ast: 'r, 'r>(
33860        &'ast self,
33861        visitor: &mut V,
33862        __ast_path: &mut AstNodePath<'r>,
33863    ) {
33864        <V as VisitAstPath>::visit_call_expr(visitor, self, __ast_path)
33865    }
33866
33867    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33868        &'ast self,
33869        visitor: &mut V,
33870        __ast_path: &mut AstNodePath<'r>,
33871    ) {
33872        match self {
33873            CallExpr {
33874                span,
33875                ctxt,
33876                callee,
33877                args,
33878                type_args,
33879            } => {
33880                {
33881                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
33882                        self,
33883                        self::fields::CallExprField::Span,
33884                    ));
33885                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
33886                        span,
33887                        visitor,
33888                        &mut *__ast_path,
33889                    )
33890                };
33891                {
33892                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
33893                        self,
33894                        self::fields::CallExprField::Ctxt,
33895                    ));
33896                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
33897                        ctxt,
33898                        visitor,
33899                        &mut *__ast_path,
33900                    )
33901                };
33902                {
33903                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
33904                        self,
33905                        self::fields::CallExprField::Callee,
33906                    ));
33907                    <Callee as VisitWithAstPath<V>>::visit_with_ast_path(
33908                        callee,
33909                        visitor,
33910                        &mut *__ast_path,
33911                    )
33912                };
33913                {
33914                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
33915                        self,
33916                        self::fields::CallExprField::Args(usize::MAX),
33917                    ));
33918                    <Vec<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
33919                        args,
33920                        visitor,
33921                        &mut *__ast_path,
33922                    )
33923                };
33924                {
33925                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CallExpr(
33926                        self,
33927                        self::fields::CallExprField::TypeArgs,
33928                    ));
33929                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
33930                };
33931            }
33932        }
33933    }
33934}
33935#[cfg(any(docsrs, feature = "path"))]
33936#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33937impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Callee {
33938    #[doc = "Calls [VisitAstPath`::visit_callee`] with `self`."]
33939    fn visit_with_ast_path<'ast: 'r, 'r>(
33940        &'ast self,
33941        visitor: &mut V,
33942        __ast_path: &mut AstNodePath<'r>,
33943    ) {
33944        <V as VisitAstPath>::visit_callee(visitor, self, __ast_path)
33945    }
33946
33947    fn visit_children_with_ast_path<'ast: 'r, 'r>(
33948        &'ast self,
33949        visitor: &mut V,
33950        __ast_path: &mut AstNodePath<'r>,
33951    ) {
33952        match self {
33953            Callee::Super { 0: _field_0 } => {
33954                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Callee(
33955                    self,
33956                    self::fields::CalleeField::Super,
33957                ));
33958                <Super as VisitWithAstPath<V>>::visit_with_ast_path(
33959                    _field_0,
33960                    visitor,
33961                    &mut *__ast_path,
33962                );
33963            }
33964            Callee::Import { 0: _field_0 } => {
33965                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Callee(
33966                    self,
33967                    self::fields::CalleeField::Import,
33968                ));
33969                <Import as VisitWithAstPath<V>>::visit_with_ast_path(
33970                    _field_0,
33971                    visitor,
33972                    &mut *__ast_path,
33973                );
33974            }
33975            Callee::Expr { 0: _field_0 } => {
33976                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Callee(
33977                    self,
33978                    self::fields::CalleeField::Expr,
33979                ));
33980                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
33981                    _field_0,
33982                    visitor,
33983                    &mut *__ast_path,
33984                );
33985            }
33986        }
33987    }
33988}
33989#[cfg(any(docsrs, feature = "path"))]
33990#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
33991impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for CatchClause {
33992    #[doc = "Calls [VisitAstPath`::visit_catch_clause`] with `self`."]
33993    fn visit_with_ast_path<'ast: 'r, 'r>(
33994        &'ast self,
33995        visitor: &mut V,
33996        __ast_path: &mut AstNodePath<'r>,
33997    ) {
33998        <V as VisitAstPath>::visit_catch_clause(visitor, self, __ast_path)
33999    }
34000
34001    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34002        &'ast self,
34003        visitor: &mut V,
34004        __ast_path: &mut AstNodePath<'r>,
34005    ) {
34006        match self {
34007            CatchClause { span, param, body } => {
34008                {
34009                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CatchClause(
34010                        self,
34011                        self::fields::CatchClauseField::Span,
34012                    ));
34013                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34014                        span,
34015                        visitor,
34016                        &mut *__ast_path,
34017                    )
34018                };
34019                {
34020                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CatchClause(
34021                        self,
34022                        self::fields::CatchClauseField::Param,
34023                    ));
34024                    <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
34025                        param,
34026                        visitor,
34027                        &mut *__ast_path,
34028                    )
34029                };
34030                {
34031                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CatchClause(
34032                        self,
34033                        self::fields::CatchClauseField::Body,
34034                    ));
34035                    <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
34036                        body,
34037                        visitor,
34038                        &mut *__ast_path,
34039                    )
34040                };
34041            }
34042        }
34043    }
34044}
34045#[cfg(any(docsrs, feature = "path"))]
34046#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34047impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Class {
34048    #[doc = "Calls [VisitAstPath`::visit_class`] with `self`."]
34049    fn visit_with_ast_path<'ast: 'r, 'r>(
34050        &'ast self,
34051        visitor: &mut V,
34052        __ast_path: &mut AstNodePath<'r>,
34053    ) {
34054        <V as VisitAstPath>::visit_class(visitor, self, __ast_path)
34055    }
34056
34057    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34058        &'ast self,
34059        visitor: &mut V,
34060        __ast_path: &mut AstNodePath<'r>,
34061    ) {
34062        match self {
34063            Class {
34064                span,
34065                ctxt,
34066                decorators,
34067                body,
34068                super_class,
34069                is_abstract,
34070                type_params,
34071                super_type_params,
34072                implements,
34073            } => {
34074                {
34075                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34076                        self,
34077                        self::fields::ClassField::Span,
34078                    ));
34079                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34080                        span,
34081                        visitor,
34082                        &mut *__ast_path,
34083                    )
34084                };
34085                {
34086                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34087                        self,
34088                        self::fields::ClassField::Ctxt,
34089                    ));
34090                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
34091                        ctxt,
34092                        visitor,
34093                        &mut *__ast_path,
34094                    )
34095                };
34096                {
34097                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34098                        self,
34099                        self::fields::ClassField::Decorators(usize::MAX),
34100                    ));
34101                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
34102                        decorators,
34103                        visitor,
34104                        &mut *__ast_path,
34105                    )
34106                };
34107                {
34108                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34109                        self,
34110                        self::fields::ClassField::Body(usize::MAX),
34111                    ));
34112                    <Vec<ClassMember> as VisitWithAstPath<V>>::visit_with_ast_path(
34113                        body,
34114                        visitor,
34115                        &mut *__ast_path,
34116                    )
34117                };
34118                {
34119                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34120                        self,
34121                        self::fields::ClassField::SuperClass,
34122                    ));
34123                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
34124                        super_class,
34125                        visitor,
34126                        &mut *__ast_path,
34127                    )
34128                };
34129                {
34130                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34131                        self,
34132                        self::fields::ClassField::TypeParams,
34133                    ));
34134                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
34135                        type_params,
34136                        visitor,
34137                        &mut *__ast_path,
34138                    )
34139                };
34140                {
34141                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34142                        self,
34143                        self::fields::ClassField::SuperTypeParams,
34144                    ));
34145                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (super_type_params , visitor , & mut * __ast_path)
34146                };
34147                {
34148                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Class(
34149                        self,
34150                        self::fields::ClassField::Implements(usize::MAX),
34151                    ));
34152                    <Vec<TsExprWithTypeArgs> as VisitWithAstPath<V>>::visit_with_ast_path(
34153                        implements,
34154                        visitor,
34155                        &mut *__ast_path,
34156                    )
34157                };
34158            }
34159        }
34160    }
34161}
34162#[cfg(any(docsrs, feature = "path"))]
34163#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34164impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassDecl {
34165    #[doc = "Calls [VisitAstPath`::visit_class_decl`] with `self`."]
34166    fn visit_with_ast_path<'ast: 'r, 'r>(
34167        &'ast self,
34168        visitor: &mut V,
34169        __ast_path: &mut AstNodePath<'r>,
34170    ) {
34171        <V as VisitAstPath>::visit_class_decl(visitor, self, __ast_path)
34172    }
34173
34174    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34175        &'ast self,
34176        visitor: &mut V,
34177        __ast_path: &mut AstNodePath<'r>,
34178    ) {
34179        match self {
34180            ClassDecl {
34181                ident,
34182                declare,
34183                class,
34184            } => {
34185                {
34186                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassDecl(
34187                        self,
34188                        self::fields::ClassDeclField::Ident,
34189                    ));
34190                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
34191                        ident,
34192                        visitor,
34193                        &mut *__ast_path,
34194                    )
34195                };
34196                {
34197                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassDecl(
34198                        self,
34199                        self::fields::ClassDeclField::Class,
34200                    ));
34201                    <Box<Class> as VisitWithAstPath<V>>::visit_with_ast_path(
34202                        class,
34203                        visitor,
34204                        &mut *__ast_path,
34205                    )
34206                };
34207            }
34208        }
34209    }
34210}
34211#[cfg(any(docsrs, feature = "path"))]
34212#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34213impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassExpr {
34214    #[doc = "Calls [VisitAstPath`::visit_class_expr`] with `self`."]
34215    fn visit_with_ast_path<'ast: 'r, 'r>(
34216        &'ast self,
34217        visitor: &mut V,
34218        __ast_path: &mut AstNodePath<'r>,
34219    ) {
34220        <V as VisitAstPath>::visit_class_expr(visitor, self, __ast_path)
34221    }
34222
34223    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34224        &'ast self,
34225        visitor: &mut V,
34226        __ast_path: &mut AstNodePath<'r>,
34227    ) {
34228        match self {
34229            ClassExpr { ident, class } => {
34230                {
34231                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassExpr(
34232                        self,
34233                        self::fields::ClassExprField::Ident,
34234                    ));
34235                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
34236                        ident,
34237                        visitor,
34238                        &mut *__ast_path,
34239                    )
34240                };
34241                {
34242                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassExpr(
34243                        self,
34244                        self::fields::ClassExprField::Class,
34245                    ));
34246                    <Box<Class> as VisitWithAstPath<V>>::visit_with_ast_path(
34247                        class,
34248                        visitor,
34249                        &mut *__ast_path,
34250                    )
34251                };
34252            }
34253        }
34254    }
34255}
34256#[cfg(any(docsrs, feature = "path"))]
34257#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34258impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassMember {
34259    #[doc = "Calls [VisitAstPath`::visit_class_member`] with `self`."]
34260    fn visit_with_ast_path<'ast: 'r, 'r>(
34261        &'ast self,
34262        visitor: &mut V,
34263        __ast_path: &mut AstNodePath<'r>,
34264    ) {
34265        <V as VisitAstPath>::visit_class_member(visitor, self, __ast_path)
34266    }
34267
34268    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34269        &'ast self,
34270        visitor: &mut V,
34271        __ast_path: &mut AstNodePath<'r>,
34272    ) {
34273        match self {
34274            ClassMember::Constructor { 0: _field_0 } => {
34275                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34276                    self,
34277                    self::fields::ClassMemberField::Constructor,
34278                ));
34279                <Constructor as VisitWithAstPath<V>>::visit_with_ast_path(
34280                    _field_0,
34281                    visitor,
34282                    &mut *__ast_path,
34283                );
34284            }
34285            ClassMember::Method { 0: _field_0 } => {
34286                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34287                    self,
34288                    self::fields::ClassMemberField::Method,
34289                ));
34290                <ClassMethod as VisitWithAstPath<V>>::visit_with_ast_path(
34291                    _field_0,
34292                    visitor,
34293                    &mut *__ast_path,
34294                );
34295            }
34296            ClassMember::PrivateMethod { 0: _field_0 } => {
34297                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34298                    self,
34299                    self::fields::ClassMemberField::PrivateMethod,
34300                ));
34301                <PrivateMethod as VisitWithAstPath<V>>::visit_with_ast_path(
34302                    _field_0,
34303                    visitor,
34304                    &mut *__ast_path,
34305                );
34306            }
34307            ClassMember::ClassProp { 0: _field_0 } => {
34308                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34309                    self,
34310                    self::fields::ClassMemberField::ClassProp,
34311                ));
34312                <ClassProp as VisitWithAstPath<V>>::visit_with_ast_path(
34313                    _field_0,
34314                    visitor,
34315                    &mut *__ast_path,
34316                );
34317            }
34318            ClassMember::PrivateProp { 0: _field_0 } => {
34319                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34320                    self,
34321                    self::fields::ClassMemberField::PrivateProp,
34322                ));
34323                <PrivateProp as VisitWithAstPath<V>>::visit_with_ast_path(
34324                    _field_0,
34325                    visitor,
34326                    &mut *__ast_path,
34327                );
34328            }
34329            ClassMember::TsIndexSignature { 0: _field_0 } => {
34330                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34331                    self,
34332                    self::fields::ClassMemberField::TsIndexSignature,
34333                ));
34334                <TsIndexSignature as VisitWithAstPath<V>>::visit_with_ast_path(
34335                    _field_0,
34336                    visitor,
34337                    &mut *__ast_path,
34338                );
34339            }
34340            ClassMember::Empty { 0: _field_0 } => {
34341                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34342                    self,
34343                    self::fields::ClassMemberField::Empty,
34344                ));
34345                <EmptyStmt as VisitWithAstPath<V>>::visit_with_ast_path(
34346                    _field_0,
34347                    visitor,
34348                    &mut *__ast_path,
34349                );
34350            }
34351            ClassMember::StaticBlock { 0: _field_0 } => {
34352                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34353                    self,
34354                    self::fields::ClassMemberField::StaticBlock,
34355                ));
34356                <StaticBlock as VisitWithAstPath<V>>::visit_with_ast_path(
34357                    _field_0,
34358                    visitor,
34359                    &mut *__ast_path,
34360                );
34361            }
34362            ClassMember::AutoAccessor { 0: _field_0 } => {
34363                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMember(
34364                    self,
34365                    self::fields::ClassMemberField::AutoAccessor,
34366                ));
34367                <AutoAccessor as VisitWithAstPath<V>>::visit_with_ast_path(
34368                    _field_0,
34369                    visitor,
34370                    &mut *__ast_path,
34371                );
34372            }
34373        }
34374    }
34375}
34376#[cfg(any(docsrs, feature = "path"))]
34377#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34378impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassMethod {
34379    #[doc = "Calls [VisitAstPath`::visit_class_method`] with `self`."]
34380    fn visit_with_ast_path<'ast: 'r, 'r>(
34381        &'ast self,
34382        visitor: &mut V,
34383        __ast_path: &mut AstNodePath<'r>,
34384    ) {
34385        <V as VisitAstPath>::visit_class_method(visitor, self, __ast_path)
34386    }
34387
34388    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34389        &'ast self,
34390        visitor: &mut V,
34391        __ast_path: &mut AstNodePath<'r>,
34392    ) {
34393        match self {
34394            ClassMethod {
34395                span,
34396                key,
34397                function,
34398                kind,
34399                is_static,
34400                accessibility,
34401                is_abstract,
34402                is_optional,
34403                is_override,
34404            } => {
34405                {
34406                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34407                        self,
34408                        self::fields::ClassMethodField::Span,
34409                    ));
34410                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34411                        span,
34412                        visitor,
34413                        &mut *__ast_path,
34414                    )
34415                };
34416                {
34417                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34418                        self,
34419                        self::fields::ClassMethodField::Key,
34420                    ));
34421                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
34422                        key,
34423                        visitor,
34424                        &mut *__ast_path,
34425                    )
34426                };
34427                {
34428                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34429                        self,
34430                        self::fields::ClassMethodField::Function,
34431                    ));
34432                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
34433                        function,
34434                        visitor,
34435                        &mut *__ast_path,
34436                    )
34437                };
34438                {
34439                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34440                        self,
34441                        self::fields::ClassMethodField::Kind,
34442                    ));
34443                    <MethodKind as VisitWithAstPath<V>>::visit_with_ast_path(
34444                        kind,
34445                        visitor,
34446                        &mut *__ast_path,
34447                    )
34448                };
34449                {
34450                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassMethod(
34451                        self,
34452                        self::fields::ClassMethodField::Accessibility,
34453                    ));
34454                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
34455                        accessibility,
34456                        visitor,
34457                        &mut *__ast_path,
34458                    )
34459                };
34460            }
34461        }
34462    }
34463}
34464#[cfg(any(docsrs, feature = "path"))]
34465#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34466impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ClassProp {
34467    #[doc = "Calls [VisitAstPath`::visit_class_prop`] with `self`."]
34468    fn visit_with_ast_path<'ast: 'r, 'r>(
34469        &'ast self,
34470        visitor: &mut V,
34471        __ast_path: &mut AstNodePath<'r>,
34472    ) {
34473        <V as VisitAstPath>::visit_class_prop(visitor, self, __ast_path)
34474    }
34475
34476    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34477        &'ast self,
34478        visitor: &mut V,
34479        __ast_path: &mut AstNodePath<'r>,
34480    ) {
34481        match self {
34482            ClassProp {
34483                span,
34484                key,
34485                value,
34486                type_ann,
34487                is_static,
34488                decorators,
34489                accessibility,
34490                is_abstract,
34491                is_optional,
34492                is_override,
34493                readonly,
34494                declare,
34495                definite,
34496            } => {
34497                {
34498                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34499                        self,
34500                        self::fields::ClassPropField::Span,
34501                    ));
34502                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34503                        span,
34504                        visitor,
34505                        &mut *__ast_path,
34506                    )
34507                };
34508                {
34509                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34510                        self,
34511                        self::fields::ClassPropField::Key,
34512                    ));
34513                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
34514                        key,
34515                        visitor,
34516                        &mut *__ast_path,
34517                    )
34518                };
34519                {
34520                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34521                        self,
34522                        self::fields::ClassPropField::Value,
34523                    ));
34524                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
34525                        value,
34526                        visitor,
34527                        &mut *__ast_path,
34528                    )
34529                };
34530                {
34531                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34532                        self,
34533                        self::fields::ClassPropField::TypeAnn,
34534                    ));
34535                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
34536                        type_ann,
34537                        visitor,
34538                        &mut *__ast_path,
34539                    )
34540                };
34541                {
34542                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34543                        self,
34544                        self::fields::ClassPropField::Decorators(usize::MAX),
34545                    ));
34546                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
34547                        decorators,
34548                        visitor,
34549                        &mut *__ast_path,
34550                    )
34551                };
34552                {
34553                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ClassProp(
34554                        self,
34555                        self::fields::ClassPropField::Accessibility,
34556                    ));
34557                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
34558                        accessibility,
34559                        visitor,
34560                        &mut *__ast_path,
34561                    )
34562                };
34563            }
34564        }
34565    }
34566}
34567#[cfg(any(docsrs, feature = "path"))]
34568#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34569impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ComputedPropName {
34570    #[doc = "Calls [VisitAstPath`::visit_computed_prop_name`] with `self`."]
34571    fn visit_with_ast_path<'ast: 'r, 'r>(
34572        &'ast self,
34573        visitor: &mut V,
34574        __ast_path: &mut AstNodePath<'r>,
34575    ) {
34576        <V as VisitAstPath>::visit_computed_prop_name(visitor, self, __ast_path)
34577    }
34578
34579    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34580        &'ast self,
34581        visitor: &mut V,
34582        __ast_path: &mut AstNodePath<'r>,
34583    ) {
34584        match self {
34585            ComputedPropName { span, expr } => {
34586                {
34587                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ComputedPropName(
34588                        self,
34589                        self::fields::ComputedPropNameField::Span,
34590                    ));
34591                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34592                        span,
34593                        visitor,
34594                        &mut *__ast_path,
34595                    )
34596                };
34597                {
34598                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ComputedPropName(
34599                        self,
34600                        self::fields::ComputedPropNameField::Expr,
34601                    ));
34602                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34603                        expr,
34604                        visitor,
34605                        &mut *__ast_path,
34606                    )
34607                };
34608            }
34609        }
34610    }
34611}
34612#[cfg(any(docsrs, feature = "path"))]
34613#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34614impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for CondExpr {
34615    #[doc = "Calls [VisitAstPath`::visit_cond_expr`] with `self`."]
34616    fn visit_with_ast_path<'ast: 'r, 'r>(
34617        &'ast self,
34618        visitor: &mut V,
34619        __ast_path: &mut AstNodePath<'r>,
34620    ) {
34621        <V as VisitAstPath>::visit_cond_expr(visitor, self, __ast_path)
34622    }
34623
34624    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34625        &'ast self,
34626        visitor: &mut V,
34627        __ast_path: &mut AstNodePath<'r>,
34628    ) {
34629        match self {
34630            CondExpr {
34631                span,
34632                test,
34633                cons,
34634                alt,
34635            } => {
34636                {
34637                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34638                        self,
34639                        self::fields::CondExprField::Span,
34640                    ));
34641                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34642                        span,
34643                        visitor,
34644                        &mut *__ast_path,
34645                    )
34646                };
34647                {
34648                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34649                        self,
34650                        self::fields::CondExprField::Test,
34651                    ));
34652                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34653                        test,
34654                        visitor,
34655                        &mut *__ast_path,
34656                    )
34657                };
34658                {
34659                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34660                        self,
34661                        self::fields::CondExprField::Cons,
34662                    ));
34663                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34664                        cons,
34665                        visitor,
34666                        &mut *__ast_path,
34667                    )
34668                };
34669                {
34670                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::CondExpr(
34671                        self,
34672                        self::fields::CondExprField::Alt,
34673                    ));
34674                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34675                        alt,
34676                        visitor,
34677                        &mut *__ast_path,
34678                    )
34679                };
34680            }
34681        }
34682    }
34683}
34684#[cfg(any(docsrs, feature = "path"))]
34685#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34686impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Constructor {
34687    #[doc = "Calls [VisitAstPath`::visit_constructor`] with `self`."]
34688    fn visit_with_ast_path<'ast: 'r, 'r>(
34689        &'ast self,
34690        visitor: &mut V,
34691        __ast_path: &mut AstNodePath<'r>,
34692    ) {
34693        <V as VisitAstPath>::visit_constructor(visitor, self, __ast_path)
34694    }
34695
34696    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34697        &'ast self,
34698        visitor: &mut V,
34699        __ast_path: &mut AstNodePath<'r>,
34700    ) {
34701        match self {
34702            Constructor {
34703                span,
34704                ctxt,
34705                key,
34706                params,
34707                body,
34708                accessibility,
34709                is_optional,
34710            } => {
34711                {
34712                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34713                        self,
34714                        self::fields::ConstructorField::Span,
34715                    ));
34716                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34717                        span,
34718                        visitor,
34719                        &mut *__ast_path,
34720                    )
34721                };
34722                {
34723                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34724                        self,
34725                        self::fields::ConstructorField::Ctxt,
34726                    ));
34727                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
34728                        ctxt,
34729                        visitor,
34730                        &mut *__ast_path,
34731                    )
34732                };
34733                {
34734                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34735                        self,
34736                        self::fields::ConstructorField::Key,
34737                    ));
34738                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
34739                        key,
34740                        visitor,
34741                        &mut *__ast_path,
34742                    )
34743                };
34744                {
34745                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34746                        self,
34747                        self::fields::ConstructorField::Params(usize::MAX),
34748                    ));
34749                    <Vec<ParamOrTsParamProp> as VisitWithAstPath<V>>::visit_with_ast_path(
34750                        params,
34751                        visitor,
34752                        &mut *__ast_path,
34753                    )
34754                };
34755                {
34756                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34757                        self,
34758                        self::fields::ConstructorField::Body,
34759                    ));
34760                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
34761                        body,
34762                        visitor,
34763                        &mut *__ast_path,
34764                    )
34765                };
34766                {
34767                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Constructor(
34768                        self,
34769                        self::fields::ConstructorField::Accessibility,
34770                    ));
34771                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
34772                        accessibility,
34773                        visitor,
34774                        &mut *__ast_path,
34775                    )
34776                };
34777            }
34778        }
34779    }
34780}
34781#[cfg(any(docsrs, feature = "path"))]
34782#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34783impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ContinueStmt {
34784    #[doc = "Calls [VisitAstPath`::visit_continue_stmt`] with `self`."]
34785    fn visit_with_ast_path<'ast: 'r, 'r>(
34786        &'ast self,
34787        visitor: &mut V,
34788        __ast_path: &mut AstNodePath<'r>,
34789    ) {
34790        <V as VisitAstPath>::visit_continue_stmt(visitor, self, __ast_path)
34791    }
34792
34793    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34794        &'ast self,
34795        visitor: &mut V,
34796        __ast_path: &mut AstNodePath<'r>,
34797    ) {
34798        match self {
34799            ContinueStmt { span, label } => {
34800                {
34801                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ContinueStmt(
34802                        self,
34803                        self::fields::ContinueStmtField::Span,
34804                    ));
34805                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34806                        span,
34807                        visitor,
34808                        &mut *__ast_path,
34809                    )
34810                };
34811                {
34812                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ContinueStmt(
34813                        self,
34814                        self::fields::ContinueStmtField::Label,
34815                    ));
34816                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
34817                        label,
34818                        visitor,
34819                        &mut *__ast_path,
34820                    )
34821                };
34822            }
34823        }
34824    }
34825}
34826#[cfg(any(docsrs, feature = "path"))]
34827#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34828impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for DebuggerStmt {
34829    #[doc = "Calls [VisitAstPath`::visit_debugger_stmt`] with `self`."]
34830    fn visit_with_ast_path<'ast: 'r, 'r>(
34831        &'ast self,
34832        visitor: &mut V,
34833        __ast_path: &mut AstNodePath<'r>,
34834    ) {
34835        <V as VisitAstPath>::visit_debugger_stmt(visitor, self, __ast_path)
34836    }
34837
34838    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34839        &'ast self,
34840        visitor: &mut V,
34841        __ast_path: &mut AstNodePath<'r>,
34842    ) {
34843        match self {
34844            DebuggerStmt { span } => {
34845                {
34846                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DebuggerStmt(
34847                        self,
34848                        self::fields::DebuggerStmtField::Span,
34849                    ));
34850                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34851                        span,
34852                        visitor,
34853                        &mut *__ast_path,
34854                    )
34855                };
34856            }
34857        }
34858    }
34859}
34860#[cfg(any(docsrs, feature = "path"))]
34861#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34862impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Decl {
34863    #[doc = "Calls [VisitAstPath`::visit_decl`] with `self`."]
34864    fn visit_with_ast_path<'ast: 'r, 'r>(
34865        &'ast self,
34866        visitor: &mut V,
34867        __ast_path: &mut AstNodePath<'r>,
34868    ) {
34869        <V as VisitAstPath>::visit_decl(visitor, self, __ast_path)
34870    }
34871
34872    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34873        &'ast self,
34874        visitor: &mut V,
34875        __ast_path: &mut AstNodePath<'r>,
34876    ) {
34877        match self {
34878            Decl::Class { 0: _field_0 } => {
34879                let mut __ast_path = __ast_path
34880                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Class));
34881                <ClassDecl as VisitWithAstPath<V>>::visit_with_ast_path(
34882                    _field_0,
34883                    visitor,
34884                    &mut *__ast_path,
34885                );
34886            }
34887            Decl::Fn { 0: _field_0 } => {
34888                let mut __ast_path = __ast_path
34889                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Fn));
34890                <FnDecl as VisitWithAstPath<V>>::visit_with_ast_path(
34891                    _field_0,
34892                    visitor,
34893                    &mut *__ast_path,
34894                );
34895            }
34896            Decl::Var { 0: _field_0 } => {
34897                let mut __ast_path = __ast_path
34898                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Var));
34899                <Box<VarDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
34900                    _field_0,
34901                    visitor,
34902                    &mut *__ast_path,
34903                );
34904            }
34905            Decl::Using { 0: _field_0 } => {
34906                let mut __ast_path = __ast_path
34907                    .with_guard(AstParentNodeRef::Decl(self, self::fields::DeclField::Using));
34908                <Box<UsingDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
34909                    _field_0,
34910                    visitor,
34911                    &mut *__ast_path,
34912                );
34913            }
34914            Decl::TsInterface { 0: _field_0 } => {
34915                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
34916                    self,
34917                    self::fields::DeclField::TsInterface,
34918                ));
34919                <Box<TsInterfaceDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
34920                    _field_0,
34921                    visitor,
34922                    &mut *__ast_path,
34923                );
34924            }
34925            Decl::TsTypeAlias { 0: _field_0 } => {
34926                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
34927                    self,
34928                    self::fields::DeclField::TsTypeAlias,
34929                ));
34930                <Box<TsTypeAliasDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
34931                    _field_0,
34932                    visitor,
34933                    &mut *__ast_path,
34934                );
34935            }
34936            Decl::TsEnum { 0: _field_0 } => {
34937                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
34938                    self,
34939                    self::fields::DeclField::TsEnum,
34940                ));
34941                <Box<TsEnumDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
34942                    _field_0,
34943                    visitor,
34944                    &mut *__ast_path,
34945                );
34946            }
34947            Decl::TsModule { 0: _field_0 } => {
34948                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decl(
34949                    self,
34950                    self::fields::DeclField::TsModule,
34951                ));
34952                <Box<TsModuleDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
34953                    _field_0,
34954                    visitor,
34955                    &mut *__ast_path,
34956                );
34957            }
34958        }
34959    }
34960}
34961#[cfg(any(docsrs, feature = "path"))]
34962#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
34963impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Decorator {
34964    #[doc = "Calls [VisitAstPath`::visit_decorator`] with `self`."]
34965    fn visit_with_ast_path<'ast: 'r, 'r>(
34966        &'ast self,
34967        visitor: &mut V,
34968        __ast_path: &mut AstNodePath<'r>,
34969    ) {
34970        <V as VisitAstPath>::visit_decorator(visitor, self, __ast_path)
34971    }
34972
34973    fn visit_children_with_ast_path<'ast: 'r, 'r>(
34974        &'ast self,
34975        visitor: &mut V,
34976        __ast_path: &mut AstNodePath<'r>,
34977    ) {
34978        match self {
34979            Decorator { span, expr } => {
34980                {
34981                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decorator(
34982                        self,
34983                        self::fields::DecoratorField::Span,
34984                    ));
34985                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
34986                        span,
34987                        visitor,
34988                        &mut *__ast_path,
34989                    )
34990                };
34991                {
34992                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Decorator(
34993                        self,
34994                        self::fields::DecoratorField::Expr,
34995                    ));
34996                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
34997                        expr,
34998                        visitor,
34999                        &mut *__ast_path,
35000                    )
35001                };
35002            }
35003        }
35004    }
35005}
35006#[cfg(any(docsrs, feature = "path"))]
35007#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35008impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for DefaultDecl {
35009    #[doc = "Calls [VisitAstPath`::visit_default_decl`] with `self`."]
35010    fn visit_with_ast_path<'ast: 'r, 'r>(
35011        &'ast self,
35012        visitor: &mut V,
35013        __ast_path: &mut AstNodePath<'r>,
35014    ) {
35015        <V as VisitAstPath>::visit_default_decl(visitor, self, __ast_path)
35016    }
35017
35018    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35019        &'ast self,
35020        visitor: &mut V,
35021        __ast_path: &mut AstNodePath<'r>,
35022    ) {
35023        match self {
35024            DefaultDecl::Class { 0: _field_0 } => {
35025                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DefaultDecl(
35026                    self,
35027                    self::fields::DefaultDeclField::Class,
35028                ));
35029                <ClassExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35030                    _field_0,
35031                    visitor,
35032                    &mut *__ast_path,
35033                );
35034            }
35035            DefaultDecl::Fn { 0: _field_0 } => {
35036                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DefaultDecl(
35037                    self,
35038                    self::fields::DefaultDeclField::Fn,
35039                ));
35040                <FnExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35041                    _field_0,
35042                    visitor,
35043                    &mut *__ast_path,
35044                );
35045            }
35046            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
35047                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DefaultDecl(
35048                    self,
35049                    self::fields::DefaultDeclField::TsInterfaceDecl,
35050                ));
35051                <Box<TsInterfaceDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
35052                    _field_0,
35053                    visitor,
35054                    &mut *__ast_path,
35055                );
35056            }
35057        }
35058    }
35059}
35060#[cfg(any(docsrs, feature = "path"))]
35061#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35062impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for DoWhileStmt {
35063    #[doc = "Calls [VisitAstPath`::visit_do_while_stmt`] with `self`."]
35064    fn visit_with_ast_path<'ast: 'r, 'r>(
35065        &'ast self,
35066        visitor: &mut V,
35067        __ast_path: &mut AstNodePath<'r>,
35068    ) {
35069        <V as VisitAstPath>::visit_do_while_stmt(visitor, self, __ast_path)
35070    }
35071
35072    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35073        &'ast self,
35074        visitor: &mut V,
35075        __ast_path: &mut AstNodePath<'r>,
35076    ) {
35077        match self {
35078            DoWhileStmt { span, test, body } => {
35079                {
35080                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DoWhileStmt(
35081                        self,
35082                        self::fields::DoWhileStmtField::Span,
35083                    ));
35084                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35085                        span,
35086                        visitor,
35087                        &mut *__ast_path,
35088                    )
35089                };
35090                {
35091                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DoWhileStmt(
35092                        self,
35093                        self::fields::DoWhileStmtField::Test,
35094                    ));
35095                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
35096                        test,
35097                        visitor,
35098                        &mut *__ast_path,
35099                    )
35100                };
35101                {
35102                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::DoWhileStmt(
35103                        self,
35104                        self::fields::DoWhileStmtField::Body,
35105                    ));
35106                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
35107                        body,
35108                        visitor,
35109                        &mut *__ast_path,
35110                    )
35111                };
35112            }
35113        }
35114    }
35115}
35116#[cfg(any(docsrs, feature = "path"))]
35117#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35118impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for EmptyStmt {
35119    #[doc = "Calls [VisitAstPath`::visit_empty_stmt`] with `self`."]
35120    fn visit_with_ast_path<'ast: 'r, 'r>(
35121        &'ast self,
35122        visitor: &mut V,
35123        __ast_path: &mut AstNodePath<'r>,
35124    ) {
35125        <V as VisitAstPath>::visit_empty_stmt(visitor, self, __ast_path)
35126    }
35127
35128    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35129        &'ast self,
35130        visitor: &mut V,
35131        __ast_path: &mut AstNodePath<'r>,
35132    ) {
35133        match self {
35134            EmptyStmt { span } => {
35135                {
35136                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::EmptyStmt(
35137                        self,
35138                        self::fields::EmptyStmtField::Span,
35139                    ));
35140                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35141                        span,
35142                        visitor,
35143                        &mut *__ast_path,
35144                    )
35145                };
35146            }
35147        }
35148    }
35149}
35150#[cfg(any(docsrs, feature = "path"))]
35151#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35152impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportAll {
35153    #[doc = "Calls [VisitAstPath`::visit_export_all`] with `self`."]
35154    fn visit_with_ast_path<'ast: 'r, 'r>(
35155        &'ast self,
35156        visitor: &mut V,
35157        __ast_path: &mut AstNodePath<'r>,
35158    ) {
35159        <V as VisitAstPath>::visit_export_all(visitor, self, __ast_path)
35160    }
35161
35162    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35163        &'ast self,
35164        visitor: &mut V,
35165        __ast_path: &mut AstNodePath<'r>,
35166    ) {
35167        match self {
35168            ExportAll {
35169                span,
35170                src,
35171                type_only,
35172                with,
35173            } => {
35174                {
35175                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportAll(
35176                        self,
35177                        self::fields::ExportAllField::Span,
35178                    ));
35179                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35180                        span,
35181                        visitor,
35182                        &mut *__ast_path,
35183                    )
35184                };
35185                {
35186                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportAll(
35187                        self,
35188                        self::fields::ExportAllField::Src,
35189                    ));
35190                    <Box<Str> as VisitWithAstPath<V>>::visit_with_ast_path(
35191                        src,
35192                        visitor,
35193                        &mut *__ast_path,
35194                    )
35195                };
35196                {
35197                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportAll(
35198                        self,
35199                        self::fields::ExportAllField::With,
35200                    ));
35201                    <Option<Box<ObjectLit>> as VisitWithAstPath<V>>::visit_with_ast_path(
35202                        with,
35203                        visitor,
35204                        &mut *__ast_path,
35205                    )
35206                };
35207            }
35208        }
35209    }
35210}
35211#[cfg(any(docsrs, feature = "path"))]
35212#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35213impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDecl {
35214    #[doc = "Calls [VisitAstPath`::visit_export_decl`] with `self`."]
35215    fn visit_with_ast_path<'ast: 'r, 'r>(
35216        &'ast self,
35217        visitor: &mut V,
35218        __ast_path: &mut AstNodePath<'r>,
35219    ) {
35220        <V as VisitAstPath>::visit_export_decl(visitor, self, __ast_path)
35221    }
35222
35223    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35224        &'ast self,
35225        visitor: &mut V,
35226        __ast_path: &mut AstNodePath<'r>,
35227    ) {
35228        match self {
35229            ExportDecl { span, decl } => {
35230                {
35231                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportDecl(
35232                        self,
35233                        self::fields::ExportDeclField::Span,
35234                    ));
35235                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35236                        span,
35237                        visitor,
35238                        &mut *__ast_path,
35239                    )
35240                };
35241                {
35242                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportDecl(
35243                        self,
35244                        self::fields::ExportDeclField::Decl,
35245                    ));
35246                    <Decl as VisitWithAstPath<V>>::visit_with_ast_path(
35247                        decl,
35248                        visitor,
35249                        &mut *__ast_path,
35250                    )
35251                };
35252            }
35253        }
35254    }
35255}
35256#[cfg(any(docsrs, feature = "path"))]
35257#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35258impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDefaultDecl {
35259    #[doc = "Calls [VisitAstPath`::visit_export_default_decl`] with `self`."]
35260    fn visit_with_ast_path<'ast: 'r, 'r>(
35261        &'ast self,
35262        visitor: &mut V,
35263        __ast_path: &mut AstNodePath<'r>,
35264    ) {
35265        <V as VisitAstPath>::visit_export_default_decl(visitor, self, __ast_path)
35266    }
35267
35268    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35269        &'ast self,
35270        visitor: &mut V,
35271        __ast_path: &mut AstNodePath<'r>,
35272    ) {
35273        match self {
35274            ExportDefaultDecl { span, decl } => {
35275                {
35276                    let mut __ast_path =
35277                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultDecl(
35278                            self,
35279                            self::fields::ExportDefaultDeclField::Span,
35280                        ));
35281                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35282                        span,
35283                        visitor,
35284                        &mut *__ast_path,
35285                    )
35286                };
35287                {
35288                    let mut __ast_path =
35289                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultDecl(
35290                            self,
35291                            self::fields::ExportDefaultDeclField::Decl,
35292                        ));
35293                    <DefaultDecl as VisitWithAstPath<V>>::visit_with_ast_path(
35294                        decl,
35295                        visitor,
35296                        &mut *__ast_path,
35297                    )
35298                };
35299            }
35300        }
35301    }
35302}
35303#[cfg(any(docsrs, feature = "path"))]
35304#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35305impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDefaultExpr {
35306    #[doc = "Calls [VisitAstPath`::visit_export_default_expr`] with `self`."]
35307    fn visit_with_ast_path<'ast: 'r, 'r>(
35308        &'ast self,
35309        visitor: &mut V,
35310        __ast_path: &mut AstNodePath<'r>,
35311    ) {
35312        <V as VisitAstPath>::visit_export_default_expr(visitor, self, __ast_path)
35313    }
35314
35315    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35316        &'ast self,
35317        visitor: &mut V,
35318        __ast_path: &mut AstNodePath<'r>,
35319    ) {
35320        match self {
35321            ExportDefaultExpr { span, expr } => {
35322                {
35323                    let mut __ast_path =
35324                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultExpr(
35325                            self,
35326                            self::fields::ExportDefaultExprField::Span,
35327                        ));
35328                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35329                        span,
35330                        visitor,
35331                        &mut *__ast_path,
35332                    )
35333                };
35334                {
35335                    let mut __ast_path =
35336                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultExpr(
35337                            self,
35338                            self::fields::ExportDefaultExprField::Expr,
35339                        ));
35340                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
35341                        expr,
35342                        visitor,
35343                        &mut *__ast_path,
35344                    )
35345                };
35346            }
35347        }
35348    }
35349}
35350#[cfg(any(docsrs, feature = "path"))]
35351#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35352impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportDefaultSpecifier {
35353    #[doc = "Calls [VisitAstPath`::visit_export_default_specifier`] with `self`."]
35354    fn visit_with_ast_path<'ast: 'r, 'r>(
35355        &'ast self,
35356        visitor: &mut V,
35357        __ast_path: &mut AstNodePath<'r>,
35358    ) {
35359        <V as VisitAstPath>::visit_export_default_specifier(visitor, self, __ast_path)
35360    }
35361
35362    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35363        &'ast self,
35364        visitor: &mut V,
35365        __ast_path: &mut AstNodePath<'r>,
35366    ) {
35367        match self {
35368            ExportDefaultSpecifier { exported } => {
35369                {
35370                    let mut __ast_path =
35371                        __ast_path.with_guard(AstParentNodeRef::ExportDefaultSpecifier(
35372                            self,
35373                            self::fields::ExportDefaultSpecifierField::Exported,
35374                        ));
35375                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
35376                        exported,
35377                        visitor,
35378                        &mut *__ast_path,
35379                    )
35380                };
35381            }
35382        }
35383    }
35384}
35385#[cfg(any(docsrs, feature = "path"))]
35386#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35387impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportNamedSpecifier {
35388    #[doc = "Calls [VisitAstPath`::visit_export_named_specifier`] with `self`."]
35389    fn visit_with_ast_path<'ast: 'r, 'r>(
35390        &'ast self,
35391        visitor: &mut V,
35392        __ast_path: &mut AstNodePath<'r>,
35393    ) {
35394        <V as VisitAstPath>::visit_export_named_specifier(visitor, self, __ast_path)
35395    }
35396
35397    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35398        &'ast self,
35399        visitor: &mut V,
35400        __ast_path: &mut AstNodePath<'r>,
35401    ) {
35402        match self {
35403            ExportNamedSpecifier {
35404                span,
35405                orig,
35406                exported,
35407                is_type_only,
35408            } => {
35409                {
35410                    let mut __ast_path =
35411                        __ast_path.with_guard(AstParentNodeRef::ExportNamedSpecifier(
35412                            self,
35413                            self::fields::ExportNamedSpecifierField::Span,
35414                        ));
35415                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35416                        span,
35417                        visitor,
35418                        &mut *__ast_path,
35419                    )
35420                };
35421                {
35422                    let mut __ast_path =
35423                        __ast_path.with_guard(AstParentNodeRef::ExportNamedSpecifier(
35424                            self,
35425                            self::fields::ExportNamedSpecifierField::Orig,
35426                        ));
35427                    <ModuleExportName as VisitWithAstPath<V>>::visit_with_ast_path(
35428                        orig,
35429                        visitor,
35430                        &mut *__ast_path,
35431                    )
35432                };
35433                {
35434                    let mut __ast_path =
35435                        __ast_path.with_guard(AstParentNodeRef::ExportNamedSpecifier(
35436                            self,
35437                            self::fields::ExportNamedSpecifierField::Exported,
35438                        ));
35439                    <Option<ModuleExportName> as VisitWithAstPath<V>>::visit_with_ast_path(
35440                        exported,
35441                        visitor,
35442                        &mut *__ast_path,
35443                    )
35444                };
35445            }
35446        }
35447    }
35448}
35449#[cfg(any(docsrs, feature = "path"))]
35450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35451impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportNamespaceSpecifier {
35452    #[doc = "Calls [VisitAstPath`::visit_export_namespace_specifier`] with `self`."]
35453    fn visit_with_ast_path<'ast: 'r, 'r>(
35454        &'ast self,
35455        visitor: &mut V,
35456        __ast_path: &mut AstNodePath<'r>,
35457    ) {
35458        <V as VisitAstPath>::visit_export_namespace_specifier(visitor, self, __ast_path)
35459    }
35460
35461    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35462        &'ast self,
35463        visitor: &mut V,
35464        __ast_path: &mut AstNodePath<'r>,
35465    ) {
35466        match self {
35467            ExportNamespaceSpecifier { span, name } => {
35468                {
35469                    let mut __ast_path =
35470                        __ast_path.with_guard(AstParentNodeRef::ExportNamespaceSpecifier(
35471                            self,
35472                            self::fields::ExportNamespaceSpecifierField::Span,
35473                        ));
35474                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
35475                        span,
35476                        visitor,
35477                        &mut *__ast_path,
35478                    )
35479                };
35480                {
35481                    let mut __ast_path =
35482                        __ast_path.with_guard(AstParentNodeRef::ExportNamespaceSpecifier(
35483                            self,
35484                            self::fields::ExportNamespaceSpecifierField::Name,
35485                        ));
35486                    <ModuleExportName as VisitWithAstPath<V>>::visit_with_ast_path(
35487                        name,
35488                        visitor,
35489                        &mut *__ast_path,
35490                    )
35491                };
35492            }
35493        }
35494    }
35495}
35496#[cfg(any(docsrs, feature = "path"))]
35497#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35498impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExportSpecifier {
35499    #[doc = "Calls [VisitAstPath`::visit_export_specifier`] with `self`."]
35500    fn visit_with_ast_path<'ast: 'r, 'r>(
35501        &'ast self,
35502        visitor: &mut V,
35503        __ast_path: &mut AstNodePath<'r>,
35504    ) {
35505        <V as VisitAstPath>::visit_export_specifier(visitor, self, __ast_path)
35506    }
35507
35508    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35509        &'ast self,
35510        visitor: &mut V,
35511        __ast_path: &mut AstNodePath<'r>,
35512    ) {
35513        match self {
35514            ExportSpecifier::Namespace { 0: _field_0 } => {
35515                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportSpecifier(
35516                    self,
35517                    self::fields::ExportSpecifierField::Namespace,
35518                ));
35519                <ExportNamespaceSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
35520                    _field_0,
35521                    visitor,
35522                    &mut *__ast_path,
35523                );
35524            }
35525            ExportSpecifier::Default { 0: _field_0 } => {
35526                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportSpecifier(
35527                    self,
35528                    self::fields::ExportSpecifierField::Default,
35529                ));
35530                <ExportDefaultSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
35531                    _field_0,
35532                    visitor,
35533                    &mut *__ast_path,
35534                );
35535            }
35536            ExportSpecifier::Named { 0: _field_0 } => {
35537                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExportSpecifier(
35538                    self,
35539                    self::fields::ExportSpecifierField::Named,
35540                ));
35541                <ExportNamedSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
35542                    _field_0,
35543                    visitor,
35544                    &mut *__ast_path,
35545                );
35546            }
35547        }
35548    }
35549}
35550#[cfg(any(docsrs, feature = "path"))]
35551#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35552impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Expr {
35553    #[doc = "Calls [VisitAstPath`::visit_expr`] with `self`."]
35554    fn visit_with_ast_path<'ast: 'r, 'r>(
35555        &'ast self,
35556        visitor: &mut V,
35557        __ast_path: &mut AstNodePath<'r>,
35558    ) {
35559        <V as VisitAstPath>::visit_expr(visitor, self, __ast_path)
35560    }
35561
35562    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35563        &'ast self,
35564        visitor: &mut V,
35565        __ast_path: &mut AstNodePath<'r>,
35566    ) {
35567        match self {
35568            Expr::This { 0: _field_0 } => {
35569                let mut __ast_path = __ast_path
35570                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::This));
35571                <ThisExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35572                    _field_0,
35573                    visitor,
35574                    &mut *__ast_path,
35575                );
35576            }
35577            Expr::Array { 0: _field_0 } => {
35578                let mut __ast_path = __ast_path
35579                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Array));
35580                <ArrayLit as VisitWithAstPath<V>>::visit_with_ast_path(
35581                    _field_0,
35582                    visitor,
35583                    &mut *__ast_path,
35584                );
35585            }
35586            Expr::Object { 0: _field_0 } => {
35587                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35588                    self,
35589                    self::fields::ExprField::Object,
35590                ));
35591                <ObjectLit as VisitWithAstPath<V>>::visit_with_ast_path(
35592                    _field_0,
35593                    visitor,
35594                    &mut *__ast_path,
35595                );
35596            }
35597            Expr::Fn { 0: _field_0 } => {
35598                let mut __ast_path = __ast_path
35599                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Fn));
35600                <FnExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35601                    _field_0,
35602                    visitor,
35603                    &mut *__ast_path,
35604                );
35605            }
35606            Expr::Unary { 0: _field_0 } => {
35607                let mut __ast_path = __ast_path
35608                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Unary));
35609                <UnaryExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35610                    _field_0,
35611                    visitor,
35612                    &mut *__ast_path,
35613                );
35614            }
35615            Expr::Update { 0: _field_0 } => {
35616                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35617                    self,
35618                    self::fields::ExprField::Update,
35619                ));
35620                <UpdateExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35621                    _field_0,
35622                    visitor,
35623                    &mut *__ast_path,
35624                );
35625            }
35626            Expr::Bin { 0: _field_0 } => {
35627                let mut __ast_path = __ast_path
35628                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Bin));
35629                <BinExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35630                    _field_0,
35631                    visitor,
35632                    &mut *__ast_path,
35633                );
35634            }
35635            Expr::Assign { 0: _field_0 } => {
35636                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35637                    self,
35638                    self::fields::ExprField::Assign,
35639                ));
35640                <AssignExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35641                    _field_0,
35642                    visitor,
35643                    &mut *__ast_path,
35644                );
35645            }
35646            Expr::Member { 0: _field_0 } => {
35647                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35648                    self,
35649                    self::fields::ExprField::Member,
35650                ));
35651                <MemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35652                    _field_0,
35653                    visitor,
35654                    &mut *__ast_path,
35655                );
35656            }
35657            Expr::SuperProp { 0: _field_0 } => {
35658                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35659                    self,
35660                    self::fields::ExprField::SuperProp,
35661                ));
35662                <SuperPropExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35663                    _field_0,
35664                    visitor,
35665                    &mut *__ast_path,
35666                );
35667            }
35668            Expr::Cond { 0: _field_0 } => {
35669                let mut __ast_path = __ast_path
35670                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Cond));
35671                <CondExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35672                    _field_0,
35673                    visitor,
35674                    &mut *__ast_path,
35675                );
35676            }
35677            Expr::Call { 0: _field_0 } => {
35678                let mut __ast_path = __ast_path
35679                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Call));
35680                <CallExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35681                    _field_0,
35682                    visitor,
35683                    &mut *__ast_path,
35684                );
35685            }
35686            Expr::New { 0: _field_0 } => {
35687                let mut __ast_path = __ast_path
35688                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::New));
35689                <NewExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35690                    _field_0,
35691                    visitor,
35692                    &mut *__ast_path,
35693                );
35694            }
35695            Expr::Seq { 0: _field_0 } => {
35696                let mut __ast_path = __ast_path
35697                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Seq));
35698                <SeqExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35699                    _field_0,
35700                    visitor,
35701                    &mut *__ast_path,
35702                );
35703            }
35704            Expr::Ident { 0: _field_0 } => {
35705                let mut __ast_path = __ast_path
35706                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Ident));
35707                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
35708                    _field_0,
35709                    visitor,
35710                    &mut *__ast_path,
35711                );
35712            }
35713            Expr::Lit { 0: _field_0 } => {
35714                let mut __ast_path = __ast_path
35715                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Lit));
35716                <Lit as VisitWithAstPath<V>>::visit_with_ast_path(
35717                    _field_0,
35718                    visitor,
35719                    &mut *__ast_path,
35720                );
35721            }
35722            Expr::Tpl { 0: _field_0 } => {
35723                let mut __ast_path = __ast_path
35724                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Tpl));
35725                <Tpl as VisitWithAstPath<V>>::visit_with_ast_path(
35726                    _field_0,
35727                    visitor,
35728                    &mut *__ast_path,
35729                );
35730            }
35731            Expr::TaggedTpl { 0: _field_0 } => {
35732                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35733                    self,
35734                    self::fields::ExprField::TaggedTpl,
35735                ));
35736                <TaggedTpl as VisitWithAstPath<V>>::visit_with_ast_path(
35737                    _field_0,
35738                    visitor,
35739                    &mut *__ast_path,
35740                );
35741            }
35742            Expr::Arrow { 0: _field_0 } => {
35743                let mut __ast_path = __ast_path
35744                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Arrow));
35745                <ArrowExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35746                    _field_0,
35747                    visitor,
35748                    &mut *__ast_path,
35749                );
35750            }
35751            Expr::Class { 0: _field_0 } => {
35752                let mut __ast_path = __ast_path
35753                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Class));
35754                <ClassExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35755                    _field_0,
35756                    visitor,
35757                    &mut *__ast_path,
35758                );
35759            }
35760            Expr::Yield { 0: _field_0 } => {
35761                let mut __ast_path = __ast_path
35762                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Yield));
35763                <YieldExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35764                    _field_0,
35765                    visitor,
35766                    &mut *__ast_path,
35767                );
35768            }
35769            Expr::MetaProp { 0: _field_0 } => {
35770                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35771                    self,
35772                    self::fields::ExprField::MetaProp,
35773                ));
35774                <MetaPropExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35775                    _field_0,
35776                    visitor,
35777                    &mut *__ast_path,
35778                );
35779            }
35780            Expr::Await { 0: _field_0 } => {
35781                let mut __ast_path = __ast_path
35782                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Await));
35783                <AwaitExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35784                    _field_0,
35785                    visitor,
35786                    &mut *__ast_path,
35787                );
35788            }
35789            Expr::Paren { 0: _field_0 } => {
35790                let mut __ast_path = __ast_path
35791                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::Paren));
35792                <ParenExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35793                    _field_0,
35794                    visitor,
35795                    &mut *__ast_path,
35796                );
35797            }
35798            Expr::JSXMember { 0: _field_0 } => {
35799                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35800                    self,
35801                    self::fields::ExprField::Jsxmember,
35802                ));
35803                <JSXMemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35804                    _field_0,
35805                    visitor,
35806                    &mut *__ast_path,
35807                );
35808            }
35809            Expr::JSXNamespacedName { 0: _field_0 } => {
35810                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35811                    self,
35812                    self::fields::ExprField::JsxnamespacedName,
35813                ));
35814                <JSXNamespacedName as VisitWithAstPath<V>>::visit_with_ast_path(
35815                    _field_0,
35816                    visitor,
35817                    &mut *__ast_path,
35818                );
35819            }
35820            Expr::JSXEmpty { 0: _field_0 } => {
35821                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35822                    self,
35823                    self::fields::ExprField::Jsxempty,
35824                ));
35825                <JSXEmptyExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35826                    _field_0,
35827                    visitor,
35828                    &mut *__ast_path,
35829                );
35830            }
35831            Expr::JSXElement { 0: _field_0 } => {
35832                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35833                    self,
35834                    self::fields::ExprField::Jsxelement,
35835                ));
35836                <Box<JSXElement> as VisitWithAstPath<V>>::visit_with_ast_path(
35837                    _field_0,
35838                    visitor,
35839                    &mut *__ast_path,
35840                );
35841            }
35842            Expr::JSXFragment { 0: _field_0 } => {
35843                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35844                    self,
35845                    self::fields::ExprField::Jsxfragment,
35846                ));
35847                <JSXFragment as VisitWithAstPath<V>>::visit_with_ast_path(
35848                    _field_0,
35849                    visitor,
35850                    &mut *__ast_path,
35851                );
35852            }
35853            Expr::TsTypeAssertion { 0: _field_0 } => {
35854                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35855                    self,
35856                    self::fields::ExprField::TsTypeAssertion,
35857                ));
35858                <TsTypeAssertion as VisitWithAstPath<V>>::visit_with_ast_path(
35859                    _field_0,
35860                    visitor,
35861                    &mut *__ast_path,
35862                );
35863            }
35864            Expr::TsConstAssertion { 0: _field_0 } => {
35865                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35866                    self,
35867                    self::fields::ExprField::TsConstAssertion,
35868                ));
35869                <TsConstAssertion as VisitWithAstPath<V>>::visit_with_ast_path(
35870                    _field_0,
35871                    visitor,
35872                    &mut *__ast_path,
35873                );
35874            }
35875            Expr::TsNonNull { 0: _field_0 } => {
35876                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35877                    self,
35878                    self::fields::ExprField::TsNonNull,
35879                ));
35880                <TsNonNullExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35881                    _field_0,
35882                    visitor,
35883                    &mut *__ast_path,
35884                );
35885            }
35886            Expr::TsAs { 0: _field_0 } => {
35887                let mut __ast_path = __ast_path
35888                    .with_guard(AstParentNodeRef::Expr(self, self::fields::ExprField::TsAs));
35889                <TsAsExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35890                    _field_0,
35891                    visitor,
35892                    &mut *__ast_path,
35893                );
35894            }
35895            Expr::TsInstantiation { 0: _field_0 } => {
35896                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35897                    self,
35898                    self::fields::ExprField::TsInstantiation,
35899                ));
35900                <TsInstantiation as VisitWithAstPath<V>>::visit_with_ast_path(
35901                    _field_0,
35902                    visitor,
35903                    &mut *__ast_path,
35904                );
35905            }
35906            Expr::TsSatisfies { 0: _field_0 } => {
35907                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35908                    self,
35909                    self::fields::ExprField::TsSatisfies,
35910                ));
35911                <TsSatisfiesExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35912                    _field_0,
35913                    visitor,
35914                    &mut *__ast_path,
35915                );
35916            }
35917            Expr::PrivateName { 0: _field_0 } => {
35918                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35919                    self,
35920                    self::fields::ExprField::PrivateName,
35921                ));
35922                <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
35923                    _field_0,
35924                    visitor,
35925                    &mut *__ast_path,
35926                );
35927            }
35928            Expr::OptChain { 0: _field_0 } => {
35929                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35930                    self,
35931                    self::fields::ExprField::OptChain,
35932                ));
35933                <OptChainExpr as VisitWithAstPath<V>>::visit_with_ast_path(
35934                    _field_0,
35935                    visitor,
35936                    &mut *__ast_path,
35937                );
35938            }
35939            Expr::Invalid { 0: _field_0 } => {
35940                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Expr(
35941                    self,
35942                    self::fields::ExprField::Invalid,
35943                ));
35944                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
35945                    _field_0,
35946                    visitor,
35947                    &mut *__ast_path,
35948                );
35949            }
35950        }
35951    }
35952}
35953#[cfg(any(docsrs, feature = "path"))]
35954#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
35955impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExprOrSpread {
35956    #[doc = "Calls [VisitAstPath`::visit_expr_or_spread`] with `self`."]
35957    fn visit_with_ast_path<'ast: 'r, 'r>(
35958        &'ast self,
35959        visitor: &mut V,
35960        __ast_path: &mut AstNodePath<'r>,
35961    ) {
35962        <V as VisitAstPath>::visit_expr_or_spread(visitor, self, __ast_path)
35963    }
35964
35965    fn visit_children_with_ast_path<'ast: 'r, 'r>(
35966        &'ast self,
35967        visitor: &mut V,
35968        __ast_path: &mut AstNodePath<'r>,
35969    ) {
35970        match self {
35971            ExprOrSpread { spread, expr } => {
35972                {
35973                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprOrSpread(
35974                        self,
35975                        self::fields::ExprOrSpreadField::Spread,
35976                    ));
35977                    <Option<swc_common::Span> as VisitWithAstPath<V>>::visit_with_ast_path(
35978                        spread,
35979                        visitor,
35980                        &mut *__ast_path,
35981                    )
35982                };
35983                {
35984                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprOrSpread(
35985                        self,
35986                        self::fields::ExprOrSpreadField::Expr,
35987                    ));
35988                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
35989                        expr,
35990                        visitor,
35991                        &mut *__ast_path,
35992                    )
35993                };
35994            }
35995        }
35996    }
35997}
35998#[cfg(any(docsrs, feature = "path"))]
35999#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36000impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ExprStmt {
36001    #[doc = "Calls [VisitAstPath`::visit_expr_stmt`] with `self`."]
36002    fn visit_with_ast_path<'ast: 'r, 'r>(
36003        &'ast self,
36004        visitor: &mut V,
36005        __ast_path: &mut AstNodePath<'r>,
36006    ) {
36007        <V as VisitAstPath>::visit_expr_stmt(visitor, self, __ast_path)
36008    }
36009
36010    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36011        &'ast self,
36012        visitor: &mut V,
36013        __ast_path: &mut AstNodePath<'r>,
36014    ) {
36015        match self {
36016            ExprStmt { span, expr } => {
36017                {
36018                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprStmt(
36019                        self,
36020                        self::fields::ExprStmtField::Span,
36021                    ));
36022                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36023                        span,
36024                        visitor,
36025                        &mut *__ast_path,
36026                    )
36027                };
36028                {
36029                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ExprStmt(
36030                        self,
36031                        self::fields::ExprStmtField::Expr,
36032                    ));
36033                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36034                        expr,
36035                        visitor,
36036                        &mut *__ast_path,
36037                    )
36038                };
36039            }
36040        }
36041    }
36042}
36043#[cfg(any(docsrs, feature = "path"))]
36044#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36045impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for FnDecl {
36046    #[doc = "Calls [VisitAstPath`::visit_fn_decl`] with `self`."]
36047    fn visit_with_ast_path<'ast: 'r, 'r>(
36048        &'ast self,
36049        visitor: &mut V,
36050        __ast_path: &mut AstNodePath<'r>,
36051    ) {
36052        <V as VisitAstPath>::visit_fn_decl(visitor, self, __ast_path)
36053    }
36054
36055    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36056        &'ast self,
36057        visitor: &mut V,
36058        __ast_path: &mut AstNodePath<'r>,
36059    ) {
36060        match self {
36061            FnDecl {
36062                ident,
36063                declare,
36064                function,
36065            } => {
36066                {
36067                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnDecl(
36068                        self,
36069                        self::fields::FnDeclField::Ident,
36070                    ));
36071                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
36072                        ident,
36073                        visitor,
36074                        &mut *__ast_path,
36075                    )
36076                };
36077                {
36078                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnDecl(
36079                        self,
36080                        self::fields::FnDeclField::Function,
36081                    ));
36082                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
36083                        function,
36084                        visitor,
36085                        &mut *__ast_path,
36086                    )
36087                };
36088            }
36089        }
36090    }
36091}
36092#[cfg(any(docsrs, feature = "path"))]
36093#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36094impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for FnExpr {
36095    #[doc = "Calls [VisitAstPath`::visit_fn_expr`] with `self`."]
36096    fn visit_with_ast_path<'ast: 'r, 'r>(
36097        &'ast self,
36098        visitor: &mut V,
36099        __ast_path: &mut AstNodePath<'r>,
36100    ) {
36101        <V as VisitAstPath>::visit_fn_expr(visitor, self, __ast_path)
36102    }
36103
36104    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36105        &'ast self,
36106        visitor: &mut V,
36107        __ast_path: &mut AstNodePath<'r>,
36108    ) {
36109        match self {
36110            FnExpr { ident, function } => {
36111                {
36112                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnExpr(
36113                        self,
36114                        self::fields::FnExprField::Ident,
36115                    ));
36116                    <Option<Ident> as VisitWithAstPath<V>>::visit_with_ast_path(
36117                        ident,
36118                        visitor,
36119                        &mut *__ast_path,
36120                    )
36121                };
36122                {
36123                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::FnExpr(
36124                        self,
36125                        self::fields::FnExprField::Function,
36126                    ));
36127                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
36128                        function,
36129                        visitor,
36130                        &mut *__ast_path,
36131                    )
36132                };
36133            }
36134        }
36135    }
36136}
36137#[cfg(any(docsrs, feature = "path"))]
36138#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36139impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForHead {
36140    #[doc = "Calls [VisitAstPath`::visit_for_head`] with `self`."]
36141    fn visit_with_ast_path<'ast: 'r, 'r>(
36142        &'ast self,
36143        visitor: &mut V,
36144        __ast_path: &mut AstNodePath<'r>,
36145    ) {
36146        <V as VisitAstPath>::visit_for_head(visitor, self, __ast_path)
36147    }
36148
36149    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36150        &'ast self,
36151        visitor: &mut V,
36152        __ast_path: &mut AstNodePath<'r>,
36153    ) {
36154        match self {
36155            ForHead::VarDecl { 0: _field_0 } => {
36156                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForHead(
36157                    self,
36158                    self::fields::ForHeadField::VarDecl,
36159                ));
36160                <Box<VarDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
36161                    _field_0,
36162                    visitor,
36163                    &mut *__ast_path,
36164                );
36165            }
36166            ForHead::UsingDecl { 0: _field_0 } => {
36167                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForHead(
36168                    self,
36169                    self::fields::ForHeadField::UsingDecl,
36170                ));
36171                <Box<UsingDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
36172                    _field_0,
36173                    visitor,
36174                    &mut *__ast_path,
36175                );
36176            }
36177            ForHead::Pat { 0: _field_0 } => {
36178                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForHead(
36179                    self,
36180                    self::fields::ForHeadField::Pat,
36181                ));
36182                <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
36183                    _field_0,
36184                    visitor,
36185                    &mut *__ast_path,
36186                );
36187            }
36188        }
36189    }
36190}
36191#[cfg(any(docsrs, feature = "path"))]
36192#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36193impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForInStmt {
36194    #[doc = "Calls [VisitAstPath`::visit_for_in_stmt`] with `self`."]
36195    fn visit_with_ast_path<'ast: 'r, 'r>(
36196        &'ast self,
36197        visitor: &mut V,
36198        __ast_path: &mut AstNodePath<'r>,
36199    ) {
36200        <V as VisitAstPath>::visit_for_in_stmt(visitor, self, __ast_path)
36201    }
36202
36203    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36204        &'ast self,
36205        visitor: &mut V,
36206        __ast_path: &mut AstNodePath<'r>,
36207    ) {
36208        match self {
36209            ForInStmt {
36210                span,
36211                left,
36212                right,
36213                body,
36214            } => {
36215                {
36216                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36217                        self,
36218                        self::fields::ForInStmtField::Span,
36219                    ));
36220                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36221                        span,
36222                        visitor,
36223                        &mut *__ast_path,
36224                    )
36225                };
36226                {
36227                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36228                        self,
36229                        self::fields::ForInStmtField::Left,
36230                    ));
36231                    <ForHead as VisitWithAstPath<V>>::visit_with_ast_path(
36232                        left,
36233                        visitor,
36234                        &mut *__ast_path,
36235                    )
36236                };
36237                {
36238                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36239                        self,
36240                        self::fields::ForInStmtField::Right,
36241                    ));
36242                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36243                        right,
36244                        visitor,
36245                        &mut *__ast_path,
36246                    )
36247                };
36248                {
36249                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForInStmt(
36250                        self,
36251                        self::fields::ForInStmtField::Body,
36252                    ));
36253                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36254                        body,
36255                        visitor,
36256                        &mut *__ast_path,
36257                    )
36258                };
36259            }
36260        }
36261    }
36262}
36263#[cfg(any(docsrs, feature = "path"))]
36264#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36265impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForOfStmt {
36266    #[doc = "Calls [VisitAstPath`::visit_for_of_stmt`] with `self`."]
36267    fn visit_with_ast_path<'ast: 'r, 'r>(
36268        &'ast self,
36269        visitor: &mut V,
36270        __ast_path: &mut AstNodePath<'r>,
36271    ) {
36272        <V as VisitAstPath>::visit_for_of_stmt(visitor, self, __ast_path)
36273    }
36274
36275    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36276        &'ast self,
36277        visitor: &mut V,
36278        __ast_path: &mut AstNodePath<'r>,
36279    ) {
36280        match self {
36281            ForOfStmt {
36282                span,
36283                is_await,
36284                left,
36285                right,
36286                body,
36287            } => {
36288                {
36289                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36290                        self,
36291                        self::fields::ForOfStmtField::Span,
36292                    ));
36293                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36294                        span,
36295                        visitor,
36296                        &mut *__ast_path,
36297                    )
36298                };
36299                {
36300                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36301                        self,
36302                        self::fields::ForOfStmtField::Left,
36303                    ));
36304                    <ForHead as VisitWithAstPath<V>>::visit_with_ast_path(
36305                        left,
36306                        visitor,
36307                        &mut *__ast_path,
36308                    )
36309                };
36310                {
36311                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36312                        self,
36313                        self::fields::ForOfStmtField::Right,
36314                    ));
36315                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36316                        right,
36317                        visitor,
36318                        &mut *__ast_path,
36319                    )
36320                };
36321                {
36322                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForOfStmt(
36323                        self,
36324                        self::fields::ForOfStmtField::Body,
36325                    ));
36326                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36327                        body,
36328                        visitor,
36329                        &mut *__ast_path,
36330                    )
36331                };
36332            }
36333        }
36334    }
36335}
36336#[cfg(any(docsrs, feature = "path"))]
36337#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36338impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ForStmt {
36339    #[doc = "Calls [VisitAstPath`::visit_for_stmt`] with `self`."]
36340    fn visit_with_ast_path<'ast: 'r, 'r>(
36341        &'ast self,
36342        visitor: &mut V,
36343        __ast_path: &mut AstNodePath<'r>,
36344    ) {
36345        <V as VisitAstPath>::visit_for_stmt(visitor, self, __ast_path)
36346    }
36347
36348    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36349        &'ast self,
36350        visitor: &mut V,
36351        __ast_path: &mut AstNodePath<'r>,
36352    ) {
36353        match self {
36354            ForStmt {
36355                span,
36356                init,
36357                test,
36358                update,
36359                body,
36360            } => {
36361                {
36362                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36363                        self,
36364                        self::fields::ForStmtField::Span,
36365                    ));
36366                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36367                        span,
36368                        visitor,
36369                        &mut *__ast_path,
36370                    )
36371                };
36372                {
36373                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36374                        self,
36375                        self::fields::ForStmtField::Init,
36376                    ));
36377                    <Option<VarDeclOrExpr> as VisitWithAstPath<V>>::visit_with_ast_path(
36378                        init,
36379                        visitor,
36380                        &mut *__ast_path,
36381                    )
36382                };
36383                {
36384                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36385                        self,
36386                        self::fields::ForStmtField::Test,
36387                    ));
36388                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
36389                        test,
36390                        visitor,
36391                        &mut *__ast_path,
36392                    )
36393                };
36394                {
36395                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36396                        self,
36397                        self::fields::ForStmtField::Update,
36398                    ));
36399                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
36400                        update,
36401                        visitor,
36402                        &mut *__ast_path,
36403                    )
36404                };
36405                {
36406                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ForStmt(
36407                        self,
36408                        self::fields::ForStmtField::Body,
36409                    ));
36410                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36411                        body,
36412                        visitor,
36413                        &mut *__ast_path,
36414                    )
36415                };
36416            }
36417        }
36418    }
36419}
36420#[cfg(any(docsrs, feature = "path"))]
36421#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36422impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Function {
36423    #[doc = "Calls [VisitAstPath`::visit_function`] with `self`."]
36424    fn visit_with_ast_path<'ast: 'r, 'r>(
36425        &'ast self,
36426        visitor: &mut V,
36427        __ast_path: &mut AstNodePath<'r>,
36428    ) {
36429        <V as VisitAstPath>::visit_function(visitor, self, __ast_path)
36430    }
36431
36432    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36433        &'ast self,
36434        visitor: &mut V,
36435        __ast_path: &mut AstNodePath<'r>,
36436    ) {
36437        match self {
36438            Function {
36439                params,
36440                decorators,
36441                span,
36442                ctxt,
36443                body,
36444                is_generator,
36445                is_async,
36446                type_params,
36447                return_type,
36448            } => {
36449                {
36450                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36451                        self,
36452                        self::fields::FunctionField::Params(usize::MAX),
36453                    ));
36454                    <Vec<Param> as VisitWithAstPath<V>>::visit_with_ast_path(
36455                        params,
36456                        visitor,
36457                        &mut *__ast_path,
36458                    )
36459                };
36460                {
36461                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36462                        self,
36463                        self::fields::FunctionField::Decorators(usize::MAX),
36464                    ));
36465                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
36466                        decorators,
36467                        visitor,
36468                        &mut *__ast_path,
36469                    )
36470                };
36471                {
36472                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36473                        self,
36474                        self::fields::FunctionField::Span,
36475                    ));
36476                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36477                        span,
36478                        visitor,
36479                        &mut *__ast_path,
36480                    )
36481                };
36482                {
36483                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36484                        self,
36485                        self::fields::FunctionField::Ctxt,
36486                    ));
36487                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
36488                        ctxt,
36489                        visitor,
36490                        &mut *__ast_path,
36491                    )
36492                };
36493                {
36494                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36495                        self,
36496                        self::fields::FunctionField::Body,
36497                    ));
36498                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36499                        body,
36500                        visitor,
36501                        &mut *__ast_path,
36502                    )
36503                };
36504                {
36505                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36506                        self,
36507                        self::fields::FunctionField::TypeParams,
36508                    ));
36509                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
36510                        type_params,
36511                        visitor,
36512                        &mut *__ast_path,
36513                    )
36514                };
36515                {
36516                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Function(
36517                        self,
36518                        self::fields::FunctionField::ReturnType,
36519                    ));
36520                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
36521                        return_type,
36522                        visitor,
36523                        &mut *__ast_path,
36524                    )
36525                };
36526            }
36527        }
36528    }
36529}
36530#[cfg(any(docsrs, feature = "path"))]
36531#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36532impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for GetterProp {
36533    #[doc = "Calls [VisitAstPath`::visit_getter_prop`] with `self`."]
36534    fn visit_with_ast_path<'ast: 'r, 'r>(
36535        &'ast self,
36536        visitor: &mut V,
36537        __ast_path: &mut AstNodePath<'r>,
36538    ) {
36539        <V as VisitAstPath>::visit_getter_prop(visitor, self, __ast_path)
36540    }
36541
36542    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36543        &'ast self,
36544        visitor: &mut V,
36545        __ast_path: &mut AstNodePath<'r>,
36546    ) {
36547        match self {
36548            GetterProp {
36549                span,
36550                key,
36551                type_ann,
36552                body,
36553            } => {
36554                {
36555                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36556                        self,
36557                        self::fields::GetterPropField::Span,
36558                    ));
36559                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36560                        span,
36561                        visitor,
36562                        &mut *__ast_path,
36563                    )
36564                };
36565                {
36566                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36567                        self,
36568                        self::fields::GetterPropField::Key,
36569                    ));
36570                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
36571                        key,
36572                        visitor,
36573                        &mut *__ast_path,
36574                    )
36575                };
36576                {
36577                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36578                        self,
36579                        self::fields::GetterPropField::TypeAnn,
36580                    ));
36581                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
36582                        type_ann,
36583                        visitor,
36584                        &mut *__ast_path,
36585                    )
36586                };
36587                {
36588                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::GetterProp(
36589                        self,
36590                        self::fields::GetterPropField::Body,
36591                    ));
36592                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36593                        body,
36594                        visitor,
36595                        &mut *__ast_path,
36596                    )
36597                };
36598            }
36599        }
36600    }
36601}
36602#[cfg(any(docsrs, feature = "path"))]
36603#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36604impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Ident {
36605    #[doc = "Calls [VisitAstPath`::visit_ident`] with `self`."]
36606    fn visit_with_ast_path<'ast: 'r, 'r>(
36607        &'ast self,
36608        visitor: &mut V,
36609        __ast_path: &mut AstNodePath<'r>,
36610    ) {
36611        <V as VisitAstPath>::visit_ident(visitor, self, __ast_path)
36612    }
36613
36614    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36615        &'ast self,
36616        visitor: &mut V,
36617        __ast_path: &mut AstNodePath<'r>,
36618    ) {
36619        match self {
36620            Ident {
36621                span,
36622                ctxt,
36623                sym,
36624                optional,
36625            } => {
36626                {
36627                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Ident(
36628                        self,
36629                        self::fields::IdentField::Span,
36630                    ));
36631                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36632                        span,
36633                        visitor,
36634                        &mut *__ast_path,
36635                    )
36636                };
36637                {
36638                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Ident(
36639                        self,
36640                        self::fields::IdentField::Ctxt,
36641                    ));
36642                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
36643                        ctxt,
36644                        visitor,
36645                        &mut *__ast_path,
36646                    )
36647                };
36648                {
36649                    let mut __ast_path = __ast_path
36650                        .with_guard(AstParentNodeRef::Ident(self, self::fields::IdentField::Sym));
36651                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
36652                        sym,
36653                        visitor,
36654                        &mut *__ast_path,
36655                    )
36656                };
36657            }
36658        }
36659    }
36660}
36661#[cfg(any(docsrs, feature = "path"))]
36662#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36663impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for IdentName {
36664    #[doc = "Calls [VisitAstPath`::visit_ident_name`] with `self`."]
36665    fn visit_with_ast_path<'ast: 'r, 'r>(
36666        &'ast self,
36667        visitor: &mut V,
36668        __ast_path: &mut AstNodePath<'r>,
36669    ) {
36670        <V as VisitAstPath>::visit_ident_name(visitor, self, __ast_path)
36671    }
36672
36673    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36674        &'ast self,
36675        visitor: &mut V,
36676        __ast_path: &mut AstNodePath<'r>,
36677    ) {
36678        match self {
36679            IdentName { span, sym } => {
36680                {
36681                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IdentName(
36682                        self,
36683                        self::fields::IdentNameField::Span,
36684                    ));
36685                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36686                        span,
36687                        visitor,
36688                        &mut *__ast_path,
36689                    )
36690                };
36691                {
36692                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IdentName(
36693                        self,
36694                        self::fields::IdentNameField::Sym,
36695                    ));
36696                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
36697                        sym,
36698                        visitor,
36699                        &mut *__ast_path,
36700                    )
36701                };
36702            }
36703        }
36704    }
36705}
36706#[cfg(any(docsrs, feature = "path"))]
36707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36708impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for IfStmt {
36709    #[doc = "Calls [VisitAstPath`::visit_if_stmt`] with `self`."]
36710    fn visit_with_ast_path<'ast: 'r, 'r>(
36711        &'ast self,
36712        visitor: &mut V,
36713        __ast_path: &mut AstNodePath<'r>,
36714    ) {
36715        <V as VisitAstPath>::visit_if_stmt(visitor, self, __ast_path)
36716    }
36717
36718    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36719        &'ast self,
36720        visitor: &mut V,
36721        __ast_path: &mut AstNodePath<'r>,
36722    ) {
36723        match self {
36724            IfStmt {
36725                span,
36726                test,
36727                cons,
36728                alt,
36729            } => {
36730                {
36731                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36732                        self,
36733                        self::fields::IfStmtField::Span,
36734                    ));
36735                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36736                        span,
36737                        visitor,
36738                        &mut *__ast_path,
36739                    )
36740                };
36741                {
36742                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36743                        self,
36744                        self::fields::IfStmtField::Test,
36745                    ));
36746                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
36747                        test,
36748                        visitor,
36749                        &mut *__ast_path,
36750                    )
36751                };
36752                {
36753                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36754                        self,
36755                        self::fields::IfStmtField::Cons,
36756                    ));
36757                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
36758                        cons,
36759                        visitor,
36760                        &mut *__ast_path,
36761                    )
36762                };
36763                {
36764                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::IfStmt(
36765                        self,
36766                        self::fields::IfStmtField::Alt,
36767                    ));
36768                    <Option<Box<Stmt>> as VisitWithAstPath<V>>::visit_with_ast_path(
36769                        alt,
36770                        visitor,
36771                        &mut *__ast_path,
36772                    )
36773                };
36774            }
36775        }
36776    }
36777}
36778#[cfg(any(docsrs, feature = "path"))]
36779#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36780impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Import {
36781    #[doc = "Calls [VisitAstPath`::visit_import`] with `self`."]
36782    fn visit_with_ast_path<'ast: 'r, 'r>(
36783        &'ast self,
36784        visitor: &mut V,
36785        __ast_path: &mut AstNodePath<'r>,
36786    ) {
36787        <V as VisitAstPath>::visit_import(visitor, self, __ast_path)
36788    }
36789
36790    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36791        &'ast self,
36792        visitor: &mut V,
36793        __ast_path: &mut AstNodePath<'r>,
36794    ) {
36795        match self {
36796            Import { span, phase } => {
36797                {
36798                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Import(
36799                        self,
36800                        self::fields::ImportField::Span,
36801                    ));
36802                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36803                        span,
36804                        visitor,
36805                        &mut *__ast_path,
36806                    )
36807                };
36808                {
36809                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Import(
36810                        self,
36811                        self::fields::ImportField::Phase,
36812                    ));
36813                    <ImportPhase as VisitWithAstPath<V>>::visit_with_ast_path(
36814                        phase,
36815                        visitor,
36816                        &mut *__ast_path,
36817                    )
36818                };
36819            }
36820        }
36821    }
36822}
36823#[cfg(any(docsrs, feature = "path"))]
36824#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36825impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportDecl {
36826    #[doc = "Calls [VisitAstPath`::visit_import_decl`] with `self`."]
36827    fn visit_with_ast_path<'ast: 'r, 'r>(
36828        &'ast self,
36829        visitor: &mut V,
36830        __ast_path: &mut AstNodePath<'r>,
36831    ) {
36832        <V as VisitAstPath>::visit_import_decl(visitor, self, __ast_path)
36833    }
36834
36835    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36836        &'ast self,
36837        visitor: &mut V,
36838        __ast_path: &mut AstNodePath<'r>,
36839    ) {
36840        match self {
36841            ImportDecl {
36842                span,
36843                specifiers,
36844                src,
36845                type_only,
36846                with,
36847                phase,
36848            } => {
36849                {
36850                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
36851                        self,
36852                        self::fields::ImportDeclField::Span,
36853                    ));
36854                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36855                        span,
36856                        visitor,
36857                        &mut *__ast_path,
36858                    )
36859                };
36860                {
36861                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
36862                        self,
36863                        self::fields::ImportDeclField::Specifiers(usize::MAX),
36864                    ));
36865                    <Vec<ImportSpecifier> as VisitWithAstPath<V>>::visit_with_ast_path(
36866                        specifiers,
36867                        visitor,
36868                        &mut *__ast_path,
36869                    )
36870                };
36871                {
36872                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
36873                        self,
36874                        self::fields::ImportDeclField::Src,
36875                    ));
36876                    <Box<Str> as VisitWithAstPath<V>>::visit_with_ast_path(
36877                        src,
36878                        visitor,
36879                        &mut *__ast_path,
36880                    )
36881                };
36882                {
36883                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
36884                        self,
36885                        self::fields::ImportDeclField::With,
36886                    ));
36887                    <Option<Box<ObjectLit>> as VisitWithAstPath<V>>::visit_with_ast_path(
36888                        with,
36889                        visitor,
36890                        &mut *__ast_path,
36891                    )
36892                };
36893                {
36894                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportDecl(
36895                        self,
36896                        self::fields::ImportDeclField::Phase,
36897                    ));
36898                    <ImportPhase as VisitWithAstPath<V>>::visit_with_ast_path(
36899                        phase,
36900                        visitor,
36901                        &mut *__ast_path,
36902                    )
36903                };
36904            }
36905        }
36906    }
36907}
36908#[cfg(any(docsrs, feature = "path"))]
36909#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36910impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportDefaultSpecifier {
36911    #[doc = "Calls [VisitAstPath`::visit_import_default_specifier`] with `self`."]
36912    fn visit_with_ast_path<'ast: 'r, 'r>(
36913        &'ast self,
36914        visitor: &mut V,
36915        __ast_path: &mut AstNodePath<'r>,
36916    ) {
36917        <V as VisitAstPath>::visit_import_default_specifier(visitor, self, __ast_path)
36918    }
36919
36920    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36921        &'ast self,
36922        visitor: &mut V,
36923        __ast_path: &mut AstNodePath<'r>,
36924    ) {
36925        match self {
36926            ImportDefaultSpecifier { span, local } => {
36927                {
36928                    let mut __ast_path =
36929                        __ast_path.with_guard(AstParentNodeRef::ImportDefaultSpecifier(
36930                            self,
36931                            self::fields::ImportDefaultSpecifierField::Span,
36932                        ));
36933                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36934                        span,
36935                        visitor,
36936                        &mut *__ast_path,
36937                    )
36938                };
36939                {
36940                    let mut __ast_path =
36941                        __ast_path.with_guard(AstParentNodeRef::ImportDefaultSpecifier(
36942                            self,
36943                            self::fields::ImportDefaultSpecifierField::Local,
36944                        ));
36945                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
36946                        local,
36947                        visitor,
36948                        &mut *__ast_path,
36949                    )
36950                };
36951            }
36952        }
36953    }
36954}
36955#[cfg(any(docsrs, feature = "path"))]
36956#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
36957impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportNamedSpecifier {
36958    #[doc = "Calls [VisitAstPath`::visit_import_named_specifier`] with `self`."]
36959    fn visit_with_ast_path<'ast: 'r, 'r>(
36960        &'ast self,
36961        visitor: &mut V,
36962        __ast_path: &mut AstNodePath<'r>,
36963    ) {
36964        <V as VisitAstPath>::visit_import_named_specifier(visitor, self, __ast_path)
36965    }
36966
36967    fn visit_children_with_ast_path<'ast: 'r, 'r>(
36968        &'ast self,
36969        visitor: &mut V,
36970        __ast_path: &mut AstNodePath<'r>,
36971    ) {
36972        match self {
36973            ImportNamedSpecifier {
36974                span,
36975                local,
36976                imported,
36977                is_type_only,
36978            } => {
36979                {
36980                    let mut __ast_path =
36981                        __ast_path.with_guard(AstParentNodeRef::ImportNamedSpecifier(
36982                            self,
36983                            self::fields::ImportNamedSpecifierField::Span,
36984                        ));
36985                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
36986                        span,
36987                        visitor,
36988                        &mut *__ast_path,
36989                    )
36990                };
36991                {
36992                    let mut __ast_path =
36993                        __ast_path.with_guard(AstParentNodeRef::ImportNamedSpecifier(
36994                            self,
36995                            self::fields::ImportNamedSpecifierField::Local,
36996                        ));
36997                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
36998                        local,
36999                        visitor,
37000                        &mut *__ast_path,
37001                    )
37002                };
37003                {
37004                    let mut __ast_path =
37005                        __ast_path.with_guard(AstParentNodeRef::ImportNamedSpecifier(
37006                            self,
37007                            self::fields::ImportNamedSpecifierField::Imported,
37008                        ));
37009                    <Option<ModuleExportName> as VisitWithAstPath<V>>::visit_with_ast_path(
37010                        imported,
37011                        visitor,
37012                        &mut *__ast_path,
37013                    )
37014                };
37015            }
37016        }
37017    }
37018}
37019#[cfg(any(docsrs, feature = "path"))]
37020#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37021impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportPhase {
37022    #[doc = "Calls [VisitAstPath`::visit_import_phase`] with `self`."]
37023    fn visit_with_ast_path<'ast: 'r, 'r>(
37024        &'ast self,
37025        visitor: &mut V,
37026        __ast_path: &mut AstNodePath<'r>,
37027    ) {
37028        <V as VisitAstPath>::visit_import_phase(visitor, self, __ast_path)
37029    }
37030
37031    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37032        &'ast self,
37033        visitor: &mut V,
37034        __ast_path: &mut AstNodePath<'r>,
37035    ) {
37036        match self {
37037            ImportPhase::Evaluation => {}
37038            ImportPhase::Source => {}
37039            ImportPhase::Defer => {}
37040        }
37041    }
37042}
37043#[cfg(any(docsrs, feature = "path"))]
37044#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37045impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportSpecifier {
37046    #[doc = "Calls [VisitAstPath`::visit_import_specifier`] with `self`."]
37047    fn visit_with_ast_path<'ast: 'r, 'r>(
37048        &'ast self,
37049        visitor: &mut V,
37050        __ast_path: &mut AstNodePath<'r>,
37051    ) {
37052        <V as VisitAstPath>::visit_import_specifier(visitor, self, __ast_path)
37053    }
37054
37055    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37056        &'ast self,
37057        visitor: &mut V,
37058        __ast_path: &mut AstNodePath<'r>,
37059    ) {
37060        match self {
37061            ImportSpecifier::Named { 0: _field_0 } => {
37062                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportSpecifier(
37063                    self,
37064                    self::fields::ImportSpecifierField::Named,
37065                ));
37066                <ImportNamedSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
37067                    _field_0,
37068                    visitor,
37069                    &mut *__ast_path,
37070                );
37071            }
37072            ImportSpecifier::Default { 0: _field_0 } => {
37073                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportSpecifier(
37074                    self,
37075                    self::fields::ImportSpecifierField::Default,
37076                ));
37077                <ImportDefaultSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
37078                    _field_0,
37079                    visitor,
37080                    &mut *__ast_path,
37081                );
37082            }
37083            ImportSpecifier::Namespace { 0: _field_0 } => {
37084                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportSpecifier(
37085                    self,
37086                    self::fields::ImportSpecifierField::Namespace,
37087                ));
37088                <ImportStarAsSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
37089                    _field_0,
37090                    visitor,
37091                    &mut *__ast_path,
37092                );
37093            }
37094        }
37095    }
37096}
37097#[cfg(any(docsrs, feature = "path"))]
37098#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37099impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportStarAsSpecifier {
37100    #[doc = "Calls [VisitAstPath`::visit_import_star_as_specifier`] with `self`."]
37101    fn visit_with_ast_path<'ast: 'r, 'r>(
37102        &'ast self,
37103        visitor: &mut V,
37104        __ast_path: &mut AstNodePath<'r>,
37105    ) {
37106        <V as VisitAstPath>::visit_import_star_as_specifier(visitor, self, __ast_path)
37107    }
37108
37109    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37110        &'ast self,
37111        visitor: &mut V,
37112        __ast_path: &mut AstNodePath<'r>,
37113    ) {
37114        match self {
37115            ImportStarAsSpecifier { span, local } => {
37116                {
37117                    let mut __ast_path =
37118                        __ast_path.with_guard(AstParentNodeRef::ImportStarAsSpecifier(
37119                            self,
37120                            self::fields::ImportStarAsSpecifierField::Span,
37121                        ));
37122                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37123                        span,
37124                        visitor,
37125                        &mut *__ast_path,
37126                    )
37127                };
37128                {
37129                    let mut __ast_path =
37130                        __ast_path.with_guard(AstParentNodeRef::ImportStarAsSpecifier(
37131                            self,
37132                            self::fields::ImportStarAsSpecifierField::Local,
37133                        ));
37134                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
37135                        local,
37136                        visitor,
37137                        &mut *__ast_path,
37138                    )
37139                };
37140            }
37141        }
37142    }
37143}
37144#[cfg(any(docsrs, feature = "path"))]
37145#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37146impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportWith {
37147    #[doc = "Calls [VisitAstPath`::visit_import_with`] with `self`."]
37148    fn visit_with_ast_path<'ast: 'r, 'r>(
37149        &'ast self,
37150        visitor: &mut V,
37151        __ast_path: &mut AstNodePath<'r>,
37152    ) {
37153        <V as VisitAstPath>::visit_import_with(visitor, self, __ast_path)
37154    }
37155
37156    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37157        &'ast self,
37158        visitor: &mut V,
37159        __ast_path: &mut AstNodePath<'r>,
37160    ) {
37161        match self {
37162            ImportWith { span, values } => {
37163                {
37164                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWith(
37165                        self,
37166                        self::fields::ImportWithField::Span,
37167                    ));
37168                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37169                        span,
37170                        visitor,
37171                        &mut *__ast_path,
37172                    )
37173                };
37174                {
37175                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWith(
37176                        self,
37177                        self::fields::ImportWithField::Values(usize::MAX),
37178                    ));
37179                    <Vec<ImportWithItem> as VisitWithAstPath<V>>::visit_with_ast_path(
37180                        values,
37181                        visitor,
37182                        &mut *__ast_path,
37183                    )
37184                };
37185            }
37186        }
37187    }
37188}
37189#[cfg(any(docsrs, feature = "path"))]
37190#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37191impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ImportWithItem {
37192    #[doc = "Calls [VisitAstPath`::visit_import_with_item`] with `self`."]
37193    fn visit_with_ast_path<'ast: 'r, 'r>(
37194        &'ast self,
37195        visitor: &mut V,
37196        __ast_path: &mut AstNodePath<'r>,
37197    ) {
37198        <V as VisitAstPath>::visit_import_with_item(visitor, self, __ast_path)
37199    }
37200
37201    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37202        &'ast self,
37203        visitor: &mut V,
37204        __ast_path: &mut AstNodePath<'r>,
37205    ) {
37206        match self {
37207            ImportWithItem { key, value } => {
37208                {
37209                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWithItem(
37210                        self,
37211                        self::fields::ImportWithItemField::Key,
37212                    ));
37213                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
37214                        key,
37215                        visitor,
37216                        &mut *__ast_path,
37217                    )
37218                };
37219                {
37220                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ImportWithItem(
37221                        self,
37222                        self::fields::ImportWithItemField::Value,
37223                    ));
37224                    <Str as VisitWithAstPath<V>>::visit_with_ast_path(
37225                        value,
37226                        visitor,
37227                        &mut *__ast_path,
37228                    )
37229                };
37230            }
37231        }
37232    }
37233}
37234#[cfg(any(docsrs, feature = "path"))]
37235#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37236impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Invalid {
37237    #[doc = "Calls [VisitAstPath`::visit_invalid`] with `self`."]
37238    fn visit_with_ast_path<'ast: 'r, 'r>(
37239        &'ast self,
37240        visitor: &mut V,
37241        __ast_path: &mut AstNodePath<'r>,
37242    ) {
37243        <V as VisitAstPath>::visit_invalid(visitor, self, __ast_path)
37244    }
37245
37246    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37247        &'ast self,
37248        visitor: &mut V,
37249        __ast_path: &mut AstNodePath<'r>,
37250    ) {
37251        match self {
37252            Invalid { span } => {
37253                {
37254                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Invalid(
37255                        self,
37256                        self::fields::InvalidField::Span,
37257                    ));
37258                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37259                        span,
37260                        visitor,
37261                        &mut *__ast_path,
37262                    )
37263                };
37264            }
37265        }
37266    }
37267}
37268#[cfg(any(docsrs, feature = "path"))]
37269#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37270impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttr {
37271    #[doc = "Calls [VisitAstPath`::visit_jsx_attr`] with `self`."]
37272    fn visit_with_ast_path<'ast: 'r, 'r>(
37273        &'ast self,
37274        visitor: &mut V,
37275        __ast_path: &mut AstNodePath<'r>,
37276    ) {
37277        <V as VisitAstPath>::visit_jsx_attr(visitor, self, __ast_path)
37278    }
37279
37280    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37281        &'ast self,
37282        visitor: &mut V,
37283        __ast_path: &mut AstNodePath<'r>,
37284    ) {
37285        match self {
37286            JSXAttr { span, name, value } => {
37287                {
37288                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttr(
37289                        self,
37290                        self::fields::JSXAttrField::Span,
37291                    ));
37292                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37293                        span,
37294                        visitor,
37295                        &mut *__ast_path,
37296                    )
37297                };
37298                {
37299                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttr(
37300                        self,
37301                        self::fields::JSXAttrField::Name,
37302                    ));
37303                    <JSXAttrName as VisitWithAstPath<V>>::visit_with_ast_path(
37304                        name,
37305                        visitor,
37306                        &mut *__ast_path,
37307                    )
37308                };
37309                {
37310                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttr(
37311                        self,
37312                        self::fields::JSXAttrField::Value,
37313                    ));
37314                    <Option<JSXAttrValue> as VisitWithAstPath<V>>::visit_with_ast_path(
37315                        value,
37316                        visitor,
37317                        &mut *__ast_path,
37318                    )
37319                };
37320            }
37321        }
37322    }
37323}
37324#[cfg(any(docsrs, feature = "path"))]
37325#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37326impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttrName {
37327    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_name`] with `self`."]
37328    fn visit_with_ast_path<'ast: 'r, 'r>(
37329        &'ast self,
37330        visitor: &mut V,
37331        __ast_path: &mut AstNodePath<'r>,
37332    ) {
37333        <V as VisitAstPath>::visit_jsx_attr_name(visitor, self, __ast_path)
37334    }
37335
37336    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37337        &'ast self,
37338        visitor: &mut V,
37339        __ast_path: &mut AstNodePath<'r>,
37340    ) {
37341        match self {
37342            JSXAttrName::Ident { 0: _field_0 } => {
37343                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrName(
37344                    self,
37345                    self::fields::JSXAttrNameField::Ident,
37346                ));
37347                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
37348                    _field_0,
37349                    visitor,
37350                    &mut *__ast_path,
37351                );
37352            }
37353            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
37354                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrName(
37355                    self,
37356                    self::fields::JSXAttrNameField::JsxnamespacedName,
37357                ));
37358                <JSXNamespacedName as VisitWithAstPath<V>>::visit_with_ast_path(
37359                    _field_0,
37360                    visitor,
37361                    &mut *__ast_path,
37362                );
37363            }
37364        }
37365    }
37366}
37367#[cfg(any(docsrs, feature = "path"))]
37368#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37369impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttrOrSpread {
37370    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_or_spread`] with `self`."]
37371    fn visit_with_ast_path<'ast: 'r, 'r>(
37372        &'ast self,
37373        visitor: &mut V,
37374        __ast_path: &mut AstNodePath<'r>,
37375    ) {
37376        <V as VisitAstPath>::visit_jsx_attr_or_spread(visitor, self, __ast_path)
37377    }
37378
37379    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37380        &'ast self,
37381        visitor: &mut V,
37382        __ast_path: &mut AstNodePath<'r>,
37383    ) {
37384        match self {
37385            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
37386                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrOrSpread(
37387                    self,
37388                    self::fields::JSXAttrOrSpreadField::Jsxattr,
37389                ));
37390                <JSXAttr as VisitWithAstPath<V>>::visit_with_ast_path(
37391                    _field_0,
37392                    visitor,
37393                    &mut *__ast_path,
37394                );
37395            }
37396            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
37397                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrOrSpread(
37398                    self,
37399                    self::fields::JSXAttrOrSpreadField::SpreadElement,
37400                ));
37401                <SpreadElement as VisitWithAstPath<V>>::visit_with_ast_path(
37402                    _field_0,
37403                    visitor,
37404                    &mut *__ast_path,
37405                );
37406            }
37407        }
37408    }
37409}
37410#[cfg(any(docsrs, feature = "path"))]
37411#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37412impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXAttrValue {
37413    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_value`] with `self`."]
37414    fn visit_with_ast_path<'ast: 'r, 'r>(
37415        &'ast self,
37416        visitor: &mut V,
37417        __ast_path: &mut AstNodePath<'r>,
37418    ) {
37419        <V as VisitAstPath>::visit_jsx_attr_value(visitor, self, __ast_path)
37420    }
37421
37422    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37423        &'ast self,
37424        visitor: &mut V,
37425        __ast_path: &mut AstNodePath<'r>,
37426    ) {
37427        match self {
37428            JSXAttrValue::Lit { 0: _field_0 } => {
37429                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37430                    self,
37431                    self::fields::JSXAttrValueField::Lit,
37432                ));
37433                <Lit as VisitWithAstPath<V>>::visit_with_ast_path(
37434                    _field_0,
37435                    visitor,
37436                    &mut *__ast_path,
37437                );
37438            }
37439            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
37440                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37441                    self,
37442                    self::fields::JSXAttrValueField::JsxexprContainer,
37443                ));
37444                <JSXExprContainer as VisitWithAstPath<V>>::visit_with_ast_path(
37445                    _field_0,
37446                    visitor,
37447                    &mut *__ast_path,
37448                );
37449            }
37450            JSXAttrValue::JSXElement { 0: _field_0 } => {
37451                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37452                    self,
37453                    self::fields::JSXAttrValueField::Jsxelement,
37454                ));
37455                <Box<JSXElement> as VisitWithAstPath<V>>::visit_with_ast_path(
37456                    _field_0,
37457                    visitor,
37458                    &mut *__ast_path,
37459                );
37460            }
37461            JSXAttrValue::JSXFragment { 0: _field_0 } => {
37462                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXAttrValue(
37463                    self,
37464                    self::fields::JSXAttrValueField::Jsxfragment,
37465                ));
37466                <JSXFragment as VisitWithAstPath<V>>::visit_with_ast_path(
37467                    _field_0,
37468                    visitor,
37469                    &mut *__ast_path,
37470                );
37471            }
37472        }
37473    }
37474}
37475#[cfg(any(docsrs, feature = "path"))]
37476#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37477impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXClosingElement {
37478    #[doc = "Calls [VisitAstPath`::visit_jsx_closing_element`] with `self`."]
37479    fn visit_with_ast_path<'ast: 'r, 'r>(
37480        &'ast self,
37481        visitor: &mut V,
37482        __ast_path: &mut AstNodePath<'r>,
37483    ) {
37484        <V as VisitAstPath>::visit_jsx_closing_element(visitor, self, __ast_path)
37485    }
37486
37487    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37488        &'ast self,
37489        visitor: &mut V,
37490        __ast_path: &mut AstNodePath<'r>,
37491    ) {
37492        match self {
37493            JSXClosingElement { span, name } => {
37494                {
37495                    let mut __ast_path =
37496                        __ast_path.with_guard(AstParentNodeRef::JSXClosingElement(
37497                            self,
37498                            self::fields::JSXClosingElementField::Span,
37499                        ));
37500                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37501                        span,
37502                        visitor,
37503                        &mut *__ast_path,
37504                    )
37505                };
37506                {
37507                    let mut __ast_path =
37508                        __ast_path.with_guard(AstParentNodeRef::JSXClosingElement(
37509                            self,
37510                            self::fields::JSXClosingElementField::Name,
37511                        ));
37512                    <JSXElementName as VisitWithAstPath<V>>::visit_with_ast_path(
37513                        name,
37514                        visitor,
37515                        &mut *__ast_path,
37516                    )
37517                };
37518            }
37519        }
37520    }
37521}
37522#[cfg(any(docsrs, feature = "path"))]
37523#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37524impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXClosingFragment {
37525    #[doc = "Calls [VisitAstPath`::visit_jsx_closing_fragment`] with `self`."]
37526    fn visit_with_ast_path<'ast: 'r, 'r>(
37527        &'ast self,
37528        visitor: &mut V,
37529        __ast_path: &mut AstNodePath<'r>,
37530    ) {
37531        <V as VisitAstPath>::visit_jsx_closing_fragment(visitor, self, __ast_path)
37532    }
37533
37534    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37535        &'ast self,
37536        visitor: &mut V,
37537        __ast_path: &mut AstNodePath<'r>,
37538    ) {
37539        match self {
37540            JSXClosingFragment { span } => {
37541                {
37542                    let mut __ast_path =
37543                        __ast_path.with_guard(AstParentNodeRef::JSXClosingFragment(
37544                            self,
37545                            self::fields::JSXClosingFragmentField::Span,
37546                        ));
37547                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37548                        span,
37549                        visitor,
37550                        &mut *__ast_path,
37551                    )
37552                };
37553            }
37554        }
37555    }
37556}
37557#[cfg(any(docsrs, feature = "path"))]
37558#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37559impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXElement {
37560    #[doc = "Calls [VisitAstPath`::visit_jsx_element`] with `self`."]
37561    fn visit_with_ast_path<'ast: 'r, 'r>(
37562        &'ast self,
37563        visitor: &mut V,
37564        __ast_path: &mut AstNodePath<'r>,
37565    ) {
37566        <V as VisitAstPath>::visit_jsx_element(visitor, self, __ast_path)
37567    }
37568
37569    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37570        &'ast self,
37571        visitor: &mut V,
37572        __ast_path: &mut AstNodePath<'r>,
37573    ) {
37574        match self {
37575            JSXElement {
37576                span,
37577                opening,
37578                children,
37579                closing,
37580            } => {
37581                {
37582                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37583                        self,
37584                        self::fields::JSXElementField::Span,
37585                    ));
37586                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37587                        span,
37588                        visitor,
37589                        &mut *__ast_path,
37590                    )
37591                };
37592                {
37593                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37594                        self,
37595                        self::fields::JSXElementField::Opening,
37596                    ));
37597                    <JSXOpeningElement as VisitWithAstPath<V>>::visit_with_ast_path(
37598                        opening,
37599                        visitor,
37600                        &mut *__ast_path,
37601                    )
37602                };
37603                {
37604                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37605                        self,
37606                        self::fields::JSXElementField::Children(usize::MAX),
37607                    ));
37608                    <Vec<JSXElementChild> as VisitWithAstPath<V>>::visit_with_ast_path(
37609                        children,
37610                        visitor,
37611                        &mut *__ast_path,
37612                    )
37613                };
37614                {
37615                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElement(
37616                        self,
37617                        self::fields::JSXElementField::Closing,
37618                    ));
37619                    <Option<JSXClosingElement> as VisitWithAstPath<V>>::visit_with_ast_path(
37620                        closing,
37621                        visitor,
37622                        &mut *__ast_path,
37623                    )
37624                };
37625            }
37626        }
37627    }
37628}
37629#[cfg(any(docsrs, feature = "path"))]
37630#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37631impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXElementChild {
37632    #[doc = "Calls [VisitAstPath`::visit_jsx_element_child`] with `self`."]
37633    fn visit_with_ast_path<'ast: 'r, 'r>(
37634        &'ast self,
37635        visitor: &mut V,
37636        __ast_path: &mut AstNodePath<'r>,
37637    ) {
37638        <V as VisitAstPath>::visit_jsx_element_child(visitor, self, __ast_path)
37639    }
37640
37641    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37642        &'ast self,
37643        visitor: &mut V,
37644        __ast_path: &mut AstNodePath<'r>,
37645    ) {
37646        match self {
37647            JSXElementChild::JSXText { 0: _field_0 } => {
37648                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37649                    self,
37650                    self::fields::JSXElementChildField::Jsxtext,
37651                ));
37652                <JSXText as VisitWithAstPath<V>>::visit_with_ast_path(
37653                    _field_0,
37654                    visitor,
37655                    &mut *__ast_path,
37656                );
37657            }
37658            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
37659                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37660                    self,
37661                    self::fields::JSXElementChildField::JsxexprContainer,
37662                ));
37663                <JSXExprContainer as VisitWithAstPath<V>>::visit_with_ast_path(
37664                    _field_0,
37665                    visitor,
37666                    &mut *__ast_path,
37667                );
37668            }
37669            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
37670                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37671                    self,
37672                    self::fields::JSXElementChildField::JsxspreadChild,
37673                ));
37674                <JSXSpreadChild as VisitWithAstPath<V>>::visit_with_ast_path(
37675                    _field_0,
37676                    visitor,
37677                    &mut *__ast_path,
37678                );
37679            }
37680            JSXElementChild::JSXElement { 0: _field_0 } => {
37681                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37682                    self,
37683                    self::fields::JSXElementChildField::Jsxelement,
37684                ));
37685                <Box<JSXElement> as VisitWithAstPath<V>>::visit_with_ast_path(
37686                    _field_0,
37687                    visitor,
37688                    &mut *__ast_path,
37689                );
37690            }
37691            JSXElementChild::JSXFragment { 0: _field_0 } => {
37692                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementChild(
37693                    self,
37694                    self::fields::JSXElementChildField::Jsxfragment,
37695                ));
37696                <JSXFragment as VisitWithAstPath<V>>::visit_with_ast_path(
37697                    _field_0,
37698                    visitor,
37699                    &mut *__ast_path,
37700                );
37701            }
37702        }
37703    }
37704}
37705#[cfg(any(docsrs, feature = "path"))]
37706#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37707impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXElementName {
37708    #[doc = "Calls [VisitAstPath`::visit_jsx_element_name`] with `self`."]
37709    fn visit_with_ast_path<'ast: 'r, 'r>(
37710        &'ast self,
37711        visitor: &mut V,
37712        __ast_path: &mut AstNodePath<'r>,
37713    ) {
37714        <V as VisitAstPath>::visit_jsx_element_name(visitor, self, __ast_path)
37715    }
37716
37717    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37718        &'ast self,
37719        visitor: &mut V,
37720        __ast_path: &mut AstNodePath<'r>,
37721    ) {
37722        match self {
37723            JSXElementName::Ident { 0: _field_0 } => {
37724                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementName(
37725                    self,
37726                    self::fields::JSXElementNameField::Ident,
37727                ));
37728                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
37729                    _field_0,
37730                    visitor,
37731                    &mut *__ast_path,
37732                );
37733            }
37734            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
37735                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementName(
37736                    self,
37737                    self::fields::JSXElementNameField::JsxmemberExpr,
37738                ));
37739                <JSXMemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
37740                    _field_0,
37741                    visitor,
37742                    &mut *__ast_path,
37743                );
37744            }
37745            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
37746                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXElementName(
37747                    self,
37748                    self::fields::JSXElementNameField::JsxnamespacedName,
37749                ));
37750                <JSXNamespacedName as VisitWithAstPath<V>>::visit_with_ast_path(
37751                    _field_0,
37752                    visitor,
37753                    &mut *__ast_path,
37754                );
37755            }
37756        }
37757    }
37758}
37759#[cfg(any(docsrs, feature = "path"))]
37760#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37761impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXEmptyExpr {
37762    #[doc = "Calls [VisitAstPath`::visit_jsx_empty_expr`] with `self`."]
37763    fn visit_with_ast_path<'ast: 'r, 'r>(
37764        &'ast self,
37765        visitor: &mut V,
37766        __ast_path: &mut AstNodePath<'r>,
37767    ) {
37768        <V as VisitAstPath>::visit_jsx_empty_expr(visitor, self, __ast_path)
37769    }
37770
37771    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37772        &'ast self,
37773        visitor: &mut V,
37774        __ast_path: &mut AstNodePath<'r>,
37775    ) {
37776        match self {
37777            JSXEmptyExpr { span } => {
37778                {
37779                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXEmptyExpr(
37780                        self,
37781                        self::fields::JSXEmptyExprField::Span,
37782                    ));
37783                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37784                        span,
37785                        visitor,
37786                        &mut *__ast_path,
37787                    )
37788                };
37789            }
37790        }
37791    }
37792}
37793#[cfg(any(docsrs, feature = "path"))]
37794#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37795impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXExpr {
37796    #[doc = "Calls [VisitAstPath`::visit_jsx_expr`] with `self`."]
37797    fn visit_with_ast_path<'ast: 'r, 'r>(
37798        &'ast self,
37799        visitor: &mut V,
37800        __ast_path: &mut AstNodePath<'r>,
37801    ) {
37802        <V as VisitAstPath>::visit_jsx_expr(visitor, self, __ast_path)
37803    }
37804
37805    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37806        &'ast self,
37807        visitor: &mut V,
37808        __ast_path: &mut AstNodePath<'r>,
37809    ) {
37810        match self {
37811            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
37812                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExpr(
37813                    self,
37814                    self::fields::JSXExprField::JsxemptyExpr,
37815                ));
37816                <JSXEmptyExpr as VisitWithAstPath<V>>::visit_with_ast_path(
37817                    _field_0,
37818                    visitor,
37819                    &mut *__ast_path,
37820                );
37821            }
37822            JSXExpr::Expr { 0: _field_0 } => {
37823                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExpr(
37824                    self,
37825                    self::fields::JSXExprField::Expr,
37826                ));
37827                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
37828                    _field_0,
37829                    visitor,
37830                    &mut *__ast_path,
37831                );
37832            }
37833        }
37834    }
37835}
37836#[cfg(any(docsrs, feature = "path"))]
37837#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37838impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXExprContainer {
37839    #[doc = "Calls [VisitAstPath`::visit_jsx_expr_container`] with `self`."]
37840    fn visit_with_ast_path<'ast: 'r, 'r>(
37841        &'ast self,
37842        visitor: &mut V,
37843        __ast_path: &mut AstNodePath<'r>,
37844    ) {
37845        <V as VisitAstPath>::visit_jsx_expr_container(visitor, self, __ast_path)
37846    }
37847
37848    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37849        &'ast self,
37850        visitor: &mut V,
37851        __ast_path: &mut AstNodePath<'r>,
37852    ) {
37853        match self {
37854            JSXExprContainer { span, expr } => {
37855                {
37856                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExprContainer(
37857                        self,
37858                        self::fields::JSXExprContainerField::Span,
37859                    ));
37860                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37861                        span,
37862                        visitor,
37863                        &mut *__ast_path,
37864                    )
37865                };
37866                {
37867                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXExprContainer(
37868                        self,
37869                        self::fields::JSXExprContainerField::Expr,
37870                    ));
37871                    <JSXExpr as VisitWithAstPath<V>>::visit_with_ast_path(
37872                        expr,
37873                        visitor,
37874                        &mut *__ast_path,
37875                    )
37876                };
37877            }
37878        }
37879    }
37880}
37881#[cfg(any(docsrs, feature = "path"))]
37882#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37883impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXFragment {
37884    #[doc = "Calls [VisitAstPath`::visit_jsx_fragment`] with `self`."]
37885    fn visit_with_ast_path<'ast: 'r, 'r>(
37886        &'ast self,
37887        visitor: &mut V,
37888        __ast_path: &mut AstNodePath<'r>,
37889    ) {
37890        <V as VisitAstPath>::visit_jsx_fragment(visitor, self, __ast_path)
37891    }
37892
37893    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37894        &'ast self,
37895        visitor: &mut V,
37896        __ast_path: &mut AstNodePath<'r>,
37897    ) {
37898        match self {
37899            JSXFragment {
37900                span,
37901                opening,
37902                children,
37903                closing,
37904            } => {
37905                {
37906                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
37907                        self,
37908                        self::fields::JSXFragmentField::Span,
37909                    ));
37910                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37911                        span,
37912                        visitor,
37913                        &mut *__ast_path,
37914                    )
37915                };
37916                {
37917                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
37918                        self,
37919                        self::fields::JSXFragmentField::Opening,
37920                    ));
37921                    <JSXOpeningFragment as VisitWithAstPath<V>>::visit_with_ast_path(
37922                        opening,
37923                        visitor,
37924                        &mut *__ast_path,
37925                    )
37926                };
37927                {
37928                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
37929                        self,
37930                        self::fields::JSXFragmentField::Children(usize::MAX),
37931                    ));
37932                    <Vec<JSXElementChild> as VisitWithAstPath<V>>::visit_with_ast_path(
37933                        children,
37934                        visitor,
37935                        &mut *__ast_path,
37936                    )
37937                };
37938                {
37939                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXFragment(
37940                        self,
37941                        self::fields::JSXFragmentField::Closing,
37942                    ));
37943                    <JSXClosingFragment as VisitWithAstPath<V>>::visit_with_ast_path(
37944                        closing,
37945                        visitor,
37946                        &mut *__ast_path,
37947                    )
37948                };
37949            }
37950        }
37951    }
37952}
37953#[cfg(any(docsrs, feature = "path"))]
37954#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
37955impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXMemberExpr {
37956    #[doc = "Calls [VisitAstPath`::visit_jsx_member_expr`] with `self`."]
37957    fn visit_with_ast_path<'ast: 'r, 'r>(
37958        &'ast self,
37959        visitor: &mut V,
37960        __ast_path: &mut AstNodePath<'r>,
37961    ) {
37962        <V as VisitAstPath>::visit_jsx_member_expr(visitor, self, __ast_path)
37963    }
37964
37965    fn visit_children_with_ast_path<'ast: 'r, 'r>(
37966        &'ast self,
37967        visitor: &mut V,
37968        __ast_path: &mut AstNodePath<'r>,
37969    ) {
37970        match self {
37971            JSXMemberExpr { span, obj, prop } => {
37972                {
37973                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXMemberExpr(
37974                        self,
37975                        self::fields::JSXMemberExprField::Span,
37976                    ));
37977                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
37978                        span,
37979                        visitor,
37980                        &mut *__ast_path,
37981                    )
37982                };
37983                {
37984                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXMemberExpr(
37985                        self,
37986                        self::fields::JSXMemberExprField::Obj,
37987                    ));
37988                    <JSXObject as VisitWithAstPath<V>>::visit_with_ast_path(
37989                        obj,
37990                        visitor,
37991                        &mut *__ast_path,
37992                    )
37993                };
37994                {
37995                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXMemberExpr(
37996                        self,
37997                        self::fields::JSXMemberExprField::Prop,
37998                    ));
37999                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38000                        prop,
38001                        visitor,
38002                        &mut *__ast_path,
38003                    )
38004                };
38005            }
38006        }
38007    }
38008}
38009#[cfg(any(docsrs, feature = "path"))]
38010#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38011impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXNamespacedName {
38012    #[doc = "Calls [VisitAstPath`::visit_jsx_namespaced_name`] with `self`."]
38013    fn visit_with_ast_path<'ast: 'r, 'r>(
38014        &'ast self,
38015        visitor: &mut V,
38016        __ast_path: &mut AstNodePath<'r>,
38017    ) {
38018        <V as VisitAstPath>::visit_jsx_namespaced_name(visitor, self, __ast_path)
38019    }
38020
38021    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38022        &'ast self,
38023        visitor: &mut V,
38024        __ast_path: &mut AstNodePath<'r>,
38025    ) {
38026        match self {
38027            JSXNamespacedName { span, ns, name } => {
38028                {
38029                    let mut __ast_path =
38030                        __ast_path.with_guard(AstParentNodeRef::JSXNamespacedName(
38031                            self,
38032                            self::fields::JSXNamespacedNameField::Span,
38033                        ));
38034                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38035                        span,
38036                        visitor,
38037                        &mut *__ast_path,
38038                    )
38039                };
38040                {
38041                    let mut __ast_path =
38042                        __ast_path.with_guard(AstParentNodeRef::JSXNamespacedName(
38043                            self,
38044                            self::fields::JSXNamespacedNameField::Ns,
38045                        ));
38046                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38047                        ns,
38048                        visitor,
38049                        &mut *__ast_path,
38050                    )
38051                };
38052                {
38053                    let mut __ast_path =
38054                        __ast_path.with_guard(AstParentNodeRef::JSXNamespacedName(
38055                            self,
38056                            self::fields::JSXNamespacedNameField::Name,
38057                        ));
38058                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38059                        name,
38060                        visitor,
38061                        &mut *__ast_path,
38062                    )
38063                };
38064            }
38065        }
38066    }
38067}
38068#[cfg(any(docsrs, feature = "path"))]
38069#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38070impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXObject {
38071    #[doc = "Calls [VisitAstPath`::visit_jsx_object`] with `self`."]
38072    fn visit_with_ast_path<'ast: 'r, 'r>(
38073        &'ast self,
38074        visitor: &mut V,
38075        __ast_path: &mut AstNodePath<'r>,
38076    ) {
38077        <V as VisitAstPath>::visit_jsx_object(visitor, self, __ast_path)
38078    }
38079
38080    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38081        &'ast self,
38082        visitor: &mut V,
38083        __ast_path: &mut AstNodePath<'r>,
38084    ) {
38085        match self {
38086            JSXObject::JSXMemberExpr { 0: _field_0 } => {
38087                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXObject(
38088                    self,
38089                    self::fields::JSXObjectField::JsxmemberExpr,
38090                ));
38091                <Box<JSXMemberExpr> as VisitWithAstPath<V>>::visit_with_ast_path(
38092                    _field_0,
38093                    visitor,
38094                    &mut *__ast_path,
38095                );
38096            }
38097            JSXObject::Ident { 0: _field_0 } => {
38098                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXObject(
38099                    self,
38100                    self::fields::JSXObjectField::Ident,
38101                ));
38102                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
38103                    _field_0,
38104                    visitor,
38105                    &mut *__ast_path,
38106                );
38107            }
38108        }
38109    }
38110}
38111#[cfg(any(docsrs, feature = "path"))]
38112#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38113impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXOpeningElement {
38114    #[doc = "Calls [VisitAstPath`::visit_jsx_opening_element`] with `self`."]
38115    fn visit_with_ast_path<'ast: 'r, 'r>(
38116        &'ast self,
38117        visitor: &mut V,
38118        __ast_path: &mut AstNodePath<'r>,
38119    ) {
38120        <V as VisitAstPath>::visit_jsx_opening_element(visitor, self, __ast_path)
38121    }
38122
38123    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38124        &'ast self,
38125        visitor: &mut V,
38126        __ast_path: &mut AstNodePath<'r>,
38127    ) {
38128        match self {
38129            JSXOpeningElement {
38130                name,
38131                span,
38132                attrs,
38133                self_closing,
38134                type_args,
38135            } => {
38136                {
38137                    let mut __ast_path =
38138                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38139                            self,
38140                            self::fields::JSXOpeningElementField::Name,
38141                        ));
38142                    <JSXElementName as VisitWithAstPath<V>>::visit_with_ast_path(
38143                        name,
38144                        visitor,
38145                        &mut *__ast_path,
38146                    )
38147                };
38148                {
38149                    let mut __ast_path =
38150                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38151                            self,
38152                            self::fields::JSXOpeningElementField::Span,
38153                        ));
38154                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38155                        span,
38156                        visitor,
38157                        &mut *__ast_path,
38158                    )
38159                };
38160                {
38161                    let mut __ast_path =
38162                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38163                            self,
38164                            self::fields::JSXOpeningElementField::Attrs(usize::MAX),
38165                        ));
38166                    <Vec<JSXAttrOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
38167                        attrs,
38168                        visitor,
38169                        &mut *__ast_path,
38170                    )
38171                };
38172                {
38173                    let mut __ast_path =
38174                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningElement(
38175                            self,
38176                            self::fields::JSXOpeningElementField::TypeArgs,
38177                        ));
38178                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
38179                };
38180            }
38181        }
38182    }
38183}
38184#[cfg(any(docsrs, feature = "path"))]
38185#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38186impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXOpeningFragment {
38187    #[doc = "Calls [VisitAstPath`::visit_jsx_opening_fragment`] with `self`."]
38188    fn visit_with_ast_path<'ast: 'r, 'r>(
38189        &'ast self,
38190        visitor: &mut V,
38191        __ast_path: &mut AstNodePath<'r>,
38192    ) {
38193        <V as VisitAstPath>::visit_jsx_opening_fragment(visitor, self, __ast_path)
38194    }
38195
38196    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38197        &'ast self,
38198        visitor: &mut V,
38199        __ast_path: &mut AstNodePath<'r>,
38200    ) {
38201        match self {
38202            JSXOpeningFragment { span } => {
38203                {
38204                    let mut __ast_path =
38205                        __ast_path.with_guard(AstParentNodeRef::JSXOpeningFragment(
38206                            self,
38207                            self::fields::JSXOpeningFragmentField::Span,
38208                        ));
38209                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38210                        span,
38211                        visitor,
38212                        &mut *__ast_path,
38213                    )
38214                };
38215            }
38216        }
38217    }
38218}
38219#[cfg(any(docsrs, feature = "path"))]
38220#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38221impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXSpreadChild {
38222    #[doc = "Calls [VisitAstPath`::visit_jsx_spread_child`] with `self`."]
38223    fn visit_with_ast_path<'ast: 'r, 'r>(
38224        &'ast self,
38225        visitor: &mut V,
38226        __ast_path: &mut AstNodePath<'r>,
38227    ) {
38228        <V as VisitAstPath>::visit_jsx_spread_child(visitor, self, __ast_path)
38229    }
38230
38231    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38232        &'ast self,
38233        visitor: &mut V,
38234        __ast_path: &mut AstNodePath<'r>,
38235    ) {
38236        match self {
38237            JSXSpreadChild { span, expr } => {
38238                {
38239                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXSpreadChild(
38240                        self,
38241                        self::fields::JSXSpreadChildField::Span,
38242                    ));
38243                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38244                        span,
38245                        visitor,
38246                        &mut *__ast_path,
38247                    )
38248                };
38249                {
38250                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXSpreadChild(
38251                        self,
38252                        self::fields::JSXSpreadChildField::Expr,
38253                    ));
38254                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38255                        expr,
38256                        visitor,
38257                        &mut *__ast_path,
38258                    )
38259                };
38260            }
38261        }
38262    }
38263}
38264#[cfg(any(docsrs, feature = "path"))]
38265#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38266impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for JSXText {
38267    #[doc = "Calls [VisitAstPath`::visit_jsx_text`] with `self`."]
38268    fn visit_with_ast_path<'ast: 'r, 'r>(
38269        &'ast self,
38270        visitor: &mut V,
38271        __ast_path: &mut AstNodePath<'r>,
38272    ) {
38273        <V as VisitAstPath>::visit_jsx_text(visitor, self, __ast_path)
38274    }
38275
38276    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38277        &'ast self,
38278        visitor: &mut V,
38279        __ast_path: &mut AstNodePath<'r>,
38280    ) {
38281        match self {
38282            JSXText { span, value, raw } => {
38283                {
38284                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXText(
38285                        self,
38286                        self::fields::JSXTextField::Span,
38287                    ));
38288                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38289                        span,
38290                        visitor,
38291                        &mut *__ast_path,
38292                    )
38293                };
38294                {
38295                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXText(
38296                        self,
38297                        self::fields::JSXTextField::Value,
38298                    ));
38299                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
38300                        value,
38301                        visitor,
38302                        &mut *__ast_path,
38303                    )
38304                };
38305                {
38306                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::JSXText(
38307                        self,
38308                        self::fields::JSXTextField::Raw,
38309                    ));
38310                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
38311                        raw,
38312                        visitor,
38313                        &mut *__ast_path,
38314                    )
38315                };
38316            }
38317        }
38318    }
38319}
38320#[cfg(any(docsrs, feature = "path"))]
38321#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38322impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Key {
38323    #[doc = "Calls [VisitAstPath`::visit_key`] with `self`."]
38324    fn visit_with_ast_path<'ast: 'r, 'r>(
38325        &'ast self,
38326        visitor: &mut V,
38327        __ast_path: &mut AstNodePath<'r>,
38328    ) {
38329        <V as VisitAstPath>::visit_key(visitor, self, __ast_path)
38330    }
38331
38332    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38333        &'ast self,
38334        visitor: &mut V,
38335        __ast_path: &mut AstNodePath<'r>,
38336    ) {
38337        match self {
38338            Key::Private { 0: _field_0 } => {
38339                let mut __ast_path = __ast_path
38340                    .with_guard(AstParentNodeRef::Key(self, self::fields::KeyField::Private));
38341                <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
38342                    _field_0,
38343                    visitor,
38344                    &mut *__ast_path,
38345                );
38346            }
38347            Key::Public { 0: _field_0 } => {
38348                let mut __ast_path = __ast_path
38349                    .with_guard(AstParentNodeRef::Key(self, self::fields::KeyField::Public));
38350                <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38351                    _field_0,
38352                    visitor,
38353                    &mut *__ast_path,
38354                );
38355            }
38356        }
38357    }
38358}
38359#[cfg(any(docsrs, feature = "path"))]
38360#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38361impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for KeyValuePatProp {
38362    #[doc = "Calls [VisitAstPath`::visit_key_value_pat_prop`] with `self`."]
38363    fn visit_with_ast_path<'ast: 'r, 'r>(
38364        &'ast self,
38365        visitor: &mut V,
38366        __ast_path: &mut AstNodePath<'r>,
38367    ) {
38368        <V as VisitAstPath>::visit_key_value_pat_prop(visitor, self, __ast_path)
38369    }
38370
38371    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38372        &'ast self,
38373        visitor: &mut V,
38374        __ast_path: &mut AstNodePath<'r>,
38375    ) {
38376        match self {
38377            KeyValuePatProp { key, value } => {
38378                {
38379                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValuePatProp(
38380                        self,
38381                        self::fields::KeyValuePatPropField::Key,
38382                    ));
38383                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38384                        key,
38385                        visitor,
38386                        &mut *__ast_path,
38387                    )
38388                };
38389                {
38390                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValuePatProp(
38391                        self,
38392                        self::fields::KeyValuePatPropField::Value,
38393                    ));
38394                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
38395                        value,
38396                        visitor,
38397                        &mut *__ast_path,
38398                    )
38399                };
38400            }
38401        }
38402    }
38403}
38404#[cfg(any(docsrs, feature = "path"))]
38405#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38406impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for KeyValueProp {
38407    #[doc = "Calls [VisitAstPath`::visit_key_value_prop`] with `self`."]
38408    fn visit_with_ast_path<'ast: 'r, 'r>(
38409        &'ast self,
38410        visitor: &mut V,
38411        __ast_path: &mut AstNodePath<'r>,
38412    ) {
38413        <V as VisitAstPath>::visit_key_value_prop(visitor, self, __ast_path)
38414    }
38415
38416    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38417        &'ast self,
38418        visitor: &mut V,
38419        __ast_path: &mut AstNodePath<'r>,
38420    ) {
38421        match self {
38422            KeyValueProp { key, value } => {
38423                {
38424                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValueProp(
38425                        self,
38426                        self::fields::KeyValuePropField::Key,
38427                    ));
38428                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38429                        key,
38430                        visitor,
38431                        &mut *__ast_path,
38432                    )
38433                };
38434                {
38435                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::KeyValueProp(
38436                        self,
38437                        self::fields::KeyValuePropField::Value,
38438                    ));
38439                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38440                        value,
38441                        visitor,
38442                        &mut *__ast_path,
38443                    )
38444                };
38445            }
38446        }
38447    }
38448}
38449#[cfg(any(docsrs, feature = "path"))]
38450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38451impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for LabeledStmt {
38452    #[doc = "Calls [VisitAstPath`::visit_labeled_stmt`] with `self`."]
38453    fn visit_with_ast_path<'ast: 'r, 'r>(
38454        &'ast self,
38455        visitor: &mut V,
38456        __ast_path: &mut AstNodePath<'r>,
38457    ) {
38458        <V as VisitAstPath>::visit_labeled_stmt(visitor, self, __ast_path)
38459    }
38460
38461    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38462        &'ast self,
38463        visitor: &mut V,
38464        __ast_path: &mut AstNodePath<'r>,
38465    ) {
38466        match self {
38467            LabeledStmt { span, label, body } => {
38468                {
38469                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::LabeledStmt(
38470                        self,
38471                        self::fields::LabeledStmtField::Span,
38472                    ));
38473                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38474                        span,
38475                        visitor,
38476                        &mut *__ast_path,
38477                    )
38478                };
38479                {
38480                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::LabeledStmt(
38481                        self,
38482                        self::fields::LabeledStmtField::Label,
38483                    ));
38484                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
38485                        label,
38486                        visitor,
38487                        &mut *__ast_path,
38488                    )
38489                };
38490                {
38491                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::LabeledStmt(
38492                        self,
38493                        self::fields::LabeledStmtField::Body,
38494                    ));
38495                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
38496                        body,
38497                        visitor,
38498                        &mut *__ast_path,
38499                    )
38500                };
38501            }
38502        }
38503    }
38504}
38505#[cfg(any(docsrs, feature = "path"))]
38506#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38507impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Lit {
38508    #[doc = "Calls [VisitAstPath`::visit_lit`] with `self`."]
38509    fn visit_with_ast_path<'ast: 'r, 'r>(
38510        &'ast self,
38511        visitor: &mut V,
38512        __ast_path: &mut AstNodePath<'r>,
38513    ) {
38514        <V as VisitAstPath>::visit_lit(visitor, self, __ast_path)
38515    }
38516
38517    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38518        &'ast self,
38519        visitor: &mut V,
38520        __ast_path: &mut AstNodePath<'r>,
38521    ) {
38522        match self {
38523            Lit::Str { 0: _field_0 } => {
38524                let mut __ast_path =
38525                    __ast_path.with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Str));
38526                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
38527                    _field_0,
38528                    visitor,
38529                    &mut *__ast_path,
38530                );
38531            }
38532            Lit::Bool { 0: _field_0 } => {
38533                let mut __ast_path = __ast_path
38534                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Bool));
38535                <Bool as VisitWithAstPath<V>>::visit_with_ast_path(
38536                    _field_0,
38537                    visitor,
38538                    &mut *__ast_path,
38539                );
38540            }
38541            Lit::Null { 0: _field_0 } => {
38542                let mut __ast_path = __ast_path
38543                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Null));
38544                <Null as VisitWithAstPath<V>>::visit_with_ast_path(
38545                    _field_0,
38546                    visitor,
38547                    &mut *__ast_path,
38548                );
38549            }
38550            Lit::Num { 0: _field_0 } => {
38551                let mut __ast_path =
38552                    __ast_path.with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Num));
38553                <Number as VisitWithAstPath<V>>::visit_with_ast_path(
38554                    _field_0,
38555                    visitor,
38556                    &mut *__ast_path,
38557                );
38558            }
38559            Lit::BigInt { 0: _field_0 } => {
38560                let mut __ast_path = __ast_path
38561                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::BigInt));
38562                <BigInt as VisitWithAstPath<V>>::visit_with_ast_path(
38563                    _field_0,
38564                    visitor,
38565                    &mut *__ast_path,
38566                );
38567            }
38568            Lit::Regex { 0: _field_0 } => {
38569                let mut __ast_path = __ast_path
38570                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Regex));
38571                <Regex as VisitWithAstPath<V>>::visit_with_ast_path(
38572                    _field_0,
38573                    visitor,
38574                    &mut *__ast_path,
38575                );
38576            }
38577            Lit::JSXText { 0: _field_0 } => {
38578                let mut __ast_path = __ast_path
38579                    .with_guard(AstParentNodeRef::Lit(self, self::fields::LitField::Jsxtext));
38580                <JSXText as VisitWithAstPath<V>>::visit_with_ast_path(
38581                    _field_0,
38582                    visitor,
38583                    &mut *__ast_path,
38584                );
38585            }
38586        }
38587    }
38588}
38589#[cfg(any(docsrs, feature = "path"))]
38590#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38591impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MemberExpr {
38592    #[doc = "Calls [VisitAstPath`::visit_member_expr`] with `self`."]
38593    fn visit_with_ast_path<'ast: 'r, 'r>(
38594        &'ast self,
38595        visitor: &mut V,
38596        __ast_path: &mut AstNodePath<'r>,
38597    ) {
38598        <V as VisitAstPath>::visit_member_expr(visitor, self, __ast_path)
38599    }
38600
38601    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38602        &'ast self,
38603        visitor: &mut V,
38604        __ast_path: &mut AstNodePath<'r>,
38605    ) {
38606        match self {
38607            MemberExpr { span, obj, prop } => {
38608                {
38609                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberExpr(
38610                        self,
38611                        self::fields::MemberExprField::Span,
38612                    ));
38613                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38614                        span,
38615                        visitor,
38616                        &mut *__ast_path,
38617                    )
38618                };
38619                {
38620                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberExpr(
38621                        self,
38622                        self::fields::MemberExprField::Obj,
38623                    ));
38624                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
38625                        obj,
38626                        visitor,
38627                        &mut *__ast_path,
38628                    )
38629                };
38630                {
38631                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberExpr(
38632                        self,
38633                        self::fields::MemberExprField::Prop,
38634                    ));
38635                    <MemberProp as VisitWithAstPath<V>>::visit_with_ast_path(
38636                        prop,
38637                        visitor,
38638                        &mut *__ast_path,
38639                    )
38640                };
38641            }
38642        }
38643    }
38644}
38645#[cfg(any(docsrs, feature = "path"))]
38646#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38647impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MemberProp {
38648    #[doc = "Calls [VisitAstPath`::visit_member_prop`] with `self`."]
38649    fn visit_with_ast_path<'ast: 'r, 'r>(
38650        &'ast self,
38651        visitor: &mut V,
38652        __ast_path: &mut AstNodePath<'r>,
38653    ) {
38654        <V as VisitAstPath>::visit_member_prop(visitor, self, __ast_path)
38655    }
38656
38657    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38658        &'ast self,
38659        visitor: &mut V,
38660        __ast_path: &mut AstNodePath<'r>,
38661    ) {
38662        match self {
38663            MemberProp::Ident { 0: _field_0 } => {
38664                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberProp(
38665                    self,
38666                    self::fields::MemberPropField::Ident,
38667                ));
38668                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
38669                    _field_0,
38670                    visitor,
38671                    &mut *__ast_path,
38672                );
38673            }
38674            MemberProp::PrivateName { 0: _field_0 } => {
38675                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberProp(
38676                    self,
38677                    self::fields::MemberPropField::PrivateName,
38678                ));
38679                <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
38680                    _field_0,
38681                    visitor,
38682                    &mut *__ast_path,
38683                );
38684            }
38685            MemberProp::Computed { 0: _field_0 } => {
38686                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MemberProp(
38687                    self,
38688                    self::fields::MemberPropField::Computed,
38689                ));
38690                <ComputedPropName as VisitWithAstPath<V>>::visit_with_ast_path(
38691                    _field_0,
38692                    visitor,
38693                    &mut *__ast_path,
38694                );
38695            }
38696        }
38697    }
38698}
38699#[cfg(any(docsrs, feature = "path"))]
38700#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38701impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MetaPropExpr {
38702    #[doc = "Calls [VisitAstPath`::visit_meta_prop_expr`] with `self`."]
38703    fn visit_with_ast_path<'ast: 'r, 'r>(
38704        &'ast self,
38705        visitor: &mut V,
38706        __ast_path: &mut AstNodePath<'r>,
38707    ) {
38708        <V as VisitAstPath>::visit_meta_prop_expr(visitor, self, __ast_path)
38709    }
38710
38711    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38712        &'ast self,
38713        visitor: &mut V,
38714        __ast_path: &mut AstNodePath<'r>,
38715    ) {
38716        match self {
38717            MetaPropExpr { span, kind } => {
38718                {
38719                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MetaPropExpr(
38720                        self,
38721                        self::fields::MetaPropExprField::Span,
38722                    ));
38723                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38724                        span,
38725                        visitor,
38726                        &mut *__ast_path,
38727                    )
38728                };
38729                {
38730                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MetaPropExpr(
38731                        self,
38732                        self::fields::MetaPropExprField::Kind,
38733                    ));
38734                    <MetaPropKind as VisitWithAstPath<V>>::visit_with_ast_path(
38735                        kind,
38736                        visitor,
38737                        &mut *__ast_path,
38738                    )
38739                };
38740            }
38741        }
38742    }
38743}
38744#[cfg(any(docsrs, feature = "path"))]
38745#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38746impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MetaPropKind {
38747    #[doc = "Calls [VisitAstPath`::visit_meta_prop_kind`] with `self`."]
38748    fn visit_with_ast_path<'ast: 'r, 'r>(
38749        &'ast self,
38750        visitor: &mut V,
38751        __ast_path: &mut AstNodePath<'r>,
38752    ) {
38753        <V as VisitAstPath>::visit_meta_prop_kind(visitor, self, __ast_path)
38754    }
38755
38756    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38757        &'ast self,
38758        visitor: &mut V,
38759        __ast_path: &mut AstNodePath<'r>,
38760    ) {
38761        match self {
38762            MetaPropKind::NewTarget => {}
38763            MetaPropKind::ImportMeta => {}
38764        }
38765    }
38766}
38767#[cfg(any(docsrs, feature = "path"))]
38768#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38769impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MethodKind {
38770    #[doc = "Calls [VisitAstPath`::visit_method_kind`] with `self`."]
38771    fn visit_with_ast_path<'ast: 'r, 'r>(
38772        &'ast self,
38773        visitor: &mut V,
38774        __ast_path: &mut AstNodePath<'r>,
38775    ) {
38776        <V as VisitAstPath>::visit_method_kind(visitor, self, __ast_path)
38777    }
38778
38779    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38780        &'ast self,
38781        visitor: &mut V,
38782        __ast_path: &mut AstNodePath<'r>,
38783    ) {
38784        match self {
38785            MethodKind::Method => {}
38786            MethodKind::Getter => {}
38787            MethodKind::Setter => {}
38788        }
38789    }
38790}
38791#[cfg(any(docsrs, feature = "path"))]
38792#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38793impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for MethodProp {
38794    #[doc = "Calls [VisitAstPath`::visit_method_prop`] with `self`."]
38795    fn visit_with_ast_path<'ast: 'r, 'r>(
38796        &'ast self,
38797        visitor: &mut V,
38798        __ast_path: &mut AstNodePath<'r>,
38799    ) {
38800        <V as VisitAstPath>::visit_method_prop(visitor, self, __ast_path)
38801    }
38802
38803    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38804        &'ast self,
38805        visitor: &mut V,
38806        __ast_path: &mut AstNodePath<'r>,
38807    ) {
38808        match self {
38809            MethodProp { key, function } => {
38810                {
38811                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MethodProp(
38812                        self,
38813                        self::fields::MethodPropField::Key,
38814                    ));
38815                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
38816                        key,
38817                        visitor,
38818                        &mut *__ast_path,
38819                    )
38820                };
38821                {
38822                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::MethodProp(
38823                        self,
38824                        self::fields::MethodPropField::Function,
38825                    ));
38826                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
38827                        function,
38828                        visitor,
38829                        &mut *__ast_path,
38830                    )
38831                };
38832            }
38833        }
38834    }
38835}
38836#[cfg(any(docsrs, feature = "path"))]
38837#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38838impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Module {
38839    #[doc = "Calls [VisitAstPath`::visit_module`] with `self`."]
38840    fn visit_with_ast_path<'ast: 'r, 'r>(
38841        &'ast self,
38842        visitor: &mut V,
38843        __ast_path: &mut AstNodePath<'r>,
38844    ) {
38845        <V as VisitAstPath>::visit_module(visitor, self, __ast_path)
38846    }
38847
38848    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38849        &'ast self,
38850        visitor: &mut V,
38851        __ast_path: &mut AstNodePath<'r>,
38852    ) {
38853        match self {
38854            Module {
38855                span,
38856                body,
38857                shebang,
38858            } => {
38859                {
38860                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Module(
38861                        self,
38862                        self::fields::ModuleField::Span,
38863                    ));
38864                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
38865                        span,
38866                        visitor,
38867                        &mut *__ast_path,
38868                    )
38869                };
38870                {
38871                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Module(
38872                        self,
38873                        self::fields::ModuleField::Body(usize::MAX),
38874                    ));
38875                    <Vec<ModuleItem> as VisitWithAstPath<V>>::visit_with_ast_path(
38876                        body,
38877                        visitor,
38878                        &mut *__ast_path,
38879                    )
38880                };
38881                {
38882                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Module(
38883                        self,
38884                        self::fields::ModuleField::Shebang,
38885                    ));
38886                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
38887                        shebang,
38888                        visitor,
38889                        &mut *__ast_path,
38890                    )
38891                };
38892            }
38893        }
38894    }
38895}
38896#[cfg(any(docsrs, feature = "path"))]
38897#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
38898impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ModuleDecl {
38899    #[doc = "Calls [VisitAstPath`::visit_module_decl`] with `self`."]
38900    fn visit_with_ast_path<'ast: 'r, 'r>(
38901        &'ast self,
38902        visitor: &mut V,
38903        __ast_path: &mut AstNodePath<'r>,
38904    ) {
38905        <V as VisitAstPath>::visit_module_decl(visitor, self, __ast_path)
38906    }
38907
38908    fn visit_children_with_ast_path<'ast: 'r, 'r>(
38909        &'ast self,
38910        visitor: &mut V,
38911        __ast_path: &mut AstNodePath<'r>,
38912    ) {
38913        match self {
38914            ModuleDecl::Import { 0: _field_0 } => {
38915                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38916                    self,
38917                    self::fields::ModuleDeclField::Import,
38918                ));
38919                <ImportDecl as VisitWithAstPath<V>>::visit_with_ast_path(
38920                    _field_0,
38921                    visitor,
38922                    &mut *__ast_path,
38923                );
38924            }
38925            ModuleDecl::ExportDecl { 0: _field_0 } => {
38926                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38927                    self,
38928                    self::fields::ModuleDeclField::ExportDecl,
38929                ));
38930                <ExportDecl as VisitWithAstPath<V>>::visit_with_ast_path(
38931                    _field_0,
38932                    visitor,
38933                    &mut *__ast_path,
38934                );
38935            }
38936            ModuleDecl::ExportNamed { 0: _field_0 } => {
38937                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38938                    self,
38939                    self::fields::ModuleDeclField::ExportNamed,
38940                ));
38941                <NamedExport as VisitWithAstPath<V>>::visit_with_ast_path(
38942                    _field_0,
38943                    visitor,
38944                    &mut *__ast_path,
38945                );
38946            }
38947            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
38948                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38949                    self,
38950                    self::fields::ModuleDeclField::ExportDefaultDecl,
38951                ));
38952                <ExportDefaultDecl as VisitWithAstPath<V>>::visit_with_ast_path(
38953                    _field_0,
38954                    visitor,
38955                    &mut *__ast_path,
38956                );
38957            }
38958            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
38959                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38960                    self,
38961                    self::fields::ModuleDeclField::ExportDefaultExpr,
38962                ));
38963                <ExportDefaultExpr as VisitWithAstPath<V>>::visit_with_ast_path(
38964                    _field_0,
38965                    visitor,
38966                    &mut *__ast_path,
38967                );
38968            }
38969            ModuleDecl::ExportAll { 0: _field_0 } => {
38970                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38971                    self,
38972                    self::fields::ModuleDeclField::ExportAll,
38973                ));
38974                <ExportAll as VisitWithAstPath<V>>::visit_with_ast_path(
38975                    _field_0,
38976                    visitor,
38977                    &mut *__ast_path,
38978                );
38979            }
38980            ModuleDecl::TsImportEquals { 0: _field_0 } => {
38981                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38982                    self,
38983                    self::fields::ModuleDeclField::TsImportEquals,
38984                ));
38985                <Box<TsImportEqualsDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
38986                    _field_0,
38987                    visitor,
38988                    &mut *__ast_path,
38989                );
38990            }
38991            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
38992                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
38993                    self,
38994                    self::fields::ModuleDeclField::TsExportAssignment,
38995                ));
38996                <TsExportAssignment as VisitWithAstPath<V>>::visit_with_ast_path(
38997                    _field_0,
38998                    visitor,
38999                    &mut *__ast_path,
39000                );
39001            }
39002            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
39003                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleDecl(
39004                    self,
39005                    self::fields::ModuleDeclField::TsNamespaceExport,
39006                ));
39007                <TsNamespaceExportDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39008                    _field_0,
39009                    visitor,
39010                    &mut *__ast_path,
39011                );
39012            }
39013        }
39014    }
39015}
39016#[cfg(any(docsrs, feature = "path"))]
39017#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39018impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ModuleExportName {
39019    #[doc = "Calls [VisitAstPath`::visit_module_export_name`] with `self`."]
39020    fn visit_with_ast_path<'ast: 'r, 'r>(
39021        &'ast self,
39022        visitor: &mut V,
39023        __ast_path: &mut AstNodePath<'r>,
39024    ) {
39025        <V as VisitAstPath>::visit_module_export_name(visitor, self, __ast_path)
39026    }
39027
39028    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39029        &'ast self,
39030        visitor: &mut V,
39031        __ast_path: &mut AstNodePath<'r>,
39032    ) {
39033        match self {
39034            ModuleExportName::Ident { 0: _field_0 } => {
39035                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleExportName(
39036                    self,
39037                    self::fields::ModuleExportNameField::Ident,
39038                ));
39039                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
39040                    _field_0,
39041                    visitor,
39042                    &mut *__ast_path,
39043                );
39044            }
39045            ModuleExportName::Str { 0: _field_0 } => {
39046                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleExportName(
39047                    self,
39048                    self::fields::ModuleExportNameField::Str,
39049                ));
39050                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
39051                    _field_0,
39052                    visitor,
39053                    &mut *__ast_path,
39054                );
39055            }
39056        }
39057    }
39058}
39059#[cfg(any(docsrs, feature = "path"))]
39060#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39061impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ModuleItem {
39062    #[doc = "Calls [VisitAstPath`::visit_module_item`] with `self`."]
39063    fn visit_with_ast_path<'ast: 'r, 'r>(
39064        &'ast self,
39065        visitor: &mut V,
39066        __ast_path: &mut AstNodePath<'r>,
39067    ) {
39068        <V as VisitAstPath>::visit_module_item(visitor, self, __ast_path)
39069    }
39070
39071    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39072        &'ast self,
39073        visitor: &mut V,
39074        __ast_path: &mut AstNodePath<'r>,
39075    ) {
39076        match self {
39077            ModuleItem::ModuleDecl { 0: _field_0 } => {
39078                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleItem(
39079                    self,
39080                    self::fields::ModuleItemField::ModuleDecl,
39081                ));
39082                <ModuleDecl as VisitWithAstPath<V>>::visit_with_ast_path(
39083                    _field_0,
39084                    visitor,
39085                    &mut *__ast_path,
39086                );
39087            }
39088            ModuleItem::Stmt { 0: _field_0 } => {
39089                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ModuleItem(
39090                    self,
39091                    self::fields::ModuleItemField::Stmt,
39092                ));
39093                <Stmt as VisitWithAstPath<V>>::visit_with_ast_path(
39094                    _field_0,
39095                    visitor,
39096                    &mut *__ast_path,
39097                );
39098            }
39099        }
39100    }
39101}
39102#[cfg(any(docsrs, feature = "path"))]
39103#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39104impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for NamedExport {
39105    #[doc = "Calls [VisitAstPath`::visit_named_export`] with `self`."]
39106    fn visit_with_ast_path<'ast: 'r, 'r>(
39107        &'ast self,
39108        visitor: &mut V,
39109        __ast_path: &mut AstNodePath<'r>,
39110    ) {
39111        <V as VisitAstPath>::visit_named_export(visitor, self, __ast_path)
39112    }
39113
39114    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39115        &'ast self,
39116        visitor: &mut V,
39117        __ast_path: &mut AstNodePath<'r>,
39118    ) {
39119        match self {
39120            NamedExport {
39121                span,
39122                specifiers,
39123                src,
39124                type_only,
39125                with,
39126            } => {
39127                {
39128                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39129                        self,
39130                        self::fields::NamedExportField::Span,
39131                    ));
39132                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39133                        span,
39134                        visitor,
39135                        &mut *__ast_path,
39136                    )
39137                };
39138                {
39139                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39140                        self,
39141                        self::fields::NamedExportField::Specifiers(usize::MAX),
39142                    ));
39143                    <Vec<ExportSpecifier> as VisitWithAstPath<V>>::visit_with_ast_path(
39144                        specifiers,
39145                        visitor,
39146                        &mut *__ast_path,
39147                    )
39148                };
39149                {
39150                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39151                        self,
39152                        self::fields::NamedExportField::Src,
39153                    ));
39154                    <Option<Box<Str>> as VisitWithAstPath<V>>::visit_with_ast_path(
39155                        src,
39156                        visitor,
39157                        &mut *__ast_path,
39158                    )
39159                };
39160                {
39161                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NamedExport(
39162                        self,
39163                        self::fields::NamedExportField::With,
39164                    ));
39165                    <Option<Box<ObjectLit>> as VisitWithAstPath<V>>::visit_with_ast_path(
39166                        with,
39167                        visitor,
39168                        &mut *__ast_path,
39169                    )
39170                };
39171            }
39172        }
39173    }
39174}
39175#[cfg(any(docsrs, feature = "path"))]
39176#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39177impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for NewExpr {
39178    #[doc = "Calls [VisitAstPath`::visit_new_expr`] with `self`."]
39179    fn visit_with_ast_path<'ast: 'r, 'r>(
39180        &'ast self,
39181        visitor: &mut V,
39182        __ast_path: &mut AstNodePath<'r>,
39183    ) {
39184        <V as VisitAstPath>::visit_new_expr(visitor, self, __ast_path)
39185    }
39186
39187    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39188        &'ast self,
39189        visitor: &mut V,
39190        __ast_path: &mut AstNodePath<'r>,
39191    ) {
39192        match self {
39193            NewExpr {
39194                span,
39195                ctxt,
39196                callee,
39197                args,
39198                type_args,
39199            } => {
39200                {
39201                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39202                        self,
39203                        self::fields::NewExprField::Span,
39204                    ));
39205                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39206                        span,
39207                        visitor,
39208                        &mut *__ast_path,
39209                    )
39210                };
39211                {
39212                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39213                        self,
39214                        self::fields::NewExprField::Ctxt,
39215                    ));
39216                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
39217                        ctxt,
39218                        visitor,
39219                        &mut *__ast_path,
39220                    )
39221                };
39222                {
39223                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39224                        self,
39225                        self::fields::NewExprField::Callee,
39226                    ));
39227                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
39228                        callee,
39229                        visitor,
39230                        &mut *__ast_path,
39231                    )
39232                };
39233                {
39234                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39235                        self,
39236                        self::fields::NewExprField::Args(usize::MAX),
39237                    ));
39238                    <Option<Vec<ExprOrSpread>> as VisitWithAstPath<V>>::visit_with_ast_path(
39239                        args,
39240                        visitor,
39241                        &mut *__ast_path,
39242                    )
39243                };
39244                {
39245                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::NewExpr(
39246                        self,
39247                        self::fields::NewExprField::TypeArgs,
39248                    ));
39249                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
39250                };
39251            }
39252        }
39253    }
39254}
39255#[cfg(any(docsrs, feature = "path"))]
39256#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39257impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Null {
39258    #[doc = "Calls [VisitAstPath`::visit_null`] with `self`."]
39259    fn visit_with_ast_path<'ast: 'r, 'r>(
39260        &'ast self,
39261        visitor: &mut V,
39262        __ast_path: &mut AstNodePath<'r>,
39263    ) {
39264        <V as VisitAstPath>::visit_null(visitor, self, __ast_path)
39265    }
39266
39267    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39268        &'ast self,
39269        visitor: &mut V,
39270        __ast_path: &mut AstNodePath<'r>,
39271    ) {
39272        match self {
39273            Null { span } => {
39274                {
39275                    let mut __ast_path = __ast_path
39276                        .with_guard(AstParentNodeRef::Null(self, self::fields::NullField::Span));
39277                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39278                        span,
39279                        visitor,
39280                        &mut *__ast_path,
39281                    )
39282                };
39283            }
39284        }
39285    }
39286}
39287#[cfg(any(docsrs, feature = "path"))]
39288#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39289impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Number {
39290    #[doc = "Calls [VisitAstPath`::visit_number`] with `self`."]
39291    fn visit_with_ast_path<'ast: 'r, 'r>(
39292        &'ast self,
39293        visitor: &mut V,
39294        __ast_path: &mut AstNodePath<'r>,
39295    ) {
39296        <V as VisitAstPath>::visit_number(visitor, self, __ast_path)
39297    }
39298
39299    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39300        &'ast self,
39301        visitor: &mut V,
39302        __ast_path: &mut AstNodePath<'r>,
39303    ) {
39304        match self {
39305            Number { span, value, raw } => {
39306                {
39307                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Number(
39308                        self,
39309                        self::fields::NumberField::Span,
39310                    ));
39311                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39312                        span,
39313                        visitor,
39314                        &mut *__ast_path,
39315                    )
39316                };
39317                {
39318                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Number(
39319                        self,
39320                        self::fields::NumberField::Raw,
39321                    ));
39322                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
39323                        raw,
39324                        visitor,
39325                        &mut *__ast_path,
39326                    )
39327                };
39328            }
39329        }
39330    }
39331}
39332#[cfg(any(docsrs, feature = "path"))]
39333#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39334impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ObjectLit {
39335    #[doc = "Calls [VisitAstPath`::visit_object_lit`] with `self`."]
39336    fn visit_with_ast_path<'ast: 'r, 'r>(
39337        &'ast self,
39338        visitor: &mut V,
39339        __ast_path: &mut AstNodePath<'r>,
39340    ) {
39341        <V as VisitAstPath>::visit_object_lit(visitor, self, __ast_path)
39342    }
39343
39344    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39345        &'ast self,
39346        visitor: &mut V,
39347        __ast_path: &mut AstNodePath<'r>,
39348    ) {
39349        match self {
39350            ObjectLit { span, props } => {
39351                {
39352                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectLit(
39353                        self,
39354                        self::fields::ObjectLitField::Span,
39355                    ));
39356                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39357                        span,
39358                        visitor,
39359                        &mut *__ast_path,
39360                    )
39361                };
39362                {
39363                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectLit(
39364                        self,
39365                        self::fields::ObjectLitField::Props(usize::MAX),
39366                    ));
39367                    <Vec<PropOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
39368                        props,
39369                        visitor,
39370                        &mut *__ast_path,
39371                    )
39372                };
39373            }
39374        }
39375    }
39376}
39377#[cfg(any(docsrs, feature = "path"))]
39378#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39379impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ObjectPat {
39380    #[doc = "Calls [VisitAstPath`::visit_object_pat`] with `self`."]
39381    fn visit_with_ast_path<'ast: 'r, 'r>(
39382        &'ast self,
39383        visitor: &mut V,
39384        __ast_path: &mut AstNodePath<'r>,
39385    ) {
39386        <V as VisitAstPath>::visit_object_pat(visitor, self, __ast_path)
39387    }
39388
39389    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39390        &'ast self,
39391        visitor: &mut V,
39392        __ast_path: &mut AstNodePath<'r>,
39393    ) {
39394        match self {
39395            ObjectPat {
39396                span,
39397                props,
39398                optional,
39399                type_ann,
39400            } => {
39401                {
39402                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPat(
39403                        self,
39404                        self::fields::ObjectPatField::Span,
39405                    ));
39406                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39407                        span,
39408                        visitor,
39409                        &mut *__ast_path,
39410                    )
39411                };
39412                {
39413                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPat(
39414                        self,
39415                        self::fields::ObjectPatField::Props(usize::MAX),
39416                    ));
39417                    <Vec<ObjectPatProp> as VisitWithAstPath<V>>::visit_with_ast_path(
39418                        props,
39419                        visitor,
39420                        &mut *__ast_path,
39421                    )
39422                };
39423                {
39424                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPat(
39425                        self,
39426                        self::fields::ObjectPatField::TypeAnn,
39427                    ));
39428                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
39429                        type_ann,
39430                        visitor,
39431                        &mut *__ast_path,
39432                    )
39433                };
39434            }
39435        }
39436    }
39437}
39438#[cfg(any(docsrs, feature = "path"))]
39439#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39440impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ObjectPatProp {
39441    #[doc = "Calls [VisitAstPath`::visit_object_pat_prop`] with `self`."]
39442    fn visit_with_ast_path<'ast: 'r, 'r>(
39443        &'ast self,
39444        visitor: &mut V,
39445        __ast_path: &mut AstNodePath<'r>,
39446    ) {
39447        <V as VisitAstPath>::visit_object_pat_prop(visitor, self, __ast_path)
39448    }
39449
39450    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39451        &'ast self,
39452        visitor: &mut V,
39453        __ast_path: &mut AstNodePath<'r>,
39454    ) {
39455        match self {
39456            ObjectPatProp::KeyValue { 0: _field_0 } => {
39457                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPatProp(
39458                    self,
39459                    self::fields::ObjectPatPropField::KeyValue,
39460                ));
39461                <KeyValuePatProp as VisitWithAstPath<V>>::visit_with_ast_path(
39462                    _field_0,
39463                    visitor,
39464                    &mut *__ast_path,
39465                );
39466            }
39467            ObjectPatProp::Assign { 0: _field_0 } => {
39468                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPatProp(
39469                    self,
39470                    self::fields::ObjectPatPropField::Assign,
39471                ));
39472                <AssignPatProp as VisitWithAstPath<V>>::visit_with_ast_path(
39473                    _field_0,
39474                    visitor,
39475                    &mut *__ast_path,
39476                );
39477            }
39478            ObjectPatProp::Rest { 0: _field_0 } => {
39479                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ObjectPatProp(
39480                    self,
39481                    self::fields::ObjectPatPropField::Rest,
39482                ));
39483                <RestPat as VisitWithAstPath<V>>::visit_with_ast_path(
39484                    _field_0,
39485                    visitor,
39486                    &mut *__ast_path,
39487                );
39488            }
39489        }
39490    }
39491}
39492#[cfg(any(docsrs, feature = "path"))]
39493#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39494impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for OptCall {
39495    #[doc = "Calls [VisitAstPath`::visit_opt_call`] with `self`."]
39496    fn visit_with_ast_path<'ast: 'r, 'r>(
39497        &'ast self,
39498        visitor: &mut V,
39499        __ast_path: &mut AstNodePath<'r>,
39500    ) {
39501        <V as VisitAstPath>::visit_opt_call(visitor, self, __ast_path)
39502    }
39503
39504    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39505        &'ast self,
39506        visitor: &mut V,
39507        __ast_path: &mut AstNodePath<'r>,
39508    ) {
39509        match self {
39510            OptCall {
39511                span,
39512                ctxt,
39513                callee,
39514                args,
39515                type_args,
39516            } => {
39517                {
39518                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39519                        self,
39520                        self::fields::OptCallField::Span,
39521                    ));
39522                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39523                        span,
39524                        visitor,
39525                        &mut *__ast_path,
39526                    )
39527                };
39528                {
39529                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39530                        self,
39531                        self::fields::OptCallField::Ctxt,
39532                    ));
39533                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
39534                        ctxt,
39535                        visitor,
39536                        &mut *__ast_path,
39537                    )
39538                };
39539                {
39540                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39541                        self,
39542                        self::fields::OptCallField::Callee,
39543                    ));
39544                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
39545                        callee,
39546                        visitor,
39547                        &mut *__ast_path,
39548                    )
39549                };
39550                {
39551                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39552                        self,
39553                        self::fields::OptCallField::Args(usize::MAX),
39554                    ));
39555                    <Vec<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
39556                        args,
39557                        visitor,
39558                        &mut *__ast_path,
39559                    )
39560                };
39561                {
39562                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptCall(
39563                        self,
39564                        self::fields::OptCallField::TypeArgs,
39565                    ));
39566                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
39567                };
39568            }
39569        }
39570    }
39571}
39572#[cfg(any(docsrs, feature = "path"))]
39573#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39574impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for OptChainBase {
39575    #[doc = "Calls [VisitAstPath`::visit_opt_chain_base`] with `self`."]
39576    fn visit_with_ast_path<'ast: 'r, 'r>(
39577        &'ast self,
39578        visitor: &mut V,
39579        __ast_path: &mut AstNodePath<'r>,
39580    ) {
39581        <V as VisitAstPath>::visit_opt_chain_base(visitor, self, __ast_path)
39582    }
39583
39584    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39585        &'ast self,
39586        visitor: &mut V,
39587        __ast_path: &mut AstNodePath<'r>,
39588    ) {
39589        match self {
39590            OptChainBase::Member { 0: _field_0 } => {
39591                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainBase(
39592                    self,
39593                    self::fields::OptChainBaseField::Member,
39594                ));
39595                <MemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
39596                    _field_0,
39597                    visitor,
39598                    &mut *__ast_path,
39599                );
39600            }
39601            OptChainBase::Call { 0: _field_0 } => {
39602                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainBase(
39603                    self,
39604                    self::fields::OptChainBaseField::Call,
39605                ));
39606                <OptCall as VisitWithAstPath<V>>::visit_with_ast_path(
39607                    _field_0,
39608                    visitor,
39609                    &mut *__ast_path,
39610                );
39611            }
39612        }
39613    }
39614}
39615#[cfg(any(docsrs, feature = "path"))]
39616#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39617impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for OptChainExpr {
39618    #[doc = "Calls [VisitAstPath`::visit_opt_chain_expr`] with `self`."]
39619    fn visit_with_ast_path<'ast: 'r, 'r>(
39620        &'ast self,
39621        visitor: &mut V,
39622        __ast_path: &mut AstNodePath<'r>,
39623    ) {
39624        <V as VisitAstPath>::visit_opt_chain_expr(visitor, self, __ast_path)
39625    }
39626
39627    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39628        &'ast self,
39629        visitor: &mut V,
39630        __ast_path: &mut AstNodePath<'r>,
39631    ) {
39632        match self {
39633            OptChainExpr {
39634                span,
39635                optional,
39636                base,
39637            } => {
39638                {
39639                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainExpr(
39640                        self,
39641                        self::fields::OptChainExprField::Span,
39642                    ));
39643                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39644                        span,
39645                        visitor,
39646                        &mut *__ast_path,
39647                    )
39648                };
39649                {
39650                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::OptChainExpr(
39651                        self,
39652                        self::fields::OptChainExprField::Base,
39653                    ));
39654                    <Box<OptChainBase> as VisitWithAstPath<V>>::visit_with_ast_path(
39655                        base,
39656                        visitor,
39657                        &mut *__ast_path,
39658                    )
39659                };
39660            }
39661        }
39662    }
39663}
39664#[cfg(any(docsrs, feature = "path"))]
39665#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39666impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Param {
39667    #[doc = "Calls [VisitAstPath`::visit_param`] with `self`."]
39668    fn visit_with_ast_path<'ast: 'r, 'r>(
39669        &'ast self,
39670        visitor: &mut V,
39671        __ast_path: &mut AstNodePath<'r>,
39672    ) {
39673        <V as VisitAstPath>::visit_param(visitor, self, __ast_path)
39674    }
39675
39676    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39677        &'ast self,
39678        visitor: &mut V,
39679        __ast_path: &mut AstNodePath<'r>,
39680    ) {
39681        match self {
39682            Param {
39683                span,
39684                decorators,
39685                pat,
39686            } => {
39687                {
39688                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Param(
39689                        self,
39690                        self::fields::ParamField::Span,
39691                    ));
39692                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39693                        span,
39694                        visitor,
39695                        &mut *__ast_path,
39696                    )
39697                };
39698                {
39699                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Param(
39700                        self,
39701                        self::fields::ParamField::Decorators(usize::MAX),
39702                    ));
39703                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
39704                        decorators,
39705                        visitor,
39706                        &mut *__ast_path,
39707                    )
39708                };
39709                {
39710                    let mut __ast_path = __ast_path
39711                        .with_guard(AstParentNodeRef::Param(self, self::fields::ParamField::Pat));
39712                    <Pat as VisitWithAstPath<V>>::visit_with_ast_path(
39713                        pat,
39714                        visitor,
39715                        &mut *__ast_path,
39716                    )
39717                };
39718            }
39719        }
39720    }
39721}
39722#[cfg(any(docsrs, feature = "path"))]
39723#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39724impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ParamOrTsParamProp {
39725    #[doc = "Calls [VisitAstPath`::visit_param_or_ts_param_prop`] with `self`."]
39726    fn visit_with_ast_path<'ast: 'r, 'r>(
39727        &'ast self,
39728        visitor: &mut V,
39729        __ast_path: &mut AstNodePath<'r>,
39730    ) {
39731        <V as VisitAstPath>::visit_param_or_ts_param_prop(visitor, self, __ast_path)
39732    }
39733
39734    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39735        &'ast self,
39736        visitor: &mut V,
39737        __ast_path: &mut AstNodePath<'r>,
39738    ) {
39739        match self {
39740            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
39741                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParamOrTsParamProp(
39742                    self,
39743                    self::fields::ParamOrTsParamPropField::TsParamProp,
39744                ));
39745                <TsParamProp as VisitWithAstPath<V>>::visit_with_ast_path(
39746                    _field_0,
39747                    visitor,
39748                    &mut *__ast_path,
39749                );
39750            }
39751            ParamOrTsParamProp::Param { 0: _field_0 } => {
39752                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParamOrTsParamProp(
39753                    self,
39754                    self::fields::ParamOrTsParamPropField::Param,
39755                ));
39756                <Param as VisitWithAstPath<V>>::visit_with_ast_path(
39757                    _field_0,
39758                    visitor,
39759                    &mut *__ast_path,
39760                );
39761            }
39762        }
39763    }
39764}
39765#[cfg(any(docsrs, feature = "path"))]
39766#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39767impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ParenExpr {
39768    #[doc = "Calls [VisitAstPath`::visit_paren_expr`] with `self`."]
39769    fn visit_with_ast_path<'ast: 'r, 'r>(
39770        &'ast self,
39771        visitor: &mut V,
39772        __ast_path: &mut AstNodePath<'r>,
39773    ) {
39774        <V as VisitAstPath>::visit_paren_expr(visitor, self, __ast_path)
39775    }
39776
39777    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39778        &'ast self,
39779        visitor: &mut V,
39780        __ast_path: &mut AstNodePath<'r>,
39781    ) {
39782        match self {
39783            ParenExpr { span, expr } => {
39784                {
39785                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParenExpr(
39786                        self,
39787                        self::fields::ParenExprField::Span,
39788                    ));
39789                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39790                        span,
39791                        visitor,
39792                        &mut *__ast_path,
39793                    )
39794                };
39795                {
39796                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ParenExpr(
39797                        self,
39798                        self::fields::ParenExprField::Expr,
39799                    ));
39800                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
39801                        expr,
39802                        visitor,
39803                        &mut *__ast_path,
39804                    )
39805                };
39806            }
39807        }
39808    }
39809}
39810#[cfg(any(docsrs, feature = "path"))]
39811#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39812impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Pat {
39813    #[doc = "Calls [VisitAstPath`::visit_pat`] with `self`."]
39814    fn visit_with_ast_path<'ast: 'r, 'r>(
39815        &'ast self,
39816        visitor: &mut V,
39817        __ast_path: &mut AstNodePath<'r>,
39818    ) {
39819        <V as VisitAstPath>::visit_pat(visitor, self, __ast_path)
39820    }
39821
39822    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39823        &'ast self,
39824        visitor: &mut V,
39825        __ast_path: &mut AstNodePath<'r>,
39826    ) {
39827        match self {
39828            Pat::Ident { 0: _field_0 } => {
39829                let mut __ast_path = __ast_path
39830                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Ident));
39831                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
39832                    _field_0,
39833                    visitor,
39834                    &mut *__ast_path,
39835                );
39836            }
39837            Pat::Array { 0: _field_0 } => {
39838                let mut __ast_path = __ast_path
39839                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Array));
39840                <ArrayPat as VisitWithAstPath<V>>::visit_with_ast_path(
39841                    _field_0,
39842                    visitor,
39843                    &mut *__ast_path,
39844                );
39845            }
39846            Pat::Rest { 0: _field_0 } => {
39847                let mut __ast_path = __ast_path
39848                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Rest));
39849                <RestPat as VisitWithAstPath<V>>::visit_with_ast_path(
39850                    _field_0,
39851                    visitor,
39852                    &mut *__ast_path,
39853                );
39854            }
39855            Pat::Object { 0: _field_0 } => {
39856                let mut __ast_path = __ast_path
39857                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Object));
39858                <ObjectPat as VisitWithAstPath<V>>::visit_with_ast_path(
39859                    _field_0,
39860                    visitor,
39861                    &mut *__ast_path,
39862                );
39863            }
39864            Pat::Assign { 0: _field_0 } => {
39865                let mut __ast_path = __ast_path
39866                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Assign));
39867                <AssignPat as VisitWithAstPath<V>>::visit_with_ast_path(
39868                    _field_0,
39869                    visitor,
39870                    &mut *__ast_path,
39871                );
39872            }
39873            Pat::Invalid { 0: _field_0 } => {
39874                let mut __ast_path = __ast_path
39875                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Invalid));
39876                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
39877                    _field_0,
39878                    visitor,
39879                    &mut *__ast_path,
39880                );
39881            }
39882            Pat::Expr { 0: _field_0 } => {
39883                let mut __ast_path = __ast_path
39884                    .with_guard(AstParentNodeRef::Pat(self, self::fields::PatField::Expr));
39885                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
39886                    _field_0,
39887                    visitor,
39888                    &mut *__ast_path,
39889                );
39890            }
39891        }
39892    }
39893}
39894#[cfg(any(docsrs, feature = "path"))]
39895#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39896impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PrivateMethod {
39897    #[doc = "Calls [VisitAstPath`::visit_private_method`] with `self`."]
39898    fn visit_with_ast_path<'ast: 'r, 'r>(
39899        &'ast self,
39900        visitor: &mut V,
39901        __ast_path: &mut AstNodePath<'r>,
39902    ) {
39903        <V as VisitAstPath>::visit_private_method(visitor, self, __ast_path)
39904    }
39905
39906    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39907        &'ast self,
39908        visitor: &mut V,
39909        __ast_path: &mut AstNodePath<'r>,
39910    ) {
39911        match self {
39912            PrivateMethod {
39913                span,
39914                key,
39915                function,
39916                kind,
39917                is_static,
39918                accessibility,
39919                is_abstract,
39920                is_optional,
39921                is_override,
39922            } => {
39923                {
39924                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
39925                        self,
39926                        self::fields::PrivateMethodField::Span,
39927                    ));
39928                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
39929                        span,
39930                        visitor,
39931                        &mut *__ast_path,
39932                    )
39933                };
39934                {
39935                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
39936                        self,
39937                        self::fields::PrivateMethodField::Key,
39938                    ));
39939                    <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
39940                        key,
39941                        visitor,
39942                        &mut *__ast_path,
39943                    )
39944                };
39945                {
39946                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
39947                        self,
39948                        self::fields::PrivateMethodField::Function,
39949                    ));
39950                    <Box<Function> as VisitWithAstPath<V>>::visit_with_ast_path(
39951                        function,
39952                        visitor,
39953                        &mut *__ast_path,
39954                    )
39955                };
39956                {
39957                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
39958                        self,
39959                        self::fields::PrivateMethodField::Kind,
39960                    ));
39961                    <MethodKind as VisitWithAstPath<V>>::visit_with_ast_path(
39962                        kind,
39963                        visitor,
39964                        &mut *__ast_path,
39965                    )
39966                };
39967                {
39968                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateMethod(
39969                        self,
39970                        self::fields::PrivateMethodField::Accessibility,
39971                    ));
39972                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
39973                        accessibility,
39974                        visitor,
39975                        &mut *__ast_path,
39976                    )
39977                };
39978            }
39979        }
39980    }
39981}
39982#[cfg(any(docsrs, feature = "path"))]
39983#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
39984impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PrivateName {
39985    #[doc = "Calls [VisitAstPath`::visit_private_name`] with `self`."]
39986    fn visit_with_ast_path<'ast: 'r, 'r>(
39987        &'ast self,
39988        visitor: &mut V,
39989        __ast_path: &mut AstNodePath<'r>,
39990    ) {
39991        <V as VisitAstPath>::visit_private_name(visitor, self, __ast_path)
39992    }
39993
39994    fn visit_children_with_ast_path<'ast: 'r, 'r>(
39995        &'ast self,
39996        visitor: &mut V,
39997        __ast_path: &mut AstNodePath<'r>,
39998    ) {
39999        match self {
40000            PrivateName { span, name } => {
40001                {
40002                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateName(
40003                        self,
40004                        self::fields::PrivateNameField::Span,
40005                    ));
40006                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40007                        span,
40008                        visitor,
40009                        &mut *__ast_path,
40010                    )
40011                };
40012                {
40013                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateName(
40014                        self,
40015                        self::fields::PrivateNameField::Name,
40016                    ));
40017                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
40018                        name,
40019                        visitor,
40020                        &mut *__ast_path,
40021                    )
40022                };
40023            }
40024        }
40025    }
40026}
40027#[cfg(any(docsrs, feature = "path"))]
40028#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40029impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PrivateProp {
40030    #[doc = "Calls [VisitAstPath`::visit_private_prop`] with `self`."]
40031    fn visit_with_ast_path<'ast: 'r, 'r>(
40032        &'ast self,
40033        visitor: &mut V,
40034        __ast_path: &mut AstNodePath<'r>,
40035    ) {
40036        <V as VisitAstPath>::visit_private_prop(visitor, self, __ast_path)
40037    }
40038
40039    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40040        &'ast self,
40041        visitor: &mut V,
40042        __ast_path: &mut AstNodePath<'r>,
40043    ) {
40044        match self {
40045            PrivateProp {
40046                span,
40047                ctxt,
40048                key,
40049                value,
40050                type_ann,
40051                is_static,
40052                decorators,
40053                accessibility,
40054                is_optional,
40055                is_override,
40056                readonly,
40057                definite,
40058            } => {
40059                {
40060                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40061                        self,
40062                        self::fields::PrivatePropField::Span,
40063                    ));
40064                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40065                        span,
40066                        visitor,
40067                        &mut *__ast_path,
40068                    )
40069                };
40070                {
40071                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40072                        self,
40073                        self::fields::PrivatePropField::Ctxt,
40074                    ));
40075                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
40076                        ctxt,
40077                        visitor,
40078                        &mut *__ast_path,
40079                    )
40080                };
40081                {
40082                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40083                        self,
40084                        self::fields::PrivatePropField::Key,
40085                    ));
40086                    <PrivateName as VisitWithAstPath<V>>::visit_with_ast_path(
40087                        key,
40088                        visitor,
40089                        &mut *__ast_path,
40090                    )
40091                };
40092                {
40093                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40094                        self,
40095                        self::fields::PrivatePropField::Value,
40096                    ));
40097                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
40098                        value,
40099                        visitor,
40100                        &mut *__ast_path,
40101                    )
40102                };
40103                {
40104                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40105                        self,
40106                        self::fields::PrivatePropField::TypeAnn,
40107                    ));
40108                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
40109                        type_ann,
40110                        visitor,
40111                        &mut *__ast_path,
40112                    )
40113                };
40114                {
40115                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40116                        self,
40117                        self::fields::PrivatePropField::Decorators(usize::MAX),
40118                    ));
40119                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
40120                        decorators,
40121                        visitor,
40122                        &mut *__ast_path,
40123                    )
40124                };
40125                {
40126                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PrivateProp(
40127                        self,
40128                        self::fields::PrivatePropField::Accessibility,
40129                    ));
40130                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
40131                        accessibility,
40132                        visitor,
40133                        &mut *__ast_path,
40134                    )
40135                };
40136            }
40137        }
40138    }
40139}
40140#[cfg(any(docsrs, feature = "path"))]
40141#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40142impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Program {
40143    #[doc = "Calls [VisitAstPath`::visit_program`] with `self`."]
40144    fn visit_with_ast_path<'ast: 'r, 'r>(
40145        &'ast self,
40146        visitor: &mut V,
40147        __ast_path: &mut AstNodePath<'r>,
40148    ) {
40149        <V as VisitAstPath>::visit_program(visitor, self, __ast_path)
40150    }
40151
40152    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40153        &'ast self,
40154        visitor: &mut V,
40155        __ast_path: &mut AstNodePath<'r>,
40156    ) {
40157        match self {
40158            Program::Module { 0: _field_0 } => {
40159                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Program(
40160                    self,
40161                    self::fields::ProgramField::Module,
40162                ));
40163                <Module as VisitWithAstPath<V>>::visit_with_ast_path(
40164                    _field_0,
40165                    visitor,
40166                    &mut *__ast_path,
40167                );
40168            }
40169            Program::Script { 0: _field_0 } => {
40170                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Program(
40171                    self,
40172                    self::fields::ProgramField::Script,
40173                ));
40174                <Script as VisitWithAstPath<V>>::visit_with_ast_path(
40175                    _field_0,
40176                    visitor,
40177                    &mut *__ast_path,
40178                );
40179            }
40180        }
40181    }
40182}
40183#[cfg(any(docsrs, feature = "path"))]
40184#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40185impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Prop {
40186    #[doc = "Calls [VisitAstPath`::visit_prop`] with `self`."]
40187    fn visit_with_ast_path<'ast: 'r, 'r>(
40188        &'ast self,
40189        visitor: &mut V,
40190        __ast_path: &mut AstNodePath<'r>,
40191    ) {
40192        <V as VisitAstPath>::visit_prop(visitor, self, __ast_path)
40193    }
40194
40195    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40196        &'ast self,
40197        visitor: &mut V,
40198        __ast_path: &mut AstNodePath<'r>,
40199    ) {
40200        match self {
40201            Prop::Shorthand { 0: _field_0 } => {
40202                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40203                    self,
40204                    self::fields::PropField::Shorthand,
40205                ));
40206                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
40207                    _field_0,
40208                    visitor,
40209                    &mut *__ast_path,
40210                );
40211            }
40212            Prop::KeyValue { 0: _field_0 } => {
40213                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40214                    self,
40215                    self::fields::PropField::KeyValue,
40216                ));
40217                <KeyValueProp as VisitWithAstPath<V>>::visit_with_ast_path(
40218                    _field_0,
40219                    visitor,
40220                    &mut *__ast_path,
40221                );
40222            }
40223            Prop::Assign { 0: _field_0 } => {
40224                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40225                    self,
40226                    self::fields::PropField::Assign,
40227                ));
40228                <AssignProp as VisitWithAstPath<V>>::visit_with_ast_path(
40229                    _field_0,
40230                    visitor,
40231                    &mut *__ast_path,
40232                );
40233            }
40234            Prop::Getter { 0: _field_0 } => {
40235                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40236                    self,
40237                    self::fields::PropField::Getter,
40238                ));
40239                <GetterProp as VisitWithAstPath<V>>::visit_with_ast_path(
40240                    _field_0,
40241                    visitor,
40242                    &mut *__ast_path,
40243                );
40244            }
40245            Prop::Setter { 0: _field_0 } => {
40246                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40247                    self,
40248                    self::fields::PropField::Setter,
40249                ));
40250                <SetterProp as VisitWithAstPath<V>>::visit_with_ast_path(
40251                    _field_0,
40252                    visitor,
40253                    &mut *__ast_path,
40254                );
40255            }
40256            Prop::Method { 0: _field_0 } => {
40257                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Prop(
40258                    self,
40259                    self::fields::PropField::Method,
40260                ));
40261                <MethodProp as VisitWithAstPath<V>>::visit_with_ast_path(
40262                    _field_0,
40263                    visitor,
40264                    &mut *__ast_path,
40265                );
40266            }
40267        }
40268    }
40269}
40270#[cfg(any(docsrs, feature = "path"))]
40271#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40272impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PropName {
40273    #[doc = "Calls [VisitAstPath`::visit_prop_name`] with `self`."]
40274    fn visit_with_ast_path<'ast: 'r, 'r>(
40275        &'ast self,
40276        visitor: &mut V,
40277        __ast_path: &mut AstNodePath<'r>,
40278    ) {
40279        <V as VisitAstPath>::visit_prop_name(visitor, self, __ast_path)
40280    }
40281
40282    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40283        &'ast self,
40284        visitor: &mut V,
40285        __ast_path: &mut AstNodePath<'r>,
40286    ) {
40287        match self {
40288            PropName::Ident { 0: _field_0 } => {
40289                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40290                    self,
40291                    self::fields::PropNameField::Ident,
40292                ));
40293                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
40294                    _field_0,
40295                    visitor,
40296                    &mut *__ast_path,
40297                );
40298            }
40299            PropName::Str { 0: _field_0 } => {
40300                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40301                    self,
40302                    self::fields::PropNameField::Str,
40303                ));
40304                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
40305                    _field_0,
40306                    visitor,
40307                    &mut *__ast_path,
40308                );
40309            }
40310            PropName::Num { 0: _field_0 } => {
40311                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40312                    self,
40313                    self::fields::PropNameField::Num,
40314                ));
40315                <Number as VisitWithAstPath<V>>::visit_with_ast_path(
40316                    _field_0,
40317                    visitor,
40318                    &mut *__ast_path,
40319                );
40320            }
40321            PropName::Computed { 0: _field_0 } => {
40322                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40323                    self,
40324                    self::fields::PropNameField::Computed,
40325                ));
40326                <ComputedPropName as VisitWithAstPath<V>>::visit_with_ast_path(
40327                    _field_0,
40328                    visitor,
40329                    &mut *__ast_path,
40330                );
40331            }
40332            PropName::BigInt { 0: _field_0 } => {
40333                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropName(
40334                    self,
40335                    self::fields::PropNameField::BigInt,
40336                ));
40337                <BigInt as VisitWithAstPath<V>>::visit_with_ast_path(
40338                    _field_0,
40339                    visitor,
40340                    &mut *__ast_path,
40341                );
40342            }
40343        }
40344    }
40345}
40346#[cfg(any(docsrs, feature = "path"))]
40347#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40348impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for PropOrSpread {
40349    #[doc = "Calls [VisitAstPath`::visit_prop_or_spread`] with `self`."]
40350    fn visit_with_ast_path<'ast: 'r, 'r>(
40351        &'ast self,
40352        visitor: &mut V,
40353        __ast_path: &mut AstNodePath<'r>,
40354    ) {
40355        <V as VisitAstPath>::visit_prop_or_spread(visitor, self, __ast_path)
40356    }
40357
40358    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40359        &'ast self,
40360        visitor: &mut V,
40361        __ast_path: &mut AstNodePath<'r>,
40362    ) {
40363        match self {
40364            PropOrSpread::Spread { 0: _field_0 } => {
40365                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropOrSpread(
40366                    self,
40367                    self::fields::PropOrSpreadField::Spread,
40368                ));
40369                <SpreadElement as VisitWithAstPath<V>>::visit_with_ast_path(
40370                    _field_0,
40371                    visitor,
40372                    &mut *__ast_path,
40373                );
40374            }
40375            PropOrSpread::Prop { 0: _field_0 } => {
40376                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::PropOrSpread(
40377                    self,
40378                    self::fields::PropOrSpreadField::Prop,
40379                ));
40380                <Box<Prop> as VisitWithAstPath<V>>::visit_with_ast_path(
40381                    _field_0,
40382                    visitor,
40383                    &mut *__ast_path,
40384                );
40385            }
40386        }
40387    }
40388}
40389#[cfg(any(docsrs, feature = "path"))]
40390#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40391impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Regex {
40392    #[doc = "Calls [VisitAstPath`::visit_regex`] with `self`."]
40393    fn visit_with_ast_path<'ast: 'r, 'r>(
40394        &'ast self,
40395        visitor: &mut V,
40396        __ast_path: &mut AstNodePath<'r>,
40397    ) {
40398        <V as VisitAstPath>::visit_regex(visitor, self, __ast_path)
40399    }
40400
40401    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40402        &'ast self,
40403        visitor: &mut V,
40404        __ast_path: &mut AstNodePath<'r>,
40405    ) {
40406        match self {
40407            Regex { span, exp, flags } => {
40408                {
40409                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Regex(
40410                        self,
40411                        self::fields::RegexField::Span,
40412                    ));
40413                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40414                        span,
40415                        visitor,
40416                        &mut *__ast_path,
40417                    )
40418                };
40419                {
40420                    let mut __ast_path = __ast_path
40421                        .with_guard(AstParentNodeRef::Regex(self, self::fields::RegexField::Exp));
40422                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
40423                        exp,
40424                        visitor,
40425                        &mut *__ast_path,
40426                    )
40427                };
40428                {
40429                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Regex(
40430                        self,
40431                        self::fields::RegexField::Flags,
40432                    ));
40433                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
40434                        flags,
40435                        visitor,
40436                        &mut *__ast_path,
40437                    )
40438                };
40439            }
40440        }
40441    }
40442}
40443#[cfg(any(docsrs, feature = "path"))]
40444#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40445impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for RestPat {
40446    #[doc = "Calls [VisitAstPath`::visit_rest_pat`] with `self`."]
40447    fn visit_with_ast_path<'ast: 'r, 'r>(
40448        &'ast self,
40449        visitor: &mut V,
40450        __ast_path: &mut AstNodePath<'r>,
40451    ) {
40452        <V as VisitAstPath>::visit_rest_pat(visitor, self, __ast_path)
40453    }
40454
40455    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40456        &'ast self,
40457        visitor: &mut V,
40458        __ast_path: &mut AstNodePath<'r>,
40459    ) {
40460        match self {
40461            RestPat {
40462                span,
40463                dot3_token,
40464                arg,
40465                type_ann,
40466            } => {
40467                {
40468                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40469                        self,
40470                        self::fields::RestPatField::Span,
40471                    ));
40472                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40473                        span,
40474                        visitor,
40475                        &mut *__ast_path,
40476                    )
40477                };
40478                {
40479                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40480                        self,
40481                        self::fields::RestPatField::Dot3Token,
40482                    ));
40483                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40484                        dot3_token,
40485                        visitor,
40486                        &mut *__ast_path,
40487                    )
40488                };
40489                {
40490                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40491                        self,
40492                        self::fields::RestPatField::Arg,
40493                    ));
40494                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
40495                        arg,
40496                        visitor,
40497                        &mut *__ast_path,
40498                    )
40499                };
40500                {
40501                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::RestPat(
40502                        self,
40503                        self::fields::RestPatField::TypeAnn,
40504                    ));
40505                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
40506                        type_ann,
40507                        visitor,
40508                        &mut *__ast_path,
40509                    )
40510                };
40511            }
40512        }
40513    }
40514}
40515#[cfg(any(docsrs, feature = "path"))]
40516#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40517impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ReturnStmt {
40518    #[doc = "Calls [VisitAstPath`::visit_return_stmt`] with `self`."]
40519    fn visit_with_ast_path<'ast: 'r, 'r>(
40520        &'ast self,
40521        visitor: &mut V,
40522        __ast_path: &mut AstNodePath<'r>,
40523    ) {
40524        <V as VisitAstPath>::visit_return_stmt(visitor, self, __ast_path)
40525    }
40526
40527    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40528        &'ast self,
40529        visitor: &mut V,
40530        __ast_path: &mut AstNodePath<'r>,
40531    ) {
40532        match self {
40533            ReturnStmt { span, arg } => {
40534                {
40535                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ReturnStmt(
40536                        self,
40537                        self::fields::ReturnStmtField::Span,
40538                    ));
40539                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40540                        span,
40541                        visitor,
40542                        &mut *__ast_path,
40543                    )
40544                };
40545                {
40546                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ReturnStmt(
40547                        self,
40548                        self::fields::ReturnStmtField::Arg,
40549                    ));
40550                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
40551                        arg,
40552                        visitor,
40553                        &mut *__ast_path,
40554                    )
40555                };
40556            }
40557        }
40558    }
40559}
40560#[cfg(any(docsrs, feature = "path"))]
40561#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40562impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Script {
40563    #[doc = "Calls [VisitAstPath`::visit_script`] with `self`."]
40564    fn visit_with_ast_path<'ast: 'r, 'r>(
40565        &'ast self,
40566        visitor: &mut V,
40567        __ast_path: &mut AstNodePath<'r>,
40568    ) {
40569        <V as VisitAstPath>::visit_script(visitor, self, __ast_path)
40570    }
40571
40572    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40573        &'ast self,
40574        visitor: &mut V,
40575        __ast_path: &mut AstNodePath<'r>,
40576    ) {
40577        match self {
40578            Script {
40579                span,
40580                body,
40581                shebang,
40582            } => {
40583                {
40584                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Script(
40585                        self,
40586                        self::fields::ScriptField::Span,
40587                    ));
40588                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40589                        span,
40590                        visitor,
40591                        &mut *__ast_path,
40592                    )
40593                };
40594                {
40595                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Script(
40596                        self,
40597                        self::fields::ScriptField::Body(usize::MAX),
40598                    ));
40599                    <Vec<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
40600                        body,
40601                        visitor,
40602                        &mut *__ast_path,
40603                    )
40604                };
40605                {
40606                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Script(
40607                        self,
40608                        self::fields::ScriptField::Shebang,
40609                    ));
40610                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
40611                        shebang,
40612                        visitor,
40613                        &mut *__ast_path,
40614                    )
40615                };
40616            }
40617        }
40618    }
40619}
40620#[cfg(any(docsrs, feature = "path"))]
40621#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40622impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SeqExpr {
40623    #[doc = "Calls [VisitAstPath`::visit_seq_expr`] with `self`."]
40624    fn visit_with_ast_path<'ast: 'r, 'r>(
40625        &'ast self,
40626        visitor: &mut V,
40627        __ast_path: &mut AstNodePath<'r>,
40628    ) {
40629        <V as VisitAstPath>::visit_seq_expr(visitor, self, __ast_path)
40630    }
40631
40632    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40633        &'ast self,
40634        visitor: &mut V,
40635        __ast_path: &mut AstNodePath<'r>,
40636    ) {
40637        match self {
40638            SeqExpr { span, exprs } => {
40639                {
40640                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SeqExpr(
40641                        self,
40642                        self::fields::SeqExprField::Span,
40643                    ));
40644                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40645                        span,
40646                        visitor,
40647                        &mut *__ast_path,
40648                    )
40649                };
40650                {
40651                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SeqExpr(
40652                        self,
40653                        self::fields::SeqExprField::Exprs(usize::MAX),
40654                    ));
40655                    <Vec<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
40656                        exprs,
40657                        visitor,
40658                        &mut *__ast_path,
40659                    )
40660                };
40661            }
40662        }
40663    }
40664}
40665#[cfg(any(docsrs, feature = "path"))]
40666#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40667impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SetterProp {
40668    #[doc = "Calls [VisitAstPath`::visit_setter_prop`] with `self`."]
40669    fn visit_with_ast_path<'ast: 'r, 'r>(
40670        &'ast self,
40671        visitor: &mut V,
40672        __ast_path: &mut AstNodePath<'r>,
40673    ) {
40674        <V as VisitAstPath>::visit_setter_prop(visitor, self, __ast_path)
40675    }
40676
40677    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40678        &'ast self,
40679        visitor: &mut V,
40680        __ast_path: &mut AstNodePath<'r>,
40681    ) {
40682        match self {
40683            SetterProp {
40684                span,
40685                key,
40686                this_param,
40687                param,
40688                body,
40689            } => {
40690                {
40691                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40692                        self,
40693                        self::fields::SetterPropField::Span,
40694                    ));
40695                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40696                        span,
40697                        visitor,
40698                        &mut *__ast_path,
40699                    )
40700                };
40701                {
40702                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40703                        self,
40704                        self::fields::SetterPropField::Key,
40705                    ));
40706                    <PropName as VisitWithAstPath<V>>::visit_with_ast_path(
40707                        key,
40708                        visitor,
40709                        &mut *__ast_path,
40710                    )
40711                };
40712                {
40713                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40714                        self,
40715                        self::fields::SetterPropField::ThisParam,
40716                    ));
40717                    <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
40718                        this_param,
40719                        visitor,
40720                        &mut *__ast_path,
40721                    )
40722                };
40723                {
40724                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40725                        self,
40726                        self::fields::SetterPropField::Param,
40727                    ));
40728                    <Box<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
40729                        param,
40730                        visitor,
40731                        &mut *__ast_path,
40732                    )
40733                };
40734                {
40735                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SetterProp(
40736                        self,
40737                        self::fields::SetterPropField::Body,
40738                    ));
40739                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
40740                        body,
40741                        visitor,
40742                        &mut *__ast_path,
40743                    )
40744                };
40745            }
40746        }
40747    }
40748}
40749#[cfg(any(docsrs, feature = "path"))]
40750#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40751impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SimpleAssignTarget {
40752    #[doc = "Calls [VisitAstPath`::visit_simple_assign_target`] with `self`."]
40753    fn visit_with_ast_path<'ast: 'r, 'r>(
40754        &'ast self,
40755        visitor: &mut V,
40756        __ast_path: &mut AstNodePath<'r>,
40757    ) {
40758        <V as VisitAstPath>::visit_simple_assign_target(visitor, self, __ast_path)
40759    }
40760
40761    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40762        &'ast self,
40763        visitor: &mut V,
40764        __ast_path: &mut AstNodePath<'r>,
40765    ) {
40766        match self {
40767            SimpleAssignTarget::Ident { 0: _field_0 } => {
40768                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40769                    self,
40770                    self::fields::SimpleAssignTargetField::Ident,
40771                ));
40772                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
40773                    _field_0,
40774                    visitor,
40775                    &mut *__ast_path,
40776                );
40777            }
40778            SimpleAssignTarget::Member { 0: _field_0 } => {
40779                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40780                    self,
40781                    self::fields::SimpleAssignTargetField::Member,
40782                ));
40783                <MemberExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40784                    _field_0,
40785                    visitor,
40786                    &mut *__ast_path,
40787                );
40788            }
40789            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
40790                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40791                    self,
40792                    self::fields::SimpleAssignTargetField::SuperProp,
40793                ));
40794                <SuperPropExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40795                    _field_0,
40796                    visitor,
40797                    &mut *__ast_path,
40798                );
40799            }
40800            SimpleAssignTarget::Paren { 0: _field_0 } => {
40801                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40802                    self,
40803                    self::fields::SimpleAssignTargetField::Paren,
40804                ));
40805                <ParenExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40806                    _field_0,
40807                    visitor,
40808                    &mut *__ast_path,
40809                );
40810            }
40811            SimpleAssignTarget::OptChain { 0: _field_0 } => {
40812                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40813                    self,
40814                    self::fields::SimpleAssignTargetField::OptChain,
40815                ));
40816                <OptChainExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40817                    _field_0,
40818                    visitor,
40819                    &mut *__ast_path,
40820                );
40821            }
40822            SimpleAssignTarget::TsAs { 0: _field_0 } => {
40823                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40824                    self,
40825                    self::fields::SimpleAssignTargetField::TsAs,
40826                ));
40827                <TsAsExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40828                    _field_0,
40829                    visitor,
40830                    &mut *__ast_path,
40831                );
40832            }
40833            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
40834                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40835                    self,
40836                    self::fields::SimpleAssignTargetField::TsSatisfies,
40837                ));
40838                <TsSatisfiesExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40839                    _field_0,
40840                    visitor,
40841                    &mut *__ast_path,
40842                );
40843            }
40844            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
40845                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40846                    self,
40847                    self::fields::SimpleAssignTargetField::TsNonNull,
40848                ));
40849                <TsNonNullExpr as VisitWithAstPath<V>>::visit_with_ast_path(
40850                    _field_0,
40851                    visitor,
40852                    &mut *__ast_path,
40853                );
40854            }
40855            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
40856                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40857                    self,
40858                    self::fields::SimpleAssignTargetField::TsTypeAssertion,
40859                ));
40860                <TsTypeAssertion as VisitWithAstPath<V>>::visit_with_ast_path(
40861                    _field_0,
40862                    visitor,
40863                    &mut *__ast_path,
40864                );
40865            }
40866            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
40867                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40868                    self,
40869                    self::fields::SimpleAssignTargetField::TsInstantiation,
40870                ));
40871                <TsInstantiation as VisitWithAstPath<V>>::visit_with_ast_path(
40872                    _field_0,
40873                    visitor,
40874                    &mut *__ast_path,
40875                );
40876            }
40877            SimpleAssignTarget::Invalid { 0: _field_0 } => {
40878                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SimpleAssignTarget(
40879                    self,
40880                    self::fields::SimpleAssignTargetField::Invalid,
40881                ));
40882                <Invalid as VisitWithAstPath<V>>::visit_with_ast_path(
40883                    _field_0,
40884                    visitor,
40885                    &mut *__ast_path,
40886                );
40887            }
40888        }
40889    }
40890}
40891#[cfg(any(docsrs, feature = "path"))]
40892#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40893impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SpreadElement {
40894    #[doc = "Calls [VisitAstPath`::visit_spread_element`] with `self`."]
40895    fn visit_with_ast_path<'ast: 'r, 'r>(
40896        &'ast self,
40897        visitor: &mut V,
40898        __ast_path: &mut AstNodePath<'r>,
40899    ) {
40900        <V as VisitAstPath>::visit_spread_element(visitor, self, __ast_path)
40901    }
40902
40903    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40904        &'ast self,
40905        visitor: &mut V,
40906        __ast_path: &mut AstNodePath<'r>,
40907    ) {
40908        match self {
40909            SpreadElement { dot3_token, expr } => {
40910                {
40911                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SpreadElement(
40912                        self,
40913                        self::fields::SpreadElementField::Dot3Token,
40914                    ));
40915                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40916                        dot3_token,
40917                        visitor,
40918                        &mut *__ast_path,
40919                    )
40920                };
40921                {
40922                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SpreadElement(
40923                        self,
40924                        self::fields::SpreadElementField::Expr,
40925                    ));
40926                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
40927                        expr,
40928                        visitor,
40929                        &mut *__ast_path,
40930                    )
40931                };
40932            }
40933        }
40934    }
40935}
40936#[cfg(any(docsrs, feature = "path"))]
40937#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40938impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for StaticBlock {
40939    #[doc = "Calls [VisitAstPath`::visit_static_block`] with `self`."]
40940    fn visit_with_ast_path<'ast: 'r, 'r>(
40941        &'ast self,
40942        visitor: &mut V,
40943        __ast_path: &mut AstNodePath<'r>,
40944    ) {
40945        <V as VisitAstPath>::visit_static_block(visitor, self, __ast_path)
40946    }
40947
40948    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40949        &'ast self,
40950        visitor: &mut V,
40951        __ast_path: &mut AstNodePath<'r>,
40952    ) {
40953        match self {
40954            StaticBlock { span, body } => {
40955                {
40956                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::StaticBlock(
40957                        self,
40958                        self::fields::StaticBlockField::Span,
40959                    ));
40960                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
40961                        span,
40962                        visitor,
40963                        &mut *__ast_path,
40964                    )
40965                };
40966                {
40967                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::StaticBlock(
40968                        self,
40969                        self::fields::StaticBlockField::Body,
40970                    ));
40971                    <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
40972                        body,
40973                        visitor,
40974                        &mut *__ast_path,
40975                    )
40976                };
40977            }
40978        }
40979    }
40980}
40981#[cfg(any(docsrs, feature = "path"))]
40982#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
40983impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Stmt {
40984    #[doc = "Calls [VisitAstPath`::visit_stmt`] with `self`."]
40985    fn visit_with_ast_path<'ast: 'r, 'r>(
40986        &'ast self,
40987        visitor: &mut V,
40988        __ast_path: &mut AstNodePath<'r>,
40989    ) {
40990        <V as VisitAstPath>::visit_stmt(visitor, self, __ast_path)
40991    }
40992
40993    fn visit_children_with_ast_path<'ast: 'r, 'r>(
40994        &'ast self,
40995        visitor: &mut V,
40996        __ast_path: &mut AstNodePath<'r>,
40997    ) {
40998        match self {
40999            Stmt::Block { 0: _field_0 } => {
41000                let mut __ast_path = __ast_path
41001                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Block));
41002                <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41003                    _field_0,
41004                    visitor,
41005                    &mut *__ast_path,
41006                );
41007            }
41008            Stmt::Empty { 0: _field_0 } => {
41009                let mut __ast_path = __ast_path
41010                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Empty));
41011                <EmptyStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41012                    _field_0,
41013                    visitor,
41014                    &mut *__ast_path,
41015                );
41016            }
41017            Stmt::Debugger { 0: _field_0 } => {
41018                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41019                    self,
41020                    self::fields::StmtField::Debugger,
41021                ));
41022                <DebuggerStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41023                    _field_0,
41024                    visitor,
41025                    &mut *__ast_path,
41026                );
41027            }
41028            Stmt::With { 0: _field_0 } => {
41029                let mut __ast_path = __ast_path
41030                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::With));
41031                <WithStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41032                    _field_0,
41033                    visitor,
41034                    &mut *__ast_path,
41035                );
41036            }
41037            Stmt::Return { 0: _field_0 } => {
41038                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41039                    self,
41040                    self::fields::StmtField::Return,
41041                ));
41042                <ReturnStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41043                    _field_0,
41044                    visitor,
41045                    &mut *__ast_path,
41046                );
41047            }
41048            Stmt::Labeled { 0: _field_0 } => {
41049                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41050                    self,
41051                    self::fields::StmtField::Labeled,
41052                ));
41053                <LabeledStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41054                    _field_0,
41055                    visitor,
41056                    &mut *__ast_path,
41057                );
41058            }
41059            Stmt::Break { 0: _field_0 } => {
41060                let mut __ast_path = __ast_path
41061                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Break));
41062                <BreakStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41063                    _field_0,
41064                    visitor,
41065                    &mut *__ast_path,
41066                );
41067            }
41068            Stmt::Continue { 0: _field_0 } => {
41069                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41070                    self,
41071                    self::fields::StmtField::Continue,
41072                ));
41073                <ContinueStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41074                    _field_0,
41075                    visitor,
41076                    &mut *__ast_path,
41077                );
41078            }
41079            Stmt::If { 0: _field_0 } => {
41080                let mut __ast_path = __ast_path
41081                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::If));
41082                <IfStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41083                    _field_0,
41084                    visitor,
41085                    &mut *__ast_path,
41086                );
41087            }
41088            Stmt::Switch { 0: _field_0 } => {
41089                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41090                    self,
41091                    self::fields::StmtField::Switch,
41092                ));
41093                <SwitchStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41094                    _field_0,
41095                    visitor,
41096                    &mut *__ast_path,
41097                );
41098            }
41099            Stmt::Throw { 0: _field_0 } => {
41100                let mut __ast_path = __ast_path
41101                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Throw));
41102                <ThrowStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41103                    _field_0,
41104                    visitor,
41105                    &mut *__ast_path,
41106                );
41107            }
41108            Stmt::Try { 0: _field_0 } => {
41109                let mut __ast_path = __ast_path
41110                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Try));
41111                <Box<TryStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
41112                    _field_0,
41113                    visitor,
41114                    &mut *__ast_path,
41115                );
41116            }
41117            Stmt::While { 0: _field_0 } => {
41118                let mut __ast_path = __ast_path
41119                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::While));
41120                <WhileStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41121                    _field_0,
41122                    visitor,
41123                    &mut *__ast_path,
41124                );
41125            }
41126            Stmt::DoWhile { 0: _field_0 } => {
41127                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Stmt(
41128                    self,
41129                    self::fields::StmtField::DoWhile,
41130                ));
41131                <DoWhileStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41132                    _field_0,
41133                    visitor,
41134                    &mut *__ast_path,
41135                );
41136            }
41137            Stmt::For { 0: _field_0 } => {
41138                let mut __ast_path = __ast_path
41139                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::For));
41140                <ForStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41141                    _field_0,
41142                    visitor,
41143                    &mut *__ast_path,
41144                );
41145            }
41146            Stmt::ForIn { 0: _field_0 } => {
41147                let mut __ast_path = __ast_path
41148                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::ForIn));
41149                <ForInStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41150                    _field_0,
41151                    visitor,
41152                    &mut *__ast_path,
41153                );
41154            }
41155            Stmt::ForOf { 0: _field_0 } => {
41156                let mut __ast_path = __ast_path
41157                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::ForOf));
41158                <ForOfStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41159                    _field_0,
41160                    visitor,
41161                    &mut *__ast_path,
41162                );
41163            }
41164            Stmt::Decl { 0: _field_0 } => {
41165                let mut __ast_path = __ast_path
41166                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Decl));
41167                <Decl as VisitWithAstPath<V>>::visit_with_ast_path(
41168                    _field_0,
41169                    visitor,
41170                    &mut *__ast_path,
41171                );
41172            }
41173            Stmt::Expr { 0: _field_0 } => {
41174                let mut __ast_path = __ast_path
41175                    .with_guard(AstParentNodeRef::Stmt(self, self::fields::StmtField::Expr));
41176                <ExprStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41177                    _field_0,
41178                    visitor,
41179                    &mut *__ast_path,
41180                );
41181            }
41182        }
41183    }
41184}
41185#[cfg(any(docsrs, feature = "path"))]
41186#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41187impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Str {
41188    #[doc = "Calls [VisitAstPath`::visit_str`] with `self`."]
41189    fn visit_with_ast_path<'ast: 'r, 'r>(
41190        &'ast self,
41191        visitor: &mut V,
41192        __ast_path: &mut AstNodePath<'r>,
41193    ) {
41194        <V as VisitAstPath>::visit_str(visitor, self, __ast_path)
41195    }
41196
41197    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41198        &'ast self,
41199        visitor: &mut V,
41200        __ast_path: &mut AstNodePath<'r>,
41201    ) {
41202        match self {
41203            Str { span, value, raw } => {
41204                {
41205                    let mut __ast_path = __ast_path
41206                        .with_guard(AstParentNodeRef::Str(self, self::fields::StrField::Span));
41207                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41208                        span,
41209                        visitor,
41210                        &mut *__ast_path,
41211                    )
41212                };
41213                {
41214                    let mut __ast_path = __ast_path
41215                        .with_guard(AstParentNodeRef::Str(self, self::fields::StrField::Value));
41216                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
41217                        value,
41218                        visitor,
41219                        &mut *__ast_path,
41220                    )
41221                };
41222                {
41223                    let mut __ast_path = __ast_path
41224                        .with_guard(AstParentNodeRef::Str(self, self::fields::StrField::Raw));
41225                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
41226                        raw,
41227                        visitor,
41228                        &mut *__ast_path,
41229                    )
41230                };
41231            }
41232        }
41233    }
41234}
41235#[cfg(any(docsrs, feature = "path"))]
41236#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41237impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Super {
41238    #[doc = "Calls [VisitAstPath`::visit_super`] with `self`."]
41239    fn visit_with_ast_path<'ast: 'r, 'r>(
41240        &'ast self,
41241        visitor: &mut V,
41242        __ast_path: &mut AstNodePath<'r>,
41243    ) {
41244        <V as VisitAstPath>::visit_super(visitor, self, __ast_path)
41245    }
41246
41247    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41248        &'ast self,
41249        visitor: &mut V,
41250        __ast_path: &mut AstNodePath<'r>,
41251    ) {
41252        match self {
41253            Super { span } => {
41254                {
41255                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Super(
41256                        self,
41257                        self::fields::SuperField::Span,
41258                    ));
41259                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41260                        span,
41261                        visitor,
41262                        &mut *__ast_path,
41263                    )
41264                };
41265            }
41266        }
41267    }
41268}
41269#[cfg(any(docsrs, feature = "path"))]
41270#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41271impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SuperProp {
41272    #[doc = "Calls [VisitAstPath`::visit_super_prop`] with `self`."]
41273    fn visit_with_ast_path<'ast: 'r, 'r>(
41274        &'ast self,
41275        visitor: &mut V,
41276        __ast_path: &mut AstNodePath<'r>,
41277    ) {
41278        <V as VisitAstPath>::visit_super_prop(visitor, self, __ast_path)
41279    }
41280
41281    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41282        &'ast self,
41283        visitor: &mut V,
41284        __ast_path: &mut AstNodePath<'r>,
41285    ) {
41286        match self {
41287            SuperProp::Ident { 0: _field_0 } => {
41288                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperProp(
41289                    self,
41290                    self::fields::SuperPropField::Ident,
41291                ));
41292                <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
41293                    _field_0,
41294                    visitor,
41295                    &mut *__ast_path,
41296                );
41297            }
41298            SuperProp::Computed { 0: _field_0 } => {
41299                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperProp(
41300                    self,
41301                    self::fields::SuperPropField::Computed,
41302                ));
41303                <ComputedPropName as VisitWithAstPath<V>>::visit_with_ast_path(
41304                    _field_0,
41305                    visitor,
41306                    &mut *__ast_path,
41307                );
41308            }
41309        }
41310    }
41311}
41312#[cfg(any(docsrs, feature = "path"))]
41313#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41314impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SuperPropExpr {
41315    #[doc = "Calls [VisitAstPath`::visit_super_prop_expr`] with `self`."]
41316    fn visit_with_ast_path<'ast: 'r, 'r>(
41317        &'ast self,
41318        visitor: &mut V,
41319        __ast_path: &mut AstNodePath<'r>,
41320    ) {
41321        <V as VisitAstPath>::visit_super_prop_expr(visitor, self, __ast_path)
41322    }
41323
41324    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41325        &'ast self,
41326        visitor: &mut V,
41327        __ast_path: &mut AstNodePath<'r>,
41328    ) {
41329        match self {
41330            SuperPropExpr { span, obj, prop } => {
41331                {
41332                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperPropExpr(
41333                        self,
41334                        self::fields::SuperPropExprField::Span,
41335                    ));
41336                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41337                        span,
41338                        visitor,
41339                        &mut *__ast_path,
41340                    )
41341                };
41342                {
41343                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperPropExpr(
41344                        self,
41345                        self::fields::SuperPropExprField::Obj,
41346                    ));
41347                    <Super as VisitWithAstPath<V>>::visit_with_ast_path(
41348                        obj,
41349                        visitor,
41350                        &mut *__ast_path,
41351                    )
41352                };
41353                {
41354                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SuperPropExpr(
41355                        self,
41356                        self::fields::SuperPropExprField::Prop,
41357                    ));
41358                    <SuperProp as VisitWithAstPath<V>>::visit_with_ast_path(
41359                        prop,
41360                        visitor,
41361                        &mut *__ast_path,
41362                    )
41363                };
41364            }
41365        }
41366    }
41367}
41368#[cfg(any(docsrs, feature = "path"))]
41369#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41370impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SwitchCase {
41371    #[doc = "Calls [VisitAstPath`::visit_switch_case`] with `self`."]
41372    fn visit_with_ast_path<'ast: 'r, 'r>(
41373        &'ast self,
41374        visitor: &mut V,
41375        __ast_path: &mut AstNodePath<'r>,
41376    ) {
41377        <V as VisitAstPath>::visit_switch_case(visitor, self, __ast_path)
41378    }
41379
41380    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41381        &'ast self,
41382        visitor: &mut V,
41383        __ast_path: &mut AstNodePath<'r>,
41384    ) {
41385        match self {
41386            SwitchCase { span, test, cons } => {
41387                {
41388                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchCase(
41389                        self,
41390                        self::fields::SwitchCaseField::Span,
41391                    ));
41392                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41393                        span,
41394                        visitor,
41395                        &mut *__ast_path,
41396                    )
41397                };
41398                {
41399                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchCase(
41400                        self,
41401                        self::fields::SwitchCaseField::Test,
41402                    ));
41403                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
41404                        test,
41405                        visitor,
41406                        &mut *__ast_path,
41407                    )
41408                };
41409                {
41410                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchCase(
41411                        self,
41412                        self::fields::SwitchCaseField::Cons(usize::MAX),
41413                    ));
41414                    <Vec<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
41415                        cons,
41416                        visitor,
41417                        &mut *__ast_path,
41418                    )
41419                };
41420            }
41421        }
41422    }
41423}
41424#[cfg(any(docsrs, feature = "path"))]
41425#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41426impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for SwitchStmt {
41427    #[doc = "Calls [VisitAstPath`::visit_switch_stmt`] with `self`."]
41428    fn visit_with_ast_path<'ast: 'r, 'r>(
41429        &'ast self,
41430        visitor: &mut V,
41431        __ast_path: &mut AstNodePath<'r>,
41432    ) {
41433        <V as VisitAstPath>::visit_switch_stmt(visitor, self, __ast_path)
41434    }
41435
41436    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41437        &'ast self,
41438        visitor: &mut V,
41439        __ast_path: &mut AstNodePath<'r>,
41440    ) {
41441        match self {
41442            SwitchStmt {
41443                span,
41444                discriminant,
41445                cases,
41446            } => {
41447                {
41448                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchStmt(
41449                        self,
41450                        self::fields::SwitchStmtField::Span,
41451                    ));
41452                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41453                        span,
41454                        visitor,
41455                        &mut *__ast_path,
41456                    )
41457                };
41458                {
41459                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchStmt(
41460                        self,
41461                        self::fields::SwitchStmtField::Discriminant,
41462                    ));
41463                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41464                        discriminant,
41465                        visitor,
41466                        &mut *__ast_path,
41467                    )
41468                };
41469                {
41470                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::SwitchStmt(
41471                        self,
41472                        self::fields::SwitchStmtField::Cases(usize::MAX),
41473                    ));
41474                    <Vec<SwitchCase> as VisitWithAstPath<V>>::visit_with_ast_path(
41475                        cases,
41476                        visitor,
41477                        &mut *__ast_path,
41478                    )
41479                };
41480            }
41481        }
41482    }
41483}
41484#[cfg(any(docsrs, feature = "path"))]
41485#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41486impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TaggedTpl {
41487    #[doc = "Calls [VisitAstPath`::visit_tagged_tpl`] with `self`."]
41488    fn visit_with_ast_path<'ast: 'r, 'r>(
41489        &'ast self,
41490        visitor: &mut V,
41491        __ast_path: &mut AstNodePath<'r>,
41492    ) {
41493        <V as VisitAstPath>::visit_tagged_tpl(visitor, self, __ast_path)
41494    }
41495
41496    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41497        &'ast self,
41498        visitor: &mut V,
41499        __ast_path: &mut AstNodePath<'r>,
41500    ) {
41501        match self {
41502            TaggedTpl {
41503                span,
41504                ctxt,
41505                tag,
41506                type_params,
41507                tpl,
41508            } => {
41509                {
41510                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41511                        self,
41512                        self::fields::TaggedTplField::Span,
41513                    ));
41514                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41515                        span,
41516                        visitor,
41517                        &mut *__ast_path,
41518                    )
41519                };
41520                {
41521                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41522                        self,
41523                        self::fields::TaggedTplField::Ctxt,
41524                    ));
41525                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
41526                        ctxt,
41527                        visitor,
41528                        &mut *__ast_path,
41529                    )
41530                };
41531                {
41532                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41533                        self,
41534                        self::fields::TaggedTplField::Tag,
41535                    ));
41536                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41537                        tag,
41538                        visitor,
41539                        &mut *__ast_path,
41540                    )
41541                };
41542                {
41543                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41544                        self,
41545                        self::fields::TaggedTplField::TypeParams,
41546                    ));
41547                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_params , visitor , & mut * __ast_path)
41548                };
41549                {
41550                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TaggedTpl(
41551                        self,
41552                        self::fields::TaggedTplField::Tpl,
41553                    ));
41554                    <Box<Tpl> as VisitWithAstPath<V>>::visit_with_ast_path(
41555                        tpl,
41556                        visitor,
41557                        &mut *__ast_path,
41558                    )
41559                };
41560            }
41561        }
41562    }
41563}
41564#[cfg(any(docsrs, feature = "path"))]
41565#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41566impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ThisExpr {
41567    #[doc = "Calls [VisitAstPath`::visit_this_expr`] with `self`."]
41568    fn visit_with_ast_path<'ast: 'r, 'r>(
41569        &'ast self,
41570        visitor: &mut V,
41571        __ast_path: &mut AstNodePath<'r>,
41572    ) {
41573        <V as VisitAstPath>::visit_this_expr(visitor, self, __ast_path)
41574    }
41575
41576    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41577        &'ast self,
41578        visitor: &mut V,
41579        __ast_path: &mut AstNodePath<'r>,
41580    ) {
41581        match self {
41582            ThisExpr { span } => {
41583                {
41584                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ThisExpr(
41585                        self,
41586                        self::fields::ThisExprField::Span,
41587                    ));
41588                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41589                        span,
41590                        visitor,
41591                        &mut *__ast_path,
41592                    )
41593                };
41594            }
41595        }
41596    }
41597}
41598#[cfg(any(docsrs, feature = "path"))]
41599#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41600impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for ThrowStmt {
41601    #[doc = "Calls [VisitAstPath`::visit_throw_stmt`] with `self`."]
41602    fn visit_with_ast_path<'ast: 'r, 'r>(
41603        &'ast self,
41604        visitor: &mut V,
41605        __ast_path: &mut AstNodePath<'r>,
41606    ) {
41607        <V as VisitAstPath>::visit_throw_stmt(visitor, self, __ast_path)
41608    }
41609
41610    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41611        &'ast self,
41612        visitor: &mut V,
41613        __ast_path: &mut AstNodePath<'r>,
41614    ) {
41615        match self {
41616            ThrowStmt { span, arg } => {
41617                {
41618                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ThrowStmt(
41619                        self,
41620                        self::fields::ThrowStmtField::Span,
41621                    ));
41622                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41623                        span,
41624                        visitor,
41625                        &mut *__ast_path,
41626                    )
41627                };
41628                {
41629                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::ThrowStmt(
41630                        self,
41631                        self::fields::ThrowStmtField::Arg,
41632                    ));
41633                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41634                        arg,
41635                        visitor,
41636                        &mut *__ast_path,
41637                    )
41638                };
41639            }
41640        }
41641    }
41642}
41643#[cfg(any(docsrs, feature = "path"))]
41644#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41645impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Tpl {
41646    #[doc = "Calls [VisitAstPath`::visit_tpl`] with `self`."]
41647    fn visit_with_ast_path<'ast: 'r, 'r>(
41648        &'ast self,
41649        visitor: &mut V,
41650        __ast_path: &mut AstNodePath<'r>,
41651    ) {
41652        <V as VisitAstPath>::visit_tpl(visitor, self, __ast_path)
41653    }
41654
41655    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41656        &'ast self,
41657        visitor: &mut V,
41658        __ast_path: &mut AstNodePath<'r>,
41659    ) {
41660        match self {
41661            Tpl {
41662                span,
41663                exprs,
41664                quasis,
41665            } => {
41666                {
41667                    let mut __ast_path = __ast_path
41668                        .with_guard(AstParentNodeRef::Tpl(self, self::fields::TplField::Span));
41669                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41670                        span,
41671                        visitor,
41672                        &mut *__ast_path,
41673                    )
41674                };
41675                {
41676                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Tpl(
41677                        self,
41678                        self::fields::TplField::Exprs(usize::MAX),
41679                    ));
41680                    <Vec<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
41681                        exprs,
41682                        visitor,
41683                        &mut *__ast_path,
41684                    )
41685                };
41686                {
41687                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::Tpl(
41688                        self,
41689                        self::fields::TplField::Quasis(usize::MAX),
41690                    ));
41691                    <Vec<TplElement> as VisitWithAstPath<V>>::visit_with_ast_path(
41692                        quasis,
41693                        visitor,
41694                        &mut *__ast_path,
41695                    )
41696                };
41697            }
41698        }
41699    }
41700}
41701#[cfg(any(docsrs, feature = "path"))]
41702#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41703impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TplElement {
41704    #[doc = "Calls [VisitAstPath`::visit_tpl_element`] with `self`."]
41705    fn visit_with_ast_path<'ast: 'r, 'r>(
41706        &'ast self,
41707        visitor: &mut V,
41708        __ast_path: &mut AstNodePath<'r>,
41709    ) {
41710        <V as VisitAstPath>::visit_tpl_element(visitor, self, __ast_path)
41711    }
41712
41713    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41714        &'ast self,
41715        visitor: &mut V,
41716        __ast_path: &mut AstNodePath<'r>,
41717    ) {
41718        match self {
41719            TplElement {
41720                span,
41721                tail,
41722                cooked,
41723                raw,
41724            } => {
41725                {
41726                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TplElement(
41727                        self,
41728                        self::fields::TplElementField::Span,
41729                    ));
41730                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41731                        span,
41732                        visitor,
41733                        &mut *__ast_path,
41734                    )
41735                };
41736                {
41737                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TplElement(
41738                        self,
41739                        self::fields::TplElementField::Cooked,
41740                    ));
41741                    <Option<swc_atoms::Atom> as VisitWithAstPath<V>>::visit_with_ast_path(
41742                        cooked,
41743                        visitor,
41744                        &mut *__ast_path,
41745                    )
41746                };
41747                {
41748                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TplElement(
41749                        self,
41750                        self::fields::TplElementField::Raw,
41751                    ));
41752                    <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
41753                        raw,
41754                        visitor,
41755                        &mut *__ast_path,
41756                    )
41757                };
41758            }
41759        }
41760    }
41761}
41762#[cfg(any(docsrs, feature = "path"))]
41763#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41764impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TruePlusMinus {
41765    #[doc = "Calls [VisitAstPath`::visit_true_plus_minus`] with `self`."]
41766    fn visit_with_ast_path<'ast: 'r, 'r>(
41767        &'ast self,
41768        visitor: &mut V,
41769        __ast_path: &mut AstNodePath<'r>,
41770    ) {
41771        <V as VisitAstPath>::visit_true_plus_minus(visitor, self, __ast_path)
41772    }
41773
41774    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41775        &'ast self,
41776        visitor: &mut V,
41777        __ast_path: &mut AstNodePath<'r>,
41778    ) {
41779        match self {
41780            TruePlusMinus::True => {}
41781            TruePlusMinus::Plus => {}
41782            TruePlusMinus::Minus => {}
41783        }
41784    }
41785}
41786#[cfg(any(docsrs, feature = "path"))]
41787#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41788impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TryStmt {
41789    #[doc = "Calls [VisitAstPath`::visit_try_stmt`] with `self`."]
41790    fn visit_with_ast_path<'ast: 'r, 'r>(
41791        &'ast self,
41792        visitor: &mut V,
41793        __ast_path: &mut AstNodePath<'r>,
41794    ) {
41795        <V as VisitAstPath>::visit_try_stmt(visitor, self, __ast_path)
41796    }
41797
41798    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41799        &'ast self,
41800        visitor: &mut V,
41801        __ast_path: &mut AstNodePath<'r>,
41802    ) {
41803        match self {
41804            TryStmt {
41805                span,
41806                block,
41807                handler,
41808                finalizer,
41809            } => {
41810                {
41811                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
41812                        self,
41813                        self::fields::TryStmtField::Span,
41814                    ));
41815                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41816                        span,
41817                        visitor,
41818                        &mut *__ast_path,
41819                    )
41820                };
41821                {
41822                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
41823                        self,
41824                        self::fields::TryStmtField::Block,
41825                    ));
41826                    <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(
41827                        block,
41828                        visitor,
41829                        &mut *__ast_path,
41830                    )
41831                };
41832                {
41833                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
41834                        self,
41835                        self::fields::TryStmtField::Handler,
41836                    ));
41837                    <Option<CatchClause> as VisitWithAstPath<V>>::visit_with_ast_path(
41838                        handler,
41839                        visitor,
41840                        &mut *__ast_path,
41841                    )
41842                };
41843                {
41844                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TryStmt(
41845                        self,
41846                        self::fields::TryStmtField::Finalizer,
41847                    ));
41848                    <Option<BlockStmt> as VisitWithAstPath<V>>::visit_with_ast_path(
41849                        finalizer,
41850                        visitor,
41851                        &mut *__ast_path,
41852                    )
41853                };
41854            }
41855        }
41856    }
41857}
41858#[cfg(any(docsrs, feature = "path"))]
41859#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41860impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsArrayType {
41861    #[doc = "Calls [VisitAstPath`::visit_ts_array_type`] with `self`."]
41862    fn visit_with_ast_path<'ast: 'r, 'r>(
41863        &'ast self,
41864        visitor: &mut V,
41865        __ast_path: &mut AstNodePath<'r>,
41866    ) {
41867        <V as VisitAstPath>::visit_ts_array_type(visitor, self, __ast_path)
41868    }
41869
41870    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41871        &'ast self,
41872        visitor: &mut V,
41873        __ast_path: &mut AstNodePath<'r>,
41874    ) {
41875        match self {
41876            TsArrayType { span, elem_type } => {
41877                {
41878                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsArrayType(
41879                        self,
41880                        self::fields::TsArrayTypeField::Span,
41881                    ));
41882                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41883                        span,
41884                        visitor,
41885                        &mut *__ast_path,
41886                    )
41887                };
41888                {
41889                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsArrayType(
41890                        self,
41891                        self::fields::TsArrayTypeField::ElemType,
41892                    ));
41893                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
41894                        elem_type,
41895                        visitor,
41896                        &mut *__ast_path,
41897                    )
41898                };
41899            }
41900        }
41901    }
41902}
41903#[cfg(any(docsrs, feature = "path"))]
41904#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41905impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsAsExpr {
41906    #[doc = "Calls [VisitAstPath`::visit_ts_as_expr`] with `self`."]
41907    fn visit_with_ast_path<'ast: 'r, 'r>(
41908        &'ast self,
41909        visitor: &mut V,
41910        __ast_path: &mut AstNodePath<'r>,
41911    ) {
41912        <V as VisitAstPath>::visit_ts_as_expr(visitor, self, __ast_path)
41913    }
41914
41915    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41916        &'ast self,
41917        visitor: &mut V,
41918        __ast_path: &mut AstNodePath<'r>,
41919    ) {
41920        match self {
41921            TsAsExpr {
41922                span,
41923                expr,
41924                type_ann,
41925            } => {
41926                {
41927                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsAsExpr(
41928                        self,
41929                        self::fields::TsAsExprField::Span,
41930                    ));
41931                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41932                        span,
41933                        visitor,
41934                        &mut *__ast_path,
41935                    )
41936                };
41937                {
41938                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsAsExpr(
41939                        self,
41940                        self::fields::TsAsExprField::Expr,
41941                    ));
41942                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
41943                        expr,
41944                        visitor,
41945                        &mut *__ast_path,
41946                    )
41947                };
41948                {
41949                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsAsExpr(
41950                        self,
41951                        self::fields::TsAsExprField::TypeAnn,
41952                    ));
41953                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
41954                        type_ann,
41955                        visitor,
41956                        &mut *__ast_path,
41957                    )
41958                };
41959            }
41960        }
41961    }
41962}
41963#[cfg(any(docsrs, feature = "path"))]
41964#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
41965impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsCallSignatureDecl {
41966    #[doc = "Calls [VisitAstPath`::visit_ts_call_signature_decl`] with `self`."]
41967    fn visit_with_ast_path<'ast: 'r, 'r>(
41968        &'ast self,
41969        visitor: &mut V,
41970        __ast_path: &mut AstNodePath<'r>,
41971    ) {
41972        <V as VisitAstPath>::visit_ts_call_signature_decl(visitor, self, __ast_path)
41973    }
41974
41975    fn visit_children_with_ast_path<'ast: 'r, 'r>(
41976        &'ast self,
41977        visitor: &mut V,
41978        __ast_path: &mut AstNodePath<'r>,
41979    ) {
41980        match self {
41981            TsCallSignatureDecl {
41982                span,
41983                params,
41984                type_ann,
41985                type_params,
41986            } => {
41987                {
41988                    let mut __ast_path =
41989                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
41990                            self,
41991                            self::fields::TsCallSignatureDeclField::Span,
41992                        ));
41993                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
41994                        span,
41995                        visitor,
41996                        &mut *__ast_path,
41997                    )
41998                };
41999                {
42000                    let mut __ast_path =
42001                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42002                            self,
42003                            self::fields::TsCallSignatureDeclField::Params(usize::MAX),
42004                        ));
42005                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42006                        params,
42007                        visitor,
42008                        &mut *__ast_path,
42009                    )
42010                };
42011                {
42012                    let mut __ast_path =
42013                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42014                            self,
42015                            self::fields::TsCallSignatureDeclField::TypeAnn,
42016                        ));
42017                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
42018                        type_ann,
42019                        visitor,
42020                        &mut *__ast_path,
42021                    )
42022                };
42023                {
42024                    let mut __ast_path =
42025                        __ast_path.with_guard(AstParentNodeRef::TsCallSignatureDecl(
42026                            self,
42027                            self::fields::TsCallSignatureDeclField::TypeParams,
42028                        ));
42029                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42030                        type_params,
42031                        visitor,
42032                        &mut *__ast_path,
42033                    )
42034                };
42035            }
42036        }
42037    }
42038}
42039#[cfg(any(docsrs, feature = "path"))]
42040#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42041impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConditionalType {
42042    #[doc = "Calls [VisitAstPath`::visit_ts_conditional_type`] with `self`."]
42043    fn visit_with_ast_path<'ast: 'r, 'r>(
42044        &'ast self,
42045        visitor: &mut V,
42046        __ast_path: &mut AstNodePath<'r>,
42047    ) {
42048        <V as VisitAstPath>::visit_ts_conditional_type(visitor, self, __ast_path)
42049    }
42050
42051    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42052        &'ast self,
42053        visitor: &mut V,
42054        __ast_path: &mut AstNodePath<'r>,
42055    ) {
42056        match self {
42057            TsConditionalType {
42058                span,
42059                check_type,
42060                extends_type,
42061                true_type,
42062                false_type,
42063            } => {
42064                {
42065                    let mut __ast_path =
42066                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42067                            self,
42068                            self::fields::TsConditionalTypeField::Span,
42069                        ));
42070                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42071                        span,
42072                        visitor,
42073                        &mut *__ast_path,
42074                    )
42075                };
42076                {
42077                    let mut __ast_path =
42078                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42079                            self,
42080                            self::fields::TsConditionalTypeField::CheckType,
42081                        ));
42082                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42083                        check_type,
42084                        visitor,
42085                        &mut *__ast_path,
42086                    )
42087                };
42088                {
42089                    let mut __ast_path =
42090                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42091                            self,
42092                            self::fields::TsConditionalTypeField::ExtendsType,
42093                        ));
42094                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42095                        extends_type,
42096                        visitor,
42097                        &mut *__ast_path,
42098                    )
42099                };
42100                {
42101                    let mut __ast_path =
42102                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42103                            self,
42104                            self::fields::TsConditionalTypeField::TrueType,
42105                        ));
42106                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42107                        true_type,
42108                        visitor,
42109                        &mut *__ast_path,
42110                    )
42111                };
42112                {
42113                    let mut __ast_path =
42114                        __ast_path.with_guard(AstParentNodeRef::TsConditionalType(
42115                            self,
42116                            self::fields::TsConditionalTypeField::FalseType,
42117                        ));
42118                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
42119                        false_type,
42120                        visitor,
42121                        &mut *__ast_path,
42122                    )
42123                };
42124            }
42125        }
42126    }
42127}
42128#[cfg(any(docsrs, feature = "path"))]
42129#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42130impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConstAssertion {
42131    #[doc = "Calls [VisitAstPath`::visit_ts_const_assertion`] with `self`."]
42132    fn visit_with_ast_path<'ast: 'r, 'r>(
42133        &'ast self,
42134        visitor: &mut V,
42135        __ast_path: &mut AstNodePath<'r>,
42136    ) {
42137        <V as VisitAstPath>::visit_ts_const_assertion(visitor, self, __ast_path)
42138    }
42139
42140    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42141        &'ast self,
42142        visitor: &mut V,
42143        __ast_path: &mut AstNodePath<'r>,
42144    ) {
42145        match self {
42146            TsConstAssertion { span, expr } => {
42147                {
42148                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsConstAssertion(
42149                        self,
42150                        self::fields::TsConstAssertionField::Span,
42151                    ));
42152                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42153                        span,
42154                        visitor,
42155                        &mut *__ast_path,
42156                    )
42157                };
42158                {
42159                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsConstAssertion(
42160                        self,
42161                        self::fields::TsConstAssertionField::Expr,
42162                    ));
42163                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42164                        expr,
42165                        visitor,
42166                        &mut *__ast_path,
42167                    )
42168                };
42169            }
42170        }
42171    }
42172}
42173#[cfg(any(docsrs, feature = "path"))]
42174#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42175impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConstructSignatureDecl {
42176    #[doc = "Calls [VisitAstPath`::visit_ts_construct_signature_decl`] with `self`."]
42177    fn visit_with_ast_path<'ast: 'r, 'r>(
42178        &'ast self,
42179        visitor: &mut V,
42180        __ast_path: &mut AstNodePath<'r>,
42181    ) {
42182        <V as VisitAstPath>::visit_ts_construct_signature_decl(visitor, self, __ast_path)
42183    }
42184
42185    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42186        &'ast self,
42187        visitor: &mut V,
42188        __ast_path: &mut AstNodePath<'r>,
42189    ) {
42190        match self {
42191            TsConstructSignatureDecl {
42192                span,
42193                params,
42194                type_ann,
42195                type_params,
42196            } => {
42197                {
42198                    let mut __ast_path =
42199                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42200                            self,
42201                            self::fields::TsConstructSignatureDeclField::Span,
42202                        ));
42203                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42204                        span,
42205                        visitor,
42206                        &mut *__ast_path,
42207                    )
42208                };
42209                {
42210                    let mut __ast_path =
42211                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42212                            self,
42213                            self::fields::TsConstructSignatureDeclField::Params(usize::MAX),
42214                        ));
42215                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42216                        params,
42217                        visitor,
42218                        &mut *__ast_path,
42219                    )
42220                };
42221                {
42222                    let mut __ast_path =
42223                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42224                            self,
42225                            self::fields::TsConstructSignatureDeclField::TypeAnn,
42226                        ));
42227                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
42228                        type_ann,
42229                        visitor,
42230                        &mut *__ast_path,
42231                    )
42232                };
42233                {
42234                    let mut __ast_path =
42235                        __ast_path.with_guard(AstParentNodeRef::TsConstructSignatureDecl(
42236                            self,
42237                            self::fields::TsConstructSignatureDeclField::TypeParams,
42238                        ));
42239                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42240                        type_params,
42241                        visitor,
42242                        &mut *__ast_path,
42243                    )
42244                };
42245            }
42246        }
42247    }
42248}
42249#[cfg(any(docsrs, feature = "path"))]
42250#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42251impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsConstructorType {
42252    #[doc = "Calls [VisitAstPath`::visit_ts_constructor_type`] with `self`."]
42253    fn visit_with_ast_path<'ast: 'r, 'r>(
42254        &'ast self,
42255        visitor: &mut V,
42256        __ast_path: &mut AstNodePath<'r>,
42257    ) {
42258        <V as VisitAstPath>::visit_ts_constructor_type(visitor, self, __ast_path)
42259    }
42260
42261    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42262        &'ast self,
42263        visitor: &mut V,
42264        __ast_path: &mut AstNodePath<'r>,
42265    ) {
42266        match self {
42267            TsConstructorType {
42268                span,
42269                params,
42270                type_params,
42271                type_ann,
42272                is_abstract,
42273            } => {
42274                {
42275                    let mut __ast_path =
42276                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42277                            self,
42278                            self::fields::TsConstructorTypeField::Span,
42279                        ));
42280                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42281                        span,
42282                        visitor,
42283                        &mut *__ast_path,
42284                    )
42285                };
42286                {
42287                    let mut __ast_path =
42288                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42289                            self,
42290                            self::fields::TsConstructorTypeField::Params(usize::MAX),
42291                        ));
42292                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42293                        params,
42294                        visitor,
42295                        &mut *__ast_path,
42296                    )
42297                };
42298                {
42299                    let mut __ast_path =
42300                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42301                            self,
42302                            self::fields::TsConstructorTypeField::TypeParams,
42303                        ));
42304                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42305                        type_params,
42306                        visitor,
42307                        &mut *__ast_path,
42308                    )
42309                };
42310                {
42311                    let mut __ast_path =
42312                        __ast_path.with_guard(AstParentNodeRef::TsConstructorType(
42313                            self,
42314                            self::fields::TsConstructorTypeField::TypeAnn,
42315                        ));
42316                    <Box<TsTypeAnn> as VisitWithAstPath<V>>::visit_with_ast_path(
42317                        type_ann,
42318                        visitor,
42319                        &mut *__ast_path,
42320                    )
42321                };
42322            }
42323        }
42324    }
42325}
42326#[cfg(any(docsrs, feature = "path"))]
42327#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42328impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEntityName {
42329    #[doc = "Calls [VisitAstPath`::visit_ts_entity_name`] with `self`."]
42330    fn visit_with_ast_path<'ast: 'r, 'r>(
42331        &'ast self,
42332        visitor: &mut V,
42333        __ast_path: &mut AstNodePath<'r>,
42334    ) {
42335        <V as VisitAstPath>::visit_ts_entity_name(visitor, self, __ast_path)
42336    }
42337
42338    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42339        &'ast self,
42340        visitor: &mut V,
42341        __ast_path: &mut AstNodePath<'r>,
42342    ) {
42343        match self {
42344            TsEntityName::TsQualifiedName { 0: _field_0 } => {
42345                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEntityName(
42346                    self,
42347                    self::fields::TsEntityNameField::TsQualifiedName,
42348                ));
42349                <Box<TsQualifiedName> as VisitWithAstPath<V>>::visit_with_ast_path(
42350                    _field_0,
42351                    visitor,
42352                    &mut *__ast_path,
42353                );
42354            }
42355            TsEntityName::Ident { 0: _field_0 } => {
42356                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEntityName(
42357                    self,
42358                    self::fields::TsEntityNameField::Ident,
42359                ));
42360                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42361                    _field_0,
42362                    visitor,
42363                    &mut *__ast_path,
42364                );
42365            }
42366        }
42367    }
42368}
42369#[cfg(any(docsrs, feature = "path"))]
42370#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42371impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEnumDecl {
42372    #[doc = "Calls [VisitAstPath`::visit_ts_enum_decl`] with `self`."]
42373    fn visit_with_ast_path<'ast: 'r, 'r>(
42374        &'ast self,
42375        visitor: &mut V,
42376        __ast_path: &mut AstNodePath<'r>,
42377    ) {
42378        <V as VisitAstPath>::visit_ts_enum_decl(visitor, self, __ast_path)
42379    }
42380
42381    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42382        &'ast self,
42383        visitor: &mut V,
42384        __ast_path: &mut AstNodePath<'r>,
42385    ) {
42386        match self {
42387            TsEnumDecl {
42388                span,
42389                declare,
42390                is_const,
42391                id,
42392                members,
42393            } => {
42394                {
42395                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumDecl(
42396                        self,
42397                        self::fields::TsEnumDeclField::Span,
42398                    ));
42399                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42400                        span,
42401                        visitor,
42402                        &mut *__ast_path,
42403                    )
42404                };
42405                {
42406                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumDecl(
42407                        self,
42408                        self::fields::TsEnumDeclField::Id,
42409                    ));
42410                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42411                        id,
42412                        visitor,
42413                        &mut *__ast_path,
42414                    )
42415                };
42416                {
42417                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumDecl(
42418                        self,
42419                        self::fields::TsEnumDeclField::Members(usize::MAX),
42420                    ));
42421                    <Vec<TsEnumMember> as VisitWithAstPath<V>>::visit_with_ast_path(
42422                        members,
42423                        visitor,
42424                        &mut *__ast_path,
42425                    )
42426                };
42427            }
42428        }
42429    }
42430}
42431#[cfg(any(docsrs, feature = "path"))]
42432#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42433impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEnumMember {
42434    #[doc = "Calls [VisitAstPath`::visit_ts_enum_member`] with `self`."]
42435    fn visit_with_ast_path<'ast: 'r, 'r>(
42436        &'ast self,
42437        visitor: &mut V,
42438        __ast_path: &mut AstNodePath<'r>,
42439    ) {
42440        <V as VisitAstPath>::visit_ts_enum_member(visitor, self, __ast_path)
42441    }
42442
42443    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42444        &'ast self,
42445        visitor: &mut V,
42446        __ast_path: &mut AstNodePath<'r>,
42447    ) {
42448        match self {
42449            TsEnumMember { span, id, init } => {
42450                {
42451                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMember(
42452                        self,
42453                        self::fields::TsEnumMemberField::Span,
42454                    ));
42455                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42456                        span,
42457                        visitor,
42458                        &mut *__ast_path,
42459                    )
42460                };
42461                {
42462                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMember(
42463                        self,
42464                        self::fields::TsEnumMemberField::Id,
42465                    ));
42466                    <TsEnumMemberId as VisitWithAstPath<V>>::visit_with_ast_path(
42467                        id,
42468                        visitor,
42469                        &mut *__ast_path,
42470                    )
42471                };
42472                {
42473                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMember(
42474                        self,
42475                        self::fields::TsEnumMemberField::Init,
42476                    ));
42477                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
42478                        init,
42479                        visitor,
42480                        &mut *__ast_path,
42481                    )
42482                };
42483            }
42484        }
42485    }
42486}
42487#[cfg(any(docsrs, feature = "path"))]
42488#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42489impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsEnumMemberId {
42490    #[doc = "Calls [VisitAstPath`::visit_ts_enum_member_id`] with `self`."]
42491    fn visit_with_ast_path<'ast: 'r, 'r>(
42492        &'ast self,
42493        visitor: &mut V,
42494        __ast_path: &mut AstNodePath<'r>,
42495    ) {
42496        <V as VisitAstPath>::visit_ts_enum_member_id(visitor, self, __ast_path)
42497    }
42498
42499    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42500        &'ast self,
42501        visitor: &mut V,
42502        __ast_path: &mut AstNodePath<'r>,
42503    ) {
42504        match self {
42505            TsEnumMemberId::Ident { 0: _field_0 } => {
42506                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMemberId(
42507                    self,
42508                    self::fields::TsEnumMemberIdField::Ident,
42509                ));
42510                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42511                    _field_0,
42512                    visitor,
42513                    &mut *__ast_path,
42514                );
42515            }
42516            TsEnumMemberId::Str { 0: _field_0 } => {
42517                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsEnumMemberId(
42518                    self,
42519                    self::fields::TsEnumMemberIdField::Str,
42520                ));
42521                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
42522                    _field_0,
42523                    visitor,
42524                    &mut *__ast_path,
42525                );
42526            }
42527        }
42528    }
42529}
42530#[cfg(any(docsrs, feature = "path"))]
42531#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42532impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsExportAssignment {
42533    #[doc = "Calls [VisitAstPath`::visit_ts_export_assignment`] with `self`."]
42534    fn visit_with_ast_path<'ast: 'r, 'r>(
42535        &'ast self,
42536        visitor: &mut V,
42537        __ast_path: &mut AstNodePath<'r>,
42538    ) {
42539        <V as VisitAstPath>::visit_ts_export_assignment(visitor, self, __ast_path)
42540    }
42541
42542    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42543        &'ast self,
42544        visitor: &mut V,
42545        __ast_path: &mut AstNodePath<'r>,
42546    ) {
42547        match self {
42548            TsExportAssignment { span, expr } => {
42549                {
42550                    let mut __ast_path =
42551                        __ast_path.with_guard(AstParentNodeRef::TsExportAssignment(
42552                            self,
42553                            self::fields::TsExportAssignmentField::Span,
42554                        ));
42555                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42556                        span,
42557                        visitor,
42558                        &mut *__ast_path,
42559                    )
42560                };
42561                {
42562                    let mut __ast_path =
42563                        __ast_path.with_guard(AstParentNodeRef::TsExportAssignment(
42564                            self,
42565                            self::fields::TsExportAssignmentField::Expr,
42566                        ));
42567                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42568                        expr,
42569                        visitor,
42570                        &mut *__ast_path,
42571                    )
42572                };
42573            }
42574        }
42575    }
42576}
42577#[cfg(any(docsrs, feature = "path"))]
42578#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42579impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsExprWithTypeArgs {
42580    #[doc = "Calls [VisitAstPath`::visit_ts_expr_with_type_args`] with `self`."]
42581    fn visit_with_ast_path<'ast: 'r, 'r>(
42582        &'ast self,
42583        visitor: &mut V,
42584        __ast_path: &mut AstNodePath<'r>,
42585    ) {
42586        <V as VisitAstPath>::visit_ts_expr_with_type_args(visitor, self, __ast_path)
42587    }
42588
42589    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42590        &'ast self,
42591        visitor: &mut V,
42592        __ast_path: &mut AstNodePath<'r>,
42593    ) {
42594        match self {
42595            TsExprWithTypeArgs {
42596                span,
42597                expr,
42598                type_args,
42599            } => {
42600                {
42601                    let mut __ast_path =
42602                        __ast_path.with_guard(AstParentNodeRef::TsExprWithTypeArgs(
42603                            self,
42604                            self::fields::TsExprWithTypeArgsField::Span,
42605                        ));
42606                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42607                        span,
42608                        visitor,
42609                        &mut *__ast_path,
42610                    )
42611                };
42612                {
42613                    let mut __ast_path =
42614                        __ast_path.with_guard(AstParentNodeRef::TsExprWithTypeArgs(
42615                            self,
42616                            self::fields::TsExprWithTypeArgsField::Expr,
42617                        ));
42618                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42619                        expr,
42620                        visitor,
42621                        &mut *__ast_path,
42622                    )
42623                };
42624                {
42625                    let mut __ast_path =
42626                        __ast_path.with_guard(AstParentNodeRef::TsExprWithTypeArgs(
42627                            self,
42628                            self::fields::TsExprWithTypeArgsField::TypeArgs,
42629                        ));
42630                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
42631                };
42632            }
42633        }
42634    }
42635}
42636#[cfg(any(docsrs, feature = "path"))]
42637#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42638impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsExternalModuleRef {
42639    #[doc = "Calls [VisitAstPath`::visit_ts_external_module_ref`] with `self`."]
42640    fn visit_with_ast_path<'ast: 'r, 'r>(
42641        &'ast self,
42642        visitor: &mut V,
42643        __ast_path: &mut AstNodePath<'r>,
42644    ) {
42645        <V as VisitAstPath>::visit_ts_external_module_ref(visitor, self, __ast_path)
42646    }
42647
42648    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42649        &'ast self,
42650        visitor: &mut V,
42651        __ast_path: &mut AstNodePath<'r>,
42652    ) {
42653        match self {
42654            TsExternalModuleRef { span, expr } => {
42655                {
42656                    let mut __ast_path =
42657                        __ast_path.with_guard(AstParentNodeRef::TsExternalModuleRef(
42658                            self,
42659                            self::fields::TsExternalModuleRefField::Span,
42660                        ));
42661                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42662                        span,
42663                        visitor,
42664                        &mut *__ast_path,
42665                    )
42666                };
42667                {
42668                    let mut __ast_path =
42669                        __ast_path.with_guard(AstParentNodeRef::TsExternalModuleRef(
42670                            self,
42671                            self::fields::TsExternalModuleRefField::Expr,
42672                        ));
42673                    <Str as VisitWithAstPath<V>>::visit_with_ast_path(
42674                        expr,
42675                        visitor,
42676                        &mut *__ast_path,
42677                    )
42678                };
42679            }
42680        }
42681    }
42682}
42683#[cfg(any(docsrs, feature = "path"))]
42684#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42685impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsFnOrConstructorType {
42686    #[doc = "Calls [VisitAstPath`::visit_ts_fn_or_constructor_type`] with `self`."]
42687    fn visit_with_ast_path<'ast: 'r, 'r>(
42688        &'ast self,
42689        visitor: &mut V,
42690        __ast_path: &mut AstNodePath<'r>,
42691    ) {
42692        <V as VisitAstPath>::visit_ts_fn_or_constructor_type(visitor, self, __ast_path)
42693    }
42694
42695    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42696        &'ast self,
42697        visitor: &mut V,
42698        __ast_path: &mut AstNodePath<'r>,
42699    ) {
42700        match self {
42701            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
42702                let mut __ast_path =
42703                    __ast_path.with_guard(AstParentNodeRef::TsFnOrConstructorType(
42704                        self,
42705                        self::fields::TsFnOrConstructorTypeField::TsFnType,
42706                    ));
42707                <TsFnType as VisitWithAstPath<V>>::visit_with_ast_path(
42708                    _field_0,
42709                    visitor,
42710                    &mut *__ast_path,
42711                );
42712            }
42713            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
42714                let mut __ast_path =
42715                    __ast_path.with_guard(AstParentNodeRef::TsFnOrConstructorType(
42716                        self,
42717                        self::fields::TsFnOrConstructorTypeField::TsConstructorType,
42718                    ));
42719                <TsConstructorType as VisitWithAstPath<V>>::visit_with_ast_path(
42720                    _field_0,
42721                    visitor,
42722                    &mut *__ast_path,
42723                );
42724            }
42725        }
42726    }
42727}
42728#[cfg(any(docsrs, feature = "path"))]
42729#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42730impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsFnParam {
42731    #[doc = "Calls [VisitAstPath`::visit_ts_fn_param`] with `self`."]
42732    fn visit_with_ast_path<'ast: 'r, 'r>(
42733        &'ast self,
42734        visitor: &mut V,
42735        __ast_path: &mut AstNodePath<'r>,
42736    ) {
42737        <V as VisitAstPath>::visit_ts_fn_param(visitor, self, __ast_path)
42738    }
42739
42740    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42741        &'ast self,
42742        visitor: &mut V,
42743        __ast_path: &mut AstNodePath<'r>,
42744    ) {
42745        match self {
42746            TsFnParam::Ident { 0: _field_0 } => {
42747                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
42748                    self,
42749                    self::fields::TsFnParamField::Ident,
42750                ));
42751                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
42752                    _field_0,
42753                    visitor,
42754                    &mut *__ast_path,
42755                );
42756            }
42757            TsFnParam::Array { 0: _field_0 } => {
42758                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
42759                    self,
42760                    self::fields::TsFnParamField::Array,
42761                ));
42762                <ArrayPat as VisitWithAstPath<V>>::visit_with_ast_path(
42763                    _field_0,
42764                    visitor,
42765                    &mut *__ast_path,
42766                );
42767            }
42768            TsFnParam::Rest { 0: _field_0 } => {
42769                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
42770                    self,
42771                    self::fields::TsFnParamField::Rest,
42772                ));
42773                <RestPat as VisitWithAstPath<V>>::visit_with_ast_path(
42774                    _field_0,
42775                    visitor,
42776                    &mut *__ast_path,
42777                );
42778            }
42779            TsFnParam::Object { 0: _field_0 } => {
42780                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnParam(
42781                    self,
42782                    self::fields::TsFnParamField::Object,
42783                ));
42784                <ObjectPat as VisitWithAstPath<V>>::visit_with_ast_path(
42785                    _field_0,
42786                    visitor,
42787                    &mut *__ast_path,
42788                );
42789            }
42790        }
42791    }
42792}
42793#[cfg(any(docsrs, feature = "path"))]
42794#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42795impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsFnType {
42796    #[doc = "Calls [VisitAstPath`::visit_ts_fn_type`] with `self`."]
42797    fn visit_with_ast_path<'ast: 'r, 'r>(
42798        &'ast self,
42799        visitor: &mut V,
42800        __ast_path: &mut AstNodePath<'r>,
42801    ) {
42802        <V as VisitAstPath>::visit_ts_fn_type(visitor, self, __ast_path)
42803    }
42804
42805    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42806        &'ast self,
42807        visitor: &mut V,
42808        __ast_path: &mut AstNodePath<'r>,
42809    ) {
42810        match self {
42811            TsFnType {
42812                span,
42813                params,
42814                type_params,
42815                type_ann,
42816            } => {
42817                {
42818                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
42819                        self,
42820                        self::fields::TsFnTypeField::Span,
42821                    ));
42822                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42823                        span,
42824                        visitor,
42825                        &mut *__ast_path,
42826                    )
42827                };
42828                {
42829                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
42830                        self,
42831                        self::fields::TsFnTypeField::Params(usize::MAX),
42832                    ));
42833                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
42834                        params,
42835                        visitor,
42836                        &mut *__ast_path,
42837                    )
42838                };
42839                {
42840                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
42841                        self,
42842                        self::fields::TsFnTypeField::TypeParams,
42843                    ));
42844                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
42845                        type_params,
42846                        visitor,
42847                        &mut *__ast_path,
42848                    )
42849                };
42850                {
42851                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsFnType(
42852                        self,
42853                        self::fields::TsFnTypeField::TypeAnn,
42854                    ));
42855                    <Box<TsTypeAnn> as VisitWithAstPath<V>>::visit_with_ast_path(
42856                        type_ann,
42857                        visitor,
42858                        &mut *__ast_path,
42859                    )
42860                };
42861            }
42862        }
42863    }
42864}
42865#[cfg(any(docsrs, feature = "path"))]
42866#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42867impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsGetterSignature {
42868    #[doc = "Calls [VisitAstPath`::visit_ts_getter_signature`] with `self`."]
42869    fn visit_with_ast_path<'ast: 'r, 'r>(
42870        &'ast self,
42871        visitor: &mut V,
42872        __ast_path: &mut AstNodePath<'r>,
42873    ) {
42874        <V as VisitAstPath>::visit_ts_getter_signature(visitor, self, __ast_path)
42875    }
42876
42877    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42878        &'ast self,
42879        visitor: &mut V,
42880        __ast_path: &mut AstNodePath<'r>,
42881    ) {
42882        match self {
42883            TsGetterSignature {
42884                span,
42885                key,
42886                computed,
42887                type_ann,
42888            } => {
42889                {
42890                    let mut __ast_path =
42891                        __ast_path.with_guard(AstParentNodeRef::TsGetterSignature(
42892                            self,
42893                            self::fields::TsGetterSignatureField::Span,
42894                        ));
42895                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42896                        span,
42897                        visitor,
42898                        &mut *__ast_path,
42899                    )
42900                };
42901                {
42902                    let mut __ast_path =
42903                        __ast_path.with_guard(AstParentNodeRef::TsGetterSignature(
42904                            self,
42905                            self::fields::TsGetterSignatureField::Key,
42906                        ));
42907                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
42908                        key,
42909                        visitor,
42910                        &mut *__ast_path,
42911                    )
42912                };
42913                {
42914                    let mut __ast_path =
42915                        __ast_path.with_guard(AstParentNodeRef::TsGetterSignature(
42916                            self,
42917                            self::fields::TsGetterSignatureField::TypeAnn,
42918                        ));
42919                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
42920                        type_ann,
42921                        visitor,
42922                        &mut *__ast_path,
42923                    )
42924                };
42925            }
42926        }
42927    }
42928}
42929#[cfg(any(docsrs, feature = "path"))]
42930#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42931impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsImportEqualsDecl {
42932    #[doc = "Calls [VisitAstPath`::visit_ts_import_equals_decl`] with `self`."]
42933    fn visit_with_ast_path<'ast: 'r, 'r>(
42934        &'ast self,
42935        visitor: &mut V,
42936        __ast_path: &mut AstNodePath<'r>,
42937    ) {
42938        <V as VisitAstPath>::visit_ts_import_equals_decl(visitor, self, __ast_path)
42939    }
42940
42941    fn visit_children_with_ast_path<'ast: 'r, 'r>(
42942        &'ast self,
42943        visitor: &mut V,
42944        __ast_path: &mut AstNodePath<'r>,
42945    ) {
42946        match self {
42947            TsImportEqualsDecl {
42948                span,
42949                is_export,
42950                is_type_only,
42951                id,
42952                module_ref,
42953            } => {
42954                {
42955                    let mut __ast_path =
42956                        __ast_path.with_guard(AstParentNodeRef::TsImportEqualsDecl(
42957                            self,
42958                            self::fields::TsImportEqualsDeclField::Span,
42959                        ));
42960                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
42961                        span,
42962                        visitor,
42963                        &mut *__ast_path,
42964                    )
42965                };
42966                {
42967                    let mut __ast_path =
42968                        __ast_path.with_guard(AstParentNodeRef::TsImportEqualsDecl(
42969                            self,
42970                            self::fields::TsImportEqualsDeclField::Id,
42971                        ));
42972                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
42973                        id,
42974                        visitor,
42975                        &mut *__ast_path,
42976                    )
42977                };
42978                {
42979                    let mut __ast_path =
42980                        __ast_path.with_guard(AstParentNodeRef::TsImportEqualsDecl(
42981                            self,
42982                            self::fields::TsImportEqualsDeclField::ModuleRef,
42983                        ));
42984                    <TsModuleRef as VisitWithAstPath<V>>::visit_with_ast_path(
42985                        module_ref,
42986                        visitor,
42987                        &mut *__ast_path,
42988                    )
42989                };
42990            }
42991        }
42992    }
42993}
42994#[cfg(any(docsrs, feature = "path"))]
42995#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
42996impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsImportType {
42997    #[doc = "Calls [VisitAstPath`::visit_ts_import_type`] with `self`."]
42998    fn visit_with_ast_path<'ast: 'r, 'r>(
42999        &'ast self,
43000        visitor: &mut V,
43001        __ast_path: &mut AstNodePath<'r>,
43002    ) {
43003        <V as VisitAstPath>::visit_ts_import_type(visitor, self, __ast_path)
43004    }
43005
43006    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43007        &'ast self,
43008        visitor: &mut V,
43009        __ast_path: &mut AstNodePath<'r>,
43010    ) {
43011        match self {
43012            TsImportType {
43013                span,
43014                arg,
43015                qualifier,
43016                type_args,
43017            } => {
43018                {
43019                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43020                        self,
43021                        self::fields::TsImportTypeField::Span,
43022                    ));
43023                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43024                        span,
43025                        visitor,
43026                        &mut *__ast_path,
43027                    )
43028                };
43029                {
43030                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43031                        self,
43032                        self::fields::TsImportTypeField::Arg,
43033                    ));
43034                    <Str as VisitWithAstPath<V>>::visit_with_ast_path(
43035                        arg,
43036                        visitor,
43037                        &mut *__ast_path,
43038                    )
43039                };
43040                {
43041                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43042                        self,
43043                        self::fields::TsImportTypeField::Qualifier,
43044                    ));
43045                    <Option<TsEntityName> as VisitWithAstPath<V>>::visit_with_ast_path(
43046                        qualifier,
43047                        visitor,
43048                        &mut *__ast_path,
43049                    )
43050                };
43051                {
43052                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsImportType(
43053                        self,
43054                        self::fields::TsImportTypeField::TypeArgs,
43055                    ));
43056                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
43057                };
43058            }
43059        }
43060    }
43061}
43062#[cfg(any(docsrs, feature = "path"))]
43063#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43064impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsIndexSignature {
43065    #[doc = "Calls [VisitAstPath`::visit_ts_index_signature`] with `self`."]
43066    fn visit_with_ast_path<'ast: 'r, 'r>(
43067        &'ast self,
43068        visitor: &mut V,
43069        __ast_path: &mut AstNodePath<'r>,
43070    ) {
43071        <V as VisitAstPath>::visit_ts_index_signature(visitor, self, __ast_path)
43072    }
43073
43074    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43075        &'ast self,
43076        visitor: &mut V,
43077        __ast_path: &mut AstNodePath<'r>,
43078    ) {
43079        match self {
43080            TsIndexSignature {
43081                params,
43082                type_ann,
43083                readonly,
43084                is_static,
43085                span,
43086            } => {
43087                {
43088                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsIndexSignature(
43089                        self,
43090                        self::fields::TsIndexSignatureField::Params(usize::MAX),
43091                    ));
43092                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
43093                        params,
43094                        visitor,
43095                        &mut *__ast_path,
43096                    )
43097                };
43098                {
43099                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsIndexSignature(
43100                        self,
43101                        self::fields::TsIndexSignatureField::TypeAnn,
43102                    ));
43103                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
43104                        type_ann,
43105                        visitor,
43106                        &mut *__ast_path,
43107                    )
43108                };
43109                {
43110                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsIndexSignature(
43111                        self,
43112                        self::fields::TsIndexSignatureField::Span,
43113                    ));
43114                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43115                        span,
43116                        visitor,
43117                        &mut *__ast_path,
43118                    )
43119                };
43120            }
43121        }
43122    }
43123}
43124#[cfg(any(docsrs, feature = "path"))]
43125#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43126impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsIndexedAccessType {
43127    #[doc = "Calls [VisitAstPath`::visit_ts_indexed_access_type`] with `self`."]
43128    fn visit_with_ast_path<'ast: 'r, 'r>(
43129        &'ast self,
43130        visitor: &mut V,
43131        __ast_path: &mut AstNodePath<'r>,
43132    ) {
43133        <V as VisitAstPath>::visit_ts_indexed_access_type(visitor, self, __ast_path)
43134    }
43135
43136    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43137        &'ast self,
43138        visitor: &mut V,
43139        __ast_path: &mut AstNodePath<'r>,
43140    ) {
43141        match self {
43142            TsIndexedAccessType {
43143                span,
43144                readonly,
43145                obj_type,
43146                index_type,
43147            } => {
43148                {
43149                    let mut __ast_path =
43150                        __ast_path.with_guard(AstParentNodeRef::TsIndexedAccessType(
43151                            self,
43152                            self::fields::TsIndexedAccessTypeField::Span,
43153                        ));
43154                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43155                        span,
43156                        visitor,
43157                        &mut *__ast_path,
43158                    )
43159                };
43160                {
43161                    let mut __ast_path =
43162                        __ast_path.with_guard(AstParentNodeRef::TsIndexedAccessType(
43163                            self,
43164                            self::fields::TsIndexedAccessTypeField::ObjType,
43165                        ));
43166                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
43167                        obj_type,
43168                        visitor,
43169                        &mut *__ast_path,
43170                    )
43171                };
43172                {
43173                    let mut __ast_path =
43174                        __ast_path.with_guard(AstParentNodeRef::TsIndexedAccessType(
43175                            self,
43176                            self::fields::TsIndexedAccessTypeField::IndexType,
43177                        ));
43178                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
43179                        index_type,
43180                        visitor,
43181                        &mut *__ast_path,
43182                    )
43183                };
43184            }
43185        }
43186    }
43187}
43188#[cfg(any(docsrs, feature = "path"))]
43189#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43190impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInferType {
43191    #[doc = "Calls [VisitAstPath`::visit_ts_infer_type`] with `self`."]
43192    fn visit_with_ast_path<'ast: 'r, 'r>(
43193        &'ast self,
43194        visitor: &mut V,
43195        __ast_path: &mut AstNodePath<'r>,
43196    ) {
43197        <V as VisitAstPath>::visit_ts_infer_type(visitor, self, __ast_path)
43198    }
43199
43200    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43201        &'ast self,
43202        visitor: &mut V,
43203        __ast_path: &mut AstNodePath<'r>,
43204    ) {
43205        match self {
43206            TsInferType { span, type_param } => {
43207                {
43208                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInferType(
43209                        self,
43210                        self::fields::TsInferTypeField::Span,
43211                    ));
43212                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43213                        span,
43214                        visitor,
43215                        &mut *__ast_path,
43216                    )
43217                };
43218                {
43219                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInferType(
43220                        self,
43221                        self::fields::TsInferTypeField::TypeParam,
43222                    ));
43223                    <TsTypeParam as VisitWithAstPath<V>>::visit_with_ast_path(
43224                        type_param,
43225                        visitor,
43226                        &mut *__ast_path,
43227                    )
43228                };
43229            }
43230        }
43231    }
43232}
43233#[cfg(any(docsrs, feature = "path"))]
43234#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43235impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInstantiation {
43236    #[doc = "Calls [VisitAstPath`::visit_ts_instantiation`] with `self`."]
43237    fn visit_with_ast_path<'ast: 'r, 'r>(
43238        &'ast self,
43239        visitor: &mut V,
43240        __ast_path: &mut AstNodePath<'r>,
43241    ) {
43242        <V as VisitAstPath>::visit_ts_instantiation(visitor, self, __ast_path)
43243    }
43244
43245    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43246        &'ast self,
43247        visitor: &mut V,
43248        __ast_path: &mut AstNodePath<'r>,
43249    ) {
43250        match self {
43251            TsInstantiation {
43252                span,
43253                expr,
43254                type_args,
43255            } => {
43256                {
43257                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInstantiation(
43258                        self,
43259                        self::fields::TsInstantiationField::Span,
43260                    ));
43261                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43262                        span,
43263                        visitor,
43264                        &mut *__ast_path,
43265                    )
43266                };
43267                {
43268                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInstantiation(
43269                        self,
43270                        self::fields::TsInstantiationField::Expr,
43271                    ));
43272                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
43273                        expr,
43274                        visitor,
43275                        &mut *__ast_path,
43276                    )
43277                };
43278                {
43279                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInstantiation(
43280                        self,
43281                        self::fields::TsInstantiationField::TypeArgs,
43282                    ));
43283                    <Box<TsTypeParamInstantiation> as VisitWithAstPath<V>>::visit_with_ast_path(
43284                        type_args,
43285                        visitor,
43286                        &mut *__ast_path,
43287                    )
43288                };
43289            }
43290        }
43291    }
43292}
43293#[cfg(any(docsrs, feature = "path"))]
43294#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43295impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInterfaceBody {
43296    #[doc = "Calls [VisitAstPath`::visit_ts_interface_body`] with `self`."]
43297    fn visit_with_ast_path<'ast: 'r, 'r>(
43298        &'ast self,
43299        visitor: &mut V,
43300        __ast_path: &mut AstNodePath<'r>,
43301    ) {
43302        <V as VisitAstPath>::visit_ts_interface_body(visitor, self, __ast_path)
43303    }
43304
43305    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43306        &'ast self,
43307        visitor: &mut V,
43308        __ast_path: &mut AstNodePath<'r>,
43309    ) {
43310        match self {
43311            TsInterfaceBody { span, body } => {
43312                {
43313                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceBody(
43314                        self,
43315                        self::fields::TsInterfaceBodyField::Span,
43316                    ));
43317                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43318                        span,
43319                        visitor,
43320                        &mut *__ast_path,
43321                    )
43322                };
43323                {
43324                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceBody(
43325                        self,
43326                        self::fields::TsInterfaceBodyField::Body(usize::MAX),
43327                    ));
43328                    <Vec<TsTypeElement> as VisitWithAstPath<V>>::visit_with_ast_path(
43329                        body,
43330                        visitor,
43331                        &mut *__ast_path,
43332                    )
43333                };
43334            }
43335        }
43336    }
43337}
43338#[cfg(any(docsrs, feature = "path"))]
43339#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43340impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsInterfaceDecl {
43341    #[doc = "Calls [VisitAstPath`::visit_ts_interface_decl`] with `self`."]
43342    fn visit_with_ast_path<'ast: 'r, 'r>(
43343        &'ast self,
43344        visitor: &mut V,
43345        __ast_path: &mut AstNodePath<'r>,
43346    ) {
43347        <V as VisitAstPath>::visit_ts_interface_decl(visitor, self, __ast_path)
43348    }
43349
43350    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43351        &'ast self,
43352        visitor: &mut V,
43353        __ast_path: &mut AstNodePath<'r>,
43354    ) {
43355        match self {
43356            TsInterfaceDecl {
43357                span,
43358                id,
43359                declare,
43360                type_params,
43361                extends,
43362                body,
43363            } => {
43364                {
43365                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43366                        self,
43367                        self::fields::TsInterfaceDeclField::Span,
43368                    ));
43369                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43370                        span,
43371                        visitor,
43372                        &mut *__ast_path,
43373                    )
43374                };
43375                {
43376                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43377                        self,
43378                        self::fields::TsInterfaceDeclField::Id,
43379                    ));
43380                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
43381                        id,
43382                        visitor,
43383                        &mut *__ast_path,
43384                    )
43385                };
43386                {
43387                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43388                        self,
43389                        self::fields::TsInterfaceDeclField::TypeParams,
43390                    ));
43391                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
43392                        type_params,
43393                        visitor,
43394                        &mut *__ast_path,
43395                    )
43396                };
43397                {
43398                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43399                        self,
43400                        self::fields::TsInterfaceDeclField::Extends(usize::MAX),
43401                    ));
43402                    <Vec<TsExprWithTypeArgs> as VisitWithAstPath<V>>::visit_with_ast_path(
43403                        extends,
43404                        visitor,
43405                        &mut *__ast_path,
43406                    )
43407                };
43408                {
43409                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsInterfaceDecl(
43410                        self,
43411                        self::fields::TsInterfaceDeclField::Body,
43412                    ));
43413                    <TsInterfaceBody as VisitWithAstPath<V>>::visit_with_ast_path(
43414                        body,
43415                        visitor,
43416                        &mut *__ast_path,
43417                    )
43418                };
43419            }
43420        }
43421    }
43422}
43423#[cfg(any(docsrs, feature = "path"))]
43424#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43425impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsIntersectionType {
43426    #[doc = "Calls [VisitAstPath`::visit_ts_intersection_type`] with `self`."]
43427    fn visit_with_ast_path<'ast: 'r, 'r>(
43428        &'ast self,
43429        visitor: &mut V,
43430        __ast_path: &mut AstNodePath<'r>,
43431    ) {
43432        <V as VisitAstPath>::visit_ts_intersection_type(visitor, self, __ast_path)
43433    }
43434
43435    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43436        &'ast self,
43437        visitor: &mut V,
43438        __ast_path: &mut AstNodePath<'r>,
43439    ) {
43440        match self {
43441            TsIntersectionType { span, types } => {
43442                {
43443                    let mut __ast_path =
43444                        __ast_path.with_guard(AstParentNodeRef::TsIntersectionType(
43445                            self,
43446                            self::fields::TsIntersectionTypeField::Span,
43447                        ));
43448                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43449                        span,
43450                        visitor,
43451                        &mut *__ast_path,
43452                    )
43453                };
43454                {
43455                    let mut __ast_path =
43456                        __ast_path.with_guard(AstParentNodeRef::TsIntersectionType(
43457                            self,
43458                            self::fields::TsIntersectionTypeField::Types(usize::MAX),
43459                        ));
43460                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
43461                        types,
43462                        visitor,
43463                        &mut *__ast_path,
43464                    )
43465                };
43466            }
43467        }
43468    }
43469}
43470#[cfg(any(docsrs, feature = "path"))]
43471#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43472impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsKeywordType {
43473    #[doc = "Calls [VisitAstPath`::visit_ts_keyword_type`] with `self`."]
43474    fn visit_with_ast_path<'ast: 'r, 'r>(
43475        &'ast self,
43476        visitor: &mut V,
43477        __ast_path: &mut AstNodePath<'r>,
43478    ) {
43479        <V as VisitAstPath>::visit_ts_keyword_type(visitor, self, __ast_path)
43480    }
43481
43482    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43483        &'ast self,
43484        visitor: &mut V,
43485        __ast_path: &mut AstNodePath<'r>,
43486    ) {
43487        match self {
43488            TsKeywordType { span, kind } => {
43489                {
43490                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsKeywordType(
43491                        self,
43492                        self::fields::TsKeywordTypeField::Span,
43493                    ));
43494                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43495                        span,
43496                        visitor,
43497                        &mut *__ast_path,
43498                    )
43499                };
43500                {
43501                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsKeywordType(
43502                        self,
43503                        self::fields::TsKeywordTypeField::Kind,
43504                    ));
43505                    <TsKeywordTypeKind as VisitWithAstPath<V>>::visit_with_ast_path(
43506                        kind,
43507                        visitor,
43508                        &mut *__ast_path,
43509                    )
43510                };
43511            }
43512        }
43513    }
43514}
43515#[cfg(any(docsrs, feature = "path"))]
43516#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43517impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsKeywordTypeKind {
43518    #[doc = "Calls [VisitAstPath`::visit_ts_keyword_type_kind`] with `self`."]
43519    fn visit_with_ast_path<'ast: 'r, 'r>(
43520        &'ast self,
43521        visitor: &mut V,
43522        __ast_path: &mut AstNodePath<'r>,
43523    ) {
43524        <V as VisitAstPath>::visit_ts_keyword_type_kind(visitor, self, __ast_path)
43525    }
43526
43527    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43528        &'ast self,
43529        visitor: &mut V,
43530        __ast_path: &mut AstNodePath<'r>,
43531    ) {
43532        match self {
43533            TsKeywordTypeKind::TsAnyKeyword => {}
43534            TsKeywordTypeKind::TsUnknownKeyword => {}
43535            TsKeywordTypeKind::TsNumberKeyword => {}
43536            TsKeywordTypeKind::TsObjectKeyword => {}
43537            TsKeywordTypeKind::TsBooleanKeyword => {}
43538            TsKeywordTypeKind::TsBigIntKeyword => {}
43539            TsKeywordTypeKind::TsStringKeyword => {}
43540            TsKeywordTypeKind::TsSymbolKeyword => {}
43541            TsKeywordTypeKind::TsVoidKeyword => {}
43542            TsKeywordTypeKind::TsUndefinedKeyword => {}
43543            TsKeywordTypeKind::TsNullKeyword => {}
43544            TsKeywordTypeKind::TsNeverKeyword => {}
43545            TsKeywordTypeKind::TsIntrinsicKeyword => {}
43546        }
43547    }
43548}
43549#[cfg(any(docsrs, feature = "path"))]
43550#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43551impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsLit {
43552    #[doc = "Calls [VisitAstPath`::visit_ts_lit`] with `self`."]
43553    fn visit_with_ast_path<'ast: 'r, 'r>(
43554        &'ast self,
43555        visitor: &mut V,
43556        __ast_path: &mut AstNodePath<'r>,
43557    ) {
43558        <V as VisitAstPath>::visit_ts_lit(visitor, self, __ast_path)
43559    }
43560
43561    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43562        &'ast self,
43563        visitor: &mut V,
43564        __ast_path: &mut AstNodePath<'r>,
43565    ) {
43566        match self {
43567            TsLit::Number { 0: _field_0 } => {
43568                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLit(
43569                    self,
43570                    self::fields::TsLitField::Number,
43571                ));
43572                <Number as VisitWithAstPath<V>>::visit_with_ast_path(
43573                    _field_0,
43574                    visitor,
43575                    &mut *__ast_path,
43576                );
43577            }
43578            TsLit::Str { 0: _field_0 } => {
43579                let mut __ast_path = __ast_path
43580                    .with_guard(AstParentNodeRef::TsLit(self, self::fields::TsLitField::Str));
43581                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
43582                    _field_0,
43583                    visitor,
43584                    &mut *__ast_path,
43585                );
43586            }
43587            TsLit::Bool { 0: _field_0 } => {
43588                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLit(
43589                    self,
43590                    self::fields::TsLitField::Bool,
43591                ));
43592                <Bool as VisitWithAstPath<V>>::visit_with_ast_path(
43593                    _field_0,
43594                    visitor,
43595                    &mut *__ast_path,
43596                );
43597            }
43598            TsLit::BigInt { 0: _field_0 } => {
43599                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLit(
43600                    self,
43601                    self::fields::TsLitField::BigInt,
43602                ));
43603                <BigInt as VisitWithAstPath<V>>::visit_with_ast_path(
43604                    _field_0,
43605                    visitor,
43606                    &mut *__ast_path,
43607                );
43608            }
43609            TsLit::Tpl { 0: _field_0 } => {
43610                let mut __ast_path = __ast_path
43611                    .with_guard(AstParentNodeRef::TsLit(self, self::fields::TsLitField::Tpl));
43612                <TsTplLitType as VisitWithAstPath<V>>::visit_with_ast_path(
43613                    _field_0,
43614                    visitor,
43615                    &mut *__ast_path,
43616                );
43617            }
43618        }
43619    }
43620}
43621#[cfg(any(docsrs, feature = "path"))]
43622#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43623impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsLitType {
43624    #[doc = "Calls [VisitAstPath`::visit_ts_lit_type`] with `self`."]
43625    fn visit_with_ast_path<'ast: 'r, 'r>(
43626        &'ast self,
43627        visitor: &mut V,
43628        __ast_path: &mut AstNodePath<'r>,
43629    ) {
43630        <V as VisitAstPath>::visit_ts_lit_type(visitor, self, __ast_path)
43631    }
43632
43633    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43634        &'ast self,
43635        visitor: &mut V,
43636        __ast_path: &mut AstNodePath<'r>,
43637    ) {
43638        match self {
43639            TsLitType { span, lit } => {
43640                {
43641                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLitType(
43642                        self,
43643                        self::fields::TsLitTypeField::Span,
43644                    ));
43645                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43646                        span,
43647                        visitor,
43648                        &mut *__ast_path,
43649                    )
43650                };
43651                {
43652                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsLitType(
43653                        self,
43654                        self::fields::TsLitTypeField::Lit,
43655                    ));
43656                    <TsLit as VisitWithAstPath<V>>::visit_with_ast_path(
43657                        lit,
43658                        visitor,
43659                        &mut *__ast_path,
43660                    )
43661                };
43662            }
43663        }
43664    }
43665}
43666#[cfg(any(docsrs, feature = "path"))]
43667#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43668impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsMappedType {
43669    #[doc = "Calls [VisitAstPath`::visit_ts_mapped_type`] with `self`."]
43670    fn visit_with_ast_path<'ast: 'r, 'r>(
43671        &'ast self,
43672        visitor: &mut V,
43673        __ast_path: &mut AstNodePath<'r>,
43674    ) {
43675        <V as VisitAstPath>::visit_ts_mapped_type(visitor, self, __ast_path)
43676    }
43677
43678    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43679        &'ast self,
43680        visitor: &mut V,
43681        __ast_path: &mut AstNodePath<'r>,
43682    ) {
43683        match self {
43684            TsMappedType {
43685                span,
43686                readonly,
43687                type_param,
43688                name_type,
43689                optional,
43690                type_ann,
43691            } => {
43692                {
43693                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43694                        self,
43695                        self::fields::TsMappedTypeField::Span,
43696                    ));
43697                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43698                        span,
43699                        visitor,
43700                        &mut *__ast_path,
43701                    )
43702                };
43703                {
43704                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43705                        self,
43706                        self::fields::TsMappedTypeField::Readonly,
43707                    ));
43708                    <Option<TruePlusMinus> as VisitWithAstPath<V>>::visit_with_ast_path(
43709                        readonly,
43710                        visitor,
43711                        &mut *__ast_path,
43712                    )
43713                };
43714                {
43715                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43716                        self,
43717                        self::fields::TsMappedTypeField::TypeParam,
43718                    ));
43719                    <TsTypeParam as VisitWithAstPath<V>>::visit_with_ast_path(
43720                        type_param,
43721                        visitor,
43722                        &mut *__ast_path,
43723                    )
43724                };
43725                {
43726                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43727                        self,
43728                        self::fields::TsMappedTypeField::NameType,
43729                    ));
43730                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
43731                        name_type,
43732                        visitor,
43733                        &mut *__ast_path,
43734                    )
43735                };
43736                {
43737                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43738                        self,
43739                        self::fields::TsMappedTypeField::Optional,
43740                    ));
43741                    <Option<TruePlusMinus> as VisitWithAstPath<V>>::visit_with_ast_path(
43742                        optional,
43743                        visitor,
43744                        &mut *__ast_path,
43745                    )
43746                };
43747                {
43748                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsMappedType(
43749                        self,
43750                        self::fields::TsMappedTypeField::TypeAnn,
43751                    ));
43752                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
43753                        type_ann,
43754                        visitor,
43755                        &mut *__ast_path,
43756                    )
43757                };
43758            }
43759        }
43760    }
43761}
43762#[cfg(any(docsrs, feature = "path"))]
43763#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43764impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsMethodSignature {
43765    #[doc = "Calls [VisitAstPath`::visit_ts_method_signature`] with `self`."]
43766    fn visit_with_ast_path<'ast: 'r, 'r>(
43767        &'ast self,
43768        visitor: &mut V,
43769        __ast_path: &mut AstNodePath<'r>,
43770    ) {
43771        <V as VisitAstPath>::visit_ts_method_signature(visitor, self, __ast_path)
43772    }
43773
43774    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43775        &'ast self,
43776        visitor: &mut V,
43777        __ast_path: &mut AstNodePath<'r>,
43778    ) {
43779        match self {
43780            TsMethodSignature {
43781                span,
43782                key,
43783                computed,
43784                optional,
43785                params,
43786                type_ann,
43787                type_params,
43788            } => {
43789                {
43790                    let mut __ast_path =
43791                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
43792                            self,
43793                            self::fields::TsMethodSignatureField::Span,
43794                        ));
43795                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43796                        span,
43797                        visitor,
43798                        &mut *__ast_path,
43799                    )
43800                };
43801                {
43802                    let mut __ast_path =
43803                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
43804                            self,
43805                            self::fields::TsMethodSignatureField::Key,
43806                        ));
43807                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
43808                        key,
43809                        visitor,
43810                        &mut *__ast_path,
43811                    )
43812                };
43813                {
43814                    let mut __ast_path =
43815                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
43816                            self,
43817                            self::fields::TsMethodSignatureField::Params(usize::MAX),
43818                        ));
43819                    <Vec<TsFnParam> as VisitWithAstPath<V>>::visit_with_ast_path(
43820                        params,
43821                        visitor,
43822                        &mut *__ast_path,
43823                    )
43824                };
43825                {
43826                    let mut __ast_path =
43827                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
43828                            self,
43829                            self::fields::TsMethodSignatureField::TypeAnn,
43830                        ));
43831                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
43832                        type_ann,
43833                        visitor,
43834                        &mut *__ast_path,
43835                    )
43836                };
43837                {
43838                    let mut __ast_path =
43839                        __ast_path.with_guard(AstParentNodeRef::TsMethodSignature(
43840                            self,
43841                            self::fields::TsMethodSignatureField::TypeParams,
43842                        ));
43843                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
43844                        type_params,
43845                        visitor,
43846                        &mut *__ast_path,
43847                    )
43848                };
43849            }
43850        }
43851    }
43852}
43853#[cfg(any(docsrs, feature = "path"))]
43854#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43855impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleBlock {
43856    #[doc = "Calls [VisitAstPath`::visit_ts_module_block`] with `self`."]
43857    fn visit_with_ast_path<'ast: 'r, 'r>(
43858        &'ast self,
43859        visitor: &mut V,
43860        __ast_path: &mut AstNodePath<'r>,
43861    ) {
43862        <V as VisitAstPath>::visit_ts_module_block(visitor, self, __ast_path)
43863    }
43864
43865    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43866        &'ast self,
43867        visitor: &mut V,
43868        __ast_path: &mut AstNodePath<'r>,
43869    ) {
43870        match self {
43871            TsModuleBlock { span, body } => {
43872                {
43873                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleBlock(
43874                        self,
43875                        self::fields::TsModuleBlockField::Span,
43876                    ));
43877                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43878                        span,
43879                        visitor,
43880                        &mut *__ast_path,
43881                    )
43882                };
43883                {
43884                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleBlock(
43885                        self,
43886                        self::fields::TsModuleBlockField::Body(usize::MAX),
43887                    ));
43888                    <Vec<ModuleItem> as VisitWithAstPath<V>>::visit_with_ast_path(
43889                        body,
43890                        visitor,
43891                        &mut *__ast_path,
43892                    )
43893                };
43894            }
43895        }
43896    }
43897}
43898#[cfg(any(docsrs, feature = "path"))]
43899#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43900impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleDecl {
43901    #[doc = "Calls [VisitAstPath`::visit_ts_module_decl`] with `self`."]
43902    fn visit_with_ast_path<'ast: 'r, 'r>(
43903        &'ast self,
43904        visitor: &mut V,
43905        __ast_path: &mut AstNodePath<'r>,
43906    ) {
43907        <V as VisitAstPath>::visit_ts_module_decl(visitor, self, __ast_path)
43908    }
43909
43910    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43911        &'ast self,
43912        visitor: &mut V,
43913        __ast_path: &mut AstNodePath<'r>,
43914    ) {
43915        match self {
43916            TsModuleDecl {
43917                span,
43918                declare,
43919                global,
43920                id,
43921                body,
43922            } => {
43923                {
43924                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleDecl(
43925                        self,
43926                        self::fields::TsModuleDeclField::Span,
43927                    ));
43928                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
43929                        span,
43930                        visitor,
43931                        &mut *__ast_path,
43932                    )
43933                };
43934                {
43935                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleDecl(
43936                        self,
43937                        self::fields::TsModuleDeclField::Id,
43938                    ));
43939                    <TsModuleName as VisitWithAstPath<V>>::visit_with_ast_path(
43940                        id,
43941                        visitor,
43942                        &mut *__ast_path,
43943                    )
43944                };
43945                {
43946                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleDecl(
43947                        self,
43948                        self::fields::TsModuleDeclField::Body,
43949                    ));
43950                    <Option<TsNamespaceBody> as VisitWithAstPath<V>>::visit_with_ast_path(
43951                        body,
43952                        visitor,
43953                        &mut *__ast_path,
43954                    )
43955                };
43956            }
43957        }
43958    }
43959}
43960#[cfg(any(docsrs, feature = "path"))]
43961#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
43962impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleName {
43963    #[doc = "Calls [VisitAstPath`::visit_ts_module_name`] with `self`."]
43964    fn visit_with_ast_path<'ast: 'r, 'r>(
43965        &'ast self,
43966        visitor: &mut V,
43967        __ast_path: &mut AstNodePath<'r>,
43968    ) {
43969        <V as VisitAstPath>::visit_ts_module_name(visitor, self, __ast_path)
43970    }
43971
43972    fn visit_children_with_ast_path<'ast: 'r, 'r>(
43973        &'ast self,
43974        visitor: &mut V,
43975        __ast_path: &mut AstNodePath<'r>,
43976    ) {
43977        match self {
43978            TsModuleName::Ident { 0: _field_0 } => {
43979                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleName(
43980                    self,
43981                    self::fields::TsModuleNameField::Ident,
43982                ));
43983                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
43984                    _field_0,
43985                    visitor,
43986                    &mut *__ast_path,
43987                );
43988            }
43989            TsModuleName::Str { 0: _field_0 } => {
43990                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleName(
43991                    self,
43992                    self::fields::TsModuleNameField::Str,
43993                ));
43994                <Str as VisitWithAstPath<V>>::visit_with_ast_path(
43995                    _field_0,
43996                    visitor,
43997                    &mut *__ast_path,
43998                );
43999            }
44000        }
44001    }
44002}
44003#[cfg(any(docsrs, feature = "path"))]
44004#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44005impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsModuleRef {
44006    #[doc = "Calls [VisitAstPath`::visit_ts_module_ref`] with `self`."]
44007    fn visit_with_ast_path<'ast: 'r, 'r>(
44008        &'ast self,
44009        visitor: &mut V,
44010        __ast_path: &mut AstNodePath<'r>,
44011    ) {
44012        <V as VisitAstPath>::visit_ts_module_ref(visitor, self, __ast_path)
44013    }
44014
44015    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44016        &'ast self,
44017        visitor: &mut V,
44018        __ast_path: &mut AstNodePath<'r>,
44019    ) {
44020        match self {
44021            TsModuleRef::TsEntityName { 0: _field_0 } => {
44022                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleRef(
44023                    self,
44024                    self::fields::TsModuleRefField::TsEntityName,
44025                ));
44026                <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
44027                    _field_0,
44028                    visitor,
44029                    &mut *__ast_path,
44030                );
44031            }
44032            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
44033                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsModuleRef(
44034                    self,
44035                    self::fields::TsModuleRefField::TsExternalModuleRef,
44036                ));
44037                <TsExternalModuleRef as VisitWithAstPath<V>>::visit_with_ast_path(
44038                    _field_0,
44039                    visitor,
44040                    &mut *__ast_path,
44041                );
44042            }
44043        }
44044    }
44045}
44046#[cfg(any(docsrs, feature = "path"))]
44047#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44048impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNamespaceBody {
44049    #[doc = "Calls [VisitAstPath`::visit_ts_namespace_body`] with `self`."]
44050    fn visit_with_ast_path<'ast: 'r, 'r>(
44051        &'ast self,
44052        visitor: &mut V,
44053        __ast_path: &mut AstNodePath<'r>,
44054    ) {
44055        <V as VisitAstPath>::visit_ts_namespace_body(visitor, self, __ast_path)
44056    }
44057
44058    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44059        &'ast self,
44060        visitor: &mut V,
44061        __ast_path: &mut AstNodePath<'r>,
44062    ) {
44063        match self {
44064            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
44065                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceBody(
44066                    self,
44067                    self::fields::TsNamespaceBodyField::TsModuleBlock,
44068                ));
44069                <TsModuleBlock as VisitWithAstPath<V>>::visit_with_ast_path(
44070                    _field_0,
44071                    visitor,
44072                    &mut *__ast_path,
44073                );
44074            }
44075            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
44076                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceBody(
44077                    self,
44078                    self::fields::TsNamespaceBodyField::TsNamespaceDecl,
44079                ));
44080                <TsNamespaceDecl as VisitWithAstPath<V>>::visit_with_ast_path(
44081                    _field_0,
44082                    visitor,
44083                    &mut *__ast_path,
44084                );
44085            }
44086        }
44087    }
44088}
44089#[cfg(any(docsrs, feature = "path"))]
44090#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44091impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNamespaceDecl {
44092    #[doc = "Calls [VisitAstPath`::visit_ts_namespace_decl`] with `self`."]
44093    fn visit_with_ast_path<'ast: 'r, 'r>(
44094        &'ast self,
44095        visitor: &mut V,
44096        __ast_path: &mut AstNodePath<'r>,
44097    ) {
44098        <V as VisitAstPath>::visit_ts_namespace_decl(visitor, self, __ast_path)
44099    }
44100
44101    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44102        &'ast self,
44103        visitor: &mut V,
44104        __ast_path: &mut AstNodePath<'r>,
44105    ) {
44106        match self {
44107            TsNamespaceDecl {
44108                span,
44109                declare,
44110                global,
44111                id,
44112                body,
44113            } => {
44114                {
44115                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceDecl(
44116                        self,
44117                        self::fields::TsNamespaceDeclField::Span,
44118                    ));
44119                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44120                        span,
44121                        visitor,
44122                        &mut *__ast_path,
44123                    )
44124                };
44125                {
44126                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceDecl(
44127                        self,
44128                        self::fields::TsNamespaceDeclField::Id,
44129                    ));
44130                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
44131                        id,
44132                        visitor,
44133                        &mut *__ast_path,
44134                    )
44135                };
44136                {
44137                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNamespaceDecl(
44138                        self,
44139                        self::fields::TsNamespaceDeclField::Body,
44140                    ));
44141                    <Box<TsNamespaceBody> as VisitWithAstPath<V>>::visit_with_ast_path(
44142                        body,
44143                        visitor,
44144                        &mut *__ast_path,
44145                    )
44146                };
44147            }
44148        }
44149    }
44150}
44151#[cfg(any(docsrs, feature = "path"))]
44152#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44153impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNamespaceExportDecl {
44154    #[doc = "Calls [VisitAstPath`::visit_ts_namespace_export_decl`] with `self`."]
44155    fn visit_with_ast_path<'ast: 'r, 'r>(
44156        &'ast self,
44157        visitor: &mut V,
44158        __ast_path: &mut AstNodePath<'r>,
44159    ) {
44160        <V as VisitAstPath>::visit_ts_namespace_export_decl(visitor, self, __ast_path)
44161    }
44162
44163    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44164        &'ast self,
44165        visitor: &mut V,
44166        __ast_path: &mut AstNodePath<'r>,
44167    ) {
44168        match self {
44169            TsNamespaceExportDecl { span, id } => {
44170                {
44171                    let mut __ast_path =
44172                        __ast_path.with_guard(AstParentNodeRef::TsNamespaceExportDecl(
44173                            self,
44174                            self::fields::TsNamespaceExportDeclField::Span,
44175                        ));
44176                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44177                        span,
44178                        visitor,
44179                        &mut *__ast_path,
44180                    )
44181                };
44182                {
44183                    let mut __ast_path =
44184                        __ast_path.with_guard(AstParentNodeRef::TsNamespaceExportDecl(
44185                            self,
44186                            self::fields::TsNamespaceExportDeclField::Id,
44187                        ));
44188                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
44189                        id,
44190                        visitor,
44191                        &mut *__ast_path,
44192                    )
44193                };
44194            }
44195        }
44196    }
44197}
44198#[cfg(any(docsrs, feature = "path"))]
44199#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44200impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsNonNullExpr {
44201    #[doc = "Calls [VisitAstPath`::visit_ts_non_null_expr`] with `self`."]
44202    fn visit_with_ast_path<'ast: 'r, 'r>(
44203        &'ast self,
44204        visitor: &mut V,
44205        __ast_path: &mut AstNodePath<'r>,
44206    ) {
44207        <V as VisitAstPath>::visit_ts_non_null_expr(visitor, self, __ast_path)
44208    }
44209
44210    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44211        &'ast self,
44212        visitor: &mut V,
44213        __ast_path: &mut AstNodePath<'r>,
44214    ) {
44215        match self {
44216            TsNonNullExpr { span, expr } => {
44217                {
44218                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNonNullExpr(
44219                        self,
44220                        self::fields::TsNonNullExprField::Span,
44221                    ));
44222                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44223                        span,
44224                        visitor,
44225                        &mut *__ast_path,
44226                    )
44227                };
44228                {
44229                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsNonNullExpr(
44230                        self,
44231                        self::fields::TsNonNullExprField::Expr,
44232                    ));
44233                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44234                        expr,
44235                        visitor,
44236                        &mut *__ast_path,
44237                    )
44238                };
44239            }
44240        }
44241    }
44242}
44243#[cfg(any(docsrs, feature = "path"))]
44244#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44245impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsOptionalType {
44246    #[doc = "Calls [VisitAstPath`::visit_ts_optional_type`] with `self`."]
44247    fn visit_with_ast_path<'ast: 'r, 'r>(
44248        &'ast self,
44249        visitor: &mut V,
44250        __ast_path: &mut AstNodePath<'r>,
44251    ) {
44252        <V as VisitAstPath>::visit_ts_optional_type(visitor, self, __ast_path)
44253    }
44254
44255    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44256        &'ast self,
44257        visitor: &mut V,
44258        __ast_path: &mut AstNodePath<'r>,
44259    ) {
44260        match self {
44261            TsOptionalType { span, type_ann } => {
44262                {
44263                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsOptionalType(
44264                        self,
44265                        self::fields::TsOptionalTypeField::Span,
44266                    ));
44267                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44268                        span,
44269                        visitor,
44270                        &mut *__ast_path,
44271                    )
44272                };
44273                {
44274                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsOptionalType(
44275                        self,
44276                        self::fields::TsOptionalTypeField::TypeAnn,
44277                    ));
44278                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44279                        type_ann,
44280                        visitor,
44281                        &mut *__ast_path,
44282                    )
44283                };
44284            }
44285        }
44286    }
44287}
44288#[cfg(any(docsrs, feature = "path"))]
44289#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44290impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsParamProp {
44291    #[doc = "Calls [VisitAstPath`::visit_ts_param_prop`] with `self`."]
44292    fn visit_with_ast_path<'ast: 'r, 'r>(
44293        &'ast self,
44294        visitor: &mut V,
44295        __ast_path: &mut AstNodePath<'r>,
44296    ) {
44297        <V as VisitAstPath>::visit_ts_param_prop(visitor, self, __ast_path)
44298    }
44299
44300    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44301        &'ast self,
44302        visitor: &mut V,
44303        __ast_path: &mut AstNodePath<'r>,
44304    ) {
44305        match self {
44306            TsParamProp {
44307                span,
44308                decorators,
44309                accessibility,
44310                is_override,
44311                readonly,
44312                param,
44313            } => {
44314                {
44315                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44316                        self,
44317                        self::fields::TsParamPropField::Span,
44318                    ));
44319                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44320                        span,
44321                        visitor,
44322                        &mut *__ast_path,
44323                    )
44324                };
44325                {
44326                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44327                        self,
44328                        self::fields::TsParamPropField::Decorators(usize::MAX),
44329                    ));
44330                    <Vec<Decorator> as VisitWithAstPath<V>>::visit_with_ast_path(
44331                        decorators,
44332                        visitor,
44333                        &mut *__ast_path,
44334                    )
44335                };
44336                {
44337                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44338                        self,
44339                        self::fields::TsParamPropField::Accessibility,
44340                    ));
44341                    <Option<Accessibility> as VisitWithAstPath<V>>::visit_with_ast_path(
44342                        accessibility,
44343                        visitor,
44344                        &mut *__ast_path,
44345                    )
44346                };
44347                {
44348                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamProp(
44349                        self,
44350                        self::fields::TsParamPropField::Param,
44351                    ));
44352                    <TsParamPropParam as VisitWithAstPath<V>>::visit_with_ast_path(
44353                        param,
44354                        visitor,
44355                        &mut *__ast_path,
44356                    )
44357                };
44358            }
44359        }
44360    }
44361}
44362#[cfg(any(docsrs, feature = "path"))]
44363#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44364impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsParamPropParam {
44365    #[doc = "Calls [VisitAstPath`::visit_ts_param_prop_param`] with `self`."]
44366    fn visit_with_ast_path<'ast: 'r, 'r>(
44367        &'ast self,
44368        visitor: &mut V,
44369        __ast_path: &mut AstNodePath<'r>,
44370    ) {
44371        <V as VisitAstPath>::visit_ts_param_prop_param(visitor, self, __ast_path)
44372    }
44373
44374    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44375        &'ast self,
44376        visitor: &mut V,
44377        __ast_path: &mut AstNodePath<'r>,
44378    ) {
44379        match self {
44380            TsParamPropParam::Ident { 0: _field_0 } => {
44381                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamPropParam(
44382                    self,
44383                    self::fields::TsParamPropParamField::Ident,
44384                ));
44385                <BindingIdent as VisitWithAstPath<V>>::visit_with_ast_path(
44386                    _field_0,
44387                    visitor,
44388                    &mut *__ast_path,
44389                );
44390            }
44391            TsParamPropParam::Assign { 0: _field_0 } => {
44392                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsParamPropParam(
44393                    self,
44394                    self::fields::TsParamPropParamField::Assign,
44395                ));
44396                <AssignPat as VisitWithAstPath<V>>::visit_with_ast_path(
44397                    _field_0,
44398                    visitor,
44399                    &mut *__ast_path,
44400                );
44401            }
44402        }
44403    }
44404}
44405#[cfg(any(docsrs, feature = "path"))]
44406#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44407impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsParenthesizedType {
44408    #[doc = "Calls [VisitAstPath`::visit_ts_parenthesized_type`] with `self`."]
44409    fn visit_with_ast_path<'ast: 'r, 'r>(
44410        &'ast self,
44411        visitor: &mut V,
44412        __ast_path: &mut AstNodePath<'r>,
44413    ) {
44414        <V as VisitAstPath>::visit_ts_parenthesized_type(visitor, self, __ast_path)
44415    }
44416
44417    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44418        &'ast self,
44419        visitor: &mut V,
44420        __ast_path: &mut AstNodePath<'r>,
44421    ) {
44422        match self {
44423            TsParenthesizedType { span, type_ann } => {
44424                {
44425                    let mut __ast_path =
44426                        __ast_path.with_guard(AstParentNodeRef::TsParenthesizedType(
44427                            self,
44428                            self::fields::TsParenthesizedTypeField::Span,
44429                        ));
44430                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44431                        span,
44432                        visitor,
44433                        &mut *__ast_path,
44434                    )
44435                };
44436                {
44437                    let mut __ast_path =
44438                        __ast_path.with_guard(AstParentNodeRef::TsParenthesizedType(
44439                            self,
44440                            self::fields::TsParenthesizedTypeField::TypeAnn,
44441                        ));
44442                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44443                        type_ann,
44444                        visitor,
44445                        &mut *__ast_path,
44446                    )
44447                };
44448            }
44449        }
44450    }
44451}
44452#[cfg(any(docsrs, feature = "path"))]
44453#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44454impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsPropertySignature {
44455    #[doc = "Calls [VisitAstPath`::visit_ts_property_signature`] with `self`."]
44456    fn visit_with_ast_path<'ast: 'r, 'r>(
44457        &'ast self,
44458        visitor: &mut V,
44459        __ast_path: &mut AstNodePath<'r>,
44460    ) {
44461        <V as VisitAstPath>::visit_ts_property_signature(visitor, self, __ast_path)
44462    }
44463
44464    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44465        &'ast self,
44466        visitor: &mut V,
44467        __ast_path: &mut AstNodePath<'r>,
44468    ) {
44469        match self {
44470            TsPropertySignature {
44471                span,
44472                readonly,
44473                key,
44474                computed,
44475                optional,
44476                type_ann,
44477            } => {
44478                {
44479                    let mut __ast_path =
44480                        __ast_path.with_guard(AstParentNodeRef::TsPropertySignature(
44481                            self,
44482                            self::fields::TsPropertySignatureField::Span,
44483                        ));
44484                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44485                        span,
44486                        visitor,
44487                        &mut *__ast_path,
44488                    )
44489                };
44490                {
44491                    let mut __ast_path =
44492                        __ast_path.with_guard(AstParentNodeRef::TsPropertySignature(
44493                            self,
44494                            self::fields::TsPropertySignatureField::Key,
44495                        ));
44496                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44497                        key,
44498                        visitor,
44499                        &mut *__ast_path,
44500                    )
44501                };
44502                {
44503                    let mut __ast_path =
44504                        __ast_path.with_guard(AstParentNodeRef::TsPropertySignature(
44505                            self,
44506                            self::fields::TsPropertySignatureField::TypeAnn,
44507                        ));
44508                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
44509                        type_ann,
44510                        visitor,
44511                        &mut *__ast_path,
44512                    )
44513                };
44514            }
44515        }
44516    }
44517}
44518#[cfg(any(docsrs, feature = "path"))]
44519#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44520impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsQualifiedName {
44521    #[doc = "Calls [VisitAstPath`::visit_ts_qualified_name`] with `self`."]
44522    fn visit_with_ast_path<'ast: 'r, 'r>(
44523        &'ast self,
44524        visitor: &mut V,
44525        __ast_path: &mut AstNodePath<'r>,
44526    ) {
44527        <V as VisitAstPath>::visit_ts_qualified_name(visitor, self, __ast_path)
44528    }
44529
44530    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44531        &'ast self,
44532        visitor: &mut V,
44533        __ast_path: &mut AstNodePath<'r>,
44534    ) {
44535        match self {
44536            TsQualifiedName { span, left, right } => {
44537                {
44538                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsQualifiedName(
44539                        self,
44540                        self::fields::TsQualifiedNameField::Span,
44541                    ));
44542                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44543                        span,
44544                        visitor,
44545                        &mut *__ast_path,
44546                    )
44547                };
44548                {
44549                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsQualifiedName(
44550                        self,
44551                        self::fields::TsQualifiedNameField::Left,
44552                    ));
44553                    <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
44554                        left,
44555                        visitor,
44556                        &mut *__ast_path,
44557                    )
44558                };
44559                {
44560                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsQualifiedName(
44561                        self,
44562                        self::fields::TsQualifiedNameField::Right,
44563                    ));
44564                    <IdentName as VisitWithAstPath<V>>::visit_with_ast_path(
44565                        right,
44566                        visitor,
44567                        &mut *__ast_path,
44568                    )
44569                };
44570            }
44571        }
44572    }
44573}
44574#[cfg(any(docsrs, feature = "path"))]
44575#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44576impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsRestType {
44577    #[doc = "Calls [VisitAstPath`::visit_ts_rest_type`] with `self`."]
44578    fn visit_with_ast_path<'ast: 'r, 'r>(
44579        &'ast self,
44580        visitor: &mut V,
44581        __ast_path: &mut AstNodePath<'r>,
44582    ) {
44583        <V as VisitAstPath>::visit_ts_rest_type(visitor, self, __ast_path)
44584    }
44585
44586    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44587        &'ast self,
44588        visitor: &mut V,
44589        __ast_path: &mut AstNodePath<'r>,
44590    ) {
44591        match self {
44592            TsRestType { span, type_ann } => {
44593                {
44594                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsRestType(
44595                        self,
44596                        self::fields::TsRestTypeField::Span,
44597                    ));
44598                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44599                        span,
44600                        visitor,
44601                        &mut *__ast_path,
44602                    )
44603                };
44604                {
44605                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsRestType(
44606                        self,
44607                        self::fields::TsRestTypeField::TypeAnn,
44608                    ));
44609                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44610                        type_ann,
44611                        visitor,
44612                        &mut *__ast_path,
44613                    )
44614                };
44615            }
44616        }
44617    }
44618}
44619#[cfg(any(docsrs, feature = "path"))]
44620#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44621impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsSatisfiesExpr {
44622    #[doc = "Calls [VisitAstPath`::visit_ts_satisfies_expr`] with `self`."]
44623    fn visit_with_ast_path<'ast: 'r, 'r>(
44624        &'ast self,
44625        visitor: &mut V,
44626        __ast_path: &mut AstNodePath<'r>,
44627    ) {
44628        <V as VisitAstPath>::visit_ts_satisfies_expr(visitor, self, __ast_path)
44629    }
44630
44631    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44632        &'ast self,
44633        visitor: &mut V,
44634        __ast_path: &mut AstNodePath<'r>,
44635    ) {
44636        match self {
44637            TsSatisfiesExpr {
44638                span,
44639                expr,
44640                type_ann,
44641            } => {
44642                {
44643                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsSatisfiesExpr(
44644                        self,
44645                        self::fields::TsSatisfiesExprField::Span,
44646                    ));
44647                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44648                        span,
44649                        visitor,
44650                        &mut *__ast_path,
44651                    )
44652                };
44653                {
44654                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsSatisfiesExpr(
44655                        self,
44656                        self::fields::TsSatisfiesExprField::Expr,
44657                    ));
44658                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44659                        expr,
44660                        visitor,
44661                        &mut *__ast_path,
44662                    )
44663                };
44664                {
44665                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsSatisfiesExpr(
44666                        self,
44667                        self::fields::TsSatisfiesExprField::TypeAnn,
44668                    ));
44669                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44670                        type_ann,
44671                        visitor,
44672                        &mut *__ast_path,
44673                    )
44674                };
44675            }
44676        }
44677    }
44678}
44679#[cfg(any(docsrs, feature = "path"))]
44680#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44681impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsSetterSignature {
44682    #[doc = "Calls [VisitAstPath`::visit_ts_setter_signature`] with `self`."]
44683    fn visit_with_ast_path<'ast: 'r, 'r>(
44684        &'ast self,
44685        visitor: &mut V,
44686        __ast_path: &mut AstNodePath<'r>,
44687    ) {
44688        <V as VisitAstPath>::visit_ts_setter_signature(visitor, self, __ast_path)
44689    }
44690
44691    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44692        &'ast self,
44693        visitor: &mut V,
44694        __ast_path: &mut AstNodePath<'r>,
44695    ) {
44696        match self {
44697            TsSetterSignature {
44698                span,
44699                key,
44700                computed,
44701                param,
44702            } => {
44703                {
44704                    let mut __ast_path =
44705                        __ast_path.with_guard(AstParentNodeRef::TsSetterSignature(
44706                            self,
44707                            self::fields::TsSetterSignatureField::Span,
44708                        ));
44709                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44710                        span,
44711                        visitor,
44712                        &mut *__ast_path,
44713                    )
44714                };
44715                {
44716                    let mut __ast_path =
44717                        __ast_path.with_guard(AstParentNodeRef::TsSetterSignature(
44718                            self,
44719                            self::fields::TsSetterSignatureField::Key,
44720                        ));
44721                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
44722                        key,
44723                        visitor,
44724                        &mut *__ast_path,
44725                    )
44726                };
44727                {
44728                    let mut __ast_path =
44729                        __ast_path.with_guard(AstParentNodeRef::TsSetterSignature(
44730                            self,
44731                            self::fields::TsSetterSignatureField::Param,
44732                        ));
44733                    <TsFnParam as VisitWithAstPath<V>>::visit_with_ast_path(
44734                        param,
44735                        visitor,
44736                        &mut *__ast_path,
44737                    )
44738                };
44739            }
44740        }
44741    }
44742}
44743#[cfg(any(docsrs, feature = "path"))]
44744#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44745impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsThisType {
44746    #[doc = "Calls [VisitAstPath`::visit_ts_this_type`] with `self`."]
44747    fn visit_with_ast_path<'ast: 'r, 'r>(
44748        &'ast self,
44749        visitor: &mut V,
44750        __ast_path: &mut AstNodePath<'r>,
44751    ) {
44752        <V as VisitAstPath>::visit_ts_this_type(visitor, self, __ast_path)
44753    }
44754
44755    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44756        &'ast self,
44757        visitor: &mut V,
44758        __ast_path: &mut AstNodePath<'r>,
44759    ) {
44760        match self {
44761            TsThisType { span } => {
44762                {
44763                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsThisType(
44764                        self,
44765                        self::fields::TsThisTypeField::Span,
44766                    ));
44767                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44768                        span,
44769                        visitor,
44770                        &mut *__ast_path,
44771                    )
44772                };
44773            }
44774        }
44775    }
44776}
44777#[cfg(any(docsrs, feature = "path"))]
44778#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44779impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsThisTypeOrIdent {
44780    #[doc = "Calls [VisitAstPath`::visit_ts_this_type_or_ident`] with `self`."]
44781    fn visit_with_ast_path<'ast: 'r, 'r>(
44782        &'ast self,
44783        visitor: &mut V,
44784        __ast_path: &mut AstNodePath<'r>,
44785    ) {
44786        <V as VisitAstPath>::visit_ts_this_type_or_ident(visitor, self, __ast_path)
44787    }
44788
44789    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44790        &'ast self,
44791        visitor: &mut V,
44792        __ast_path: &mut AstNodePath<'r>,
44793    ) {
44794        match self {
44795            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
44796                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsThisTypeOrIdent(
44797                    self,
44798                    self::fields::TsThisTypeOrIdentField::TsThisType,
44799                ));
44800                <TsThisType as VisitWithAstPath<V>>::visit_with_ast_path(
44801                    _field_0,
44802                    visitor,
44803                    &mut *__ast_path,
44804                );
44805            }
44806            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
44807                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsThisTypeOrIdent(
44808                    self,
44809                    self::fields::TsThisTypeOrIdentField::Ident,
44810                ));
44811                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
44812                    _field_0,
44813                    visitor,
44814                    &mut *__ast_path,
44815                );
44816            }
44817        }
44818    }
44819}
44820#[cfg(any(docsrs, feature = "path"))]
44821#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44822impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTplLitType {
44823    #[doc = "Calls [VisitAstPath`::visit_ts_tpl_lit_type`] with `self`."]
44824    fn visit_with_ast_path<'ast: 'r, 'r>(
44825        &'ast self,
44826        visitor: &mut V,
44827        __ast_path: &mut AstNodePath<'r>,
44828    ) {
44829        <V as VisitAstPath>::visit_ts_tpl_lit_type(visitor, self, __ast_path)
44830    }
44831
44832    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44833        &'ast self,
44834        visitor: &mut V,
44835        __ast_path: &mut AstNodePath<'r>,
44836    ) {
44837        match self {
44838            TsTplLitType {
44839                span,
44840                types,
44841                quasis,
44842            } => {
44843                {
44844                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTplLitType(
44845                        self,
44846                        self::fields::TsTplLitTypeField::Span,
44847                    ));
44848                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44849                        span,
44850                        visitor,
44851                        &mut *__ast_path,
44852                    )
44853                };
44854                {
44855                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTplLitType(
44856                        self,
44857                        self::fields::TsTplLitTypeField::Types(usize::MAX),
44858                    ));
44859                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
44860                        types,
44861                        visitor,
44862                        &mut *__ast_path,
44863                    )
44864                };
44865                {
44866                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTplLitType(
44867                        self,
44868                        self::fields::TsTplLitTypeField::Quasis(usize::MAX),
44869                    ));
44870                    <Vec<TplElement> as VisitWithAstPath<V>>::visit_with_ast_path(
44871                        quasis,
44872                        visitor,
44873                        &mut *__ast_path,
44874                    )
44875                };
44876            }
44877        }
44878    }
44879}
44880#[cfg(any(docsrs, feature = "path"))]
44881#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44882impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTupleElement {
44883    #[doc = "Calls [VisitAstPath`::visit_ts_tuple_element`] with `self`."]
44884    fn visit_with_ast_path<'ast: 'r, 'r>(
44885        &'ast self,
44886        visitor: &mut V,
44887        __ast_path: &mut AstNodePath<'r>,
44888    ) {
44889        <V as VisitAstPath>::visit_ts_tuple_element(visitor, self, __ast_path)
44890    }
44891
44892    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44893        &'ast self,
44894        visitor: &mut V,
44895        __ast_path: &mut AstNodePath<'r>,
44896    ) {
44897        match self {
44898            TsTupleElement { span, label, ty } => {
44899                {
44900                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleElement(
44901                        self,
44902                        self::fields::TsTupleElementField::Span,
44903                    ));
44904                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44905                        span,
44906                        visitor,
44907                        &mut *__ast_path,
44908                    )
44909                };
44910                {
44911                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleElement(
44912                        self,
44913                        self::fields::TsTupleElementField::Label,
44914                    ));
44915                    <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
44916                        label,
44917                        visitor,
44918                        &mut *__ast_path,
44919                    )
44920                };
44921                {
44922                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleElement(
44923                        self,
44924                        self::fields::TsTupleElementField::Ty,
44925                    ));
44926                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
44927                        ty,
44928                        visitor,
44929                        &mut *__ast_path,
44930                    )
44931                };
44932            }
44933        }
44934    }
44935}
44936#[cfg(any(docsrs, feature = "path"))]
44937#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44938impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTupleType {
44939    #[doc = "Calls [VisitAstPath`::visit_ts_tuple_type`] with `self`."]
44940    fn visit_with_ast_path<'ast: 'r, 'r>(
44941        &'ast self,
44942        visitor: &mut V,
44943        __ast_path: &mut AstNodePath<'r>,
44944    ) {
44945        <V as VisitAstPath>::visit_ts_tuple_type(visitor, self, __ast_path)
44946    }
44947
44948    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44949        &'ast self,
44950        visitor: &mut V,
44951        __ast_path: &mut AstNodePath<'r>,
44952    ) {
44953        match self {
44954            TsTupleType { span, elem_types } => {
44955                {
44956                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleType(
44957                        self,
44958                        self::fields::TsTupleTypeField::Span,
44959                    ));
44960                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
44961                        span,
44962                        visitor,
44963                        &mut *__ast_path,
44964                    )
44965                };
44966                {
44967                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTupleType(
44968                        self,
44969                        self::fields::TsTupleTypeField::ElemTypes(usize::MAX),
44970                    ));
44971                    <Vec<TsTupleElement> as VisitWithAstPath<V>>::visit_with_ast_path(
44972                        elem_types,
44973                        visitor,
44974                        &mut *__ast_path,
44975                    )
44976                };
44977            }
44978        }
44979    }
44980}
44981#[cfg(any(docsrs, feature = "path"))]
44982#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
44983impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsType {
44984    #[doc = "Calls [VisitAstPath`::visit_ts_type`] with `self`."]
44985    fn visit_with_ast_path<'ast: 'r, 'r>(
44986        &'ast self,
44987        visitor: &mut V,
44988        __ast_path: &mut AstNodePath<'r>,
44989    ) {
44990        <V as VisitAstPath>::visit_ts_type(visitor, self, __ast_path)
44991    }
44992
44993    fn visit_children_with_ast_path<'ast: 'r, 'r>(
44994        &'ast self,
44995        visitor: &mut V,
44996        __ast_path: &mut AstNodePath<'r>,
44997    ) {
44998        match self {
44999            TsType::TsKeywordType { 0: _field_0 } => {
45000                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45001                    self,
45002                    self::fields::TsTypeField::TsKeywordType,
45003                ));
45004                <TsKeywordType as VisitWithAstPath<V>>::visit_with_ast_path(
45005                    _field_0,
45006                    visitor,
45007                    &mut *__ast_path,
45008                );
45009            }
45010            TsType::TsThisType { 0: _field_0 } => {
45011                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45012                    self,
45013                    self::fields::TsTypeField::TsThisType,
45014                ));
45015                <TsThisType as VisitWithAstPath<V>>::visit_with_ast_path(
45016                    _field_0,
45017                    visitor,
45018                    &mut *__ast_path,
45019                );
45020            }
45021            TsType::TsFnOrConstructorType { 0: _field_0 } => {
45022                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45023                    self,
45024                    self::fields::TsTypeField::TsFnOrConstructorType,
45025                ));
45026                <TsFnOrConstructorType as VisitWithAstPath<V>>::visit_with_ast_path(
45027                    _field_0,
45028                    visitor,
45029                    &mut *__ast_path,
45030                );
45031            }
45032            TsType::TsTypeRef { 0: _field_0 } => {
45033                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45034                    self,
45035                    self::fields::TsTypeField::TsTypeRef,
45036                ));
45037                <TsTypeRef as VisitWithAstPath<V>>::visit_with_ast_path(
45038                    _field_0,
45039                    visitor,
45040                    &mut *__ast_path,
45041                );
45042            }
45043            TsType::TsTypeQuery { 0: _field_0 } => {
45044                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45045                    self,
45046                    self::fields::TsTypeField::TsTypeQuery,
45047                ));
45048                <TsTypeQuery as VisitWithAstPath<V>>::visit_with_ast_path(
45049                    _field_0,
45050                    visitor,
45051                    &mut *__ast_path,
45052                );
45053            }
45054            TsType::TsTypeLit { 0: _field_0 } => {
45055                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45056                    self,
45057                    self::fields::TsTypeField::TsTypeLit,
45058                ));
45059                <TsTypeLit as VisitWithAstPath<V>>::visit_with_ast_path(
45060                    _field_0,
45061                    visitor,
45062                    &mut *__ast_path,
45063                );
45064            }
45065            TsType::TsArrayType { 0: _field_0 } => {
45066                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45067                    self,
45068                    self::fields::TsTypeField::TsArrayType,
45069                ));
45070                <TsArrayType as VisitWithAstPath<V>>::visit_with_ast_path(
45071                    _field_0,
45072                    visitor,
45073                    &mut *__ast_path,
45074                );
45075            }
45076            TsType::TsTupleType { 0: _field_0 } => {
45077                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45078                    self,
45079                    self::fields::TsTypeField::TsTupleType,
45080                ));
45081                <TsTupleType as VisitWithAstPath<V>>::visit_with_ast_path(
45082                    _field_0,
45083                    visitor,
45084                    &mut *__ast_path,
45085                );
45086            }
45087            TsType::TsOptionalType { 0: _field_0 } => {
45088                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45089                    self,
45090                    self::fields::TsTypeField::TsOptionalType,
45091                ));
45092                <TsOptionalType as VisitWithAstPath<V>>::visit_with_ast_path(
45093                    _field_0,
45094                    visitor,
45095                    &mut *__ast_path,
45096                );
45097            }
45098            TsType::TsRestType { 0: _field_0 } => {
45099                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45100                    self,
45101                    self::fields::TsTypeField::TsRestType,
45102                ));
45103                <TsRestType as VisitWithAstPath<V>>::visit_with_ast_path(
45104                    _field_0,
45105                    visitor,
45106                    &mut *__ast_path,
45107                );
45108            }
45109            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
45110                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45111                    self,
45112                    self::fields::TsTypeField::TsUnionOrIntersectionType,
45113                ));
45114                <TsUnionOrIntersectionType as VisitWithAstPath<V>>::visit_with_ast_path(
45115                    _field_0,
45116                    visitor,
45117                    &mut *__ast_path,
45118                );
45119            }
45120            TsType::TsConditionalType { 0: _field_0 } => {
45121                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45122                    self,
45123                    self::fields::TsTypeField::TsConditionalType,
45124                ));
45125                <TsConditionalType as VisitWithAstPath<V>>::visit_with_ast_path(
45126                    _field_0,
45127                    visitor,
45128                    &mut *__ast_path,
45129                );
45130            }
45131            TsType::TsInferType { 0: _field_0 } => {
45132                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45133                    self,
45134                    self::fields::TsTypeField::TsInferType,
45135                ));
45136                <TsInferType as VisitWithAstPath<V>>::visit_with_ast_path(
45137                    _field_0,
45138                    visitor,
45139                    &mut *__ast_path,
45140                );
45141            }
45142            TsType::TsParenthesizedType { 0: _field_0 } => {
45143                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45144                    self,
45145                    self::fields::TsTypeField::TsParenthesizedType,
45146                ));
45147                <TsParenthesizedType as VisitWithAstPath<V>>::visit_with_ast_path(
45148                    _field_0,
45149                    visitor,
45150                    &mut *__ast_path,
45151                );
45152            }
45153            TsType::TsTypeOperator { 0: _field_0 } => {
45154                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45155                    self,
45156                    self::fields::TsTypeField::TsTypeOperator,
45157                ));
45158                <TsTypeOperator as VisitWithAstPath<V>>::visit_with_ast_path(
45159                    _field_0,
45160                    visitor,
45161                    &mut *__ast_path,
45162                );
45163            }
45164            TsType::TsIndexedAccessType { 0: _field_0 } => {
45165                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45166                    self,
45167                    self::fields::TsTypeField::TsIndexedAccessType,
45168                ));
45169                <TsIndexedAccessType as VisitWithAstPath<V>>::visit_with_ast_path(
45170                    _field_0,
45171                    visitor,
45172                    &mut *__ast_path,
45173                );
45174            }
45175            TsType::TsMappedType { 0: _field_0 } => {
45176                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45177                    self,
45178                    self::fields::TsTypeField::TsMappedType,
45179                ));
45180                <TsMappedType as VisitWithAstPath<V>>::visit_with_ast_path(
45181                    _field_0,
45182                    visitor,
45183                    &mut *__ast_path,
45184                );
45185            }
45186            TsType::TsLitType { 0: _field_0 } => {
45187                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45188                    self,
45189                    self::fields::TsTypeField::TsLitType,
45190                ));
45191                <TsLitType as VisitWithAstPath<V>>::visit_with_ast_path(
45192                    _field_0,
45193                    visitor,
45194                    &mut *__ast_path,
45195                );
45196            }
45197            TsType::TsTypePredicate { 0: _field_0 } => {
45198                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45199                    self,
45200                    self::fields::TsTypeField::TsTypePredicate,
45201                ));
45202                <TsTypePredicate as VisitWithAstPath<V>>::visit_with_ast_path(
45203                    _field_0,
45204                    visitor,
45205                    &mut *__ast_path,
45206                );
45207            }
45208            TsType::TsImportType { 0: _field_0 } => {
45209                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsType(
45210                    self,
45211                    self::fields::TsTypeField::TsImportType,
45212                ));
45213                <TsImportType as VisitWithAstPath<V>>::visit_with_ast_path(
45214                    _field_0,
45215                    visitor,
45216                    &mut *__ast_path,
45217                );
45218            }
45219        }
45220    }
45221}
45222#[cfg(any(docsrs, feature = "path"))]
45223#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45224impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeAliasDecl {
45225    #[doc = "Calls [VisitAstPath`::visit_ts_type_alias_decl`] with `self`."]
45226    fn visit_with_ast_path<'ast: 'r, 'r>(
45227        &'ast self,
45228        visitor: &mut V,
45229        __ast_path: &mut AstNodePath<'r>,
45230    ) {
45231        <V as VisitAstPath>::visit_ts_type_alias_decl(visitor, self, __ast_path)
45232    }
45233
45234    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45235        &'ast self,
45236        visitor: &mut V,
45237        __ast_path: &mut AstNodePath<'r>,
45238    ) {
45239        match self {
45240            TsTypeAliasDecl {
45241                span,
45242                declare,
45243                id,
45244                type_params,
45245                type_ann,
45246            } => {
45247                {
45248                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45249                        self,
45250                        self::fields::TsTypeAliasDeclField::Span,
45251                    ));
45252                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45253                        span,
45254                        visitor,
45255                        &mut *__ast_path,
45256                    )
45257                };
45258                {
45259                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45260                        self,
45261                        self::fields::TsTypeAliasDeclField::Id,
45262                    ));
45263                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
45264                        id,
45265                        visitor,
45266                        &mut *__ast_path,
45267                    )
45268                };
45269                {
45270                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45271                        self,
45272                        self::fields::TsTypeAliasDeclField::TypeParams,
45273                    ));
45274                    <Option<Box<TsTypeParamDecl>> as VisitWithAstPath<V>>::visit_with_ast_path(
45275                        type_params,
45276                        visitor,
45277                        &mut *__ast_path,
45278                    )
45279                };
45280                {
45281                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAliasDecl(
45282                        self,
45283                        self::fields::TsTypeAliasDeclField::TypeAnn,
45284                    ));
45285                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45286                        type_ann,
45287                        visitor,
45288                        &mut *__ast_path,
45289                    )
45290                };
45291            }
45292        }
45293    }
45294}
45295#[cfg(any(docsrs, feature = "path"))]
45296#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45297impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeAnn {
45298    #[doc = "Calls [VisitAstPath`::visit_ts_type_ann`] with `self`."]
45299    fn visit_with_ast_path<'ast: 'r, 'r>(
45300        &'ast self,
45301        visitor: &mut V,
45302        __ast_path: &mut AstNodePath<'r>,
45303    ) {
45304        <V as VisitAstPath>::visit_ts_type_ann(visitor, self, __ast_path)
45305    }
45306
45307    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45308        &'ast self,
45309        visitor: &mut V,
45310        __ast_path: &mut AstNodePath<'r>,
45311    ) {
45312        match self {
45313            TsTypeAnn { span, type_ann } => {
45314                {
45315                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAnn(
45316                        self,
45317                        self::fields::TsTypeAnnField::Span,
45318                    ));
45319                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45320                        span,
45321                        visitor,
45322                        &mut *__ast_path,
45323                    )
45324                };
45325                {
45326                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAnn(
45327                        self,
45328                        self::fields::TsTypeAnnField::TypeAnn,
45329                    ));
45330                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45331                        type_ann,
45332                        visitor,
45333                        &mut *__ast_path,
45334                    )
45335                };
45336            }
45337        }
45338    }
45339}
45340#[cfg(any(docsrs, feature = "path"))]
45341#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45342impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeAssertion {
45343    #[doc = "Calls [VisitAstPath`::visit_ts_type_assertion`] with `self`."]
45344    fn visit_with_ast_path<'ast: 'r, 'r>(
45345        &'ast self,
45346        visitor: &mut V,
45347        __ast_path: &mut AstNodePath<'r>,
45348    ) {
45349        <V as VisitAstPath>::visit_ts_type_assertion(visitor, self, __ast_path)
45350    }
45351
45352    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45353        &'ast self,
45354        visitor: &mut V,
45355        __ast_path: &mut AstNodePath<'r>,
45356    ) {
45357        match self {
45358            TsTypeAssertion {
45359                span,
45360                expr,
45361                type_ann,
45362            } => {
45363                {
45364                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAssertion(
45365                        self,
45366                        self::fields::TsTypeAssertionField::Span,
45367                    ));
45368                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45369                        span,
45370                        visitor,
45371                        &mut *__ast_path,
45372                    )
45373                };
45374                {
45375                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAssertion(
45376                        self,
45377                        self::fields::TsTypeAssertionField::Expr,
45378                    ));
45379                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
45380                        expr,
45381                        visitor,
45382                        &mut *__ast_path,
45383                    )
45384                };
45385                {
45386                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeAssertion(
45387                        self,
45388                        self::fields::TsTypeAssertionField::TypeAnn,
45389                    ));
45390                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45391                        type_ann,
45392                        visitor,
45393                        &mut *__ast_path,
45394                    )
45395                };
45396            }
45397        }
45398    }
45399}
45400#[cfg(any(docsrs, feature = "path"))]
45401#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45402impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeElement {
45403    #[doc = "Calls [VisitAstPath`::visit_ts_type_element`] with `self`."]
45404    fn visit_with_ast_path<'ast: 'r, 'r>(
45405        &'ast self,
45406        visitor: &mut V,
45407        __ast_path: &mut AstNodePath<'r>,
45408    ) {
45409        <V as VisitAstPath>::visit_ts_type_element(visitor, self, __ast_path)
45410    }
45411
45412    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45413        &'ast self,
45414        visitor: &mut V,
45415        __ast_path: &mut AstNodePath<'r>,
45416    ) {
45417        match self {
45418            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
45419                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45420                    self,
45421                    self::fields::TsTypeElementField::TsCallSignatureDecl,
45422                ));
45423                <TsCallSignatureDecl as VisitWithAstPath<V>>::visit_with_ast_path(
45424                    _field_0,
45425                    visitor,
45426                    &mut *__ast_path,
45427                );
45428            }
45429            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
45430                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45431                    self,
45432                    self::fields::TsTypeElementField::TsConstructSignatureDecl,
45433                ));
45434                <TsConstructSignatureDecl as VisitWithAstPath<V>>::visit_with_ast_path(
45435                    _field_0,
45436                    visitor,
45437                    &mut *__ast_path,
45438                );
45439            }
45440            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
45441                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45442                    self,
45443                    self::fields::TsTypeElementField::TsPropertySignature,
45444                ));
45445                <TsPropertySignature as VisitWithAstPath<V>>::visit_with_ast_path(
45446                    _field_0,
45447                    visitor,
45448                    &mut *__ast_path,
45449                );
45450            }
45451            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
45452                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45453                    self,
45454                    self::fields::TsTypeElementField::TsGetterSignature,
45455                ));
45456                <TsGetterSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45457                    _field_0,
45458                    visitor,
45459                    &mut *__ast_path,
45460                );
45461            }
45462            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
45463                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45464                    self,
45465                    self::fields::TsTypeElementField::TsSetterSignature,
45466                ));
45467                <TsSetterSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45468                    _field_0,
45469                    visitor,
45470                    &mut *__ast_path,
45471                );
45472            }
45473            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
45474                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45475                    self,
45476                    self::fields::TsTypeElementField::TsMethodSignature,
45477                ));
45478                <TsMethodSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45479                    _field_0,
45480                    visitor,
45481                    &mut *__ast_path,
45482                );
45483            }
45484            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
45485                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeElement(
45486                    self,
45487                    self::fields::TsTypeElementField::TsIndexSignature,
45488                ));
45489                <TsIndexSignature as VisitWithAstPath<V>>::visit_with_ast_path(
45490                    _field_0,
45491                    visitor,
45492                    &mut *__ast_path,
45493                );
45494            }
45495        }
45496    }
45497}
45498#[cfg(any(docsrs, feature = "path"))]
45499#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45500impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeLit {
45501    #[doc = "Calls [VisitAstPath`::visit_ts_type_lit`] with `self`."]
45502    fn visit_with_ast_path<'ast: 'r, 'r>(
45503        &'ast self,
45504        visitor: &mut V,
45505        __ast_path: &mut AstNodePath<'r>,
45506    ) {
45507        <V as VisitAstPath>::visit_ts_type_lit(visitor, self, __ast_path)
45508    }
45509
45510    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45511        &'ast self,
45512        visitor: &mut V,
45513        __ast_path: &mut AstNodePath<'r>,
45514    ) {
45515        match self {
45516            TsTypeLit { span, members } => {
45517                {
45518                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeLit(
45519                        self,
45520                        self::fields::TsTypeLitField::Span,
45521                    ));
45522                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45523                        span,
45524                        visitor,
45525                        &mut *__ast_path,
45526                    )
45527                };
45528                {
45529                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeLit(
45530                        self,
45531                        self::fields::TsTypeLitField::Members(usize::MAX),
45532                    ));
45533                    <Vec<TsTypeElement> as VisitWithAstPath<V>>::visit_with_ast_path(
45534                        members,
45535                        visitor,
45536                        &mut *__ast_path,
45537                    )
45538                };
45539            }
45540        }
45541    }
45542}
45543#[cfg(any(docsrs, feature = "path"))]
45544#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45545impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeOperator {
45546    #[doc = "Calls [VisitAstPath`::visit_ts_type_operator`] with `self`."]
45547    fn visit_with_ast_path<'ast: 'r, 'r>(
45548        &'ast self,
45549        visitor: &mut V,
45550        __ast_path: &mut AstNodePath<'r>,
45551    ) {
45552        <V as VisitAstPath>::visit_ts_type_operator(visitor, self, __ast_path)
45553    }
45554
45555    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45556        &'ast self,
45557        visitor: &mut V,
45558        __ast_path: &mut AstNodePath<'r>,
45559    ) {
45560        match self {
45561            TsTypeOperator { span, op, type_ann } => {
45562                {
45563                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeOperator(
45564                        self,
45565                        self::fields::TsTypeOperatorField::Span,
45566                    ));
45567                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45568                        span,
45569                        visitor,
45570                        &mut *__ast_path,
45571                    )
45572                };
45573                {
45574                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeOperator(
45575                        self,
45576                        self::fields::TsTypeOperatorField::Op,
45577                    ));
45578                    <TsTypeOperatorOp as VisitWithAstPath<V>>::visit_with_ast_path(
45579                        op,
45580                        visitor,
45581                        &mut *__ast_path,
45582                    )
45583                };
45584                {
45585                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeOperator(
45586                        self,
45587                        self::fields::TsTypeOperatorField::TypeAnn,
45588                    ));
45589                    <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
45590                        type_ann,
45591                        visitor,
45592                        &mut *__ast_path,
45593                    )
45594                };
45595            }
45596        }
45597    }
45598}
45599#[cfg(any(docsrs, feature = "path"))]
45600#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45601impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeOperatorOp {
45602    #[doc = "Calls [VisitAstPath`::visit_ts_type_operator_op`] with `self`."]
45603    fn visit_with_ast_path<'ast: 'r, 'r>(
45604        &'ast self,
45605        visitor: &mut V,
45606        __ast_path: &mut AstNodePath<'r>,
45607    ) {
45608        <V as VisitAstPath>::visit_ts_type_operator_op(visitor, self, __ast_path)
45609    }
45610
45611    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45612        &'ast self,
45613        visitor: &mut V,
45614        __ast_path: &mut AstNodePath<'r>,
45615    ) {
45616        match self {
45617            TsTypeOperatorOp::KeyOf => {}
45618            TsTypeOperatorOp::Unique => {}
45619            TsTypeOperatorOp::ReadOnly => {}
45620        }
45621    }
45622}
45623#[cfg(any(docsrs, feature = "path"))]
45624#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45625impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeParam {
45626    #[doc = "Calls [VisitAstPath`::visit_ts_type_param`] with `self`."]
45627    fn visit_with_ast_path<'ast: 'r, 'r>(
45628        &'ast self,
45629        visitor: &mut V,
45630        __ast_path: &mut AstNodePath<'r>,
45631    ) {
45632        <V as VisitAstPath>::visit_ts_type_param(visitor, self, __ast_path)
45633    }
45634
45635    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45636        &'ast self,
45637        visitor: &mut V,
45638        __ast_path: &mut AstNodePath<'r>,
45639    ) {
45640        match self {
45641            TsTypeParam {
45642                span,
45643                name,
45644                is_in,
45645                is_out,
45646                is_const,
45647                constraint,
45648                default,
45649            } => {
45650                {
45651                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45652                        self,
45653                        self::fields::TsTypeParamField::Span,
45654                    ));
45655                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45656                        span,
45657                        visitor,
45658                        &mut *__ast_path,
45659                    )
45660                };
45661                {
45662                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45663                        self,
45664                        self::fields::TsTypeParamField::Name,
45665                    ));
45666                    <Ident as VisitWithAstPath<V>>::visit_with_ast_path(
45667                        name,
45668                        visitor,
45669                        &mut *__ast_path,
45670                    )
45671                };
45672                {
45673                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45674                        self,
45675                        self::fields::TsTypeParamField::Constraint,
45676                    ));
45677                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
45678                        constraint,
45679                        visitor,
45680                        &mut *__ast_path,
45681                    )
45682                };
45683                {
45684                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParam(
45685                        self,
45686                        self::fields::TsTypeParamField::Default,
45687                    ));
45688                    <Option<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
45689                        default,
45690                        visitor,
45691                        &mut *__ast_path,
45692                    )
45693                };
45694            }
45695        }
45696    }
45697}
45698#[cfg(any(docsrs, feature = "path"))]
45699#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45700impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeParamDecl {
45701    #[doc = "Calls [VisitAstPath`::visit_ts_type_param_decl`] with `self`."]
45702    fn visit_with_ast_path<'ast: 'r, 'r>(
45703        &'ast self,
45704        visitor: &mut V,
45705        __ast_path: &mut AstNodePath<'r>,
45706    ) {
45707        <V as VisitAstPath>::visit_ts_type_param_decl(visitor, self, __ast_path)
45708    }
45709
45710    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45711        &'ast self,
45712        visitor: &mut V,
45713        __ast_path: &mut AstNodePath<'r>,
45714    ) {
45715        match self {
45716            TsTypeParamDecl { span, params } => {
45717                {
45718                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParamDecl(
45719                        self,
45720                        self::fields::TsTypeParamDeclField::Span,
45721                    ));
45722                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45723                        span,
45724                        visitor,
45725                        &mut *__ast_path,
45726                    )
45727                };
45728                {
45729                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeParamDecl(
45730                        self,
45731                        self::fields::TsTypeParamDeclField::Params(usize::MAX),
45732                    ));
45733                    <Vec<TsTypeParam> as VisitWithAstPath<V>>::visit_with_ast_path(
45734                        params,
45735                        visitor,
45736                        &mut *__ast_path,
45737                    )
45738                };
45739            }
45740        }
45741    }
45742}
45743#[cfg(any(docsrs, feature = "path"))]
45744#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45745impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeParamInstantiation {
45746    #[doc = "Calls [VisitAstPath`::visit_ts_type_param_instantiation`] with `self`."]
45747    fn visit_with_ast_path<'ast: 'r, 'r>(
45748        &'ast self,
45749        visitor: &mut V,
45750        __ast_path: &mut AstNodePath<'r>,
45751    ) {
45752        <V as VisitAstPath>::visit_ts_type_param_instantiation(visitor, self, __ast_path)
45753    }
45754
45755    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45756        &'ast self,
45757        visitor: &mut V,
45758        __ast_path: &mut AstNodePath<'r>,
45759    ) {
45760        match self {
45761            TsTypeParamInstantiation { span, params } => {
45762                {
45763                    let mut __ast_path =
45764                        __ast_path.with_guard(AstParentNodeRef::TsTypeParamInstantiation(
45765                            self,
45766                            self::fields::TsTypeParamInstantiationField::Span,
45767                        ));
45768                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45769                        span,
45770                        visitor,
45771                        &mut *__ast_path,
45772                    )
45773                };
45774                {
45775                    let mut __ast_path =
45776                        __ast_path.with_guard(AstParentNodeRef::TsTypeParamInstantiation(
45777                            self,
45778                            self::fields::TsTypeParamInstantiationField::Params(usize::MAX),
45779                        ));
45780                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
45781                        params,
45782                        visitor,
45783                        &mut *__ast_path,
45784                    )
45785                };
45786            }
45787        }
45788    }
45789}
45790#[cfg(any(docsrs, feature = "path"))]
45791#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45792impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypePredicate {
45793    #[doc = "Calls [VisitAstPath`::visit_ts_type_predicate`] with `self`."]
45794    fn visit_with_ast_path<'ast: 'r, 'r>(
45795        &'ast self,
45796        visitor: &mut V,
45797        __ast_path: &mut AstNodePath<'r>,
45798    ) {
45799        <V as VisitAstPath>::visit_ts_type_predicate(visitor, self, __ast_path)
45800    }
45801
45802    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45803        &'ast self,
45804        visitor: &mut V,
45805        __ast_path: &mut AstNodePath<'r>,
45806    ) {
45807        match self {
45808            TsTypePredicate {
45809                span,
45810                asserts,
45811                param_name,
45812                type_ann,
45813            } => {
45814                {
45815                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypePredicate(
45816                        self,
45817                        self::fields::TsTypePredicateField::Span,
45818                    ));
45819                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45820                        span,
45821                        visitor,
45822                        &mut *__ast_path,
45823                    )
45824                };
45825                {
45826                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypePredicate(
45827                        self,
45828                        self::fields::TsTypePredicateField::ParamName,
45829                    ));
45830                    <TsThisTypeOrIdent as VisitWithAstPath<V>>::visit_with_ast_path(
45831                        param_name,
45832                        visitor,
45833                        &mut *__ast_path,
45834                    )
45835                };
45836                {
45837                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypePredicate(
45838                        self,
45839                        self::fields::TsTypePredicateField::TypeAnn,
45840                    ));
45841                    <Option<Box<TsTypeAnn>> as VisitWithAstPath<V>>::visit_with_ast_path(
45842                        type_ann,
45843                        visitor,
45844                        &mut *__ast_path,
45845                    )
45846                };
45847            }
45848        }
45849    }
45850}
45851#[cfg(any(docsrs, feature = "path"))]
45852#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45853impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeQuery {
45854    #[doc = "Calls [VisitAstPath`::visit_ts_type_query`] with `self`."]
45855    fn visit_with_ast_path<'ast: 'r, 'r>(
45856        &'ast self,
45857        visitor: &mut V,
45858        __ast_path: &mut AstNodePath<'r>,
45859    ) {
45860        <V as VisitAstPath>::visit_ts_type_query(visitor, self, __ast_path)
45861    }
45862
45863    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45864        &'ast self,
45865        visitor: &mut V,
45866        __ast_path: &mut AstNodePath<'r>,
45867    ) {
45868        match self {
45869            TsTypeQuery {
45870                span,
45871                expr_name,
45872                type_args,
45873            } => {
45874                {
45875                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQuery(
45876                        self,
45877                        self::fields::TsTypeQueryField::Span,
45878                    ));
45879                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45880                        span,
45881                        visitor,
45882                        &mut *__ast_path,
45883                    )
45884                };
45885                {
45886                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQuery(
45887                        self,
45888                        self::fields::TsTypeQueryField::ExprName,
45889                    ));
45890                    <TsTypeQueryExpr as VisitWithAstPath<V>>::visit_with_ast_path(
45891                        expr_name,
45892                        visitor,
45893                        &mut *__ast_path,
45894                    )
45895                };
45896                {
45897                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQuery(
45898                        self,
45899                        self::fields::TsTypeQueryField::TypeArgs,
45900                    ));
45901                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_args , visitor , & mut * __ast_path)
45902                };
45903            }
45904        }
45905    }
45906}
45907#[cfg(any(docsrs, feature = "path"))]
45908#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45909impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeQueryExpr {
45910    #[doc = "Calls [VisitAstPath`::visit_ts_type_query_expr`] with `self`."]
45911    fn visit_with_ast_path<'ast: 'r, 'r>(
45912        &'ast self,
45913        visitor: &mut V,
45914        __ast_path: &mut AstNodePath<'r>,
45915    ) {
45916        <V as VisitAstPath>::visit_ts_type_query_expr(visitor, self, __ast_path)
45917    }
45918
45919    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45920        &'ast self,
45921        visitor: &mut V,
45922        __ast_path: &mut AstNodePath<'r>,
45923    ) {
45924        match self {
45925            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
45926                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQueryExpr(
45927                    self,
45928                    self::fields::TsTypeQueryExprField::TsEntityName,
45929                ));
45930                <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
45931                    _field_0,
45932                    visitor,
45933                    &mut *__ast_path,
45934                );
45935            }
45936            TsTypeQueryExpr::Import { 0: _field_0 } => {
45937                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeQueryExpr(
45938                    self,
45939                    self::fields::TsTypeQueryExprField::Import,
45940                ));
45941                <TsImportType as VisitWithAstPath<V>>::visit_with_ast_path(
45942                    _field_0,
45943                    visitor,
45944                    &mut *__ast_path,
45945                );
45946            }
45947        }
45948    }
45949}
45950#[cfg(any(docsrs, feature = "path"))]
45951#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
45952impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsTypeRef {
45953    #[doc = "Calls [VisitAstPath`::visit_ts_type_ref`] with `self`."]
45954    fn visit_with_ast_path<'ast: 'r, 'r>(
45955        &'ast self,
45956        visitor: &mut V,
45957        __ast_path: &mut AstNodePath<'r>,
45958    ) {
45959        <V as VisitAstPath>::visit_ts_type_ref(visitor, self, __ast_path)
45960    }
45961
45962    fn visit_children_with_ast_path<'ast: 'r, 'r>(
45963        &'ast self,
45964        visitor: &mut V,
45965        __ast_path: &mut AstNodePath<'r>,
45966    ) {
45967        match self {
45968            TsTypeRef {
45969                span,
45970                type_name,
45971                type_params,
45972            } => {
45973                {
45974                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeRef(
45975                        self,
45976                        self::fields::TsTypeRefField::Span,
45977                    ));
45978                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
45979                        span,
45980                        visitor,
45981                        &mut *__ast_path,
45982                    )
45983                };
45984                {
45985                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeRef(
45986                        self,
45987                        self::fields::TsTypeRefField::TypeName,
45988                    ));
45989                    <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
45990                        type_name,
45991                        visitor,
45992                        &mut *__ast_path,
45993                    )
45994                };
45995                {
45996                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsTypeRef(
45997                        self,
45998                        self::fields::TsTypeRefField::TypeParams,
45999                    ));
46000                    < Option < Box < TsTypeParamInstantiation > > as VisitWithAstPath < V > > :: visit_with_ast_path (type_params , visitor , & mut * __ast_path)
46001                };
46002            }
46003        }
46004    }
46005}
46006#[cfg(any(docsrs, feature = "path"))]
46007#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46008impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsUnionOrIntersectionType {
46009    #[doc = "Calls [VisitAstPath`::visit_ts_union_or_intersection_type`] with `self`."]
46010    fn visit_with_ast_path<'ast: 'r, 'r>(
46011        &'ast self,
46012        visitor: &mut V,
46013        __ast_path: &mut AstNodePath<'r>,
46014    ) {
46015        <V as VisitAstPath>::visit_ts_union_or_intersection_type(visitor, self, __ast_path)
46016    }
46017
46018    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46019        &'ast self,
46020        visitor: &mut V,
46021        __ast_path: &mut AstNodePath<'r>,
46022    ) {
46023        match self {
46024            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
46025                let mut __ast_path =
46026                    __ast_path.with_guard(AstParentNodeRef::TsUnionOrIntersectionType(
46027                        self,
46028                        self::fields::TsUnionOrIntersectionTypeField::TsUnionType,
46029                    ));
46030                <TsUnionType as VisitWithAstPath<V>>::visit_with_ast_path(
46031                    _field_0,
46032                    visitor,
46033                    &mut *__ast_path,
46034                );
46035            }
46036            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
46037                let mut __ast_path =
46038                    __ast_path.with_guard(AstParentNodeRef::TsUnionOrIntersectionType(
46039                        self,
46040                        self::fields::TsUnionOrIntersectionTypeField::TsIntersectionType,
46041                    ));
46042                <TsIntersectionType as VisitWithAstPath<V>>::visit_with_ast_path(
46043                    _field_0,
46044                    visitor,
46045                    &mut *__ast_path,
46046                );
46047            }
46048        }
46049    }
46050}
46051#[cfg(any(docsrs, feature = "path"))]
46052#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46053impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for TsUnionType {
46054    #[doc = "Calls [VisitAstPath`::visit_ts_union_type`] with `self`."]
46055    fn visit_with_ast_path<'ast: 'r, 'r>(
46056        &'ast self,
46057        visitor: &mut V,
46058        __ast_path: &mut AstNodePath<'r>,
46059    ) {
46060        <V as VisitAstPath>::visit_ts_union_type(visitor, self, __ast_path)
46061    }
46062
46063    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46064        &'ast self,
46065        visitor: &mut V,
46066        __ast_path: &mut AstNodePath<'r>,
46067    ) {
46068        match self {
46069            TsUnionType { span, types } => {
46070                {
46071                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsUnionType(
46072                        self,
46073                        self::fields::TsUnionTypeField::Span,
46074                    ));
46075                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46076                        span,
46077                        visitor,
46078                        &mut *__ast_path,
46079                    )
46080                };
46081                {
46082                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::TsUnionType(
46083                        self,
46084                        self::fields::TsUnionTypeField::Types(usize::MAX),
46085                    ));
46086                    <Vec<Box<TsType>> as VisitWithAstPath<V>>::visit_with_ast_path(
46087                        types,
46088                        visitor,
46089                        &mut *__ast_path,
46090                    )
46091                };
46092            }
46093        }
46094    }
46095}
46096#[cfg(any(docsrs, feature = "path"))]
46097#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46098impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UnaryExpr {
46099    #[doc = "Calls [VisitAstPath`::visit_unary_expr`] with `self`."]
46100    fn visit_with_ast_path<'ast: 'r, 'r>(
46101        &'ast self,
46102        visitor: &mut V,
46103        __ast_path: &mut AstNodePath<'r>,
46104    ) {
46105        <V as VisitAstPath>::visit_unary_expr(visitor, self, __ast_path)
46106    }
46107
46108    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46109        &'ast self,
46110        visitor: &mut V,
46111        __ast_path: &mut AstNodePath<'r>,
46112    ) {
46113        match self {
46114            UnaryExpr { span, op, arg } => {
46115                {
46116                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UnaryExpr(
46117                        self,
46118                        self::fields::UnaryExprField::Span,
46119                    ));
46120                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46121                        span,
46122                        visitor,
46123                        &mut *__ast_path,
46124                    )
46125                };
46126                {
46127                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UnaryExpr(
46128                        self,
46129                        self::fields::UnaryExprField::Op,
46130                    ));
46131                    <UnaryOp as VisitWithAstPath<V>>::visit_with_ast_path(
46132                        op,
46133                        visitor,
46134                        &mut *__ast_path,
46135                    )
46136                };
46137                {
46138                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UnaryExpr(
46139                        self,
46140                        self::fields::UnaryExprField::Arg,
46141                    ));
46142                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46143                        arg,
46144                        visitor,
46145                        &mut *__ast_path,
46146                    )
46147                };
46148            }
46149        }
46150    }
46151}
46152#[cfg(any(docsrs, feature = "path"))]
46153#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46154impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UnaryOp {
46155    #[doc = "Calls [VisitAstPath`::visit_unary_op`] with `self`."]
46156    fn visit_with_ast_path<'ast: 'r, 'r>(
46157        &'ast self,
46158        visitor: &mut V,
46159        __ast_path: &mut AstNodePath<'r>,
46160    ) {
46161        <V as VisitAstPath>::visit_unary_op(visitor, self, __ast_path)
46162    }
46163
46164    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46165        &'ast self,
46166        visitor: &mut V,
46167        __ast_path: &mut AstNodePath<'r>,
46168    ) {
46169        match self {
46170            UnaryOp::Minus => {}
46171            UnaryOp::Plus => {}
46172            UnaryOp::Bang => {}
46173            UnaryOp::Tilde => {}
46174            UnaryOp::TypeOf => {}
46175            UnaryOp::Void => {}
46176            UnaryOp::Delete => {}
46177        }
46178    }
46179}
46180#[cfg(any(docsrs, feature = "path"))]
46181#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46182impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UpdateExpr {
46183    #[doc = "Calls [VisitAstPath`::visit_update_expr`] with `self`."]
46184    fn visit_with_ast_path<'ast: 'r, 'r>(
46185        &'ast self,
46186        visitor: &mut V,
46187        __ast_path: &mut AstNodePath<'r>,
46188    ) {
46189        <V as VisitAstPath>::visit_update_expr(visitor, self, __ast_path)
46190    }
46191
46192    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46193        &'ast self,
46194        visitor: &mut V,
46195        __ast_path: &mut AstNodePath<'r>,
46196    ) {
46197        match self {
46198            UpdateExpr {
46199                span,
46200                op,
46201                prefix,
46202                arg,
46203            } => {
46204                {
46205                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UpdateExpr(
46206                        self,
46207                        self::fields::UpdateExprField::Span,
46208                    ));
46209                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46210                        span,
46211                        visitor,
46212                        &mut *__ast_path,
46213                    )
46214                };
46215                {
46216                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UpdateExpr(
46217                        self,
46218                        self::fields::UpdateExprField::Op,
46219                    ));
46220                    <UpdateOp as VisitWithAstPath<V>>::visit_with_ast_path(
46221                        op,
46222                        visitor,
46223                        &mut *__ast_path,
46224                    )
46225                };
46226                {
46227                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UpdateExpr(
46228                        self,
46229                        self::fields::UpdateExprField::Arg,
46230                    ));
46231                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46232                        arg,
46233                        visitor,
46234                        &mut *__ast_path,
46235                    )
46236                };
46237            }
46238        }
46239    }
46240}
46241#[cfg(any(docsrs, feature = "path"))]
46242#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46243impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UpdateOp {
46244    #[doc = "Calls [VisitAstPath`::visit_update_op`] with `self`."]
46245    fn visit_with_ast_path<'ast: 'r, 'r>(
46246        &'ast self,
46247        visitor: &mut V,
46248        __ast_path: &mut AstNodePath<'r>,
46249    ) {
46250        <V as VisitAstPath>::visit_update_op(visitor, self, __ast_path)
46251    }
46252
46253    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46254        &'ast self,
46255        visitor: &mut V,
46256        __ast_path: &mut AstNodePath<'r>,
46257    ) {
46258        match self {
46259            UpdateOp::PlusPlus => {}
46260            UpdateOp::MinusMinus => {}
46261        }
46262    }
46263}
46264#[cfg(any(docsrs, feature = "path"))]
46265#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46266impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for UsingDecl {
46267    #[doc = "Calls [VisitAstPath`::visit_using_decl`] with `self`."]
46268    fn visit_with_ast_path<'ast: 'r, 'r>(
46269        &'ast self,
46270        visitor: &mut V,
46271        __ast_path: &mut AstNodePath<'r>,
46272    ) {
46273        <V as VisitAstPath>::visit_using_decl(visitor, self, __ast_path)
46274    }
46275
46276    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46277        &'ast self,
46278        visitor: &mut V,
46279        __ast_path: &mut AstNodePath<'r>,
46280    ) {
46281        match self {
46282            UsingDecl {
46283                span,
46284                is_await,
46285                decls,
46286            } => {
46287                {
46288                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UsingDecl(
46289                        self,
46290                        self::fields::UsingDeclField::Span,
46291                    ));
46292                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46293                        span,
46294                        visitor,
46295                        &mut *__ast_path,
46296                    )
46297                };
46298                {
46299                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::UsingDecl(
46300                        self,
46301                        self::fields::UsingDeclField::Decls(usize::MAX),
46302                    ));
46303                    <Vec<VarDeclarator> as VisitWithAstPath<V>>::visit_with_ast_path(
46304                        decls,
46305                        visitor,
46306                        &mut *__ast_path,
46307                    )
46308                };
46309            }
46310        }
46311    }
46312}
46313#[cfg(any(docsrs, feature = "path"))]
46314#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46315impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDecl {
46316    #[doc = "Calls [VisitAstPath`::visit_var_decl`] with `self`."]
46317    fn visit_with_ast_path<'ast: 'r, 'r>(
46318        &'ast self,
46319        visitor: &mut V,
46320        __ast_path: &mut AstNodePath<'r>,
46321    ) {
46322        <V as VisitAstPath>::visit_var_decl(visitor, self, __ast_path)
46323    }
46324
46325    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46326        &'ast self,
46327        visitor: &mut V,
46328        __ast_path: &mut AstNodePath<'r>,
46329    ) {
46330        match self {
46331            VarDecl {
46332                span,
46333                ctxt,
46334                kind,
46335                declare,
46336                decls,
46337            } => {
46338                {
46339                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46340                        self,
46341                        self::fields::VarDeclField::Span,
46342                    ));
46343                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46344                        span,
46345                        visitor,
46346                        &mut *__ast_path,
46347                    )
46348                };
46349                {
46350                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46351                        self,
46352                        self::fields::VarDeclField::Ctxt,
46353                    ));
46354                    <swc_common::SyntaxContext as VisitWithAstPath<V>>::visit_with_ast_path(
46355                        ctxt,
46356                        visitor,
46357                        &mut *__ast_path,
46358                    )
46359                };
46360                {
46361                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46362                        self,
46363                        self::fields::VarDeclField::Kind,
46364                    ));
46365                    <VarDeclKind as VisitWithAstPath<V>>::visit_with_ast_path(
46366                        kind,
46367                        visitor,
46368                        &mut *__ast_path,
46369                    )
46370                };
46371                {
46372                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDecl(
46373                        self,
46374                        self::fields::VarDeclField::Decls(usize::MAX),
46375                    ));
46376                    <Vec<VarDeclarator> as VisitWithAstPath<V>>::visit_with_ast_path(
46377                        decls,
46378                        visitor,
46379                        &mut *__ast_path,
46380                    )
46381                };
46382            }
46383        }
46384    }
46385}
46386#[cfg(any(docsrs, feature = "path"))]
46387#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46388impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDeclKind {
46389    #[doc = "Calls [VisitAstPath`::visit_var_decl_kind`] with `self`."]
46390    fn visit_with_ast_path<'ast: 'r, 'r>(
46391        &'ast self,
46392        visitor: &mut V,
46393        __ast_path: &mut AstNodePath<'r>,
46394    ) {
46395        <V as VisitAstPath>::visit_var_decl_kind(visitor, self, __ast_path)
46396    }
46397
46398    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46399        &'ast self,
46400        visitor: &mut V,
46401        __ast_path: &mut AstNodePath<'r>,
46402    ) {
46403        match self {
46404            VarDeclKind::Var => {}
46405            VarDeclKind::Let => {}
46406            VarDeclKind::Const => {}
46407        }
46408    }
46409}
46410#[cfg(any(docsrs, feature = "path"))]
46411#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46412impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDeclOrExpr {
46413    #[doc = "Calls [VisitAstPath`::visit_var_decl_or_expr`] with `self`."]
46414    fn visit_with_ast_path<'ast: 'r, 'r>(
46415        &'ast self,
46416        visitor: &mut V,
46417        __ast_path: &mut AstNodePath<'r>,
46418    ) {
46419        <V as VisitAstPath>::visit_var_decl_or_expr(visitor, self, __ast_path)
46420    }
46421
46422    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46423        &'ast self,
46424        visitor: &mut V,
46425        __ast_path: &mut AstNodePath<'r>,
46426    ) {
46427        match self {
46428            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
46429                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclOrExpr(
46430                    self,
46431                    self::fields::VarDeclOrExprField::VarDecl,
46432                ));
46433                <Box<VarDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
46434                    _field_0,
46435                    visitor,
46436                    &mut *__ast_path,
46437                );
46438            }
46439            VarDeclOrExpr::Expr { 0: _field_0 } => {
46440                let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclOrExpr(
46441                    self,
46442                    self::fields::VarDeclOrExprField::Expr,
46443                ));
46444                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46445                    _field_0,
46446                    visitor,
46447                    &mut *__ast_path,
46448                );
46449            }
46450        }
46451    }
46452}
46453#[cfg(any(docsrs, feature = "path"))]
46454#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46455impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for VarDeclarator {
46456    #[doc = "Calls [VisitAstPath`::visit_var_declarator`] with `self`."]
46457    fn visit_with_ast_path<'ast: 'r, 'r>(
46458        &'ast self,
46459        visitor: &mut V,
46460        __ast_path: &mut AstNodePath<'r>,
46461    ) {
46462        <V as VisitAstPath>::visit_var_declarator(visitor, self, __ast_path)
46463    }
46464
46465    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46466        &'ast self,
46467        visitor: &mut V,
46468        __ast_path: &mut AstNodePath<'r>,
46469    ) {
46470        match self {
46471            VarDeclarator {
46472                span,
46473                name,
46474                init,
46475                definite,
46476            } => {
46477                {
46478                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclarator(
46479                        self,
46480                        self::fields::VarDeclaratorField::Span,
46481                    ));
46482                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46483                        span,
46484                        visitor,
46485                        &mut *__ast_path,
46486                    )
46487                };
46488                {
46489                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclarator(
46490                        self,
46491                        self::fields::VarDeclaratorField::Name,
46492                    ));
46493                    <Pat as VisitWithAstPath<V>>::visit_with_ast_path(
46494                        name,
46495                        visitor,
46496                        &mut *__ast_path,
46497                    )
46498                };
46499                {
46500                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::VarDeclarator(
46501                        self,
46502                        self::fields::VarDeclaratorField::Init,
46503                    ));
46504                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
46505                        init,
46506                        visitor,
46507                        &mut *__ast_path,
46508                    )
46509                };
46510            }
46511        }
46512    }
46513}
46514#[cfg(any(docsrs, feature = "path"))]
46515#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46516impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for WhileStmt {
46517    #[doc = "Calls [VisitAstPath`::visit_while_stmt`] with `self`."]
46518    fn visit_with_ast_path<'ast: 'r, 'r>(
46519        &'ast self,
46520        visitor: &mut V,
46521        __ast_path: &mut AstNodePath<'r>,
46522    ) {
46523        <V as VisitAstPath>::visit_while_stmt(visitor, self, __ast_path)
46524    }
46525
46526    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46527        &'ast self,
46528        visitor: &mut V,
46529        __ast_path: &mut AstNodePath<'r>,
46530    ) {
46531        match self {
46532            WhileStmt { span, test, body } => {
46533                {
46534                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WhileStmt(
46535                        self,
46536                        self::fields::WhileStmtField::Span,
46537                    ));
46538                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46539                        span,
46540                        visitor,
46541                        &mut *__ast_path,
46542                    )
46543                };
46544                {
46545                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WhileStmt(
46546                        self,
46547                        self::fields::WhileStmtField::Test,
46548                    ));
46549                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46550                        test,
46551                        visitor,
46552                        &mut *__ast_path,
46553                    )
46554                };
46555                {
46556                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WhileStmt(
46557                        self,
46558                        self::fields::WhileStmtField::Body,
46559                    ));
46560                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
46561                        body,
46562                        visitor,
46563                        &mut *__ast_path,
46564                    )
46565                };
46566            }
46567        }
46568    }
46569}
46570#[cfg(any(docsrs, feature = "path"))]
46571#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46572impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for WithStmt {
46573    #[doc = "Calls [VisitAstPath`::visit_with_stmt`] with `self`."]
46574    fn visit_with_ast_path<'ast: 'r, 'r>(
46575        &'ast self,
46576        visitor: &mut V,
46577        __ast_path: &mut AstNodePath<'r>,
46578    ) {
46579        <V as VisitAstPath>::visit_with_stmt(visitor, self, __ast_path)
46580    }
46581
46582    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46583        &'ast self,
46584        visitor: &mut V,
46585        __ast_path: &mut AstNodePath<'r>,
46586    ) {
46587        match self {
46588            WithStmt { span, obj, body } => {
46589                {
46590                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WithStmt(
46591                        self,
46592                        self::fields::WithStmtField::Span,
46593                    ));
46594                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46595                        span,
46596                        visitor,
46597                        &mut *__ast_path,
46598                    )
46599                };
46600                {
46601                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WithStmt(
46602                        self,
46603                        self::fields::WithStmtField::Obj,
46604                    ));
46605                    <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(
46606                        obj,
46607                        visitor,
46608                        &mut *__ast_path,
46609                    )
46610                };
46611                {
46612                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::WithStmt(
46613                        self,
46614                        self::fields::WithStmtField::Body,
46615                    ));
46616                    <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(
46617                        body,
46618                        visitor,
46619                        &mut *__ast_path,
46620                    )
46621                };
46622            }
46623        }
46624    }
46625}
46626#[cfg(any(docsrs, feature = "path"))]
46627#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46628impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for YieldExpr {
46629    #[doc = "Calls [VisitAstPath`::visit_yield_expr`] with `self`."]
46630    fn visit_with_ast_path<'ast: 'r, 'r>(
46631        &'ast self,
46632        visitor: &mut V,
46633        __ast_path: &mut AstNodePath<'r>,
46634    ) {
46635        <V as VisitAstPath>::visit_yield_expr(visitor, self, __ast_path)
46636    }
46637
46638    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46639        &'ast self,
46640        visitor: &mut V,
46641        __ast_path: &mut AstNodePath<'r>,
46642    ) {
46643        match self {
46644            YieldExpr {
46645                span,
46646                arg,
46647                delegate,
46648            } => {
46649                {
46650                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::YieldExpr(
46651                        self,
46652                        self::fields::YieldExprField::Span,
46653                    ));
46654                    <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
46655                        span,
46656                        visitor,
46657                        &mut *__ast_path,
46658                    )
46659                };
46660                {
46661                    let mut __ast_path = __ast_path.with_guard(AstParentNodeRef::YieldExpr(
46662                        self,
46663                        self::fields::YieldExprField::Arg,
46664                    ));
46665                    <Option<Box<Expr>> as VisitWithAstPath<V>>::visit_with_ast_path(
46666                        arg,
46667                        visitor,
46668                        &mut *__ast_path,
46669                    )
46670                };
46671            }
46672        }
46673    }
46674}
46675#[cfg(any(docsrs, feature = "path"))]
46676#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46677impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for swc_atoms::Atom {
46678    #[doc = "Calls [VisitAstPath`::visit_atom`] with `self`. (Extra impl)"]
46679    #[inline]
46680    fn visit_with_ast_path<'ast: 'r, 'r>(
46681        &'ast self,
46682        visitor: &mut V,
46683        __ast_path: &mut AstNodePath<'r>,
46684    ) {
46685        <V as VisitAstPath>::visit_atom(visitor, self, __ast_path)
46686    }
46687
46688    #[inline]
46689    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46690        &'ast self,
46691        visitor: &mut V,
46692        __ast_path: &mut AstNodePath<'r>,
46693    ) {
46694        {}
46695    }
46696}
46697#[cfg(any(docsrs, feature = "path"))]
46698#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46699impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for BigIntValue {
46700    #[doc = "Calls [VisitAstPath`::visit_big_int_value`] with `self`. (Extra impl)"]
46701    #[inline]
46702    fn visit_with_ast_path<'ast: 'r, 'r>(
46703        &'ast self,
46704        visitor: &mut V,
46705        __ast_path: &mut AstNodePath<'r>,
46706    ) {
46707        <V as VisitAstPath>::visit_big_int_value(visitor, self, __ast_path)
46708    }
46709
46710    #[inline]
46711    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46712        &'ast self,
46713        visitor: &mut V,
46714        __ast_path: &mut AstNodePath<'r>,
46715    ) {
46716        {}
46717    }
46718}
46719#[cfg(any(docsrs, feature = "path"))]
46720#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46721impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ClassMember] {
46722    #[doc = "Calls [VisitAstPath`::visit_class_members`] with `self`. (Extra impl)"]
46723    #[inline]
46724    fn visit_with_ast_path<'ast: 'r, 'r>(
46725        &'ast self,
46726        visitor: &mut V,
46727        __ast_path: &mut AstNodePath<'r>,
46728    ) {
46729        <V as VisitAstPath>::visit_class_members(visitor, self, __ast_path)
46730    }
46731
46732    #[inline]
46733    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46734        &'ast self,
46735        visitor: &mut V,
46736        __ast_path: &mut AstNodePath<'r>,
46737    ) {
46738        self.iter().enumerate().for_each(|(__idx, item)| {
46739            let mut __ast_path = __ast_path.with_index_guard(__idx);
46740            <ClassMember as VisitWithAstPath<V>>::visit_with_ast_path(
46741                item,
46742                visitor,
46743                &mut *__ast_path,
46744            )
46745        })
46746    }
46747}
46748#[cfg(any(docsrs, feature = "path"))]
46749#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46750impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Decorator] {
46751    #[doc = "Calls [VisitAstPath`::visit_decorators`] with `self`. (Extra impl)"]
46752    #[inline]
46753    fn visit_with_ast_path<'ast: 'r, 'r>(
46754        &'ast self,
46755        visitor: &mut V,
46756        __ast_path: &mut AstNodePath<'r>,
46757    ) {
46758        <V as VisitAstPath>::visit_decorators(visitor, self, __ast_path)
46759    }
46760
46761    #[inline]
46762    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46763        &'ast self,
46764        visitor: &mut V,
46765        __ast_path: &mut AstNodePath<'r>,
46766    ) {
46767        self.iter().enumerate().for_each(|(__idx, item)| {
46768            let mut __ast_path = __ast_path.with_index_guard(__idx);
46769            <Decorator as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
46770        })
46771    }
46772}
46773#[cfg(any(docsrs, feature = "path"))]
46774#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46775impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ExportSpecifier] {
46776    #[doc = "Calls [VisitAstPath`::visit_export_specifiers`] with `self`. (Extra impl)"]
46777    #[inline]
46778    fn visit_with_ast_path<'ast: 'r, 'r>(
46779        &'ast self,
46780        visitor: &mut V,
46781        __ast_path: &mut AstNodePath<'r>,
46782    ) {
46783        <V as VisitAstPath>::visit_export_specifiers(visitor, self, __ast_path)
46784    }
46785
46786    #[inline]
46787    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46788        &'ast self,
46789        visitor: &mut V,
46790        __ast_path: &mut AstNodePath<'r>,
46791    ) {
46792        self.iter().enumerate().for_each(|(__idx, item)| {
46793            let mut __ast_path = __ast_path.with_index_guard(__idx);
46794            <ExportSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
46795                item,
46796                visitor,
46797                &mut *__ast_path,
46798            )
46799        })
46800    }
46801}
46802#[cfg(any(docsrs, feature = "path"))]
46803#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46804impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ExprOrSpread] {
46805    #[doc = "Calls [VisitAstPath`::visit_expr_or_spreads`] with `self`. (Extra impl)"]
46806    #[inline]
46807    fn visit_with_ast_path<'ast: 'r, 'r>(
46808        &'ast self,
46809        visitor: &mut V,
46810        __ast_path: &mut AstNodePath<'r>,
46811    ) {
46812        <V as VisitAstPath>::visit_expr_or_spreads(visitor, self, __ast_path)
46813    }
46814
46815    #[inline]
46816    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46817        &'ast self,
46818        visitor: &mut V,
46819        __ast_path: &mut AstNodePath<'r>,
46820    ) {
46821        self.iter().enumerate().for_each(|(__idx, item)| {
46822            let mut __ast_path = __ast_path.with_index_guard(__idx);
46823            <ExprOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
46824                item,
46825                visitor,
46826                &mut *__ast_path,
46827            )
46828        })
46829    }
46830}
46831#[cfg(any(docsrs, feature = "path"))]
46832#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46833impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Box<Expr>] {
46834    #[doc = "Calls [VisitAstPath`::visit_exprs`] with `self`. (Extra impl)"]
46835    #[inline]
46836    fn visit_with_ast_path<'ast: 'r, 'r>(
46837        &'ast self,
46838        visitor: &mut V,
46839        __ast_path: &mut AstNodePath<'r>,
46840    ) {
46841        <V as VisitAstPath>::visit_exprs(visitor, self, __ast_path)
46842    }
46843
46844    #[inline]
46845    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46846        &'ast self,
46847        visitor: &mut V,
46848        __ast_path: &mut AstNodePath<'r>,
46849    ) {
46850        self.iter().enumerate().for_each(|(__idx, item)| {
46851            let mut __ast_path = __ast_path.with_index_guard(__idx);
46852            <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
46853        })
46854    }
46855}
46856#[cfg(any(docsrs, feature = "path"))]
46857#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46858impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ImportSpecifier] {
46859    #[doc = "Calls [VisitAstPath`::visit_import_specifiers`] with `self`. (Extra impl)"]
46860    #[inline]
46861    fn visit_with_ast_path<'ast: 'r, 'r>(
46862        &'ast self,
46863        visitor: &mut V,
46864        __ast_path: &mut AstNodePath<'r>,
46865    ) {
46866        <V as VisitAstPath>::visit_import_specifiers(visitor, self, __ast_path)
46867    }
46868
46869    #[inline]
46870    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46871        &'ast self,
46872        visitor: &mut V,
46873        __ast_path: &mut AstNodePath<'r>,
46874    ) {
46875        self.iter().enumerate().for_each(|(__idx, item)| {
46876            let mut __ast_path = __ast_path.with_index_guard(__idx);
46877            <ImportSpecifier as VisitWithAstPath<V>>::visit_with_ast_path(
46878                item,
46879                visitor,
46880                &mut *__ast_path,
46881            )
46882        })
46883    }
46884}
46885#[cfg(any(docsrs, feature = "path"))]
46886#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46887impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ImportWithItem] {
46888    #[doc = "Calls [VisitAstPath`::visit_import_with_items`] with `self`. (Extra impl)"]
46889    #[inline]
46890    fn visit_with_ast_path<'ast: 'r, 'r>(
46891        &'ast self,
46892        visitor: &mut V,
46893        __ast_path: &mut AstNodePath<'r>,
46894    ) {
46895        <V as VisitAstPath>::visit_import_with_items(visitor, self, __ast_path)
46896    }
46897
46898    #[inline]
46899    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46900        &'ast self,
46901        visitor: &mut V,
46902        __ast_path: &mut AstNodePath<'r>,
46903    ) {
46904        self.iter().enumerate().for_each(|(__idx, item)| {
46905            let mut __ast_path = __ast_path.with_index_guard(__idx);
46906            <ImportWithItem as VisitWithAstPath<V>>::visit_with_ast_path(
46907                item,
46908                visitor,
46909                &mut *__ast_path,
46910            )
46911        })
46912    }
46913}
46914#[cfg(any(docsrs, feature = "path"))]
46915#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46916impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [JSXAttrOrSpread] {
46917    #[doc = "Calls [VisitAstPath`::visit_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
46918    #[inline]
46919    fn visit_with_ast_path<'ast: 'r, 'r>(
46920        &'ast self,
46921        visitor: &mut V,
46922        __ast_path: &mut AstNodePath<'r>,
46923    ) {
46924        <V as VisitAstPath>::visit_jsx_attr_or_spreads(visitor, self, __ast_path)
46925    }
46926
46927    #[inline]
46928    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46929        &'ast self,
46930        visitor: &mut V,
46931        __ast_path: &mut AstNodePath<'r>,
46932    ) {
46933        self.iter().enumerate().for_each(|(__idx, item)| {
46934            let mut __ast_path = __ast_path.with_index_guard(__idx);
46935            <JSXAttrOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
46936                item,
46937                visitor,
46938                &mut *__ast_path,
46939            )
46940        })
46941    }
46942}
46943#[cfg(any(docsrs, feature = "path"))]
46944#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46945impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [JSXElementChild] {
46946    #[doc = "Calls [VisitAstPath`::visit_jsx_element_childs`] with `self`. (Extra impl)"]
46947    #[inline]
46948    fn visit_with_ast_path<'ast: 'r, 'r>(
46949        &'ast self,
46950        visitor: &mut V,
46951        __ast_path: &mut AstNodePath<'r>,
46952    ) {
46953        <V as VisitAstPath>::visit_jsx_element_childs(visitor, self, __ast_path)
46954    }
46955
46956    #[inline]
46957    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46958        &'ast self,
46959        visitor: &mut V,
46960        __ast_path: &mut AstNodePath<'r>,
46961    ) {
46962        self.iter().enumerate().for_each(|(__idx, item)| {
46963            let mut __ast_path = __ast_path.with_index_guard(__idx);
46964            <JSXElementChild as VisitWithAstPath<V>>::visit_with_ast_path(
46965                item,
46966                visitor,
46967                &mut *__ast_path,
46968            )
46969        })
46970    }
46971}
46972#[cfg(any(docsrs, feature = "path"))]
46973#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
46974impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ModuleItem] {
46975    #[doc = "Calls [VisitAstPath`::visit_module_items`] with `self`. (Extra impl)"]
46976    #[inline]
46977    fn visit_with_ast_path<'ast: 'r, 'r>(
46978        &'ast self,
46979        visitor: &mut V,
46980        __ast_path: &mut AstNodePath<'r>,
46981    ) {
46982        <V as VisitAstPath>::visit_module_items(visitor, self, __ast_path)
46983    }
46984
46985    #[inline]
46986    fn visit_children_with_ast_path<'ast: 'r, 'r>(
46987        &'ast self,
46988        visitor: &mut V,
46989        __ast_path: &mut AstNodePath<'r>,
46990    ) {
46991        self.iter().enumerate().for_each(|(__idx, item)| {
46992            let mut __ast_path = __ast_path.with_index_guard(__idx);
46993            <ModuleItem as VisitWithAstPath<V>>::visit_with_ast_path(
46994                item,
46995                visitor,
46996                &mut *__ast_path,
46997            )
46998        })
46999    }
47000}
47001#[cfg(any(docsrs, feature = "path"))]
47002#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47003impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ObjectPatProp] {
47004    #[doc = "Calls [VisitAstPath`::visit_object_pat_props`] with `self`. (Extra impl)"]
47005    #[inline]
47006    fn visit_with_ast_path<'ast: 'r, 'r>(
47007        &'ast self,
47008        visitor: &mut V,
47009        __ast_path: &mut AstNodePath<'r>,
47010    ) {
47011        <V as VisitAstPath>::visit_object_pat_props(visitor, self, __ast_path)
47012    }
47013
47014    #[inline]
47015    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47016        &'ast self,
47017        visitor: &mut V,
47018        __ast_path: &mut AstNodePath<'r>,
47019    ) {
47020        self.iter().enumerate().for_each(|(__idx, item)| {
47021            let mut __ast_path = __ast_path.with_index_guard(__idx);
47022            <ObjectPatProp as VisitWithAstPath<V>>::visit_with_ast_path(
47023                item,
47024                visitor,
47025                &mut *__ast_path,
47026            )
47027        })
47028    }
47029}
47030#[cfg(any(docsrs, feature = "path"))]
47031#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47032impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Accessibility> {
47033    #[doc = "Calls [VisitAstPath`::visit_opt_accessibility`] with `self`. (Extra impl)"]
47034    #[inline]
47035    fn visit_with_ast_path<'ast: 'r, 'r>(
47036        &'ast self,
47037        visitor: &mut V,
47038        __ast_path: &mut AstNodePath<'r>,
47039    ) {
47040        <V as VisitAstPath>::visit_opt_accessibility(visitor, self, __ast_path)
47041    }
47042
47043    #[inline]
47044    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47045        &'ast self,
47046        visitor: &mut V,
47047        __ast_path: &mut AstNodePath<'r>,
47048    ) {
47049        match self {
47050            Some(inner) => <Accessibility as VisitWithAstPath<V>>::visit_with_ast_path(
47051                inner, visitor, __ast_path,
47052            ),
47053            None => {}
47054        }
47055    }
47056}
47057#[cfg(any(docsrs, feature = "path"))]
47058#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47059impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<swc_atoms::Atom> {
47060    #[doc = "Calls [VisitAstPath`::visit_opt_atom`] with `self`. (Extra impl)"]
47061    #[inline]
47062    fn visit_with_ast_path<'ast: 'r, 'r>(
47063        &'ast self,
47064        visitor: &mut V,
47065        __ast_path: &mut AstNodePath<'r>,
47066    ) {
47067        <V as VisitAstPath>::visit_opt_atom(visitor, self, __ast_path)
47068    }
47069
47070    #[inline]
47071    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47072        &'ast self,
47073        visitor: &mut V,
47074        __ast_path: &mut AstNodePath<'r>,
47075    ) {
47076        match self {
47077            Some(inner) => <swc_atoms::Atom as VisitWithAstPath<V>>::visit_with_ast_path(
47078                inner, visitor, __ast_path,
47079            ),
47080            None => {}
47081        }
47082    }
47083}
47084#[cfg(any(docsrs, feature = "path"))]
47085#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47086impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<BlockStmt> {
47087    #[doc = "Calls [VisitAstPath`::visit_opt_block_stmt`] with `self`. (Extra impl)"]
47088    #[inline]
47089    fn visit_with_ast_path<'ast: 'r, 'r>(
47090        &'ast self,
47091        visitor: &mut V,
47092        __ast_path: &mut AstNodePath<'r>,
47093    ) {
47094        <V as VisitAstPath>::visit_opt_block_stmt(visitor, self, __ast_path)
47095    }
47096
47097    #[inline]
47098    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47099        &'ast self,
47100        visitor: &mut V,
47101        __ast_path: &mut AstNodePath<'r>,
47102    ) {
47103        match self {
47104            Some(inner) => {
47105                <BlockStmt as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47106            }
47107            None => {}
47108        }
47109    }
47110}
47111#[cfg(any(docsrs, feature = "path"))]
47112#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47113impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<CatchClause> {
47114    #[doc = "Calls [VisitAstPath`::visit_opt_catch_clause`] with `self`. (Extra impl)"]
47115    #[inline]
47116    fn visit_with_ast_path<'ast: 'r, 'r>(
47117        &'ast self,
47118        visitor: &mut V,
47119        __ast_path: &mut AstNodePath<'r>,
47120    ) {
47121        <V as VisitAstPath>::visit_opt_catch_clause(visitor, self, __ast_path)
47122    }
47123
47124    #[inline]
47125    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47126        &'ast self,
47127        visitor: &mut V,
47128        __ast_path: &mut AstNodePath<'r>,
47129    ) {
47130        match self {
47131            Some(inner) => <CatchClause as VisitWithAstPath<V>>::visit_with_ast_path(
47132                inner, visitor, __ast_path,
47133            ),
47134            None => {}
47135        }
47136    }
47137}
47138#[cfg(any(docsrs, feature = "path"))]
47139#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47140impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<Expr>> {
47141    #[doc = "Calls [VisitAstPath`::visit_opt_expr`] with `self`. (Extra impl)"]
47142    #[inline]
47143    fn visit_with_ast_path<'ast: 'r, 'r>(
47144        &'ast self,
47145        visitor: &mut V,
47146        __ast_path: &mut AstNodePath<'r>,
47147    ) {
47148        <V as VisitAstPath>::visit_opt_expr(visitor, self, __ast_path)
47149    }
47150
47151    #[inline]
47152    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47153        &'ast self,
47154        visitor: &mut V,
47155        __ast_path: &mut AstNodePath<'r>,
47156    ) {
47157        match self {
47158            Some(inner) => {
47159                <Box<Expr> as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47160            }
47161            None => {}
47162        }
47163    }
47164}
47165#[cfg(any(docsrs, feature = "path"))]
47166#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47167impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<ExprOrSpread> {
47168    #[doc = "Calls [VisitAstPath`::visit_opt_expr_or_spread`] with `self`. (Extra impl)"]
47169    #[inline]
47170    fn visit_with_ast_path<'ast: 'r, 'r>(
47171        &'ast self,
47172        visitor: &mut V,
47173        __ast_path: &mut AstNodePath<'r>,
47174    ) {
47175        <V as VisitAstPath>::visit_opt_expr_or_spread(visitor, self, __ast_path)
47176    }
47177
47178    #[inline]
47179    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47180        &'ast self,
47181        visitor: &mut V,
47182        __ast_path: &mut AstNodePath<'r>,
47183    ) {
47184        match self {
47185            Some(inner) => <ExprOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
47186                inner, visitor, __ast_path,
47187            ),
47188            None => {}
47189        }
47190    }
47191}
47192#[cfg(any(docsrs, feature = "path"))]
47193#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47194impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Vec<ExprOrSpread>> {
47195    #[doc = "Calls [VisitAstPath`::visit_opt_expr_or_spreads`] with `self`. (Extra impl)"]
47196    #[inline]
47197    fn visit_with_ast_path<'ast: 'r, 'r>(
47198        &'ast self,
47199        visitor: &mut V,
47200        __ast_path: &mut AstNodePath<'r>,
47201    ) {
47202        <V as VisitAstPath>::visit_opt_expr_or_spreads(visitor, self, __ast_path)
47203    }
47204
47205    #[inline]
47206    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47207        &'ast self,
47208        visitor: &mut V,
47209        __ast_path: &mut AstNodePath<'r>,
47210    ) {
47211        match self {
47212            Some(inner) => <Vec<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
47213                inner, visitor, __ast_path,
47214            ),
47215            None => {}
47216        }
47217    }
47218}
47219#[cfg(any(docsrs, feature = "path"))]
47220#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47221impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Ident> {
47222    #[doc = "Calls [VisitAstPath`::visit_opt_ident`] with `self`. (Extra impl)"]
47223    #[inline]
47224    fn visit_with_ast_path<'ast: 'r, 'r>(
47225        &'ast self,
47226        visitor: &mut V,
47227        __ast_path: &mut AstNodePath<'r>,
47228    ) {
47229        <V as VisitAstPath>::visit_opt_ident(visitor, self, __ast_path)
47230    }
47231
47232    #[inline]
47233    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47234        &'ast self,
47235        visitor: &mut V,
47236        __ast_path: &mut AstNodePath<'r>,
47237    ) {
47238        match self {
47239            Some(inner) => {
47240                <Ident as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47241            }
47242            None => {}
47243        }
47244    }
47245}
47246#[cfg(any(docsrs, feature = "path"))]
47247#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47248impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<JSXAttrValue> {
47249    #[doc = "Calls [VisitAstPath`::visit_opt_jsx_attr_value`] with `self`. (Extra impl)"]
47250    #[inline]
47251    fn visit_with_ast_path<'ast: 'r, 'r>(
47252        &'ast self,
47253        visitor: &mut V,
47254        __ast_path: &mut AstNodePath<'r>,
47255    ) {
47256        <V as VisitAstPath>::visit_opt_jsx_attr_value(visitor, self, __ast_path)
47257    }
47258
47259    #[inline]
47260    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47261        &'ast self,
47262        visitor: &mut V,
47263        __ast_path: &mut AstNodePath<'r>,
47264    ) {
47265        match self {
47266            Some(inner) => <JSXAttrValue as VisitWithAstPath<V>>::visit_with_ast_path(
47267                inner, visitor, __ast_path,
47268            ),
47269            None => {}
47270        }
47271    }
47272}
47273#[cfg(any(docsrs, feature = "path"))]
47274#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47275impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<JSXClosingElement> {
47276    #[doc = "Calls [VisitAstPath`::visit_opt_jsx_closing_element`] with `self`. (Extra impl)"]
47277    #[inline]
47278    fn visit_with_ast_path<'ast: 'r, 'r>(
47279        &'ast self,
47280        visitor: &mut V,
47281        __ast_path: &mut AstNodePath<'r>,
47282    ) {
47283        <V as VisitAstPath>::visit_opt_jsx_closing_element(visitor, self, __ast_path)
47284    }
47285
47286    #[inline]
47287    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47288        &'ast self,
47289        visitor: &mut V,
47290        __ast_path: &mut AstNodePath<'r>,
47291    ) {
47292        match self {
47293            Some(inner) => <JSXClosingElement as VisitWithAstPath<V>>::visit_with_ast_path(
47294                inner, visitor, __ast_path,
47295            ),
47296            None => {}
47297        }
47298    }
47299}
47300#[cfg(any(docsrs, feature = "path"))]
47301#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47302impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<ModuleExportName> {
47303    #[doc = "Calls [VisitAstPath`::visit_opt_module_export_name`] with `self`. (Extra impl)"]
47304    #[inline]
47305    fn visit_with_ast_path<'ast: 'r, 'r>(
47306        &'ast self,
47307        visitor: &mut V,
47308        __ast_path: &mut AstNodePath<'r>,
47309    ) {
47310        <V as VisitAstPath>::visit_opt_module_export_name(visitor, self, __ast_path)
47311    }
47312
47313    #[inline]
47314    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47315        &'ast self,
47316        visitor: &mut V,
47317        __ast_path: &mut AstNodePath<'r>,
47318    ) {
47319        match self {
47320            Some(inner) => <ModuleExportName as VisitWithAstPath<V>>::visit_with_ast_path(
47321                inner, visitor, __ast_path,
47322            ),
47323            None => {}
47324        }
47325    }
47326}
47327#[cfg(any(docsrs, feature = "path"))]
47328#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47329impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<ObjectLit>> {
47330    #[doc = "Calls [VisitAstPath`::visit_opt_object_lit`] with `self`. (Extra impl)"]
47331    #[inline]
47332    fn visit_with_ast_path<'ast: 'r, 'r>(
47333        &'ast self,
47334        visitor: &mut V,
47335        __ast_path: &mut AstNodePath<'r>,
47336    ) {
47337        <V as VisitAstPath>::visit_opt_object_lit(visitor, self, __ast_path)
47338    }
47339
47340    #[inline]
47341    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47342        &'ast self,
47343        visitor: &mut V,
47344        __ast_path: &mut AstNodePath<'r>,
47345    ) {
47346        match self {
47347            Some(inner) => <Box<ObjectLit> as VisitWithAstPath<V>>::visit_with_ast_path(
47348                inner, visitor, __ast_path,
47349            ),
47350            None => {}
47351        }
47352    }
47353}
47354#[cfg(any(docsrs, feature = "path"))]
47355#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47356impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Pat> {
47357    #[doc = "Calls [VisitAstPath`::visit_opt_pat`] with `self`. (Extra impl)"]
47358    #[inline]
47359    fn visit_with_ast_path<'ast: 'r, 'r>(
47360        &'ast self,
47361        visitor: &mut V,
47362        __ast_path: &mut AstNodePath<'r>,
47363    ) {
47364        <V as VisitAstPath>::visit_opt_pat(visitor, self, __ast_path)
47365    }
47366
47367    #[inline]
47368    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47369        &'ast self,
47370        visitor: &mut V,
47371        __ast_path: &mut AstNodePath<'r>,
47372    ) {
47373        match self {
47374            Some(inner) => {
47375                <Pat as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47376            }
47377            None => {}
47378        }
47379    }
47380}
47381#[cfg(any(docsrs, feature = "path"))]
47382#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47383impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<swc_common::Span> {
47384    #[doc = "Calls [VisitAstPath`::visit_opt_span`] with `self`. (Extra impl)"]
47385    #[inline]
47386    fn visit_with_ast_path<'ast: 'r, 'r>(
47387        &'ast self,
47388        visitor: &mut V,
47389        __ast_path: &mut AstNodePath<'r>,
47390    ) {
47391        <V as VisitAstPath>::visit_opt_span(visitor, self, __ast_path)
47392    }
47393
47394    #[inline]
47395    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47396        &'ast self,
47397        visitor: &mut V,
47398        __ast_path: &mut AstNodePath<'r>,
47399    ) {
47400        match self {
47401            Some(inner) => <swc_common::Span as VisitWithAstPath<V>>::visit_with_ast_path(
47402                inner, visitor, __ast_path,
47403            ),
47404            None => {}
47405        }
47406    }
47407}
47408#[cfg(any(docsrs, feature = "path"))]
47409#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47410impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<Stmt>> {
47411    #[doc = "Calls [VisitAstPath`::visit_opt_stmt`] with `self`. (Extra impl)"]
47412    #[inline]
47413    fn visit_with_ast_path<'ast: 'r, 'r>(
47414        &'ast self,
47415        visitor: &mut V,
47416        __ast_path: &mut AstNodePath<'r>,
47417    ) {
47418        <V as VisitAstPath>::visit_opt_stmt(visitor, self, __ast_path)
47419    }
47420
47421    #[inline]
47422    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47423        &'ast self,
47424        visitor: &mut V,
47425        __ast_path: &mut AstNodePath<'r>,
47426    ) {
47427        match self {
47428            Some(inner) => {
47429                <Box<Stmt> as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47430            }
47431            None => {}
47432        }
47433    }
47434}
47435#[cfg(any(docsrs, feature = "path"))]
47436#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47437impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<Str>> {
47438    #[doc = "Calls [VisitAstPath`::visit_opt_str`] with `self`. (Extra impl)"]
47439    #[inline]
47440    fn visit_with_ast_path<'ast: 'r, 'r>(
47441        &'ast self,
47442        visitor: &mut V,
47443        __ast_path: &mut AstNodePath<'r>,
47444    ) {
47445        <V as VisitAstPath>::visit_opt_str(visitor, self, __ast_path)
47446    }
47447
47448    #[inline]
47449    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47450        &'ast self,
47451        visitor: &mut V,
47452        __ast_path: &mut AstNodePath<'r>,
47453    ) {
47454        match self {
47455            Some(inner) => {
47456                <Box<Str> as VisitWithAstPath<V>>::visit_with_ast_path(inner, visitor, __ast_path)
47457            }
47458            None => {}
47459        }
47460    }
47461}
47462#[cfg(any(docsrs, feature = "path"))]
47463#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47464impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TruePlusMinus> {
47465    #[doc = "Calls [VisitAstPath`::visit_opt_true_plus_minus`] with `self`. (Extra impl)"]
47466    #[inline]
47467    fn visit_with_ast_path<'ast: 'r, 'r>(
47468        &'ast self,
47469        visitor: &mut V,
47470        __ast_path: &mut AstNodePath<'r>,
47471    ) {
47472        <V as VisitAstPath>::visit_opt_true_plus_minus(visitor, self, __ast_path)
47473    }
47474
47475    #[inline]
47476    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47477        &'ast self,
47478        visitor: &mut V,
47479        __ast_path: &mut AstNodePath<'r>,
47480    ) {
47481        match self {
47482            Some(inner) => <TruePlusMinus as VisitWithAstPath<V>>::visit_with_ast_path(
47483                inner, visitor, __ast_path,
47484            ),
47485            None => {}
47486        }
47487    }
47488}
47489#[cfg(any(docsrs, feature = "path"))]
47490#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47491impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TsEntityName> {
47492    #[doc = "Calls [VisitAstPath`::visit_opt_ts_entity_name`] with `self`. (Extra impl)"]
47493    #[inline]
47494    fn visit_with_ast_path<'ast: 'r, 'r>(
47495        &'ast self,
47496        visitor: &mut V,
47497        __ast_path: &mut AstNodePath<'r>,
47498    ) {
47499        <V as VisitAstPath>::visit_opt_ts_entity_name(visitor, self, __ast_path)
47500    }
47501
47502    #[inline]
47503    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47504        &'ast self,
47505        visitor: &mut V,
47506        __ast_path: &mut AstNodePath<'r>,
47507    ) {
47508        match self {
47509            Some(inner) => <TsEntityName as VisitWithAstPath<V>>::visit_with_ast_path(
47510                inner, visitor, __ast_path,
47511            ),
47512            None => {}
47513        }
47514    }
47515}
47516#[cfg(any(docsrs, feature = "path"))]
47517#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47518impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<TsNamespaceBody> {
47519    #[doc = "Calls [VisitAstPath`::visit_opt_ts_namespace_body`] with `self`. (Extra impl)"]
47520    #[inline]
47521    fn visit_with_ast_path<'ast: 'r, 'r>(
47522        &'ast self,
47523        visitor: &mut V,
47524        __ast_path: &mut AstNodePath<'r>,
47525    ) {
47526        <V as VisitAstPath>::visit_opt_ts_namespace_body(visitor, self, __ast_path)
47527    }
47528
47529    #[inline]
47530    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47531        &'ast self,
47532        visitor: &mut V,
47533        __ast_path: &mut AstNodePath<'r>,
47534    ) {
47535        match self {
47536            Some(inner) => <TsNamespaceBody as VisitWithAstPath<V>>::visit_with_ast_path(
47537                inner, visitor, __ast_path,
47538            ),
47539            None => {}
47540        }
47541    }
47542}
47543#[cfg(any(docsrs, feature = "path"))]
47544#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47545impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsType>> {
47546    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type`] with `self`. (Extra impl)"]
47547    #[inline]
47548    fn visit_with_ast_path<'ast: 'r, 'r>(
47549        &'ast self,
47550        visitor: &mut V,
47551        __ast_path: &mut AstNodePath<'r>,
47552    ) {
47553        <V as VisitAstPath>::visit_opt_ts_type(visitor, self, __ast_path)
47554    }
47555
47556    #[inline]
47557    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47558        &'ast self,
47559        visitor: &mut V,
47560        __ast_path: &mut AstNodePath<'r>,
47561    ) {
47562        match self {
47563            Some(inner) => <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
47564                inner, visitor, __ast_path,
47565            ),
47566            None => {}
47567        }
47568    }
47569}
47570#[cfg(any(docsrs, feature = "path"))]
47571#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47572impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsTypeAnn>> {
47573    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type_ann`] with `self`. (Extra impl)"]
47574    #[inline]
47575    fn visit_with_ast_path<'ast: 'r, 'r>(
47576        &'ast self,
47577        visitor: &mut V,
47578        __ast_path: &mut AstNodePath<'r>,
47579    ) {
47580        <V as VisitAstPath>::visit_opt_ts_type_ann(visitor, self, __ast_path)
47581    }
47582
47583    #[inline]
47584    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47585        &'ast self,
47586        visitor: &mut V,
47587        __ast_path: &mut AstNodePath<'r>,
47588    ) {
47589        match self {
47590            Some(inner) => <Box<TsTypeAnn> as VisitWithAstPath<V>>::visit_with_ast_path(
47591                inner, visitor, __ast_path,
47592            ),
47593            None => {}
47594        }
47595    }
47596}
47597#[cfg(any(docsrs, feature = "path"))]
47598#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47599impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsTypeParamDecl>> {
47600    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
47601    #[inline]
47602    fn visit_with_ast_path<'ast: 'r, 'r>(
47603        &'ast self,
47604        visitor: &mut V,
47605        __ast_path: &mut AstNodePath<'r>,
47606    ) {
47607        <V as VisitAstPath>::visit_opt_ts_type_param_decl(visitor, self, __ast_path)
47608    }
47609
47610    #[inline]
47611    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47612        &'ast self,
47613        visitor: &mut V,
47614        __ast_path: &mut AstNodePath<'r>,
47615    ) {
47616        match self {
47617            Some(inner) => <Box<TsTypeParamDecl> as VisitWithAstPath<V>>::visit_with_ast_path(
47618                inner, visitor, __ast_path,
47619            ),
47620            None => {}
47621        }
47622    }
47623}
47624#[cfg(any(docsrs, feature = "path"))]
47625#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47626impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<Box<TsTypeParamInstantiation>> {
47627    #[doc = "Calls [VisitAstPath`::visit_opt_ts_type_param_instantiation`] with `self`. (Extra \
47628             impl)"]
47629    #[inline]
47630    fn visit_with_ast_path<'ast: 'r, 'r>(
47631        &'ast self,
47632        visitor: &mut V,
47633        __ast_path: &mut AstNodePath<'r>,
47634    ) {
47635        <V as VisitAstPath>::visit_opt_ts_type_param_instantiation(visitor, self, __ast_path)
47636    }
47637
47638    #[inline]
47639    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47640        &'ast self,
47641        visitor: &mut V,
47642        __ast_path: &mut AstNodePath<'r>,
47643    ) {
47644        match self {
47645            Some(inner) => {
47646                <Box<TsTypeParamInstantiation> as VisitWithAstPath<V>>::visit_with_ast_path(
47647                    inner, visitor, __ast_path,
47648                )
47649            }
47650            None => {}
47651        }
47652    }
47653}
47654#[cfg(any(docsrs, feature = "path"))]
47655#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47656impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for Option<VarDeclOrExpr> {
47657    #[doc = "Calls [VisitAstPath`::visit_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
47658    #[inline]
47659    fn visit_with_ast_path<'ast: 'r, 'r>(
47660        &'ast self,
47661        visitor: &mut V,
47662        __ast_path: &mut AstNodePath<'r>,
47663    ) {
47664        <V as VisitAstPath>::visit_opt_var_decl_or_expr(visitor, self, __ast_path)
47665    }
47666
47667    #[inline]
47668    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47669        &'ast self,
47670        visitor: &mut V,
47671        __ast_path: &mut AstNodePath<'r>,
47672    ) {
47673        match self {
47674            Some(inner) => <VarDeclOrExpr as VisitWithAstPath<V>>::visit_with_ast_path(
47675                inner, visitor, __ast_path,
47676            ),
47677            None => {}
47678        }
47679    }
47680}
47681#[cfg(any(docsrs, feature = "path"))]
47682#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47683impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Option<ExprOrSpread>] {
47684    #[doc = "Calls [VisitAstPath`::visit_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
47685    #[inline]
47686    fn visit_with_ast_path<'ast: 'r, 'r>(
47687        &'ast self,
47688        visitor: &mut V,
47689        __ast_path: &mut AstNodePath<'r>,
47690    ) {
47691        <V as VisitAstPath>::visit_opt_vec_expr_or_spreads(visitor, self, __ast_path)
47692    }
47693
47694    #[inline]
47695    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47696        &'ast self,
47697        visitor: &mut V,
47698        __ast_path: &mut AstNodePath<'r>,
47699    ) {
47700        self.iter().enumerate().for_each(|(__idx, item)| {
47701            let mut __ast_path = __ast_path.with_index_guard(__idx);
47702            <Option<ExprOrSpread> as VisitWithAstPath<V>>::visit_with_ast_path(
47703                item,
47704                visitor,
47705                &mut *__ast_path,
47706            )
47707        })
47708    }
47709}
47710#[cfg(any(docsrs, feature = "path"))]
47711#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47712impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Option<Pat>] {
47713    #[doc = "Calls [VisitAstPath`::visit_opt_vec_pats`] with `self`. (Extra impl)"]
47714    #[inline]
47715    fn visit_with_ast_path<'ast: 'r, 'r>(
47716        &'ast self,
47717        visitor: &mut V,
47718        __ast_path: &mut AstNodePath<'r>,
47719    ) {
47720        <V as VisitAstPath>::visit_opt_vec_pats(visitor, self, __ast_path)
47721    }
47722
47723    #[inline]
47724    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47725        &'ast self,
47726        visitor: &mut V,
47727        __ast_path: &mut AstNodePath<'r>,
47728    ) {
47729        self.iter().enumerate().for_each(|(__idx, item)| {
47730            let mut __ast_path = __ast_path.with_index_guard(__idx);
47731            <Option<Pat> as VisitWithAstPath<V>>::visit_with_ast_path(
47732                item,
47733                visitor,
47734                &mut *__ast_path,
47735            )
47736        })
47737    }
47738}
47739#[cfg(any(docsrs, feature = "path"))]
47740#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47741impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [ParamOrTsParamProp] {
47742    #[doc = "Calls [VisitAstPath`::visit_param_or_ts_param_props`] with `self`. (Extra impl)"]
47743    #[inline]
47744    fn visit_with_ast_path<'ast: 'r, 'r>(
47745        &'ast self,
47746        visitor: &mut V,
47747        __ast_path: &mut AstNodePath<'r>,
47748    ) {
47749        <V as VisitAstPath>::visit_param_or_ts_param_props(visitor, self, __ast_path)
47750    }
47751
47752    #[inline]
47753    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47754        &'ast self,
47755        visitor: &mut V,
47756        __ast_path: &mut AstNodePath<'r>,
47757    ) {
47758        self.iter().enumerate().for_each(|(__idx, item)| {
47759            let mut __ast_path = __ast_path.with_index_guard(__idx);
47760            <ParamOrTsParamProp as VisitWithAstPath<V>>::visit_with_ast_path(
47761                item,
47762                visitor,
47763                &mut *__ast_path,
47764            )
47765        })
47766    }
47767}
47768#[cfg(any(docsrs, feature = "path"))]
47769#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47770impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Param] {
47771    #[doc = "Calls [VisitAstPath`::visit_params`] with `self`. (Extra impl)"]
47772    #[inline]
47773    fn visit_with_ast_path<'ast: 'r, 'r>(
47774        &'ast self,
47775        visitor: &mut V,
47776        __ast_path: &mut AstNodePath<'r>,
47777    ) {
47778        <V as VisitAstPath>::visit_params(visitor, self, __ast_path)
47779    }
47780
47781    #[inline]
47782    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47783        &'ast self,
47784        visitor: &mut V,
47785        __ast_path: &mut AstNodePath<'r>,
47786    ) {
47787        self.iter().enumerate().for_each(|(__idx, item)| {
47788            let mut __ast_path = __ast_path.with_index_guard(__idx);
47789            <Param as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
47790        })
47791    }
47792}
47793#[cfg(any(docsrs, feature = "path"))]
47794#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47795impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Pat] {
47796    #[doc = "Calls [VisitAstPath`::visit_pats`] with `self`. (Extra impl)"]
47797    #[inline]
47798    fn visit_with_ast_path<'ast: 'r, 'r>(
47799        &'ast self,
47800        visitor: &mut V,
47801        __ast_path: &mut AstNodePath<'r>,
47802    ) {
47803        <V as VisitAstPath>::visit_pats(visitor, self, __ast_path)
47804    }
47805
47806    #[inline]
47807    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47808        &'ast self,
47809        visitor: &mut V,
47810        __ast_path: &mut AstNodePath<'r>,
47811    ) {
47812        self.iter().enumerate().for_each(|(__idx, item)| {
47813            let mut __ast_path = __ast_path.with_index_guard(__idx);
47814            <Pat as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
47815        })
47816    }
47817}
47818#[cfg(any(docsrs, feature = "path"))]
47819#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47820impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [PropOrSpread] {
47821    #[doc = "Calls [VisitAstPath`::visit_prop_or_spreads`] with `self`. (Extra impl)"]
47822    #[inline]
47823    fn visit_with_ast_path<'ast: 'r, 'r>(
47824        &'ast self,
47825        visitor: &mut V,
47826        __ast_path: &mut AstNodePath<'r>,
47827    ) {
47828        <V as VisitAstPath>::visit_prop_or_spreads(visitor, self, __ast_path)
47829    }
47830
47831    #[inline]
47832    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47833        &'ast self,
47834        visitor: &mut V,
47835        __ast_path: &mut AstNodePath<'r>,
47836    ) {
47837        self.iter().enumerate().for_each(|(__idx, item)| {
47838            let mut __ast_path = __ast_path.with_index_guard(__idx);
47839            <PropOrSpread as VisitWithAstPath<V>>::visit_with_ast_path(
47840                item,
47841                visitor,
47842                &mut *__ast_path,
47843            )
47844        })
47845    }
47846}
47847#[cfg(any(docsrs, feature = "path"))]
47848#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47849impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for swc_common::Span {
47850    #[doc = "Calls [VisitAstPath`::visit_span`] with `self`. (Extra impl)"]
47851    #[inline]
47852    fn visit_with_ast_path<'ast: 'r, 'r>(
47853        &'ast self,
47854        visitor: &mut V,
47855        __ast_path: &mut AstNodePath<'r>,
47856    ) {
47857        <V as VisitAstPath>::visit_span(visitor, self, __ast_path)
47858    }
47859
47860    #[inline]
47861    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47862        &'ast self,
47863        visitor: &mut V,
47864        __ast_path: &mut AstNodePath<'r>,
47865    ) {
47866        {}
47867    }
47868}
47869#[cfg(any(docsrs, feature = "path"))]
47870#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47871impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Stmt] {
47872    #[doc = "Calls [VisitAstPath`::visit_stmts`] with `self`. (Extra impl)"]
47873    #[inline]
47874    fn visit_with_ast_path<'ast: 'r, 'r>(
47875        &'ast self,
47876        visitor: &mut V,
47877        __ast_path: &mut AstNodePath<'r>,
47878    ) {
47879        <V as VisitAstPath>::visit_stmts(visitor, self, __ast_path)
47880    }
47881
47882    #[inline]
47883    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47884        &'ast self,
47885        visitor: &mut V,
47886        __ast_path: &mut AstNodePath<'r>,
47887    ) {
47888        self.iter().enumerate().for_each(|(__idx, item)| {
47889            let mut __ast_path = __ast_path.with_index_guard(__idx);
47890            <Stmt as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
47891        })
47892    }
47893}
47894#[cfg(any(docsrs, feature = "path"))]
47895#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47896impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [SwitchCase] {
47897    #[doc = "Calls [VisitAstPath`::visit_switch_cases`] with `self`. (Extra impl)"]
47898    #[inline]
47899    fn visit_with_ast_path<'ast: 'r, 'r>(
47900        &'ast self,
47901        visitor: &mut V,
47902        __ast_path: &mut AstNodePath<'r>,
47903    ) {
47904        <V as VisitAstPath>::visit_switch_cases(visitor, self, __ast_path)
47905    }
47906
47907    #[inline]
47908    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47909        &'ast self,
47910        visitor: &mut V,
47911        __ast_path: &mut AstNodePath<'r>,
47912    ) {
47913        self.iter().enumerate().for_each(|(__idx, item)| {
47914            let mut __ast_path = __ast_path.with_index_guard(__idx);
47915            <SwitchCase as VisitWithAstPath<V>>::visit_with_ast_path(
47916                item,
47917                visitor,
47918                &mut *__ast_path,
47919            )
47920        })
47921    }
47922}
47923#[cfg(any(docsrs, feature = "path"))]
47924#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47925impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for swc_common::SyntaxContext {
47926    #[doc = "Calls [VisitAstPath`::visit_syntax_context`] with `self`. (Extra impl)"]
47927    #[inline]
47928    fn visit_with_ast_path<'ast: 'r, 'r>(
47929        &'ast self,
47930        visitor: &mut V,
47931        __ast_path: &mut AstNodePath<'r>,
47932    ) {
47933        <V as VisitAstPath>::visit_syntax_context(visitor, self, __ast_path)
47934    }
47935
47936    #[inline]
47937    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47938        &'ast self,
47939        visitor: &mut V,
47940        __ast_path: &mut AstNodePath<'r>,
47941    ) {
47942        {}
47943    }
47944}
47945#[cfg(any(docsrs, feature = "path"))]
47946#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47947impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TplElement] {
47948    #[doc = "Calls [VisitAstPath`::visit_tpl_elements`] with `self`. (Extra impl)"]
47949    #[inline]
47950    fn visit_with_ast_path<'ast: 'r, 'r>(
47951        &'ast self,
47952        visitor: &mut V,
47953        __ast_path: &mut AstNodePath<'r>,
47954    ) {
47955        <V as VisitAstPath>::visit_tpl_elements(visitor, self, __ast_path)
47956    }
47957
47958    #[inline]
47959    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47960        &'ast self,
47961        visitor: &mut V,
47962        __ast_path: &mut AstNodePath<'r>,
47963    ) {
47964        self.iter().enumerate().for_each(|(__idx, item)| {
47965            let mut __ast_path = __ast_path.with_index_guard(__idx);
47966            <TplElement as VisitWithAstPath<V>>::visit_with_ast_path(
47967                item,
47968                visitor,
47969                &mut *__ast_path,
47970            )
47971        })
47972    }
47973}
47974#[cfg(any(docsrs, feature = "path"))]
47975#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
47976impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsEnumMember] {
47977    #[doc = "Calls [VisitAstPath`::visit_ts_enum_members`] with `self`. (Extra impl)"]
47978    #[inline]
47979    fn visit_with_ast_path<'ast: 'r, 'r>(
47980        &'ast self,
47981        visitor: &mut V,
47982        __ast_path: &mut AstNodePath<'r>,
47983    ) {
47984        <V as VisitAstPath>::visit_ts_enum_members(visitor, self, __ast_path)
47985    }
47986
47987    #[inline]
47988    fn visit_children_with_ast_path<'ast: 'r, 'r>(
47989        &'ast self,
47990        visitor: &mut V,
47991        __ast_path: &mut AstNodePath<'r>,
47992    ) {
47993        self.iter().enumerate().for_each(|(__idx, item)| {
47994            let mut __ast_path = __ast_path.with_index_guard(__idx);
47995            <TsEnumMember as VisitWithAstPath<V>>::visit_with_ast_path(
47996                item,
47997                visitor,
47998                &mut *__ast_path,
47999            )
48000        })
48001    }
48002}
48003#[cfg(any(docsrs, feature = "path"))]
48004#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48005impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsExprWithTypeArgs] {
48006    #[doc = "Calls [VisitAstPath`::visit_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
48007    #[inline]
48008    fn visit_with_ast_path<'ast: 'r, 'r>(
48009        &'ast self,
48010        visitor: &mut V,
48011        __ast_path: &mut AstNodePath<'r>,
48012    ) {
48013        <V as VisitAstPath>::visit_ts_expr_with_type_argss(visitor, self, __ast_path)
48014    }
48015
48016    #[inline]
48017    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48018        &'ast self,
48019        visitor: &mut V,
48020        __ast_path: &mut AstNodePath<'r>,
48021    ) {
48022        self.iter().enumerate().for_each(|(__idx, item)| {
48023            let mut __ast_path = __ast_path.with_index_guard(__idx);
48024            <TsExprWithTypeArgs as VisitWithAstPath<V>>::visit_with_ast_path(
48025                item,
48026                visitor,
48027                &mut *__ast_path,
48028            )
48029        })
48030    }
48031}
48032#[cfg(any(docsrs, feature = "path"))]
48033#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48034impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsFnParam] {
48035    #[doc = "Calls [VisitAstPath`::visit_ts_fn_params`] with `self`. (Extra impl)"]
48036    #[inline]
48037    fn visit_with_ast_path<'ast: 'r, 'r>(
48038        &'ast self,
48039        visitor: &mut V,
48040        __ast_path: &mut AstNodePath<'r>,
48041    ) {
48042        <V as VisitAstPath>::visit_ts_fn_params(visitor, self, __ast_path)
48043    }
48044
48045    #[inline]
48046    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48047        &'ast self,
48048        visitor: &mut V,
48049        __ast_path: &mut AstNodePath<'r>,
48050    ) {
48051        self.iter().enumerate().for_each(|(__idx, item)| {
48052            let mut __ast_path = __ast_path.with_index_guard(__idx);
48053            <TsFnParam as VisitWithAstPath<V>>::visit_with_ast_path(item, visitor, &mut *__ast_path)
48054        })
48055    }
48056}
48057#[cfg(any(docsrs, feature = "path"))]
48058#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48059impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsTupleElement] {
48060    #[doc = "Calls [VisitAstPath`::visit_ts_tuple_elements`] with `self`. (Extra impl)"]
48061    #[inline]
48062    fn visit_with_ast_path<'ast: 'r, 'r>(
48063        &'ast self,
48064        visitor: &mut V,
48065        __ast_path: &mut AstNodePath<'r>,
48066    ) {
48067        <V as VisitAstPath>::visit_ts_tuple_elements(visitor, self, __ast_path)
48068    }
48069
48070    #[inline]
48071    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48072        &'ast self,
48073        visitor: &mut V,
48074        __ast_path: &mut AstNodePath<'r>,
48075    ) {
48076        self.iter().enumerate().for_each(|(__idx, item)| {
48077            let mut __ast_path = __ast_path.with_index_guard(__idx);
48078            <TsTupleElement as VisitWithAstPath<V>>::visit_with_ast_path(
48079                item,
48080                visitor,
48081                &mut *__ast_path,
48082            )
48083        })
48084    }
48085}
48086#[cfg(any(docsrs, feature = "path"))]
48087#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48088impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsTypeElement] {
48089    #[doc = "Calls [VisitAstPath`::visit_ts_type_elements`] with `self`. (Extra impl)"]
48090    #[inline]
48091    fn visit_with_ast_path<'ast: 'r, 'r>(
48092        &'ast self,
48093        visitor: &mut V,
48094        __ast_path: &mut AstNodePath<'r>,
48095    ) {
48096        <V as VisitAstPath>::visit_ts_type_elements(visitor, self, __ast_path)
48097    }
48098
48099    #[inline]
48100    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48101        &'ast self,
48102        visitor: &mut V,
48103        __ast_path: &mut AstNodePath<'r>,
48104    ) {
48105        self.iter().enumerate().for_each(|(__idx, item)| {
48106            let mut __ast_path = __ast_path.with_index_guard(__idx);
48107            <TsTypeElement as VisitWithAstPath<V>>::visit_with_ast_path(
48108                item,
48109                visitor,
48110                &mut *__ast_path,
48111            )
48112        })
48113    }
48114}
48115#[cfg(any(docsrs, feature = "path"))]
48116#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48117impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [TsTypeParam] {
48118    #[doc = "Calls [VisitAstPath`::visit_ts_type_params`] with `self`. (Extra impl)"]
48119    #[inline]
48120    fn visit_with_ast_path<'ast: 'r, 'r>(
48121        &'ast self,
48122        visitor: &mut V,
48123        __ast_path: &mut AstNodePath<'r>,
48124    ) {
48125        <V as VisitAstPath>::visit_ts_type_params(visitor, self, __ast_path)
48126    }
48127
48128    #[inline]
48129    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48130        &'ast self,
48131        visitor: &mut V,
48132        __ast_path: &mut AstNodePath<'r>,
48133    ) {
48134        self.iter().enumerate().for_each(|(__idx, item)| {
48135            let mut __ast_path = __ast_path.with_index_guard(__idx);
48136            <TsTypeParam as VisitWithAstPath<V>>::visit_with_ast_path(
48137                item,
48138                visitor,
48139                &mut *__ast_path,
48140            )
48141        })
48142    }
48143}
48144#[cfg(any(docsrs, feature = "path"))]
48145#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48146impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [Box<TsType>] {
48147    #[doc = "Calls [VisitAstPath`::visit_ts_types`] with `self`. (Extra impl)"]
48148    #[inline]
48149    fn visit_with_ast_path<'ast: 'r, 'r>(
48150        &'ast self,
48151        visitor: &mut V,
48152        __ast_path: &mut AstNodePath<'r>,
48153    ) {
48154        <V as VisitAstPath>::visit_ts_types(visitor, self, __ast_path)
48155    }
48156
48157    #[inline]
48158    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48159        &'ast self,
48160        visitor: &mut V,
48161        __ast_path: &mut AstNodePath<'r>,
48162    ) {
48163        self.iter().enumerate().for_each(|(__idx, item)| {
48164            let mut __ast_path = __ast_path.with_index_guard(__idx);
48165            <Box<TsType> as VisitWithAstPath<V>>::visit_with_ast_path(
48166                item,
48167                visitor,
48168                &mut *__ast_path,
48169            )
48170        })
48171    }
48172}
48173#[cfg(any(docsrs, feature = "path"))]
48174#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48175impl<V: ?Sized + VisitAstPath> VisitWithAstPath<V> for [VarDeclarator] {
48176    #[doc = "Calls [VisitAstPath`::visit_var_declarators`] with `self`. (Extra impl)"]
48177    #[inline]
48178    fn visit_with_ast_path<'ast: 'r, 'r>(
48179        &'ast self,
48180        visitor: &mut V,
48181        __ast_path: &mut AstNodePath<'r>,
48182    ) {
48183        <V as VisitAstPath>::visit_var_declarators(visitor, self, __ast_path)
48184    }
48185
48186    #[inline]
48187    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48188        &'ast self,
48189        visitor: &mut V,
48190        __ast_path: &mut AstNodePath<'r>,
48191    ) {
48192        self.iter().enumerate().for_each(|(__idx, item)| {
48193            let mut __ast_path = __ast_path.with_index_guard(__idx);
48194            <VarDeclarator as VisitWithAstPath<V>>::visit_with_ast_path(
48195                item,
48196                visitor,
48197                &mut *__ast_path,
48198            )
48199        })
48200    }
48201}
48202#[cfg(any(docsrs, feature = "path"))]
48203#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48204impl<V, T> VisitWithAstPath<V> for std::boxed::Box<T>
48205where
48206    V: ?Sized + VisitAstPath,
48207    T: VisitWithAstPath<V>,
48208{
48209    #[inline]
48210    fn visit_with_ast_path<'ast: 'r, 'r>(
48211        &'ast self,
48212        visitor: &mut V,
48213        __ast_path: &mut AstNodePath<'r>,
48214    ) {
48215        let v = <T as VisitWithAstPath<V>>::visit_with_ast_path(&**self, visitor, __ast_path);
48216        v
48217    }
48218
48219    #[inline]
48220    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48221        &'ast self,
48222        visitor: &mut V,
48223        __ast_path: &mut AstNodePath<'r>,
48224    ) {
48225        let v =
48226            <T as VisitWithAstPath<V>>::visit_children_with_ast_path(&**self, visitor, __ast_path);
48227        v
48228    }
48229}
48230#[cfg(any(docsrs, feature = "path"))]
48231#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
48232impl<V, T> VisitWithAstPath<V> for std::vec::Vec<T>
48233where
48234    V: ?Sized + VisitAstPath,
48235    [T]: VisitWithAstPath<V>,
48236{
48237    #[inline]
48238    fn visit_with_ast_path<'ast: 'r, 'r>(
48239        &'ast self,
48240        visitor: &mut V,
48241        __ast_path: &mut AstNodePath<'r>,
48242    ) {
48243        let v = <[T] as VisitWithAstPath<V>>::visit_with_ast_path(self, visitor, __ast_path);
48244        v
48245    }
48246
48247    #[inline]
48248    fn visit_children_with_ast_path<'ast: 'r, 'r>(
48249        &'ast self,
48250        visitor: &mut V,
48251        __ast_path: &mut AstNodePath<'r>,
48252    ) {
48253        let v =
48254            <[T] as VisitWithAstPath<V>>::visit_children_with_ast_path(self, visitor, __ast_path);
48255        v
48256    }
48257}
48258#[doc = r" A visitor trait for traversing the AST."]
48259pub trait VisitMut {
48260    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
48261             [`Accessibility::visit_mut_children_with`]. If you want to recurse, you need to call \
48262             it manually."]
48263    #[inline]
48264    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
48265        <Accessibility as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48266    }
48267    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
48268             [`ArrayLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
48269             manually."]
48270    #[inline]
48271    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
48272        <ArrayLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48273    }
48274    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
48275             [`ArrayPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
48276             manually."]
48277    #[inline]
48278    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
48279        <ArrayPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48280    }
48281    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
48282             [`ArrowExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48283             manually."]
48284    #[inline]
48285    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
48286        <ArrowExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48287    }
48288    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
48289             [`AssignExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48290             manually."]
48291    #[inline]
48292    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
48293        <AssignExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48294    }
48295    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
48296             [`AssignOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48297             manually."]
48298    #[inline]
48299    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
48300        <AssignOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48301    }
48302    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
48303             [`AssignPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
48304             manually."]
48305    #[inline]
48306    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
48307        <AssignPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48308    }
48309    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
48310             [`AssignPatProp::visit_mut_children_with`]. If you want to recurse, you need to call \
48311             it manually."]
48312    #[inline]
48313    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
48314        <AssignPatProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48315    }
48316    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
48317             [`AssignProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48318             manually."]
48319    #[inline]
48320    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
48321        <AssignProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48322    }
48323    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
48324             [`AssignTarget::visit_mut_children_with`]. If you want to recurse, you need to call \
48325             it manually."]
48326    #[inline]
48327    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
48328        <AssignTarget as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48329    }
48330    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
48331             [`AssignTargetPat::visit_mut_children_with`]. If you want to recurse, you need to \
48332             call it manually."]
48333    #[inline]
48334    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
48335        <AssignTargetPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48336    }
48337    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
48338             [`swc_atoms :: Atom::visit_mut_children_with`]. If you want to recurse, you need to \
48339             call it manually."]
48340    #[inline]
48341    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
48342        <swc_atoms::Atom as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48343    }
48344    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
48345             [`AutoAccessor::visit_mut_children_with`]. If you want to recurse, you need to call \
48346             it manually."]
48347    #[inline]
48348    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
48349        <AutoAccessor as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48350    }
48351    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
48352             [`AwaitExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48353             manually."]
48354    #[inline]
48355    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
48356        <AwaitExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48357    }
48358    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
48359             [`BigInt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48360             manually."]
48361    #[inline]
48362    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
48363        <BigInt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48364    }
48365    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
48366             [`BigIntValue::visit_mut_children_with`]. If you want to recurse, you need to call it \
48367             manually."]
48368    #[inline]
48369    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
48370        <BigIntValue as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48371    }
48372    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
48373             [`BinExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48374             manually."]
48375    #[inline]
48376    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
48377        <BinExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48378    }
48379    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
48380             [`BinaryOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48381             manually."]
48382    #[inline]
48383    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
48384        <BinaryOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48385    }
48386    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
48387             [`BindingIdent::visit_mut_children_with`]. If you want to recurse, you need to call \
48388             it manually."]
48389    #[inline]
48390    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
48391        <BindingIdent as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48392    }
48393    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
48394             [`BlockStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48395             manually."]
48396    #[inline]
48397    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
48398        <BlockStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48399    }
48400    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
48401             [`BlockStmtOrExpr::visit_mut_children_with`]. If you want to recurse, you need to \
48402             call it manually."]
48403    #[inline]
48404    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
48405        <BlockStmtOrExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48406    }
48407    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
48408             [`Bool::visit_mut_children_with`]. If you want to recurse, you need to call it \
48409             manually."]
48410    #[inline]
48411    fn visit_mut_bool(&mut self, node: &mut Bool) {
48412        <Bool as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48413    }
48414    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
48415             [`BreakStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48416             manually."]
48417    #[inline]
48418    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
48419        <BreakStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48420    }
48421    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
48422             [`CallExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48423             manually."]
48424    #[inline]
48425    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
48426        <CallExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48427    }
48428    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
48429             [`Callee::visit_mut_children_with`]. If you want to recurse, you need to call it \
48430             manually."]
48431    #[inline]
48432    fn visit_mut_callee(&mut self, node: &mut Callee) {
48433        <Callee as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48434    }
48435    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
48436             [`CatchClause::visit_mut_children_with`]. If you want to recurse, you need to call it \
48437             manually."]
48438    #[inline]
48439    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
48440        <CatchClause as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48441    }
48442    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
48443             [`Class::visit_mut_children_with`]. If you want to recurse, you need to call it \
48444             manually."]
48445    #[inline]
48446    fn visit_mut_class(&mut self, node: &mut Class) {
48447        <Class as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48448    }
48449    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
48450             [`ClassDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48451             manually."]
48452    #[inline]
48453    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
48454        <ClassDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48455    }
48456    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
48457             [`ClassExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48458             manually."]
48459    #[inline]
48460    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
48461        <ClassExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48462    }
48463    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
48464             [`ClassMember::visit_mut_children_with`]. If you want to recurse, you need to call it \
48465             manually."]
48466    #[inline]
48467    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
48468        <ClassMember as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48469    }
48470    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
48471             ClassMember >::visit_mut_children_with`]. If you want to recurse, you need to call it \
48472             manually."]
48473    #[inline]
48474    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
48475        <Vec<ClassMember> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48476    }
48477    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
48478             [`ClassMethod::visit_mut_children_with`]. If you want to recurse, you need to call it \
48479             manually."]
48480    #[inline]
48481    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
48482        <ClassMethod as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48483    }
48484    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
48485             [`ClassProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48486             manually."]
48487    #[inline]
48488    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
48489        <ClassProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48490    }
48491    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
48492             [`ComputedPropName::visit_mut_children_with`]. If you want to recurse, you need to \
48493             call it manually."]
48494    #[inline]
48495    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
48496        <ComputedPropName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48497    }
48498    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
48499             [`CondExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48500             manually."]
48501    #[inline]
48502    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
48503        <CondExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48504    }
48505    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
48506             [`Constructor::visit_mut_children_with`]. If you want to recurse, you need to call it \
48507             manually."]
48508    #[inline]
48509    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
48510        <Constructor as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48511    }
48512    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
48513             [`ContinueStmt::visit_mut_children_with`]. If you want to recurse, you need to call \
48514             it manually."]
48515    #[inline]
48516    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
48517        <ContinueStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48518    }
48519    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
48520             [`DebuggerStmt::visit_mut_children_with`]. If you want to recurse, you need to call \
48521             it manually."]
48522    #[inline]
48523    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
48524        <DebuggerStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48525    }
48526    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
48527             [`Decl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48528             manually."]
48529    #[inline]
48530    fn visit_mut_decl(&mut self, node: &mut Decl) {
48531        <Decl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48532    }
48533    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
48534             [`Decorator::visit_mut_children_with`]. If you want to recurse, you need to call it \
48535             manually."]
48536    #[inline]
48537    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
48538        <Decorator as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48539    }
48540    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
48541             Decorator >::visit_mut_children_with`]. If you want to recurse, you need to call it \
48542             manually."]
48543    #[inline]
48544    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
48545        <Vec<Decorator> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48546    }
48547    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
48548             [`DefaultDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48549             manually."]
48550    #[inline]
48551    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
48552        <DefaultDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48553    }
48554    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
48555             [`DoWhileStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48556             manually."]
48557    #[inline]
48558    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
48559        <DoWhileStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48560    }
48561    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
48562             [`EmptyStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48563             manually."]
48564    #[inline]
48565    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
48566        <EmptyStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48567    }
48568    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
48569             [`ExportAll::visit_mut_children_with`]. If you want to recurse, you need to call it \
48570             manually."]
48571    #[inline]
48572    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
48573        <ExportAll as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48574    }
48575    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
48576             [`ExportDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48577             manually."]
48578    #[inline]
48579    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
48580        <ExportDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48581    }
48582    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
48583             [`ExportDefaultDecl::visit_mut_children_with`]. If you want to recurse, you need to \
48584             call it manually."]
48585    #[inline]
48586    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
48587        <ExportDefaultDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48588    }
48589    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
48590             [`ExportDefaultExpr::visit_mut_children_with`]. If you want to recurse, you need to \
48591             call it manually."]
48592    #[inline]
48593    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
48594        <ExportDefaultExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48595    }
48596    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
48597             [`ExportDefaultSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48598             to call it manually."]
48599    #[inline]
48600    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
48601        <ExportDefaultSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48602    }
48603    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
48604             [`ExportNamedSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48605             to call it manually."]
48606    #[inline]
48607    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
48608        <ExportNamedSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48609    }
48610    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
48611             [`ExportNamespaceSpecifier::visit_mut_children_with`]. If you want to recurse, you \
48612             need to call it manually."]
48613    #[inline]
48614    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
48615        <ExportNamespaceSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48616    }
48617    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
48618             [`ExportSpecifier::visit_mut_children_with`]. If you want to recurse, you need to \
48619             call it manually."]
48620    #[inline]
48621    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
48622        <ExportSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48623    }
48624    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
48625             [`Vec < ExportSpecifier >::visit_mut_children_with`]. If you want to recurse, you \
48626             need to call it manually."]
48627    #[inline]
48628    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
48629        <Vec<ExportSpecifier> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48630    }
48631    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
48632             [`Expr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48633             manually."]
48634    #[inline]
48635    fn visit_mut_expr(&mut self, node: &mut Expr) {
48636        <Expr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48637    }
48638    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
48639             [`ExprOrSpread::visit_mut_children_with`]. If you want to recurse, you need to call \
48640             it manually."]
48641    #[inline]
48642    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
48643        <ExprOrSpread as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48644    }
48645    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
48646             ExprOrSpread >::visit_mut_children_with`]. If you want to recurse, you need to call \
48647             it manually."]
48648    #[inline]
48649    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
48650        <Vec<ExprOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48651    }
48652    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
48653             [`ExprStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48654             manually."]
48655    #[inline]
48656    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
48657        <ExprStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48658    }
48659    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
48660             Box < Expr > >::visit_mut_children_with`]. If you want to recurse, you need to call \
48661             it manually."]
48662    #[inline]
48663    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
48664        <Vec<Box<Expr>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48665    }
48666    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
48667             [`FnDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48668             manually."]
48669    #[inline]
48670    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
48671        <FnDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48672    }
48673    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
48674             [`FnExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48675             manually."]
48676    #[inline]
48677    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
48678        <FnExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48679    }
48680    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
48681             [`ForHead::visit_mut_children_with`]. If you want to recurse, you need to call it \
48682             manually."]
48683    #[inline]
48684    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
48685        <ForHead as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48686    }
48687    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
48688             [`ForInStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48689             manually."]
48690    #[inline]
48691    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
48692        <ForInStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48693    }
48694    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
48695             [`ForOfStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48696             manually."]
48697    #[inline]
48698    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
48699        <ForOfStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48700    }
48701    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
48702             [`ForStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48703             manually."]
48704    #[inline]
48705    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
48706        <ForStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48707    }
48708    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
48709             [`Function::visit_mut_children_with`]. If you want to recurse, you need to call it \
48710             manually."]
48711    #[inline]
48712    fn visit_mut_function(&mut self, node: &mut Function) {
48713        <Function as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48714    }
48715    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
48716             [`GetterProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
48717             manually."]
48718    #[inline]
48719    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
48720        <GetterProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48721    }
48722    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
48723             [`Ident::visit_mut_children_with`]. If you want to recurse, you need to call it \
48724             manually."]
48725    #[inline]
48726    fn visit_mut_ident(&mut self, node: &mut Ident) {
48727        <Ident as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48728    }
48729    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
48730             [`IdentName::visit_mut_children_with`]. If you want to recurse, you need to call it \
48731             manually."]
48732    #[inline]
48733    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
48734        <IdentName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48735    }
48736    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
48737             [`IfStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
48738             manually."]
48739    #[inline]
48740    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
48741        <IfStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48742    }
48743    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
48744             [`Import::visit_mut_children_with`]. If you want to recurse, you need to call it \
48745             manually."]
48746    #[inline]
48747    fn visit_mut_import(&mut self, node: &mut Import) {
48748        <Import as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48749    }
48750    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
48751             [`ImportDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
48752             manually."]
48753    #[inline]
48754    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
48755        <ImportDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48756    }
48757    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
48758             [`ImportDefaultSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48759             to call it manually."]
48760    #[inline]
48761    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
48762        <ImportDefaultSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48763    }
48764    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
48765             [`ImportNamedSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48766             to call it manually."]
48767    #[inline]
48768    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
48769        <ImportNamedSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48770    }
48771    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
48772             [`ImportPhase::visit_mut_children_with`]. If you want to recurse, you need to call it \
48773             manually."]
48774    #[inline]
48775    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
48776        <ImportPhase as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48777    }
48778    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
48779             [`ImportSpecifier::visit_mut_children_with`]. If you want to recurse, you need to \
48780             call it manually."]
48781    #[inline]
48782    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
48783        <ImportSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48784    }
48785    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
48786             [`Vec < ImportSpecifier >::visit_mut_children_with`]. If you want to recurse, you \
48787             need to call it manually."]
48788    #[inline]
48789    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
48790        <Vec<ImportSpecifier> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48791    }
48792    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
48793             [`ImportStarAsSpecifier::visit_mut_children_with`]. If you want to recurse, you need \
48794             to call it manually."]
48795    #[inline]
48796    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
48797        <ImportStarAsSpecifier as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48798    }
48799    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
48800             [`ImportWith::visit_mut_children_with`]. If you want to recurse, you need to call it \
48801             manually."]
48802    #[inline]
48803    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
48804        <ImportWith as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48805    }
48806    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
48807             [`ImportWithItem::visit_mut_children_with`]. If you want to recurse, you need to call \
48808             it manually."]
48809    #[inline]
48810    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
48811        <ImportWithItem as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48812    }
48813    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
48814             < ImportWithItem >::visit_mut_children_with`]. If you want to recurse, you need to \
48815             call it manually."]
48816    #[inline]
48817    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
48818        <Vec<ImportWithItem> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48819    }
48820    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
48821             [`Invalid::visit_mut_children_with`]. If you want to recurse, you need to call it \
48822             manually."]
48823    #[inline]
48824    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
48825        <Invalid as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48826    }
48827    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
48828             [`JSXAttr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48829             manually."]
48830    #[inline]
48831    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
48832        <JSXAttr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48833    }
48834    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
48835             [`JSXAttrName::visit_mut_children_with`]. If you want to recurse, you need to call it \
48836             manually."]
48837    #[inline]
48838    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
48839        <JSXAttrName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48840    }
48841    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
48842             [`JSXAttrOrSpread::visit_mut_children_with`]. If you want to recurse, you need to \
48843             call it manually."]
48844    #[inline]
48845    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
48846        <JSXAttrOrSpread as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48847    }
48848    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
48849             [`Vec < JSXAttrOrSpread >::visit_mut_children_with`]. If you want to recurse, you \
48850             need to call it manually."]
48851    #[inline]
48852    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
48853        <Vec<JSXAttrOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48854    }
48855    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
48856             [`JSXAttrValue::visit_mut_children_with`]. If you want to recurse, you need to call \
48857             it manually."]
48858    #[inline]
48859    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
48860        <JSXAttrValue as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48861    }
48862    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
48863             [`JSXClosingElement::visit_mut_children_with`]. If you want to recurse, you need to \
48864             call it manually."]
48865    #[inline]
48866    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
48867        <JSXClosingElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48868    }
48869    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
48870             [`JSXClosingFragment::visit_mut_children_with`]. If you want to recurse, you need to \
48871             call it manually."]
48872    #[inline]
48873    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
48874        <JSXClosingFragment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48875    }
48876    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
48877             [`JSXElement::visit_mut_children_with`]. If you want to recurse, you need to call it \
48878             manually."]
48879    #[inline]
48880    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
48881        <JSXElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48882    }
48883    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
48884             [`JSXElementChild::visit_mut_children_with`]. If you want to recurse, you need to \
48885             call it manually."]
48886    #[inline]
48887    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
48888        <JSXElementChild as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48889    }
48890    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
48891             [`Vec < JSXElementChild >::visit_mut_children_with`]. If you want to recurse, you \
48892             need to call it manually."]
48893    #[inline]
48894    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
48895        <Vec<JSXElementChild> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48896    }
48897    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
48898             [`JSXElementName::visit_mut_children_with`]. If you want to recurse, you need to call \
48899             it manually."]
48900    #[inline]
48901    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
48902        <JSXElementName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48903    }
48904    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
48905             [`JSXEmptyExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
48906             it manually."]
48907    #[inline]
48908    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
48909        <JSXEmptyExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48910    }
48911    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
48912             [`JSXExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
48913             manually."]
48914    #[inline]
48915    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
48916        <JSXExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48917    }
48918    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
48919             [`JSXExprContainer::visit_mut_children_with`]. If you want to recurse, you need to \
48920             call it manually."]
48921    #[inline]
48922    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
48923        <JSXExprContainer as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48924    }
48925    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
48926             [`JSXFragment::visit_mut_children_with`]. If you want to recurse, you need to call it \
48927             manually."]
48928    #[inline]
48929    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
48930        <JSXFragment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48931    }
48932    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
48933             [`JSXMemberExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
48934             it manually."]
48935    #[inline]
48936    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
48937        <JSXMemberExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48938    }
48939    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
48940             [`JSXNamespacedName::visit_mut_children_with`]. If you want to recurse, you need to \
48941             call it manually."]
48942    #[inline]
48943    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
48944        <JSXNamespacedName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48945    }
48946    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
48947             [`JSXObject::visit_mut_children_with`]. If you want to recurse, you need to call it \
48948             manually."]
48949    #[inline]
48950    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
48951        <JSXObject as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48952    }
48953    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
48954             [`JSXOpeningElement::visit_mut_children_with`]. If you want to recurse, you need to \
48955             call it manually."]
48956    #[inline]
48957    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
48958        <JSXOpeningElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48959    }
48960    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
48961             [`JSXOpeningFragment::visit_mut_children_with`]. If you want to recurse, you need to \
48962             call it manually."]
48963    #[inline]
48964    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
48965        <JSXOpeningFragment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48966    }
48967    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
48968             [`JSXSpreadChild::visit_mut_children_with`]. If you want to recurse, you need to call \
48969             it manually."]
48970    #[inline]
48971    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
48972        <JSXSpreadChild as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48973    }
48974    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
48975             [`JSXText::visit_mut_children_with`]. If you want to recurse, you need to call it \
48976             manually."]
48977    #[inline]
48978    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
48979        <JSXText as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48980    }
48981    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
48982             [`Key::visit_mut_children_with`]. If you want to recurse, you need to call it \
48983             manually."]
48984    #[inline]
48985    fn visit_mut_key(&mut self, node: &mut Key) {
48986        <Key as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48987    }
48988    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
48989             [`KeyValuePatProp::visit_mut_children_with`]. If you want to recurse, you need to \
48990             call it manually."]
48991    #[inline]
48992    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
48993        <KeyValuePatProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
48994    }
48995    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
48996             [`KeyValueProp::visit_mut_children_with`]. If you want to recurse, you need to call \
48997             it manually."]
48998    #[inline]
48999    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
49000        <KeyValueProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49001    }
49002    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
49003             [`LabeledStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49004             manually."]
49005    #[inline]
49006    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
49007        <LabeledStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49008    }
49009    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
49010             [`Lit::visit_mut_children_with`]. If you want to recurse, you need to call it \
49011             manually."]
49012    #[inline]
49013    fn visit_mut_lit(&mut self, node: &mut Lit) {
49014        <Lit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49015    }
49016    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
49017             [`MemberExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49018             manually."]
49019    #[inline]
49020    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
49021        <MemberExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49022    }
49023    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
49024             [`MemberProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49025             manually."]
49026    #[inline]
49027    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
49028        <MemberProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49029    }
49030    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
49031             [`MetaPropExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49032             it manually."]
49033    #[inline]
49034    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
49035        <MetaPropExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49036    }
49037    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
49038             [`MetaPropKind::visit_mut_children_with`]. If you want to recurse, you need to call \
49039             it manually."]
49040    #[inline]
49041    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
49042        <MetaPropKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49043    }
49044    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
49045             [`MethodKind::visit_mut_children_with`]. If you want to recurse, you need to call it \
49046             manually."]
49047    #[inline]
49048    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
49049        <MethodKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49050    }
49051    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
49052             [`MethodProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49053             manually."]
49054    #[inline]
49055    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
49056        <MethodProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49057    }
49058    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
49059             [`Module::visit_mut_children_with`]. If you want to recurse, you need to call it \
49060             manually."]
49061    #[inline]
49062    fn visit_mut_module(&mut self, node: &mut Module) {
49063        <Module as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49064    }
49065    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
49066             [`ModuleDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49067             manually."]
49068    #[inline]
49069    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
49070        <ModuleDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49071    }
49072    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
49073             [`ModuleExportName::visit_mut_children_with`]. If you want to recurse, you need to \
49074             call it manually."]
49075    #[inline]
49076    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
49077        <ModuleExportName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49078    }
49079    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
49080             [`ModuleItem::visit_mut_children_with`]. If you want to recurse, you need to call it \
49081             manually."]
49082    #[inline]
49083    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
49084        <ModuleItem as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49085    }
49086    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
49087             ModuleItem >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49088             manually."]
49089    #[inline]
49090    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
49091        <Vec<ModuleItem> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49092    }
49093    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
49094             [`NamedExport::visit_mut_children_with`]. If you want to recurse, you need to call it \
49095             manually."]
49096    #[inline]
49097    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
49098        <NamedExport as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49099    }
49100    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
49101             [`NewExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49102             manually."]
49103    #[inline]
49104    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
49105        <NewExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49106    }
49107    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
49108             [`Null::visit_mut_children_with`]. If you want to recurse, you need to call it \
49109             manually."]
49110    #[inline]
49111    fn visit_mut_null(&mut self, node: &mut Null) {
49112        <Null as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49113    }
49114    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
49115             [`Number::visit_mut_children_with`]. If you want to recurse, you need to call it \
49116             manually."]
49117    #[inline]
49118    fn visit_mut_number(&mut self, node: &mut Number) {
49119        <Number as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49120    }
49121    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
49122             [`ObjectLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
49123             manually."]
49124    #[inline]
49125    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
49126        <ObjectLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49127    }
49128    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
49129             [`ObjectPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
49130             manually."]
49131    #[inline]
49132    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
49133        <ObjectPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49134    }
49135    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
49136             [`ObjectPatProp::visit_mut_children_with`]. If you want to recurse, you need to call \
49137             it manually."]
49138    #[inline]
49139    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
49140        <ObjectPatProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49141    }
49142    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
49143             < ObjectPatProp >::visit_mut_children_with`]. If you want to recurse, you need to \
49144             call it manually."]
49145    #[inline]
49146    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
49147        <Vec<ObjectPatProp> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49148    }
49149    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
49150             [`Option < Accessibility >::visit_mut_children_with`]. If you want to recurse, you \
49151             need to call it manually."]
49152    #[inline]
49153    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
49154        <Option<Accessibility> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49155    }
49156    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
49157             [`Option < swc_atoms :: Atom >::visit_mut_children_with`]. If you want to recurse, \
49158             you need to call it manually."]
49159    #[inline]
49160    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
49161        <Option<swc_atoms::Atom> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49162    }
49163    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
49164             [`Option < BlockStmt >::visit_mut_children_with`]. If you want to recurse, you need \
49165             to call it manually."]
49166    #[inline]
49167    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
49168        <Option<BlockStmt> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49169    }
49170    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
49171             [`OptCall::visit_mut_children_with`]. If you want to recurse, you need to call it \
49172             manually."]
49173    #[inline]
49174    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
49175        <OptCall as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49176    }
49177    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
49178             [`Option < CatchClause >::visit_mut_children_with`]. If you want to recurse, you need \
49179             to call it manually."]
49180    #[inline]
49181    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
49182        <Option<CatchClause> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49183    }
49184    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
49185             [`OptChainBase::visit_mut_children_with`]. If you want to recurse, you need to call \
49186             it manually."]
49187    #[inline]
49188    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
49189        <OptChainBase as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49190    }
49191    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
49192             [`OptChainExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49193             it manually."]
49194    #[inline]
49195    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
49196        <OptChainExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49197    }
49198    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
49199             [`Option < Box < Expr > >::visit_mut_children_with`]. If you want to recurse, you \
49200             need to call it manually."]
49201    #[inline]
49202    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
49203        <Option<Box<Expr>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49204    }
49205    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
49206             [`Option < ExprOrSpread >::visit_mut_children_with`]. If you want to recurse, you \
49207             need to call it manually."]
49208    #[inline]
49209    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
49210        <Option<ExprOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49211    }
49212    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
49213             calls [`Option < Vec < ExprOrSpread > >::visit_mut_children_with`]. If you want to \
49214             recurse, you need to call it manually."]
49215    #[inline]
49216    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
49217        <Option<Vec<ExprOrSpread>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49218    }
49219    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
49220             Ident >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49221             manually."]
49222    #[inline]
49223    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
49224        <Option<Ident> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49225    }
49226    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
49227             [`Option < JSXAttrValue >::visit_mut_children_with`]. If you want to recurse, you \
49228             need to call it manually."]
49229    #[inline]
49230    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
49231        <Option<JSXAttrValue> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49232    }
49233    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
49234             [`Option < JSXClosingElement >::visit_mut_children_with`]. If you want to recurse, \
49235             you need to call it manually."]
49236    #[inline]
49237    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
49238        <Option<JSXClosingElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49239    }
49240    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
49241             [`Option < ModuleExportName >::visit_mut_children_with`]. If you want to recurse, you \
49242             need to call it manually."]
49243    #[inline]
49244    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
49245        <Option<ModuleExportName> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49246    }
49247    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
49248             [`Option < Box < ObjectLit > >::visit_mut_children_with`]. If you want to recurse, \
49249             you need to call it manually."]
49250    #[inline]
49251    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
49252        <Option<Box<ObjectLit>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49253    }
49254    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
49255             Pat >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49256             manually."]
49257    #[inline]
49258    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
49259        <Option<Pat> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49260    }
49261    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
49262             calls [`Option < swc_common :: Span >::visit_mut_children_with`]. If you want to \
49263             recurse, you need to call it manually."]
49264    #[inline]
49265    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
49266        <Option<swc_common::Span> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49267    }
49268    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
49269             [`Option < Box < Stmt > >::visit_mut_children_with`]. If you want to recurse, you \
49270             need to call it manually."]
49271    #[inline]
49272    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
49273        <Option<Box<Stmt>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49274    }
49275    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
49276             [`Option < Box < Str > >::visit_mut_children_with`]. If you want to recurse, you need \
49277             to call it manually."]
49278    #[inline]
49279    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
49280        <Option<Box<Str>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49281    }
49282    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
49283             [`Option < TruePlusMinus >::visit_mut_children_with`]. If you want to recurse, you \
49284             need to call it manually."]
49285    #[inline]
49286    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
49287        <Option<TruePlusMinus> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49288    }
49289    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
49290             [`Option < TsEntityName >::visit_mut_children_with`]. If you want to recurse, you \
49291             need to call it manually."]
49292    #[inline]
49293    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
49294        <Option<TsEntityName> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49295    }
49296    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
49297             [`Option < TsNamespaceBody >::visit_mut_children_with`]. If you want to recurse, you \
49298             need to call it manually."]
49299    #[inline]
49300    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
49301        <Option<TsNamespaceBody> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49302    }
49303    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
49304             [`Option < Box < TsType > >::visit_mut_children_with`]. If you want to recurse, you \
49305             need to call it manually."]
49306    #[inline]
49307    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
49308        <Option<Box<TsType>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49309    }
49310    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
49311             [`Option < Box < TsTypeAnn > >::visit_mut_children_with`]. If you want to recurse, \
49312             you need to call it manually."]
49313    #[inline]
49314    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
49315        <Option<Box<TsTypeAnn>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49316    }
49317    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
49318             calls [`Option < Box < TsTypeParamDecl > >::visit_mut_children_with`]. If you want to \
49319             recurse, you need to call it manually."]
49320    #[inline]
49321    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
49322        <Option<Box<TsTypeParamDecl>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49323    }
49324    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
49325             this method calls [`Option < Box < TsTypeParamInstantiation > \
49326             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49327    #[inline]
49328    fn visit_mut_opt_ts_type_param_instantiation(
49329        &mut self,
49330        node: &mut Option<Box<TsTypeParamInstantiation>>,
49331    ) {
49332        <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<Self>>::visit_mut_children_with(
49333            node, self,
49334        )
49335    }
49336    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
49337             [`Option < VarDeclOrExpr >::visit_mut_children_with`]. If you want to recurse, you \
49338             need to call it manually."]
49339    #[inline]
49340    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
49341        <Option<VarDeclOrExpr> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49342    }
49343    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
49344             calls [`Vec < Option < ExprOrSpread > >::visit_mut_children_with`]. If you want to \
49345             recurse, you need to call it manually."]
49346    #[inline]
49347    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
49348        <Vec<Option<ExprOrSpread>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49349    }
49350    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
49351             < Option < Pat > >::visit_mut_children_with`]. If you want to recurse, you need to \
49352             call it manually."]
49353    #[inline]
49354    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
49355        <Vec<Option<Pat>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49356    }
49357    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
49358             [`Param::visit_mut_children_with`]. If you want to recurse, you need to call it \
49359             manually."]
49360    #[inline]
49361    fn visit_mut_param(&mut self, node: &mut Param) {
49362        <Param as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49363    }
49364    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
49365             [`ParamOrTsParamProp::visit_mut_children_with`]. If you want to recurse, you need to \
49366             call it manually."]
49367    #[inline]
49368    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
49369        <ParamOrTsParamProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49370    }
49371    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
49372             [`Vec < ParamOrTsParamProp >::visit_mut_children_with`]. If you want to recurse, you \
49373             need to call it manually."]
49374    #[inline]
49375    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
49376        <Vec<ParamOrTsParamProp> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49377    }
49378    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
49379             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49380    #[inline]
49381    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
49382        <Vec<Param> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49383    }
49384    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
49385             [`ParenExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49386             manually."]
49387    #[inline]
49388    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
49389        <ParenExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49390    }
49391    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
49392             [`Pat::visit_mut_children_with`]. If you want to recurse, you need to call it \
49393             manually."]
49394    #[inline]
49395    fn visit_mut_pat(&mut self, node: &mut Pat) {
49396        <Pat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49397    }
49398    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
49399             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49400    #[inline]
49401    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
49402        <Vec<Pat> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49403    }
49404    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
49405             [`PrivateMethod::visit_mut_children_with`]. If you want to recurse, you need to call \
49406             it manually."]
49407    #[inline]
49408    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
49409        <PrivateMethod as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49410    }
49411    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
49412             [`PrivateName::visit_mut_children_with`]. If you want to recurse, you need to call it \
49413             manually."]
49414    #[inline]
49415    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
49416        <PrivateName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49417    }
49418    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
49419             [`PrivateProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49420             manually."]
49421    #[inline]
49422    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
49423        <PrivateProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49424    }
49425    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
49426             [`Program::visit_mut_children_with`]. If you want to recurse, you need to call it \
49427             manually."]
49428    #[inline]
49429    fn visit_mut_program(&mut self, node: &mut Program) {
49430        <Program as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49431    }
49432    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
49433             [`Prop::visit_mut_children_with`]. If you want to recurse, you need to call it \
49434             manually."]
49435    #[inline]
49436    fn visit_mut_prop(&mut self, node: &mut Prop) {
49437        <Prop as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49438    }
49439    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
49440             [`PropName::visit_mut_children_with`]. If you want to recurse, you need to call it \
49441             manually."]
49442    #[inline]
49443    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
49444        <PropName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49445    }
49446    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
49447             [`PropOrSpread::visit_mut_children_with`]. If you want to recurse, you need to call \
49448             it manually."]
49449    #[inline]
49450    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
49451        <PropOrSpread as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49452    }
49453    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
49454             PropOrSpread >::visit_mut_children_with`]. If you want to recurse, you need to call \
49455             it manually."]
49456    #[inline]
49457    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
49458        <Vec<PropOrSpread> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49459    }
49460    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
49461             [`Regex::visit_mut_children_with`]. If you want to recurse, you need to call it \
49462             manually."]
49463    #[inline]
49464    fn visit_mut_regex(&mut self, node: &mut Regex) {
49465        <Regex as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49466    }
49467    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
49468             [`RestPat::visit_mut_children_with`]. If you want to recurse, you need to call it \
49469             manually."]
49470    #[inline]
49471    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
49472        <RestPat as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49473    }
49474    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
49475             [`ReturnStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49476             manually."]
49477    #[inline]
49478    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
49479        <ReturnStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49480    }
49481    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
49482             [`Script::visit_mut_children_with`]. If you want to recurse, you need to call it \
49483             manually."]
49484    #[inline]
49485    fn visit_mut_script(&mut self, node: &mut Script) {
49486        <Script as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49487    }
49488    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
49489             [`SeqExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49490             manually."]
49491    #[inline]
49492    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
49493        <SeqExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49494    }
49495    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
49496             [`SetterProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49497             manually."]
49498    #[inline]
49499    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
49500        <SetterProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49501    }
49502    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
49503             [`SimpleAssignTarget::visit_mut_children_with`]. If you want to recurse, you need to \
49504             call it manually."]
49505    #[inline]
49506    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
49507        <SimpleAssignTarget as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49508    }
49509    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
49510             [`swc_common :: Span::visit_mut_children_with`]. If you want to recurse, you need to \
49511             call it manually."]
49512    #[inline]
49513    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
49514        <swc_common::Span as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49515    }
49516    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
49517             [`SpreadElement::visit_mut_children_with`]. If you want to recurse, you need to call \
49518             it manually."]
49519    #[inline]
49520    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
49521        <SpreadElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49522    }
49523    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
49524             [`StaticBlock::visit_mut_children_with`]. If you want to recurse, you need to call it \
49525             manually."]
49526    #[inline]
49527    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
49528        <StaticBlock as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49529    }
49530    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
49531             [`Stmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49532             manually."]
49533    #[inline]
49534    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
49535        <Stmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49536    }
49537    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
49538             >::visit_mut_children_with`]. If you want to recurse, you need to call it manually."]
49539    #[inline]
49540    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
49541        <Vec<Stmt> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49542    }
49543    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
49544             [`Str::visit_mut_children_with`]. If you want to recurse, you need to call it \
49545             manually."]
49546    #[inline]
49547    fn visit_mut_str(&mut self, node: &mut Str) {
49548        <Str as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49549    }
49550    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
49551             [`Super::visit_mut_children_with`]. If you want to recurse, you need to call it \
49552             manually."]
49553    #[inline]
49554    fn visit_mut_super(&mut self, node: &mut Super) {
49555        <Super as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49556    }
49557    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
49558             [`SuperProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49559             manually."]
49560    #[inline]
49561    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
49562        <SuperProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49563    }
49564    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
49565             [`SuperPropExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49566             it manually."]
49567    #[inline]
49568    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
49569        <SuperPropExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49570    }
49571    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
49572             [`SwitchCase::visit_mut_children_with`]. If you want to recurse, you need to call it \
49573             manually."]
49574    #[inline]
49575    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
49576        <SwitchCase as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49577    }
49578    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
49579             SwitchCase >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49580             manually."]
49581    #[inline]
49582    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
49583        <Vec<SwitchCase> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49584    }
49585    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
49586             [`SwitchStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49587             manually."]
49588    #[inline]
49589    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
49590        <SwitchStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49591    }
49592    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
49593             [`swc_common :: SyntaxContext::visit_mut_children_with`]. If you want to recurse, you \
49594             need to call it manually."]
49595    #[inline]
49596    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
49597        <swc_common::SyntaxContext as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49598    }
49599    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
49600             [`TaggedTpl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49601             manually."]
49602    #[inline]
49603    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
49604        <TaggedTpl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49605    }
49606    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
49607             [`ThisExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49608             manually."]
49609    #[inline]
49610    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
49611        <ThisExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49612    }
49613    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
49614             [`ThrowStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49615             manually."]
49616    #[inline]
49617    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
49618        <ThrowStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49619    }
49620    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
49621             [`Tpl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49622             manually."]
49623    #[inline]
49624    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
49625        <Tpl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49626    }
49627    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
49628             [`TplElement::visit_mut_children_with`]. If you want to recurse, you need to call it \
49629             manually."]
49630    #[inline]
49631    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
49632        <TplElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49633    }
49634    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
49635             TplElement >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49636             manually."]
49637    #[inline]
49638    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
49639        <Vec<TplElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49640    }
49641    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
49642             [`TruePlusMinus::visit_mut_children_with`]. If you want to recurse, you need to call \
49643             it manually."]
49644    #[inline]
49645    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
49646        <TruePlusMinus as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49647    }
49648    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
49649             [`TryStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
49650             manually."]
49651    #[inline]
49652    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
49653        <TryStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49654    }
49655    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
49656             [`TsArrayType::visit_mut_children_with`]. If you want to recurse, you need to call it \
49657             manually."]
49658    #[inline]
49659    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
49660        <TsArrayType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49661    }
49662    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
49663             [`TsAsExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
49664             manually."]
49665    #[inline]
49666    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
49667        <TsAsExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49668    }
49669    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
49670             [`TsCallSignatureDecl::visit_mut_children_with`]. If you want to recurse, you need to \
49671             call it manually."]
49672    #[inline]
49673    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
49674        <TsCallSignatureDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49675    }
49676    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
49677             [`TsConditionalType::visit_mut_children_with`]. If you want to recurse, you need to \
49678             call it manually."]
49679    #[inline]
49680    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
49681        <TsConditionalType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49682    }
49683    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
49684             [`TsConstAssertion::visit_mut_children_with`]. If you want to recurse, you need to \
49685             call it manually."]
49686    #[inline]
49687    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
49688        <TsConstAssertion as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49689    }
49690    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
49691             [`TsConstructSignatureDecl::visit_mut_children_with`]. If you want to recurse, you \
49692             need to call it manually."]
49693    #[inline]
49694    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
49695        <TsConstructSignatureDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49696    }
49697    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
49698             [`TsConstructorType::visit_mut_children_with`]. If you want to recurse, you need to \
49699             call it manually."]
49700    #[inline]
49701    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
49702        <TsConstructorType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49703    }
49704    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
49705             [`TsEntityName::visit_mut_children_with`]. If you want to recurse, you need to call \
49706             it manually."]
49707    #[inline]
49708    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
49709        <TsEntityName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49710    }
49711    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
49712             [`TsEnumDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
49713             manually."]
49714    #[inline]
49715    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
49716        <TsEnumDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49717    }
49718    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
49719             [`TsEnumMember::visit_mut_children_with`]. If you want to recurse, you need to call \
49720             it manually."]
49721    #[inline]
49722    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
49723        <TsEnumMember as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49724    }
49725    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
49726             [`TsEnumMemberId::visit_mut_children_with`]. If you want to recurse, you need to call \
49727             it manually."]
49728    #[inline]
49729    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
49730        <TsEnumMemberId as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49731    }
49732    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
49733             TsEnumMember >::visit_mut_children_with`]. If you want to recurse, you need to call \
49734             it manually."]
49735    #[inline]
49736    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
49737        <Vec<TsEnumMember> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49738    }
49739    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
49740             [`TsExportAssignment::visit_mut_children_with`]. If you want to recurse, you need to \
49741             call it manually."]
49742    #[inline]
49743    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
49744        <TsExportAssignment as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49745    }
49746    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
49747             [`TsExprWithTypeArgs::visit_mut_children_with`]. If you want to recurse, you need to \
49748             call it manually."]
49749    #[inline]
49750    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
49751        <TsExprWithTypeArgs as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49752    }
49753    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
49754             [`Vec < TsExprWithTypeArgs >::visit_mut_children_with`]. If you want to recurse, you \
49755             need to call it manually."]
49756    #[inline]
49757    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
49758        <Vec<TsExprWithTypeArgs> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49759    }
49760    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
49761             [`TsExternalModuleRef::visit_mut_children_with`]. If you want to recurse, you need to \
49762             call it manually."]
49763    #[inline]
49764    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
49765        <TsExternalModuleRef as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49766    }
49767    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
49768             [`TsFnOrConstructorType::visit_mut_children_with`]. If you want to recurse, you need \
49769             to call it manually."]
49770    #[inline]
49771    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
49772        <TsFnOrConstructorType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49773    }
49774    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
49775             [`TsFnParam::visit_mut_children_with`]. If you want to recurse, you need to call it \
49776             manually."]
49777    #[inline]
49778    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
49779        <TsFnParam as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49780    }
49781    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
49782             TsFnParam >::visit_mut_children_with`]. If you want to recurse, you need to call it \
49783             manually."]
49784    #[inline]
49785    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
49786        <Vec<TsFnParam> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49787    }
49788    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
49789             [`TsFnType::visit_mut_children_with`]. If you want to recurse, you need to call it \
49790             manually."]
49791    #[inline]
49792    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
49793        <TsFnType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49794    }
49795    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
49796             [`TsGetterSignature::visit_mut_children_with`]. If you want to recurse, you need to \
49797             call it manually."]
49798    #[inline]
49799    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
49800        <TsGetterSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49801    }
49802    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
49803             [`TsImportEqualsDecl::visit_mut_children_with`]. If you want to recurse, you need to \
49804             call it manually."]
49805    #[inline]
49806    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
49807        <TsImportEqualsDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49808    }
49809    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
49810             [`TsImportType::visit_mut_children_with`]. If you want to recurse, you need to call \
49811             it manually."]
49812    #[inline]
49813    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
49814        <TsImportType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49815    }
49816    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
49817             [`TsIndexSignature::visit_mut_children_with`]. If you want to recurse, you need to \
49818             call it manually."]
49819    #[inline]
49820    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
49821        <TsIndexSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49822    }
49823    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
49824             [`TsIndexedAccessType::visit_mut_children_with`]. If you want to recurse, you need to \
49825             call it manually."]
49826    #[inline]
49827    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
49828        <TsIndexedAccessType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49829    }
49830    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
49831             [`TsInferType::visit_mut_children_with`]. If you want to recurse, you need to call it \
49832             manually."]
49833    #[inline]
49834    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
49835        <TsInferType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49836    }
49837    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
49838             [`TsInstantiation::visit_mut_children_with`]. If you want to recurse, you need to \
49839             call it manually."]
49840    #[inline]
49841    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
49842        <TsInstantiation as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49843    }
49844    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
49845             [`TsInterfaceBody::visit_mut_children_with`]. If you want to recurse, you need to \
49846             call it manually."]
49847    #[inline]
49848    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
49849        <TsInterfaceBody as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49850    }
49851    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
49852             [`TsInterfaceDecl::visit_mut_children_with`]. If you want to recurse, you need to \
49853             call it manually."]
49854    #[inline]
49855    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
49856        <TsInterfaceDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49857    }
49858    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
49859             [`TsIntersectionType::visit_mut_children_with`]. If you want to recurse, you need to \
49860             call it manually."]
49861    #[inline]
49862    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
49863        <TsIntersectionType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49864    }
49865    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
49866             [`TsKeywordType::visit_mut_children_with`]. If you want to recurse, you need to call \
49867             it manually."]
49868    #[inline]
49869    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
49870        <TsKeywordType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49871    }
49872    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
49873             [`TsKeywordTypeKind::visit_mut_children_with`]. If you want to recurse, you need to \
49874             call it manually."]
49875    #[inline]
49876    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
49877        <TsKeywordTypeKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49878    }
49879    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
49880             [`TsLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
49881             manually."]
49882    #[inline]
49883    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
49884        <TsLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49885    }
49886    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
49887             [`TsLitType::visit_mut_children_with`]. If you want to recurse, you need to call it \
49888             manually."]
49889    #[inline]
49890    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
49891        <TsLitType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49892    }
49893    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
49894             [`TsMappedType::visit_mut_children_with`]. If you want to recurse, you need to call \
49895             it manually."]
49896    #[inline]
49897    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
49898        <TsMappedType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49899    }
49900    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
49901             [`TsMethodSignature::visit_mut_children_with`]. If you want to recurse, you need to \
49902             call it manually."]
49903    #[inline]
49904    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
49905        <TsMethodSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49906    }
49907    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
49908             [`TsModuleBlock::visit_mut_children_with`]. If you want to recurse, you need to call \
49909             it manually."]
49910    #[inline]
49911    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
49912        <TsModuleBlock as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49913    }
49914    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
49915             [`TsModuleDecl::visit_mut_children_with`]. If you want to recurse, you need to call \
49916             it manually."]
49917    #[inline]
49918    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
49919        <TsModuleDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49920    }
49921    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
49922             [`TsModuleName::visit_mut_children_with`]. If you want to recurse, you need to call \
49923             it manually."]
49924    #[inline]
49925    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
49926        <TsModuleName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49927    }
49928    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
49929             [`TsModuleRef::visit_mut_children_with`]. If you want to recurse, you need to call it \
49930             manually."]
49931    #[inline]
49932    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
49933        <TsModuleRef as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49934    }
49935    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
49936             [`TsNamespaceBody::visit_mut_children_with`]. If you want to recurse, you need to \
49937             call it manually."]
49938    #[inline]
49939    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
49940        <TsNamespaceBody as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49941    }
49942    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
49943             [`TsNamespaceDecl::visit_mut_children_with`]. If you want to recurse, you need to \
49944             call it manually."]
49945    #[inline]
49946    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
49947        <TsNamespaceDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49948    }
49949    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
49950             [`TsNamespaceExportDecl::visit_mut_children_with`]. If you want to recurse, you need \
49951             to call it manually."]
49952    #[inline]
49953    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
49954        <TsNamespaceExportDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49955    }
49956    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
49957             [`TsNonNullExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
49958             it manually."]
49959    #[inline]
49960    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
49961        <TsNonNullExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49962    }
49963    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
49964             [`TsOptionalType::visit_mut_children_with`]. If you want to recurse, you need to call \
49965             it manually."]
49966    #[inline]
49967    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
49968        <TsOptionalType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49969    }
49970    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
49971             [`TsParamProp::visit_mut_children_with`]. If you want to recurse, you need to call it \
49972             manually."]
49973    #[inline]
49974    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
49975        <TsParamProp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49976    }
49977    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
49978             [`TsParamPropParam::visit_mut_children_with`]. If you want to recurse, you need to \
49979             call it manually."]
49980    #[inline]
49981    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
49982        <TsParamPropParam as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49983    }
49984    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
49985             [`TsParenthesizedType::visit_mut_children_with`]. If you want to recurse, you need to \
49986             call it manually."]
49987    #[inline]
49988    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
49989        <TsParenthesizedType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49990    }
49991    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
49992             [`TsPropertySignature::visit_mut_children_with`]. If you want to recurse, you need to \
49993             call it manually."]
49994    #[inline]
49995    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
49996        <TsPropertySignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
49997    }
49998    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
49999             [`TsQualifiedName::visit_mut_children_with`]. If you want to recurse, you need to \
50000             call it manually."]
50001    #[inline]
50002    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
50003        <TsQualifiedName as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50004    }
50005    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
50006             [`TsRestType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50007             manually."]
50008    #[inline]
50009    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
50010        <TsRestType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50011    }
50012    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
50013             [`TsSatisfiesExpr::visit_mut_children_with`]. If you want to recurse, you need to \
50014             call it manually."]
50015    #[inline]
50016    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
50017        <TsSatisfiesExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50018    }
50019    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
50020             [`TsSetterSignature::visit_mut_children_with`]. If you want to recurse, you need to \
50021             call it manually."]
50022    #[inline]
50023    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
50024        <TsSetterSignature as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50025    }
50026    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
50027             [`TsThisType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50028             manually."]
50029    #[inline]
50030    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
50031        <TsThisType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50032    }
50033    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
50034             [`TsThisTypeOrIdent::visit_mut_children_with`]. If you want to recurse, you need to \
50035             call it manually."]
50036    #[inline]
50037    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
50038        <TsThisTypeOrIdent as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50039    }
50040    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
50041             [`TsTplLitType::visit_mut_children_with`]. If you want to recurse, you need to call \
50042             it manually."]
50043    #[inline]
50044    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
50045        <TsTplLitType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50046    }
50047    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
50048             [`TsTupleElement::visit_mut_children_with`]. If you want to recurse, you need to call \
50049             it manually."]
50050    #[inline]
50051    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
50052        <TsTupleElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50053    }
50054    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
50055             < TsTupleElement >::visit_mut_children_with`]. If you want to recurse, you need to \
50056             call it manually."]
50057    #[inline]
50058    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
50059        <Vec<TsTupleElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50060    }
50061    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
50062             [`TsTupleType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50063             manually."]
50064    #[inline]
50065    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
50066        <TsTupleType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50067    }
50068    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
50069             [`TsType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50070             manually."]
50071    #[inline]
50072    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
50073        <TsType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50074    }
50075    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
50076             [`TsTypeAliasDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50077             call it manually."]
50078    #[inline]
50079    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
50080        <TsTypeAliasDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50081    }
50082    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
50083             [`TsTypeAnn::visit_mut_children_with`]. If you want to recurse, you need to call it \
50084             manually."]
50085    #[inline]
50086    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
50087        <TsTypeAnn as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50088    }
50089    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
50090             [`TsTypeAssertion::visit_mut_children_with`]. If you want to recurse, you need to \
50091             call it manually."]
50092    #[inline]
50093    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
50094        <TsTypeAssertion as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50095    }
50096    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
50097             [`TsTypeElement::visit_mut_children_with`]. If you want to recurse, you need to call \
50098             it manually."]
50099    #[inline]
50100    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
50101        <TsTypeElement as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50102    }
50103    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
50104             < TsTypeElement >::visit_mut_children_with`]. If you want to recurse, you need to \
50105             call it manually."]
50106    #[inline]
50107    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
50108        <Vec<TsTypeElement> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50109    }
50110    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
50111             [`TsTypeLit::visit_mut_children_with`]. If you want to recurse, you need to call it \
50112             manually."]
50113    #[inline]
50114    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
50115        <TsTypeLit as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50116    }
50117    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
50118             [`TsTypeOperator::visit_mut_children_with`]. If you want to recurse, you need to call \
50119             it manually."]
50120    #[inline]
50121    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
50122        <TsTypeOperator as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50123    }
50124    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
50125             [`TsTypeOperatorOp::visit_mut_children_with`]. If you want to recurse, you need to \
50126             call it manually."]
50127    #[inline]
50128    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
50129        <TsTypeOperatorOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50130    }
50131    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
50132             [`TsTypeParam::visit_mut_children_with`]. If you want to recurse, you need to call it \
50133             manually."]
50134    #[inline]
50135    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
50136        <TsTypeParam as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50137    }
50138    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
50139             [`TsTypeParamDecl::visit_mut_children_with`]. If you want to recurse, you need to \
50140             call it manually."]
50141    #[inline]
50142    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
50143        <TsTypeParamDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50144    }
50145    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
50146             [`TsTypeParamInstantiation::visit_mut_children_with`]. If you want to recurse, you \
50147             need to call it manually."]
50148    #[inline]
50149    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
50150        <TsTypeParamInstantiation as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50151    }
50152    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
50153             TsTypeParam >::visit_mut_children_with`]. If you want to recurse, you need to call it \
50154             manually."]
50155    #[inline]
50156    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
50157        <Vec<TsTypeParam> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50158    }
50159    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
50160             [`TsTypePredicate::visit_mut_children_with`]. If you want to recurse, you need to \
50161             call it manually."]
50162    #[inline]
50163    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
50164        <TsTypePredicate as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50165    }
50166    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
50167             [`TsTypeQuery::visit_mut_children_with`]. If you want to recurse, you need to call it \
50168             manually."]
50169    #[inline]
50170    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
50171        <TsTypeQuery as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50172    }
50173    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
50174             [`TsTypeQueryExpr::visit_mut_children_with`]. If you want to recurse, you need to \
50175             call it manually."]
50176    #[inline]
50177    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
50178        <TsTypeQueryExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50179    }
50180    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
50181             [`TsTypeRef::visit_mut_children_with`]. If you want to recurse, you need to call it \
50182             manually."]
50183    #[inline]
50184    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
50185        <TsTypeRef as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50186    }
50187    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
50188             < Box < TsType > >::visit_mut_children_with`]. If you want to recurse, you need to \
50189             call it manually."]
50190    #[inline]
50191    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
50192        <Vec<Box<TsType>> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50193    }
50194    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
50195             [`TsUnionOrIntersectionType::visit_mut_children_with`]. If you want to recurse, you \
50196             need to call it manually."]
50197    #[inline]
50198    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
50199        <TsUnionOrIntersectionType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50200    }
50201    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
50202             [`TsUnionType::visit_mut_children_with`]. If you want to recurse, you need to call it \
50203             manually."]
50204    #[inline]
50205    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
50206        <TsUnionType as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50207    }
50208    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
50209             [`UnaryExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
50210             manually."]
50211    #[inline]
50212    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
50213        <UnaryExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50214    }
50215    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
50216             [`UnaryOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
50217             manually."]
50218    #[inline]
50219    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
50220        <UnaryOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50221    }
50222    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
50223             [`UpdateExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
50224             manually."]
50225    #[inline]
50226    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
50227        <UpdateExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50228    }
50229    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
50230             [`UpdateOp::visit_mut_children_with`]. If you want to recurse, you need to call it \
50231             manually."]
50232    #[inline]
50233    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
50234        <UpdateOp as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50235    }
50236    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
50237             [`UsingDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
50238             manually."]
50239    #[inline]
50240    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
50241        <UsingDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50242    }
50243    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
50244             [`VarDecl::visit_mut_children_with`]. If you want to recurse, you need to call it \
50245             manually."]
50246    #[inline]
50247    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
50248        <VarDecl as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50249    }
50250    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
50251             [`VarDeclKind::visit_mut_children_with`]. If you want to recurse, you need to call it \
50252             manually."]
50253    #[inline]
50254    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
50255        <VarDeclKind as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50256    }
50257    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
50258             [`VarDeclOrExpr::visit_mut_children_with`]. If you want to recurse, you need to call \
50259             it manually."]
50260    #[inline]
50261    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
50262        <VarDeclOrExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50263    }
50264    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
50265             [`VarDeclarator::visit_mut_children_with`]. If you want to recurse, you need to call \
50266             it manually."]
50267    #[inline]
50268    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
50269        <VarDeclarator as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50270    }
50271    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
50272             < VarDeclarator >::visit_mut_children_with`]. If you want to recurse, you need to \
50273             call it manually."]
50274    #[inline]
50275    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
50276        <Vec<VarDeclarator> as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50277    }
50278    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
50279             [`WhileStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
50280             manually."]
50281    #[inline]
50282    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
50283        <WhileStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50284    }
50285    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
50286             [`WithStmt::visit_mut_children_with`]. If you want to recurse, you need to call it \
50287             manually."]
50288    #[inline]
50289    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
50290        <WithStmt as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50291    }
50292    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
50293             [`YieldExpr::visit_mut_children_with`]. If you want to recurse, you need to call it \
50294             manually."]
50295    #[inline]
50296    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
50297        <YieldExpr as VisitMutWith<Self>>::visit_mut_children_with(node, self)
50298    }
50299}
50300impl<V> VisitMut for &mut V
50301where
50302    V: ?Sized + VisitMut,
50303{
50304    #[inline]
50305    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
50306        <V as VisitMut>::visit_mut_accessibility(&mut **self, node)
50307    }
50308
50309    #[inline]
50310    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
50311        <V as VisitMut>::visit_mut_array_lit(&mut **self, node)
50312    }
50313
50314    #[inline]
50315    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
50316        <V as VisitMut>::visit_mut_array_pat(&mut **self, node)
50317    }
50318
50319    #[inline]
50320    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
50321        <V as VisitMut>::visit_mut_arrow_expr(&mut **self, node)
50322    }
50323
50324    #[inline]
50325    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
50326        <V as VisitMut>::visit_mut_assign_expr(&mut **self, node)
50327    }
50328
50329    #[inline]
50330    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
50331        <V as VisitMut>::visit_mut_assign_op(&mut **self, node)
50332    }
50333
50334    #[inline]
50335    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
50336        <V as VisitMut>::visit_mut_assign_pat(&mut **self, node)
50337    }
50338
50339    #[inline]
50340    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
50341        <V as VisitMut>::visit_mut_assign_pat_prop(&mut **self, node)
50342    }
50343
50344    #[inline]
50345    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
50346        <V as VisitMut>::visit_mut_assign_prop(&mut **self, node)
50347    }
50348
50349    #[inline]
50350    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
50351        <V as VisitMut>::visit_mut_assign_target(&mut **self, node)
50352    }
50353
50354    #[inline]
50355    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
50356        <V as VisitMut>::visit_mut_assign_target_pat(&mut **self, node)
50357    }
50358
50359    #[inline]
50360    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
50361        <V as VisitMut>::visit_mut_atom(&mut **self, node)
50362    }
50363
50364    #[inline]
50365    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
50366        <V as VisitMut>::visit_mut_auto_accessor(&mut **self, node)
50367    }
50368
50369    #[inline]
50370    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
50371        <V as VisitMut>::visit_mut_await_expr(&mut **self, node)
50372    }
50373
50374    #[inline]
50375    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
50376        <V as VisitMut>::visit_mut_big_int(&mut **self, node)
50377    }
50378
50379    #[inline]
50380    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
50381        <V as VisitMut>::visit_mut_big_int_value(&mut **self, node)
50382    }
50383
50384    #[inline]
50385    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
50386        <V as VisitMut>::visit_mut_bin_expr(&mut **self, node)
50387    }
50388
50389    #[inline]
50390    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
50391        <V as VisitMut>::visit_mut_binary_op(&mut **self, node)
50392    }
50393
50394    #[inline]
50395    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
50396        <V as VisitMut>::visit_mut_binding_ident(&mut **self, node)
50397    }
50398
50399    #[inline]
50400    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
50401        <V as VisitMut>::visit_mut_block_stmt(&mut **self, node)
50402    }
50403
50404    #[inline]
50405    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
50406        <V as VisitMut>::visit_mut_block_stmt_or_expr(&mut **self, node)
50407    }
50408
50409    #[inline]
50410    fn visit_mut_bool(&mut self, node: &mut Bool) {
50411        <V as VisitMut>::visit_mut_bool(&mut **self, node)
50412    }
50413
50414    #[inline]
50415    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
50416        <V as VisitMut>::visit_mut_break_stmt(&mut **self, node)
50417    }
50418
50419    #[inline]
50420    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
50421        <V as VisitMut>::visit_mut_call_expr(&mut **self, node)
50422    }
50423
50424    #[inline]
50425    fn visit_mut_callee(&mut self, node: &mut Callee) {
50426        <V as VisitMut>::visit_mut_callee(&mut **self, node)
50427    }
50428
50429    #[inline]
50430    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
50431        <V as VisitMut>::visit_mut_catch_clause(&mut **self, node)
50432    }
50433
50434    #[inline]
50435    fn visit_mut_class(&mut self, node: &mut Class) {
50436        <V as VisitMut>::visit_mut_class(&mut **self, node)
50437    }
50438
50439    #[inline]
50440    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
50441        <V as VisitMut>::visit_mut_class_decl(&mut **self, node)
50442    }
50443
50444    #[inline]
50445    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
50446        <V as VisitMut>::visit_mut_class_expr(&mut **self, node)
50447    }
50448
50449    #[inline]
50450    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
50451        <V as VisitMut>::visit_mut_class_member(&mut **self, node)
50452    }
50453
50454    #[inline]
50455    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
50456        <V as VisitMut>::visit_mut_class_members(&mut **self, node)
50457    }
50458
50459    #[inline]
50460    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
50461        <V as VisitMut>::visit_mut_class_method(&mut **self, node)
50462    }
50463
50464    #[inline]
50465    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
50466        <V as VisitMut>::visit_mut_class_prop(&mut **self, node)
50467    }
50468
50469    #[inline]
50470    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
50471        <V as VisitMut>::visit_mut_computed_prop_name(&mut **self, node)
50472    }
50473
50474    #[inline]
50475    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
50476        <V as VisitMut>::visit_mut_cond_expr(&mut **self, node)
50477    }
50478
50479    #[inline]
50480    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
50481        <V as VisitMut>::visit_mut_constructor(&mut **self, node)
50482    }
50483
50484    #[inline]
50485    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
50486        <V as VisitMut>::visit_mut_continue_stmt(&mut **self, node)
50487    }
50488
50489    #[inline]
50490    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
50491        <V as VisitMut>::visit_mut_debugger_stmt(&mut **self, node)
50492    }
50493
50494    #[inline]
50495    fn visit_mut_decl(&mut self, node: &mut Decl) {
50496        <V as VisitMut>::visit_mut_decl(&mut **self, node)
50497    }
50498
50499    #[inline]
50500    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
50501        <V as VisitMut>::visit_mut_decorator(&mut **self, node)
50502    }
50503
50504    #[inline]
50505    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
50506        <V as VisitMut>::visit_mut_decorators(&mut **self, node)
50507    }
50508
50509    #[inline]
50510    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
50511        <V as VisitMut>::visit_mut_default_decl(&mut **self, node)
50512    }
50513
50514    #[inline]
50515    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
50516        <V as VisitMut>::visit_mut_do_while_stmt(&mut **self, node)
50517    }
50518
50519    #[inline]
50520    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
50521        <V as VisitMut>::visit_mut_empty_stmt(&mut **self, node)
50522    }
50523
50524    #[inline]
50525    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
50526        <V as VisitMut>::visit_mut_export_all(&mut **self, node)
50527    }
50528
50529    #[inline]
50530    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
50531        <V as VisitMut>::visit_mut_export_decl(&mut **self, node)
50532    }
50533
50534    #[inline]
50535    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
50536        <V as VisitMut>::visit_mut_export_default_decl(&mut **self, node)
50537    }
50538
50539    #[inline]
50540    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
50541        <V as VisitMut>::visit_mut_export_default_expr(&mut **self, node)
50542    }
50543
50544    #[inline]
50545    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
50546        <V as VisitMut>::visit_mut_export_default_specifier(&mut **self, node)
50547    }
50548
50549    #[inline]
50550    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
50551        <V as VisitMut>::visit_mut_export_named_specifier(&mut **self, node)
50552    }
50553
50554    #[inline]
50555    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
50556        <V as VisitMut>::visit_mut_export_namespace_specifier(&mut **self, node)
50557    }
50558
50559    #[inline]
50560    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
50561        <V as VisitMut>::visit_mut_export_specifier(&mut **self, node)
50562    }
50563
50564    #[inline]
50565    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
50566        <V as VisitMut>::visit_mut_export_specifiers(&mut **self, node)
50567    }
50568
50569    #[inline]
50570    fn visit_mut_expr(&mut self, node: &mut Expr) {
50571        <V as VisitMut>::visit_mut_expr(&mut **self, node)
50572    }
50573
50574    #[inline]
50575    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
50576        <V as VisitMut>::visit_mut_expr_or_spread(&mut **self, node)
50577    }
50578
50579    #[inline]
50580    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
50581        <V as VisitMut>::visit_mut_expr_or_spreads(&mut **self, node)
50582    }
50583
50584    #[inline]
50585    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
50586        <V as VisitMut>::visit_mut_expr_stmt(&mut **self, node)
50587    }
50588
50589    #[inline]
50590    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
50591        <V as VisitMut>::visit_mut_exprs(&mut **self, node)
50592    }
50593
50594    #[inline]
50595    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
50596        <V as VisitMut>::visit_mut_fn_decl(&mut **self, node)
50597    }
50598
50599    #[inline]
50600    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
50601        <V as VisitMut>::visit_mut_fn_expr(&mut **self, node)
50602    }
50603
50604    #[inline]
50605    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
50606        <V as VisitMut>::visit_mut_for_head(&mut **self, node)
50607    }
50608
50609    #[inline]
50610    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
50611        <V as VisitMut>::visit_mut_for_in_stmt(&mut **self, node)
50612    }
50613
50614    #[inline]
50615    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
50616        <V as VisitMut>::visit_mut_for_of_stmt(&mut **self, node)
50617    }
50618
50619    #[inline]
50620    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
50621        <V as VisitMut>::visit_mut_for_stmt(&mut **self, node)
50622    }
50623
50624    #[inline]
50625    fn visit_mut_function(&mut self, node: &mut Function) {
50626        <V as VisitMut>::visit_mut_function(&mut **self, node)
50627    }
50628
50629    #[inline]
50630    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
50631        <V as VisitMut>::visit_mut_getter_prop(&mut **self, node)
50632    }
50633
50634    #[inline]
50635    fn visit_mut_ident(&mut self, node: &mut Ident) {
50636        <V as VisitMut>::visit_mut_ident(&mut **self, node)
50637    }
50638
50639    #[inline]
50640    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
50641        <V as VisitMut>::visit_mut_ident_name(&mut **self, node)
50642    }
50643
50644    #[inline]
50645    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
50646        <V as VisitMut>::visit_mut_if_stmt(&mut **self, node)
50647    }
50648
50649    #[inline]
50650    fn visit_mut_import(&mut self, node: &mut Import) {
50651        <V as VisitMut>::visit_mut_import(&mut **self, node)
50652    }
50653
50654    #[inline]
50655    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
50656        <V as VisitMut>::visit_mut_import_decl(&mut **self, node)
50657    }
50658
50659    #[inline]
50660    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
50661        <V as VisitMut>::visit_mut_import_default_specifier(&mut **self, node)
50662    }
50663
50664    #[inline]
50665    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
50666        <V as VisitMut>::visit_mut_import_named_specifier(&mut **self, node)
50667    }
50668
50669    #[inline]
50670    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
50671        <V as VisitMut>::visit_mut_import_phase(&mut **self, node)
50672    }
50673
50674    #[inline]
50675    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
50676        <V as VisitMut>::visit_mut_import_specifier(&mut **self, node)
50677    }
50678
50679    #[inline]
50680    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
50681        <V as VisitMut>::visit_mut_import_specifiers(&mut **self, node)
50682    }
50683
50684    #[inline]
50685    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
50686        <V as VisitMut>::visit_mut_import_star_as_specifier(&mut **self, node)
50687    }
50688
50689    #[inline]
50690    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
50691        <V as VisitMut>::visit_mut_import_with(&mut **self, node)
50692    }
50693
50694    #[inline]
50695    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
50696        <V as VisitMut>::visit_mut_import_with_item(&mut **self, node)
50697    }
50698
50699    #[inline]
50700    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
50701        <V as VisitMut>::visit_mut_import_with_items(&mut **self, node)
50702    }
50703
50704    #[inline]
50705    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
50706        <V as VisitMut>::visit_mut_invalid(&mut **self, node)
50707    }
50708
50709    #[inline]
50710    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
50711        <V as VisitMut>::visit_mut_jsx_attr(&mut **self, node)
50712    }
50713
50714    #[inline]
50715    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
50716        <V as VisitMut>::visit_mut_jsx_attr_name(&mut **self, node)
50717    }
50718
50719    #[inline]
50720    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
50721        <V as VisitMut>::visit_mut_jsx_attr_or_spread(&mut **self, node)
50722    }
50723
50724    #[inline]
50725    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
50726        <V as VisitMut>::visit_mut_jsx_attr_or_spreads(&mut **self, node)
50727    }
50728
50729    #[inline]
50730    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
50731        <V as VisitMut>::visit_mut_jsx_attr_value(&mut **self, node)
50732    }
50733
50734    #[inline]
50735    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
50736        <V as VisitMut>::visit_mut_jsx_closing_element(&mut **self, node)
50737    }
50738
50739    #[inline]
50740    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
50741        <V as VisitMut>::visit_mut_jsx_closing_fragment(&mut **self, node)
50742    }
50743
50744    #[inline]
50745    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
50746        <V as VisitMut>::visit_mut_jsx_element(&mut **self, node)
50747    }
50748
50749    #[inline]
50750    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
50751        <V as VisitMut>::visit_mut_jsx_element_child(&mut **self, node)
50752    }
50753
50754    #[inline]
50755    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
50756        <V as VisitMut>::visit_mut_jsx_element_childs(&mut **self, node)
50757    }
50758
50759    #[inline]
50760    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
50761        <V as VisitMut>::visit_mut_jsx_element_name(&mut **self, node)
50762    }
50763
50764    #[inline]
50765    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
50766        <V as VisitMut>::visit_mut_jsx_empty_expr(&mut **self, node)
50767    }
50768
50769    #[inline]
50770    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
50771        <V as VisitMut>::visit_mut_jsx_expr(&mut **self, node)
50772    }
50773
50774    #[inline]
50775    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
50776        <V as VisitMut>::visit_mut_jsx_expr_container(&mut **self, node)
50777    }
50778
50779    #[inline]
50780    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
50781        <V as VisitMut>::visit_mut_jsx_fragment(&mut **self, node)
50782    }
50783
50784    #[inline]
50785    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
50786        <V as VisitMut>::visit_mut_jsx_member_expr(&mut **self, node)
50787    }
50788
50789    #[inline]
50790    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
50791        <V as VisitMut>::visit_mut_jsx_namespaced_name(&mut **self, node)
50792    }
50793
50794    #[inline]
50795    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
50796        <V as VisitMut>::visit_mut_jsx_object(&mut **self, node)
50797    }
50798
50799    #[inline]
50800    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
50801        <V as VisitMut>::visit_mut_jsx_opening_element(&mut **self, node)
50802    }
50803
50804    #[inline]
50805    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
50806        <V as VisitMut>::visit_mut_jsx_opening_fragment(&mut **self, node)
50807    }
50808
50809    #[inline]
50810    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
50811        <V as VisitMut>::visit_mut_jsx_spread_child(&mut **self, node)
50812    }
50813
50814    #[inline]
50815    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
50816        <V as VisitMut>::visit_mut_jsx_text(&mut **self, node)
50817    }
50818
50819    #[inline]
50820    fn visit_mut_key(&mut self, node: &mut Key) {
50821        <V as VisitMut>::visit_mut_key(&mut **self, node)
50822    }
50823
50824    #[inline]
50825    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
50826        <V as VisitMut>::visit_mut_key_value_pat_prop(&mut **self, node)
50827    }
50828
50829    #[inline]
50830    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
50831        <V as VisitMut>::visit_mut_key_value_prop(&mut **self, node)
50832    }
50833
50834    #[inline]
50835    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
50836        <V as VisitMut>::visit_mut_labeled_stmt(&mut **self, node)
50837    }
50838
50839    #[inline]
50840    fn visit_mut_lit(&mut self, node: &mut Lit) {
50841        <V as VisitMut>::visit_mut_lit(&mut **self, node)
50842    }
50843
50844    #[inline]
50845    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
50846        <V as VisitMut>::visit_mut_member_expr(&mut **self, node)
50847    }
50848
50849    #[inline]
50850    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
50851        <V as VisitMut>::visit_mut_member_prop(&mut **self, node)
50852    }
50853
50854    #[inline]
50855    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
50856        <V as VisitMut>::visit_mut_meta_prop_expr(&mut **self, node)
50857    }
50858
50859    #[inline]
50860    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
50861        <V as VisitMut>::visit_mut_meta_prop_kind(&mut **self, node)
50862    }
50863
50864    #[inline]
50865    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
50866        <V as VisitMut>::visit_mut_method_kind(&mut **self, node)
50867    }
50868
50869    #[inline]
50870    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
50871        <V as VisitMut>::visit_mut_method_prop(&mut **self, node)
50872    }
50873
50874    #[inline]
50875    fn visit_mut_module(&mut self, node: &mut Module) {
50876        <V as VisitMut>::visit_mut_module(&mut **self, node)
50877    }
50878
50879    #[inline]
50880    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
50881        <V as VisitMut>::visit_mut_module_decl(&mut **self, node)
50882    }
50883
50884    #[inline]
50885    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
50886        <V as VisitMut>::visit_mut_module_export_name(&mut **self, node)
50887    }
50888
50889    #[inline]
50890    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
50891        <V as VisitMut>::visit_mut_module_item(&mut **self, node)
50892    }
50893
50894    #[inline]
50895    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
50896        <V as VisitMut>::visit_mut_module_items(&mut **self, node)
50897    }
50898
50899    #[inline]
50900    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
50901        <V as VisitMut>::visit_mut_named_export(&mut **self, node)
50902    }
50903
50904    #[inline]
50905    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
50906        <V as VisitMut>::visit_mut_new_expr(&mut **self, node)
50907    }
50908
50909    #[inline]
50910    fn visit_mut_null(&mut self, node: &mut Null) {
50911        <V as VisitMut>::visit_mut_null(&mut **self, node)
50912    }
50913
50914    #[inline]
50915    fn visit_mut_number(&mut self, node: &mut Number) {
50916        <V as VisitMut>::visit_mut_number(&mut **self, node)
50917    }
50918
50919    #[inline]
50920    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
50921        <V as VisitMut>::visit_mut_object_lit(&mut **self, node)
50922    }
50923
50924    #[inline]
50925    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
50926        <V as VisitMut>::visit_mut_object_pat(&mut **self, node)
50927    }
50928
50929    #[inline]
50930    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
50931        <V as VisitMut>::visit_mut_object_pat_prop(&mut **self, node)
50932    }
50933
50934    #[inline]
50935    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
50936        <V as VisitMut>::visit_mut_object_pat_props(&mut **self, node)
50937    }
50938
50939    #[inline]
50940    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
50941        <V as VisitMut>::visit_mut_opt_accessibility(&mut **self, node)
50942    }
50943
50944    #[inline]
50945    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
50946        <V as VisitMut>::visit_mut_opt_atom(&mut **self, node)
50947    }
50948
50949    #[inline]
50950    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
50951        <V as VisitMut>::visit_mut_opt_block_stmt(&mut **self, node)
50952    }
50953
50954    #[inline]
50955    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
50956        <V as VisitMut>::visit_mut_opt_call(&mut **self, node)
50957    }
50958
50959    #[inline]
50960    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
50961        <V as VisitMut>::visit_mut_opt_catch_clause(&mut **self, node)
50962    }
50963
50964    #[inline]
50965    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
50966        <V as VisitMut>::visit_mut_opt_chain_base(&mut **self, node)
50967    }
50968
50969    #[inline]
50970    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
50971        <V as VisitMut>::visit_mut_opt_chain_expr(&mut **self, node)
50972    }
50973
50974    #[inline]
50975    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
50976        <V as VisitMut>::visit_mut_opt_expr(&mut **self, node)
50977    }
50978
50979    #[inline]
50980    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
50981        <V as VisitMut>::visit_mut_opt_expr_or_spread(&mut **self, node)
50982    }
50983
50984    #[inline]
50985    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
50986        <V as VisitMut>::visit_mut_opt_expr_or_spreads(&mut **self, node)
50987    }
50988
50989    #[inline]
50990    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
50991        <V as VisitMut>::visit_mut_opt_ident(&mut **self, node)
50992    }
50993
50994    #[inline]
50995    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
50996        <V as VisitMut>::visit_mut_opt_jsx_attr_value(&mut **self, node)
50997    }
50998
50999    #[inline]
51000    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
51001        <V as VisitMut>::visit_mut_opt_jsx_closing_element(&mut **self, node)
51002    }
51003
51004    #[inline]
51005    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
51006        <V as VisitMut>::visit_mut_opt_module_export_name(&mut **self, node)
51007    }
51008
51009    #[inline]
51010    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
51011        <V as VisitMut>::visit_mut_opt_object_lit(&mut **self, node)
51012    }
51013
51014    #[inline]
51015    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
51016        <V as VisitMut>::visit_mut_opt_pat(&mut **self, node)
51017    }
51018
51019    #[inline]
51020    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
51021        <V as VisitMut>::visit_mut_opt_span(&mut **self, node)
51022    }
51023
51024    #[inline]
51025    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
51026        <V as VisitMut>::visit_mut_opt_stmt(&mut **self, node)
51027    }
51028
51029    #[inline]
51030    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
51031        <V as VisitMut>::visit_mut_opt_str(&mut **self, node)
51032    }
51033
51034    #[inline]
51035    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
51036        <V as VisitMut>::visit_mut_opt_true_plus_minus(&mut **self, node)
51037    }
51038
51039    #[inline]
51040    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
51041        <V as VisitMut>::visit_mut_opt_ts_entity_name(&mut **self, node)
51042    }
51043
51044    #[inline]
51045    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
51046        <V as VisitMut>::visit_mut_opt_ts_namespace_body(&mut **self, node)
51047    }
51048
51049    #[inline]
51050    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
51051        <V as VisitMut>::visit_mut_opt_ts_type(&mut **self, node)
51052    }
51053
51054    #[inline]
51055    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
51056        <V as VisitMut>::visit_mut_opt_ts_type_ann(&mut **self, node)
51057    }
51058
51059    #[inline]
51060    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
51061        <V as VisitMut>::visit_mut_opt_ts_type_param_decl(&mut **self, node)
51062    }
51063
51064    #[inline]
51065    fn visit_mut_opt_ts_type_param_instantiation(
51066        &mut self,
51067        node: &mut Option<Box<TsTypeParamInstantiation>>,
51068    ) {
51069        <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(&mut **self, node)
51070    }
51071
51072    #[inline]
51073    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
51074        <V as VisitMut>::visit_mut_opt_var_decl_or_expr(&mut **self, node)
51075    }
51076
51077    #[inline]
51078    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
51079        <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node)
51080    }
51081
51082    #[inline]
51083    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
51084        <V as VisitMut>::visit_mut_opt_vec_pats(&mut **self, node)
51085    }
51086
51087    #[inline]
51088    fn visit_mut_param(&mut self, node: &mut Param) {
51089        <V as VisitMut>::visit_mut_param(&mut **self, node)
51090    }
51091
51092    #[inline]
51093    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
51094        <V as VisitMut>::visit_mut_param_or_ts_param_prop(&mut **self, node)
51095    }
51096
51097    #[inline]
51098    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
51099        <V as VisitMut>::visit_mut_param_or_ts_param_props(&mut **self, node)
51100    }
51101
51102    #[inline]
51103    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
51104        <V as VisitMut>::visit_mut_params(&mut **self, node)
51105    }
51106
51107    #[inline]
51108    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
51109        <V as VisitMut>::visit_mut_paren_expr(&mut **self, node)
51110    }
51111
51112    #[inline]
51113    fn visit_mut_pat(&mut self, node: &mut Pat) {
51114        <V as VisitMut>::visit_mut_pat(&mut **self, node)
51115    }
51116
51117    #[inline]
51118    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
51119        <V as VisitMut>::visit_mut_pats(&mut **self, node)
51120    }
51121
51122    #[inline]
51123    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
51124        <V as VisitMut>::visit_mut_private_method(&mut **self, node)
51125    }
51126
51127    #[inline]
51128    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
51129        <V as VisitMut>::visit_mut_private_name(&mut **self, node)
51130    }
51131
51132    #[inline]
51133    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
51134        <V as VisitMut>::visit_mut_private_prop(&mut **self, node)
51135    }
51136
51137    #[inline]
51138    fn visit_mut_program(&mut self, node: &mut Program) {
51139        <V as VisitMut>::visit_mut_program(&mut **self, node)
51140    }
51141
51142    #[inline]
51143    fn visit_mut_prop(&mut self, node: &mut Prop) {
51144        <V as VisitMut>::visit_mut_prop(&mut **self, node)
51145    }
51146
51147    #[inline]
51148    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
51149        <V as VisitMut>::visit_mut_prop_name(&mut **self, node)
51150    }
51151
51152    #[inline]
51153    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
51154        <V as VisitMut>::visit_mut_prop_or_spread(&mut **self, node)
51155    }
51156
51157    #[inline]
51158    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
51159        <V as VisitMut>::visit_mut_prop_or_spreads(&mut **self, node)
51160    }
51161
51162    #[inline]
51163    fn visit_mut_regex(&mut self, node: &mut Regex) {
51164        <V as VisitMut>::visit_mut_regex(&mut **self, node)
51165    }
51166
51167    #[inline]
51168    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
51169        <V as VisitMut>::visit_mut_rest_pat(&mut **self, node)
51170    }
51171
51172    #[inline]
51173    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
51174        <V as VisitMut>::visit_mut_return_stmt(&mut **self, node)
51175    }
51176
51177    #[inline]
51178    fn visit_mut_script(&mut self, node: &mut Script) {
51179        <V as VisitMut>::visit_mut_script(&mut **self, node)
51180    }
51181
51182    #[inline]
51183    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
51184        <V as VisitMut>::visit_mut_seq_expr(&mut **self, node)
51185    }
51186
51187    #[inline]
51188    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
51189        <V as VisitMut>::visit_mut_setter_prop(&mut **self, node)
51190    }
51191
51192    #[inline]
51193    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
51194        <V as VisitMut>::visit_mut_simple_assign_target(&mut **self, node)
51195    }
51196
51197    #[inline]
51198    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
51199        <V as VisitMut>::visit_mut_span(&mut **self, node)
51200    }
51201
51202    #[inline]
51203    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
51204        <V as VisitMut>::visit_mut_spread_element(&mut **self, node)
51205    }
51206
51207    #[inline]
51208    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
51209        <V as VisitMut>::visit_mut_static_block(&mut **self, node)
51210    }
51211
51212    #[inline]
51213    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
51214        <V as VisitMut>::visit_mut_stmt(&mut **self, node)
51215    }
51216
51217    #[inline]
51218    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
51219        <V as VisitMut>::visit_mut_stmts(&mut **self, node)
51220    }
51221
51222    #[inline]
51223    fn visit_mut_str(&mut self, node: &mut Str) {
51224        <V as VisitMut>::visit_mut_str(&mut **self, node)
51225    }
51226
51227    #[inline]
51228    fn visit_mut_super(&mut self, node: &mut Super) {
51229        <V as VisitMut>::visit_mut_super(&mut **self, node)
51230    }
51231
51232    #[inline]
51233    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
51234        <V as VisitMut>::visit_mut_super_prop(&mut **self, node)
51235    }
51236
51237    #[inline]
51238    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
51239        <V as VisitMut>::visit_mut_super_prop_expr(&mut **self, node)
51240    }
51241
51242    #[inline]
51243    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
51244        <V as VisitMut>::visit_mut_switch_case(&mut **self, node)
51245    }
51246
51247    #[inline]
51248    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
51249        <V as VisitMut>::visit_mut_switch_cases(&mut **self, node)
51250    }
51251
51252    #[inline]
51253    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
51254        <V as VisitMut>::visit_mut_switch_stmt(&mut **self, node)
51255    }
51256
51257    #[inline]
51258    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
51259        <V as VisitMut>::visit_mut_syntax_context(&mut **self, node)
51260    }
51261
51262    #[inline]
51263    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
51264        <V as VisitMut>::visit_mut_tagged_tpl(&mut **self, node)
51265    }
51266
51267    #[inline]
51268    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
51269        <V as VisitMut>::visit_mut_this_expr(&mut **self, node)
51270    }
51271
51272    #[inline]
51273    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
51274        <V as VisitMut>::visit_mut_throw_stmt(&mut **self, node)
51275    }
51276
51277    #[inline]
51278    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
51279        <V as VisitMut>::visit_mut_tpl(&mut **self, node)
51280    }
51281
51282    #[inline]
51283    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
51284        <V as VisitMut>::visit_mut_tpl_element(&mut **self, node)
51285    }
51286
51287    #[inline]
51288    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
51289        <V as VisitMut>::visit_mut_tpl_elements(&mut **self, node)
51290    }
51291
51292    #[inline]
51293    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
51294        <V as VisitMut>::visit_mut_true_plus_minus(&mut **self, node)
51295    }
51296
51297    #[inline]
51298    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
51299        <V as VisitMut>::visit_mut_try_stmt(&mut **self, node)
51300    }
51301
51302    #[inline]
51303    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
51304        <V as VisitMut>::visit_mut_ts_array_type(&mut **self, node)
51305    }
51306
51307    #[inline]
51308    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
51309        <V as VisitMut>::visit_mut_ts_as_expr(&mut **self, node)
51310    }
51311
51312    #[inline]
51313    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
51314        <V as VisitMut>::visit_mut_ts_call_signature_decl(&mut **self, node)
51315    }
51316
51317    #[inline]
51318    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
51319        <V as VisitMut>::visit_mut_ts_conditional_type(&mut **self, node)
51320    }
51321
51322    #[inline]
51323    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
51324        <V as VisitMut>::visit_mut_ts_const_assertion(&mut **self, node)
51325    }
51326
51327    #[inline]
51328    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
51329        <V as VisitMut>::visit_mut_ts_construct_signature_decl(&mut **self, node)
51330    }
51331
51332    #[inline]
51333    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
51334        <V as VisitMut>::visit_mut_ts_constructor_type(&mut **self, node)
51335    }
51336
51337    #[inline]
51338    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
51339        <V as VisitMut>::visit_mut_ts_entity_name(&mut **self, node)
51340    }
51341
51342    #[inline]
51343    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
51344        <V as VisitMut>::visit_mut_ts_enum_decl(&mut **self, node)
51345    }
51346
51347    #[inline]
51348    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
51349        <V as VisitMut>::visit_mut_ts_enum_member(&mut **self, node)
51350    }
51351
51352    #[inline]
51353    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
51354        <V as VisitMut>::visit_mut_ts_enum_member_id(&mut **self, node)
51355    }
51356
51357    #[inline]
51358    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
51359        <V as VisitMut>::visit_mut_ts_enum_members(&mut **self, node)
51360    }
51361
51362    #[inline]
51363    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
51364        <V as VisitMut>::visit_mut_ts_export_assignment(&mut **self, node)
51365    }
51366
51367    #[inline]
51368    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
51369        <V as VisitMut>::visit_mut_ts_expr_with_type_args(&mut **self, node)
51370    }
51371
51372    #[inline]
51373    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
51374        <V as VisitMut>::visit_mut_ts_expr_with_type_argss(&mut **self, node)
51375    }
51376
51377    #[inline]
51378    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
51379        <V as VisitMut>::visit_mut_ts_external_module_ref(&mut **self, node)
51380    }
51381
51382    #[inline]
51383    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
51384        <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(&mut **self, node)
51385    }
51386
51387    #[inline]
51388    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
51389        <V as VisitMut>::visit_mut_ts_fn_param(&mut **self, node)
51390    }
51391
51392    #[inline]
51393    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
51394        <V as VisitMut>::visit_mut_ts_fn_params(&mut **self, node)
51395    }
51396
51397    #[inline]
51398    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
51399        <V as VisitMut>::visit_mut_ts_fn_type(&mut **self, node)
51400    }
51401
51402    #[inline]
51403    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
51404        <V as VisitMut>::visit_mut_ts_getter_signature(&mut **self, node)
51405    }
51406
51407    #[inline]
51408    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
51409        <V as VisitMut>::visit_mut_ts_import_equals_decl(&mut **self, node)
51410    }
51411
51412    #[inline]
51413    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
51414        <V as VisitMut>::visit_mut_ts_import_type(&mut **self, node)
51415    }
51416
51417    #[inline]
51418    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
51419        <V as VisitMut>::visit_mut_ts_index_signature(&mut **self, node)
51420    }
51421
51422    #[inline]
51423    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
51424        <V as VisitMut>::visit_mut_ts_indexed_access_type(&mut **self, node)
51425    }
51426
51427    #[inline]
51428    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
51429        <V as VisitMut>::visit_mut_ts_infer_type(&mut **self, node)
51430    }
51431
51432    #[inline]
51433    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
51434        <V as VisitMut>::visit_mut_ts_instantiation(&mut **self, node)
51435    }
51436
51437    #[inline]
51438    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
51439        <V as VisitMut>::visit_mut_ts_interface_body(&mut **self, node)
51440    }
51441
51442    #[inline]
51443    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
51444        <V as VisitMut>::visit_mut_ts_interface_decl(&mut **self, node)
51445    }
51446
51447    #[inline]
51448    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
51449        <V as VisitMut>::visit_mut_ts_intersection_type(&mut **self, node)
51450    }
51451
51452    #[inline]
51453    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
51454        <V as VisitMut>::visit_mut_ts_keyword_type(&mut **self, node)
51455    }
51456
51457    #[inline]
51458    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
51459        <V as VisitMut>::visit_mut_ts_keyword_type_kind(&mut **self, node)
51460    }
51461
51462    #[inline]
51463    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
51464        <V as VisitMut>::visit_mut_ts_lit(&mut **self, node)
51465    }
51466
51467    #[inline]
51468    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
51469        <V as VisitMut>::visit_mut_ts_lit_type(&mut **self, node)
51470    }
51471
51472    #[inline]
51473    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
51474        <V as VisitMut>::visit_mut_ts_mapped_type(&mut **self, node)
51475    }
51476
51477    #[inline]
51478    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
51479        <V as VisitMut>::visit_mut_ts_method_signature(&mut **self, node)
51480    }
51481
51482    #[inline]
51483    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
51484        <V as VisitMut>::visit_mut_ts_module_block(&mut **self, node)
51485    }
51486
51487    #[inline]
51488    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
51489        <V as VisitMut>::visit_mut_ts_module_decl(&mut **self, node)
51490    }
51491
51492    #[inline]
51493    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
51494        <V as VisitMut>::visit_mut_ts_module_name(&mut **self, node)
51495    }
51496
51497    #[inline]
51498    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
51499        <V as VisitMut>::visit_mut_ts_module_ref(&mut **self, node)
51500    }
51501
51502    #[inline]
51503    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
51504        <V as VisitMut>::visit_mut_ts_namespace_body(&mut **self, node)
51505    }
51506
51507    #[inline]
51508    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
51509        <V as VisitMut>::visit_mut_ts_namespace_decl(&mut **self, node)
51510    }
51511
51512    #[inline]
51513    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
51514        <V as VisitMut>::visit_mut_ts_namespace_export_decl(&mut **self, node)
51515    }
51516
51517    #[inline]
51518    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
51519        <V as VisitMut>::visit_mut_ts_non_null_expr(&mut **self, node)
51520    }
51521
51522    #[inline]
51523    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
51524        <V as VisitMut>::visit_mut_ts_optional_type(&mut **self, node)
51525    }
51526
51527    #[inline]
51528    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
51529        <V as VisitMut>::visit_mut_ts_param_prop(&mut **self, node)
51530    }
51531
51532    #[inline]
51533    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
51534        <V as VisitMut>::visit_mut_ts_param_prop_param(&mut **self, node)
51535    }
51536
51537    #[inline]
51538    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
51539        <V as VisitMut>::visit_mut_ts_parenthesized_type(&mut **self, node)
51540    }
51541
51542    #[inline]
51543    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
51544        <V as VisitMut>::visit_mut_ts_property_signature(&mut **self, node)
51545    }
51546
51547    #[inline]
51548    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
51549        <V as VisitMut>::visit_mut_ts_qualified_name(&mut **self, node)
51550    }
51551
51552    #[inline]
51553    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
51554        <V as VisitMut>::visit_mut_ts_rest_type(&mut **self, node)
51555    }
51556
51557    #[inline]
51558    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
51559        <V as VisitMut>::visit_mut_ts_satisfies_expr(&mut **self, node)
51560    }
51561
51562    #[inline]
51563    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
51564        <V as VisitMut>::visit_mut_ts_setter_signature(&mut **self, node)
51565    }
51566
51567    #[inline]
51568    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
51569        <V as VisitMut>::visit_mut_ts_this_type(&mut **self, node)
51570    }
51571
51572    #[inline]
51573    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
51574        <V as VisitMut>::visit_mut_ts_this_type_or_ident(&mut **self, node)
51575    }
51576
51577    #[inline]
51578    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
51579        <V as VisitMut>::visit_mut_ts_tpl_lit_type(&mut **self, node)
51580    }
51581
51582    #[inline]
51583    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
51584        <V as VisitMut>::visit_mut_ts_tuple_element(&mut **self, node)
51585    }
51586
51587    #[inline]
51588    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
51589        <V as VisitMut>::visit_mut_ts_tuple_elements(&mut **self, node)
51590    }
51591
51592    #[inline]
51593    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
51594        <V as VisitMut>::visit_mut_ts_tuple_type(&mut **self, node)
51595    }
51596
51597    #[inline]
51598    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
51599        <V as VisitMut>::visit_mut_ts_type(&mut **self, node)
51600    }
51601
51602    #[inline]
51603    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
51604        <V as VisitMut>::visit_mut_ts_type_alias_decl(&mut **self, node)
51605    }
51606
51607    #[inline]
51608    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
51609        <V as VisitMut>::visit_mut_ts_type_ann(&mut **self, node)
51610    }
51611
51612    #[inline]
51613    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
51614        <V as VisitMut>::visit_mut_ts_type_assertion(&mut **self, node)
51615    }
51616
51617    #[inline]
51618    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
51619        <V as VisitMut>::visit_mut_ts_type_element(&mut **self, node)
51620    }
51621
51622    #[inline]
51623    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
51624        <V as VisitMut>::visit_mut_ts_type_elements(&mut **self, node)
51625    }
51626
51627    #[inline]
51628    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
51629        <V as VisitMut>::visit_mut_ts_type_lit(&mut **self, node)
51630    }
51631
51632    #[inline]
51633    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
51634        <V as VisitMut>::visit_mut_ts_type_operator(&mut **self, node)
51635    }
51636
51637    #[inline]
51638    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
51639        <V as VisitMut>::visit_mut_ts_type_operator_op(&mut **self, node)
51640    }
51641
51642    #[inline]
51643    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
51644        <V as VisitMut>::visit_mut_ts_type_param(&mut **self, node)
51645    }
51646
51647    #[inline]
51648    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
51649        <V as VisitMut>::visit_mut_ts_type_param_decl(&mut **self, node)
51650    }
51651
51652    #[inline]
51653    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
51654        <V as VisitMut>::visit_mut_ts_type_param_instantiation(&mut **self, node)
51655    }
51656
51657    #[inline]
51658    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
51659        <V as VisitMut>::visit_mut_ts_type_params(&mut **self, node)
51660    }
51661
51662    #[inline]
51663    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
51664        <V as VisitMut>::visit_mut_ts_type_predicate(&mut **self, node)
51665    }
51666
51667    #[inline]
51668    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
51669        <V as VisitMut>::visit_mut_ts_type_query(&mut **self, node)
51670    }
51671
51672    #[inline]
51673    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
51674        <V as VisitMut>::visit_mut_ts_type_query_expr(&mut **self, node)
51675    }
51676
51677    #[inline]
51678    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
51679        <V as VisitMut>::visit_mut_ts_type_ref(&mut **self, node)
51680    }
51681
51682    #[inline]
51683    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
51684        <V as VisitMut>::visit_mut_ts_types(&mut **self, node)
51685    }
51686
51687    #[inline]
51688    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
51689        <V as VisitMut>::visit_mut_ts_union_or_intersection_type(&mut **self, node)
51690    }
51691
51692    #[inline]
51693    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
51694        <V as VisitMut>::visit_mut_ts_union_type(&mut **self, node)
51695    }
51696
51697    #[inline]
51698    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
51699        <V as VisitMut>::visit_mut_unary_expr(&mut **self, node)
51700    }
51701
51702    #[inline]
51703    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
51704        <V as VisitMut>::visit_mut_unary_op(&mut **self, node)
51705    }
51706
51707    #[inline]
51708    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
51709        <V as VisitMut>::visit_mut_update_expr(&mut **self, node)
51710    }
51711
51712    #[inline]
51713    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
51714        <V as VisitMut>::visit_mut_update_op(&mut **self, node)
51715    }
51716
51717    #[inline]
51718    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
51719        <V as VisitMut>::visit_mut_using_decl(&mut **self, node)
51720    }
51721
51722    #[inline]
51723    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
51724        <V as VisitMut>::visit_mut_var_decl(&mut **self, node)
51725    }
51726
51727    #[inline]
51728    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
51729        <V as VisitMut>::visit_mut_var_decl_kind(&mut **self, node)
51730    }
51731
51732    #[inline]
51733    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
51734        <V as VisitMut>::visit_mut_var_decl_or_expr(&mut **self, node)
51735    }
51736
51737    #[inline]
51738    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
51739        <V as VisitMut>::visit_mut_var_declarator(&mut **self, node)
51740    }
51741
51742    #[inline]
51743    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
51744        <V as VisitMut>::visit_mut_var_declarators(&mut **self, node)
51745    }
51746
51747    #[inline]
51748    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
51749        <V as VisitMut>::visit_mut_while_stmt(&mut **self, node)
51750    }
51751
51752    #[inline]
51753    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
51754        <V as VisitMut>::visit_mut_with_stmt(&mut **self, node)
51755    }
51756
51757    #[inline]
51758    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
51759        <V as VisitMut>::visit_mut_yield_expr(&mut **self, node)
51760    }
51761}
51762impl<V> VisitMut for Box<V>
51763where
51764    V: ?Sized + VisitMut,
51765{
51766    #[inline]
51767    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
51768        <V as VisitMut>::visit_mut_accessibility(&mut **self, node)
51769    }
51770
51771    #[inline]
51772    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
51773        <V as VisitMut>::visit_mut_array_lit(&mut **self, node)
51774    }
51775
51776    #[inline]
51777    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
51778        <V as VisitMut>::visit_mut_array_pat(&mut **self, node)
51779    }
51780
51781    #[inline]
51782    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
51783        <V as VisitMut>::visit_mut_arrow_expr(&mut **self, node)
51784    }
51785
51786    #[inline]
51787    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
51788        <V as VisitMut>::visit_mut_assign_expr(&mut **self, node)
51789    }
51790
51791    #[inline]
51792    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
51793        <V as VisitMut>::visit_mut_assign_op(&mut **self, node)
51794    }
51795
51796    #[inline]
51797    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
51798        <V as VisitMut>::visit_mut_assign_pat(&mut **self, node)
51799    }
51800
51801    #[inline]
51802    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
51803        <V as VisitMut>::visit_mut_assign_pat_prop(&mut **self, node)
51804    }
51805
51806    #[inline]
51807    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
51808        <V as VisitMut>::visit_mut_assign_prop(&mut **self, node)
51809    }
51810
51811    #[inline]
51812    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
51813        <V as VisitMut>::visit_mut_assign_target(&mut **self, node)
51814    }
51815
51816    #[inline]
51817    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
51818        <V as VisitMut>::visit_mut_assign_target_pat(&mut **self, node)
51819    }
51820
51821    #[inline]
51822    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
51823        <V as VisitMut>::visit_mut_atom(&mut **self, node)
51824    }
51825
51826    #[inline]
51827    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
51828        <V as VisitMut>::visit_mut_auto_accessor(&mut **self, node)
51829    }
51830
51831    #[inline]
51832    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
51833        <V as VisitMut>::visit_mut_await_expr(&mut **self, node)
51834    }
51835
51836    #[inline]
51837    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
51838        <V as VisitMut>::visit_mut_big_int(&mut **self, node)
51839    }
51840
51841    #[inline]
51842    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
51843        <V as VisitMut>::visit_mut_big_int_value(&mut **self, node)
51844    }
51845
51846    #[inline]
51847    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
51848        <V as VisitMut>::visit_mut_bin_expr(&mut **self, node)
51849    }
51850
51851    #[inline]
51852    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
51853        <V as VisitMut>::visit_mut_binary_op(&mut **self, node)
51854    }
51855
51856    #[inline]
51857    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
51858        <V as VisitMut>::visit_mut_binding_ident(&mut **self, node)
51859    }
51860
51861    #[inline]
51862    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
51863        <V as VisitMut>::visit_mut_block_stmt(&mut **self, node)
51864    }
51865
51866    #[inline]
51867    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
51868        <V as VisitMut>::visit_mut_block_stmt_or_expr(&mut **self, node)
51869    }
51870
51871    #[inline]
51872    fn visit_mut_bool(&mut self, node: &mut Bool) {
51873        <V as VisitMut>::visit_mut_bool(&mut **self, node)
51874    }
51875
51876    #[inline]
51877    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
51878        <V as VisitMut>::visit_mut_break_stmt(&mut **self, node)
51879    }
51880
51881    #[inline]
51882    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
51883        <V as VisitMut>::visit_mut_call_expr(&mut **self, node)
51884    }
51885
51886    #[inline]
51887    fn visit_mut_callee(&mut self, node: &mut Callee) {
51888        <V as VisitMut>::visit_mut_callee(&mut **self, node)
51889    }
51890
51891    #[inline]
51892    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
51893        <V as VisitMut>::visit_mut_catch_clause(&mut **self, node)
51894    }
51895
51896    #[inline]
51897    fn visit_mut_class(&mut self, node: &mut Class) {
51898        <V as VisitMut>::visit_mut_class(&mut **self, node)
51899    }
51900
51901    #[inline]
51902    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
51903        <V as VisitMut>::visit_mut_class_decl(&mut **self, node)
51904    }
51905
51906    #[inline]
51907    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
51908        <V as VisitMut>::visit_mut_class_expr(&mut **self, node)
51909    }
51910
51911    #[inline]
51912    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
51913        <V as VisitMut>::visit_mut_class_member(&mut **self, node)
51914    }
51915
51916    #[inline]
51917    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
51918        <V as VisitMut>::visit_mut_class_members(&mut **self, node)
51919    }
51920
51921    #[inline]
51922    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
51923        <V as VisitMut>::visit_mut_class_method(&mut **self, node)
51924    }
51925
51926    #[inline]
51927    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
51928        <V as VisitMut>::visit_mut_class_prop(&mut **self, node)
51929    }
51930
51931    #[inline]
51932    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
51933        <V as VisitMut>::visit_mut_computed_prop_name(&mut **self, node)
51934    }
51935
51936    #[inline]
51937    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
51938        <V as VisitMut>::visit_mut_cond_expr(&mut **self, node)
51939    }
51940
51941    #[inline]
51942    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
51943        <V as VisitMut>::visit_mut_constructor(&mut **self, node)
51944    }
51945
51946    #[inline]
51947    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
51948        <V as VisitMut>::visit_mut_continue_stmt(&mut **self, node)
51949    }
51950
51951    #[inline]
51952    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
51953        <V as VisitMut>::visit_mut_debugger_stmt(&mut **self, node)
51954    }
51955
51956    #[inline]
51957    fn visit_mut_decl(&mut self, node: &mut Decl) {
51958        <V as VisitMut>::visit_mut_decl(&mut **self, node)
51959    }
51960
51961    #[inline]
51962    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
51963        <V as VisitMut>::visit_mut_decorator(&mut **self, node)
51964    }
51965
51966    #[inline]
51967    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
51968        <V as VisitMut>::visit_mut_decorators(&mut **self, node)
51969    }
51970
51971    #[inline]
51972    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
51973        <V as VisitMut>::visit_mut_default_decl(&mut **self, node)
51974    }
51975
51976    #[inline]
51977    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
51978        <V as VisitMut>::visit_mut_do_while_stmt(&mut **self, node)
51979    }
51980
51981    #[inline]
51982    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
51983        <V as VisitMut>::visit_mut_empty_stmt(&mut **self, node)
51984    }
51985
51986    #[inline]
51987    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
51988        <V as VisitMut>::visit_mut_export_all(&mut **self, node)
51989    }
51990
51991    #[inline]
51992    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
51993        <V as VisitMut>::visit_mut_export_decl(&mut **self, node)
51994    }
51995
51996    #[inline]
51997    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
51998        <V as VisitMut>::visit_mut_export_default_decl(&mut **self, node)
51999    }
52000
52001    #[inline]
52002    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
52003        <V as VisitMut>::visit_mut_export_default_expr(&mut **self, node)
52004    }
52005
52006    #[inline]
52007    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
52008        <V as VisitMut>::visit_mut_export_default_specifier(&mut **self, node)
52009    }
52010
52011    #[inline]
52012    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
52013        <V as VisitMut>::visit_mut_export_named_specifier(&mut **self, node)
52014    }
52015
52016    #[inline]
52017    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
52018        <V as VisitMut>::visit_mut_export_namespace_specifier(&mut **self, node)
52019    }
52020
52021    #[inline]
52022    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
52023        <V as VisitMut>::visit_mut_export_specifier(&mut **self, node)
52024    }
52025
52026    #[inline]
52027    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
52028        <V as VisitMut>::visit_mut_export_specifiers(&mut **self, node)
52029    }
52030
52031    #[inline]
52032    fn visit_mut_expr(&mut self, node: &mut Expr) {
52033        <V as VisitMut>::visit_mut_expr(&mut **self, node)
52034    }
52035
52036    #[inline]
52037    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
52038        <V as VisitMut>::visit_mut_expr_or_spread(&mut **self, node)
52039    }
52040
52041    #[inline]
52042    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
52043        <V as VisitMut>::visit_mut_expr_or_spreads(&mut **self, node)
52044    }
52045
52046    #[inline]
52047    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
52048        <V as VisitMut>::visit_mut_expr_stmt(&mut **self, node)
52049    }
52050
52051    #[inline]
52052    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
52053        <V as VisitMut>::visit_mut_exprs(&mut **self, node)
52054    }
52055
52056    #[inline]
52057    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
52058        <V as VisitMut>::visit_mut_fn_decl(&mut **self, node)
52059    }
52060
52061    #[inline]
52062    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
52063        <V as VisitMut>::visit_mut_fn_expr(&mut **self, node)
52064    }
52065
52066    #[inline]
52067    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
52068        <V as VisitMut>::visit_mut_for_head(&mut **self, node)
52069    }
52070
52071    #[inline]
52072    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
52073        <V as VisitMut>::visit_mut_for_in_stmt(&mut **self, node)
52074    }
52075
52076    #[inline]
52077    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
52078        <V as VisitMut>::visit_mut_for_of_stmt(&mut **self, node)
52079    }
52080
52081    #[inline]
52082    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
52083        <V as VisitMut>::visit_mut_for_stmt(&mut **self, node)
52084    }
52085
52086    #[inline]
52087    fn visit_mut_function(&mut self, node: &mut Function) {
52088        <V as VisitMut>::visit_mut_function(&mut **self, node)
52089    }
52090
52091    #[inline]
52092    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
52093        <V as VisitMut>::visit_mut_getter_prop(&mut **self, node)
52094    }
52095
52096    #[inline]
52097    fn visit_mut_ident(&mut self, node: &mut Ident) {
52098        <V as VisitMut>::visit_mut_ident(&mut **self, node)
52099    }
52100
52101    #[inline]
52102    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
52103        <V as VisitMut>::visit_mut_ident_name(&mut **self, node)
52104    }
52105
52106    #[inline]
52107    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
52108        <V as VisitMut>::visit_mut_if_stmt(&mut **self, node)
52109    }
52110
52111    #[inline]
52112    fn visit_mut_import(&mut self, node: &mut Import) {
52113        <V as VisitMut>::visit_mut_import(&mut **self, node)
52114    }
52115
52116    #[inline]
52117    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
52118        <V as VisitMut>::visit_mut_import_decl(&mut **self, node)
52119    }
52120
52121    #[inline]
52122    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
52123        <V as VisitMut>::visit_mut_import_default_specifier(&mut **self, node)
52124    }
52125
52126    #[inline]
52127    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
52128        <V as VisitMut>::visit_mut_import_named_specifier(&mut **self, node)
52129    }
52130
52131    #[inline]
52132    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
52133        <V as VisitMut>::visit_mut_import_phase(&mut **self, node)
52134    }
52135
52136    #[inline]
52137    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
52138        <V as VisitMut>::visit_mut_import_specifier(&mut **self, node)
52139    }
52140
52141    #[inline]
52142    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
52143        <V as VisitMut>::visit_mut_import_specifiers(&mut **self, node)
52144    }
52145
52146    #[inline]
52147    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
52148        <V as VisitMut>::visit_mut_import_star_as_specifier(&mut **self, node)
52149    }
52150
52151    #[inline]
52152    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
52153        <V as VisitMut>::visit_mut_import_with(&mut **self, node)
52154    }
52155
52156    #[inline]
52157    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
52158        <V as VisitMut>::visit_mut_import_with_item(&mut **self, node)
52159    }
52160
52161    #[inline]
52162    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
52163        <V as VisitMut>::visit_mut_import_with_items(&mut **self, node)
52164    }
52165
52166    #[inline]
52167    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
52168        <V as VisitMut>::visit_mut_invalid(&mut **self, node)
52169    }
52170
52171    #[inline]
52172    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
52173        <V as VisitMut>::visit_mut_jsx_attr(&mut **self, node)
52174    }
52175
52176    #[inline]
52177    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
52178        <V as VisitMut>::visit_mut_jsx_attr_name(&mut **self, node)
52179    }
52180
52181    #[inline]
52182    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
52183        <V as VisitMut>::visit_mut_jsx_attr_or_spread(&mut **self, node)
52184    }
52185
52186    #[inline]
52187    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
52188        <V as VisitMut>::visit_mut_jsx_attr_or_spreads(&mut **self, node)
52189    }
52190
52191    #[inline]
52192    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
52193        <V as VisitMut>::visit_mut_jsx_attr_value(&mut **self, node)
52194    }
52195
52196    #[inline]
52197    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
52198        <V as VisitMut>::visit_mut_jsx_closing_element(&mut **self, node)
52199    }
52200
52201    #[inline]
52202    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
52203        <V as VisitMut>::visit_mut_jsx_closing_fragment(&mut **self, node)
52204    }
52205
52206    #[inline]
52207    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
52208        <V as VisitMut>::visit_mut_jsx_element(&mut **self, node)
52209    }
52210
52211    #[inline]
52212    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
52213        <V as VisitMut>::visit_mut_jsx_element_child(&mut **self, node)
52214    }
52215
52216    #[inline]
52217    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
52218        <V as VisitMut>::visit_mut_jsx_element_childs(&mut **self, node)
52219    }
52220
52221    #[inline]
52222    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
52223        <V as VisitMut>::visit_mut_jsx_element_name(&mut **self, node)
52224    }
52225
52226    #[inline]
52227    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
52228        <V as VisitMut>::visit_mut_jsx_empty_expr(&mut **self, node)
52229    }
52230
52231    #[inline]
52232    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
52233        <V as VisitMut>::visit_mut_jsx_expr(&mut **self, node)
52234    }
52235
52236    #[inline]
52237    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
52238        <V as VisitMut>::visit_mut_jsx_expr_container(&mut **self, node)
52239    }
52240
52241    #[inline]
52242    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
52243        <V as VisitMut>::visit_mut_jsx_fragment(&mut **self, node)
52244    }
52245
52246    #[inline]
52247    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
52248        <V as VisitMut>::visit_mut_jsx_member_expr(&mut **self, node)
52249    }
52250
52251    #[inline]
52252    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
52253        <V as VisitMut>::visit_mut_jsx_namespaced_name(&mut **self, node)
52254    }
52255
52256    #[inline]
52257    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
52258        <V as VisitMut>::visit_mut_jsx_object(&mut **self, node)
52259    }
52260
52261    #[inline]
52262    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
52263        <V as VisitMut>::visit_mut_jsx_opening_element(&mut **self, node)
52264    }
52265
52266    #[inline]
52267    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
52268        <V as VisitMut>::visit_mut_jsx_opening_fragment(&mut **self, node)
52269    }
52270
52271    #[inline]
52272    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
52273        <V as VisitMut>::visit_mut_jsx_spread_child(&mut **self, node)
52274    }
52275
52276    #[inline]
52277    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
52278        <V as VisitMut>::visit_mut_jsx_text(&mut **self, node)
52279    }
52280
52281    #[inline]
52282    fn visit_mut_key(&mut self, node: &mut Key) {
52283        <V as VisitMut>::visit_mut_key(&mut **self, node)
52284    }
52285
52286    #[inline]
52287    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
52288        <V as VisitMut>::visit_mut_key_value_pat_prop(&mut **self, node)
52289    }
52290
52291    #[inline]
52292    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
52293        <V as VisitMut>::visit_mut_key_value_prop(&mut **self, node)
52294    }
52295
52296    #[inline]
52297    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
52298        <V as VisitMut>::visit_mut_labeled_stmt(&mut **self, node)
52299    }
52300
52301    #[inline]
52302    fn visit_mut_lit(&mut self, node: &mut Lit) {
52303        <V as VisitMut>::visit_mut_lit(&mut **self, node)
52304    }
52305
52306    #[inline]
52307    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
52308        <V as VisitMut>::visit_mut_member_expr(&mut **self, node)
52309    }
52310
52311    #[inline]
52312    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
52313        <V as VisitMut>::visit_mut_member_prop(&mut **self, node)
52314    }
52315
52316    #[inline]
52317    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
52318        <V as VisitMut>::visit_mut_meta_prop_expr(&mut **self, node)
52319    }
52320
52321    #[inline]
52322    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
52323        <V as VisitMut>::visit_mut_meta_prop_kind(&mut **self, node)
52324    }
52325
52326    #[inline]
52327    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
52328        <V as VisitMut>::visit_mut_method_kind(&mut **self, node)
52329    }
52330
52331    #[inline]
52332    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
52333        <V as VisitMut>::visit_mut_method_prop(&mut **self, node)
52334    }
52335
52336    #[inline]
52337    fn visit_mut_module(&mut self, node: &mut Module) {
52338        <V as VisitMut>::visit_mut_module(&mut **self, node)
52339    }
52340
52341    #[inline]
52342    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
52343        <V as VisitMut>::visit_mut_module_decl(&mut **self, node)
52344    }
52345
52346    #[inline]
52347    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
52348        <V as VisitMut>::visit_mut_module_export_name(&mut **self, node)
52349    }
52350
52351    #[inline]
52352    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
52353        <V as VisitMut>::visit_mut_module_item(&mut **self, node)
52354    }
52355
52356    #[inline]
52357    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
52358        <V as VisitMut>::visit_mut_module_items(&mut **self, node)
52359    }
52360
52361    #[inline]
52362    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
52363        <V as VisitMut>::visit_mut_named_export(&mut **self, node)
52364    }
52365
52366    #[inline]
52367    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
52368        <V as VisitMut>::visit_mut_new_expr(&mut **self, node)
52369    }
52370
52371    #[inline]
52372    fn visit_mut_null(&mut self, node: &mut Null) {
52373        <V as VisitMut>::visit_mut_null(&mut **self, node)
52374    }
52375
52376    #[inline]
52377    fn visit_mut_number(&mut self, node: &mut Number) {
52378        <V as VisitMut>::visit_mut_number(&mut **self, node)
52379    }
52380
52381    #[inline]
52382    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
52383        <V as VisitMut>::visit_mut_object_lit(&mut **self, node)
52384    }
52385
52386    #[inline]
52387    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
52388        <V as VisitMut>::visit_mut_object_pat(&mut **self, node)
52389    }
52390
52391    #[inline]
52392    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
52393        <V as VisitMut>::visit_mut_object_pat_prop(&mut **self, node)
52394    }
52395
52396    #[inline]
52397    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
52398        <V as VisitMut>::visit_mut_object_pat_props(&mut **self, node)
52399    }
52400
52401    #[inline]
52402    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
52403        <V as VisitMut>::visit_mut_opt_accessibility(&mut **self, node)
52404    }
52405
52406    #[inline]
52407    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
52408        <V as VisitMut>::visit_mut_opt_atom(&mut **self, node)
52409    }
52410
52411    #[inline]
52412    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
52413        <V as VisitMut>::visit_mut_opt_block_stmt(&mut **self, node)
52414    }
52415
52416    #[inline]
52417    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
52418        <V as VisitMut>::visit_mut_opt_call(&mut **self, node)
52419    }
52420
52421    #[inline]
52422    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
52423        <V as VisitMut>::visit_mut_opt_catch_clause(&mut **self, node)
52424    }
52425
52426    #[inline]
52427    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
52428        <V as VisitMut>::visit_mut_opt_chain_base(&mut **self, node)
52429    }
52430
52431    #[inline]
52432    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
52433        <V as VisitMut>::visit_mut_opt_chain_expr(&mut **self, node)
52434    }
52435
52436    #[inline]
52437    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
52438        <V as VisitMut>::visit_mut_opt_expr(&mut **self, node)
52439    }
52440
52441    #[inline]
52442    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
52443        <V as VisitMut>::visit_mut_opt_expr_or_spread(&mut **self, node)
52444    }
52445
52446    #[inline]
52447    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
52448        <V as VisitMut>::visit_mut_opt_expr_or_spreads(&mut **self, node)
52449    }
52450
52451    #[inline]
52452    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
52453        <V as VisitMut>::visit_mut_opt_ident(&mut **self, node)
52454    }
52455
52456    #[inline]
52457    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
52458        <V as VisitMut>::visit_mut_opt_jsx_attr_value(&mut **self, node)
52459    }
52460
52461    #[inline]
52462    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
52463        <V as VisitMut>::visit_mut_opt_jsx_closing_element(&mut **self, node)
52464    }
52465
52466    #[inline]
52467    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
52468        <V as VisitMut>::visit_mut_opt_module_export_name(&mut **self, node)
52469    }
52470
52471    #[inline]
52472    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
52473        <V as VisitMut>::visit_mut_opt_object_lit(&mut **self, node)
52474    }
52475
52476    #[inline]
52477    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
52478        <V as VisitMut>::visit_mut_opt_pat(&mut **self, node)
52479    }
52480
52481    #[inline]
52482    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
52483        <V as VisitMut>::visit_mut_opt_span(&mut **self, node)
52484    }
52485
52486    #[inline]
52487    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
52488        <V as VisitMut>::visit_mut_opt_stmt(&mut **self, node)
52489    }
52490
52491    #[inline]
52492    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
52493        <V as VisitMut>::visit_mut_opt_str(&mut **self, node)
52494    }
52495
52496    #[inline]
52497    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
52498        <V as VisitMut>::visit_mut_opt_true_plus_minus(&mut **self, node)
52499    }
52500
52501    #[inline]
52502    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
52503        <V as VisitMut>::visit_mut_opt_ts_entity_name(&mut **self, node)
52504    }
52505
52506    #[inline]
52507    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
52508        <V as VisitMut>::visit_mut_opt_ts_namespace_body(&mut **self, node)
52509    }
52510
52511    #[inline]
52512    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
52513        <V as VisitMut>::visit_mut_opt_ts_type(&mut **self, node)
52514    }
52515
52516    #[inline]
52517    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
52518        <V as VisitMut>::visit_mut_opt_ts_type_ann(&mut **self, node)
52519    }
52520
52521    #[inline]
52522    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
52523        <V as VisitMut>::visit_mut_opt_ts_type_param_decl(&mut **self, node)
52524    }
52525
52526    #[inline]
52527    fn visit_mut_opt_ts_type_param_instantiation(
52528        &mut self,
52529        node: &mut Option<Box<TsTypeParamInstantiation>>,
52530    ) {
52531        <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(&mut **self, node)
52532    }
52533
52534    #[inline]
52535    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
52536        <V as VisitMut>::visit_mut_opt_var_decl_or_expr(&mut **self, node)
52537    }
52538
52539    #[inline]
52540    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
52541        <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node)
52542    }
52543
52544    #[inline]
52545    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
52546        <V as VisitMut>::visit_mut_opt_vec_pats(&mut **self, node)
52547    }
52548
52549    #[inline]
52550    fn visit_mut_param(&mut self, node: &mut Param) {
52551        <V as VisitMut>::visit_mut_param(&mut **self, node)
52552    }
52553
52554    #[inline]
52555    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
52556        <V as VisitMut>::visit_mut_param_or_ts_param_prop(&mut **self, node)
52557    }
52558
52559    #[inline]
52560    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
52561        <V as VisitMut>::visit_mut_param_or_ts_param_props(&mut **self, node)
52562    }
52563
52564    #[inline]
52565    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
52566        <V as VisitMut>::visit_mut_params(&mut **self, node)
52567    }
52568
52569    #[inline]
52570    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
52571        <V as VisitMut>::visit_mut_paren_expr(&mut **self, node)
52572    }
52573
52574    #[inline]
52575    fn visit_mut_pat(&mut self, node: &mut Pat) {
52576        <V as VisitMut>::visit_mut_pat(&mut **self, node)
52577    }
52578
52579    #[inline]
52580    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
52581        <V as VisitMut>::visit_mut_pats(&mut **self, node)
52582    }
52583
52584    #[inline]
52585    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
52586        <V as VisitMut>::visit_mut_private_method(&mut **self, node)
52587    }
52588
52589    #[inline]
52590    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
52591        <V as VisitMut>::visit_mut_private_name(&mut **self, node)
52592    }
52593
52594    #[inline]
52595    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
52596        <V as VisitMut>::visit_mut_private_prop(&mut **self, node)
52597    }
52598
52599    #[inline]
52600    fn visit_mut_program(&mut self, node: &mut Program) {
52601        <V as VisitMut>::visit_mut_program(&mut **self, node)
52602    }
52603
52604    #[inline]
52605    fn visit_mut_prop(&mut self, node: &mut Prop) {
52606        <V as VisitMut>::visit_mut_prop(&mut **self, node)
52607    }
52608
52609    #[inline]
52610    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
52611        <V as VisitMut>::visit_mut_prop_name(&mut **self, node)
52612    }
52613
52614    #[inline]
52615    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
52616        <V as VisitMut>::visit_mut_prop_or_spread(&mut **self, node)
52617    }
52618
52619    #[inline]
52620    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
52621        <V as VisitMut>::visit_mut_prop_or_spreads(&mut **self, node)
52622    }
52623
52624    #[inline]
52625    fn visit_mut_regex(&mut self, node: &mut Regex) {
52626        <V as VisitMut>::visit_mut_regex(&mut **self, node)
52627    }
52628
52629    #[inline]
52630    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
52631        <V as VisitMut>::visit_mut_rest_pat(&mut **self, node)
52632    }
52633
52634    #[inline]
52635    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
52636        <V as VisitMut>::visit_mut_return_stmt(&mut **self, node)
52637    }
52638
52639    #[inline]
52640    fn visit_mut_script(&mut self, node: &mut Script) {
52641        <V as VisitMut>::visit_mut_script(&mut **self, node)
52642    }
52643
52644    #[inline]
52645    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
52646        <V as VisitMut>::visit_mut_seq_expr(&mut **self, node)
52647    }
52648
52649    #[inline]
52650    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
52651        <V as VisitMut>::visit_mut_setter_prop(&mut **self, node)
52652    }
52653
52654    #[inline]
52655    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
52656        <V as VisitMut>::visit_mut_simple_assign_target(&mut **self, node)
52657    }
52658
52659    #[inline]
52660    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
52661        <V as VisitMut>::visit_mut_span(&mut **self, node)
52662    }
52663
52664    #[inline]
52665    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
52666        <V as VisitMut>::visit_mut_spread_element(&mut **self, node)
52667    }
52668
52669    #[inline]
52670    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
52671        <V as VisitMut>::visit_mut_static_block(&mut **self, node)
52672    }
52673
52674    #[inline]
52675    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
52676        <V as VisitMut>::visit_mut_stmt(&mut **self, node)
52677    }
52678
52679    #[inline]
52680    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
52681        <V as VisitMut>::visit_mut_stmts(&mut **self, node)
52682    }
52683
52684    #[inline]
52685    fn visit_mut_str(&mut self, node: &mut Str) {
52686        <V as VisitMut>::visit_mut_str(&mut **self, node)
52687    }
52688
52689    #[inline]
52690    fn visit_mut_super(&mut self, node: &mut Super) {
52691        <V as VisitMut>::visit_mut_super(&mut **self, node)
52692    }
52693
52694    #[inline]
52695    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
52696        <V as VisitMut>::visit_mut_super_prop(&mut **self, node)
52697    }
52698
52699    #[inline]
52700    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
52701        <V as VisitMut>::visit_mut_super_prop_expr(&mut **self, node)
52702    }
52703
52704    #[inline]
52705    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
52706        <V as VisitMut>::visit_mut_switch_case(&mut **self, node)
52707    }
52708
52709    #[inline]
52710    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
52711        <V as VisitMut>::visit_mut_switch_cases(&mut **self, node)
52712    }
52713
52714    #[inline]
52715    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
52716        <V as VisitMut>::visit_mut_switch_stmt(&mut **self, node)
52717    }
52718
52719    #[inline]
52720    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
52721        <V as VisitMut>::visit_mut_syntax_context(&mut **self, node)
52722    }
52723
52724    #[inline]
52725    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
52726        <V as VisitMut>::visit_mut_tagged_tpl(&mut **self, node)
52727    }
52728
52729    #[inline]
52730    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
52731        <V as VisitMut>::visit_mut_this_expr(&mut **self, node)
52732    }
52733
52734    #[inline]
52735    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
52736        <V as VisitMut>::visit_mut_throw_stmt(&mut **self, node)
52737    }
52738
52739    #[inline]
52740    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
52741        <V as VisitMut>::visit_mut_tpl(&mut **self, node)
52742    }
52743
52744    #[inline]
52745    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
52746        <V as VisitMut>::visit_mut_tpl_element(&mut **self, node)
52747    }
52748
52749    #[inline]
52750    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
52751        <V as VisitMut>::visit_mut_tpl_elements(&mut **self, node)
52752    }
52753
52754    #[inline]
52755    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
52756        <V as VisitMut>::visit_mut_true_plus_minus(&mut **self, node)
52757    }
52758
52759    #[inline]
52760    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
52761        <V as VisitMut>::visit_mut_try_stmt(&mut **self, node)
52762    }
52763
52764    #[inline]
52765    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
52766        <V as VisitMut>::visit_mut_ts_array_type(&mut **self, node)
52767    }
52768
52769    #[inline]
52770    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
52771        <V as VisitMut>::visit_mut_ts_as_expr(&mut **self, node)
52772    }
52773
52774    #[inline]
52775    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
52776        <V as VisitMut>::visit_mut_ts_call_signature_decl(&mut **self, node)
52777    }
52778
52779    #[inline]
52780    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
52781        <V as VisitMut>::visit_mut_ts_conditional_type(&mut **self, node)
52782    }
52783
52784    #[inline]
52785    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
52786        <V as VisitMut>::visit_mut_ts_const_assertion(&mut **self, node)
52787    }
52788
52789    #[inline]
52790    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
52791        <V as VisitMut>::visit_mut_ts_construct_signature_decl(&mut **self, node)
52792    }
52793
52794    #[inline]
52795    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
52796        <V as VisitMut>::visit_mut_ts_constructor_type(&mut **self, node)
52797    }
52798
52799    #[inline]
52800    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
52801        <V as VisitMut>::visit_mut_ts_entity_name(&mut **self, node)
52802    }
52803
52804    #[inline]
52805    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
52806        <V as VisitMut>::visit_mut_ts_enum_decl(&mut **self, node)
52807    }
52808
52809    #[inline]
52810    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
52811        <V as VisitMut>::visit_mut_ts_enum_member(&mut **self, node)
52812    }
52813
52814    #[inline]
52815    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
52816        <V as VisitMut>::visit_mut_ts_enum_member_id(&mut **self, node)
52817    }
52818
52819    #[inline]
52820    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
52821        <V as VisitMut>::visit_mut_ts_enum_members(&mut **self, node)
52822    }
52823
52824    #[inline]
52825    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
52826        <V as VisitMut>::visit_mut_ts_export_assignment(&mut **self, node)
52827    }
52828
52829    #[inline]
52830    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
52831        <V as VisitMut>::visit_mut_ts_expr_with_type_args(&mut **self, node)
52832    }
52833
52834    #[inline]
52835    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
52836        <V as VisitMut>::visit_mut_ts_expr_with_type_argss(&mut **self, node)
52837    }
52838
52839    #[inline]
52840    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
52841        <V as VisitMut>::visit_mut_ts_external_module_ref(&mut **self, node)
52842    }
52843
52844    #[inline]
52845    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
52846        <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(&mut **self, node)
52847    }
52848
52849    #[inline]
52850    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
52851        <V as VisitMut>::visit_mut_ts_fn_param(&mut **self, node)
52852    }
52853
52854    #[inline]
52855    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
52856        <V as VisitMut>::visit_mut_ts_fn_params(&mut **self, node)
52857    }
52858
52859    #[inline]
52860    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
52861        <V as VisitMut>::visit_mut_ts_fn_type(&mut **self, node)
52862    }
52863
52864    #[inline]
52865    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
52866        <V as VisitMut>::visit_mut_ts_getter_signature(&mut **self, node)
52867    }
52868
52869    #[inline]
52870    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
52871        <V as VisitMut>::visit_mut_ts_import_equals_decl(&mut **self, node)
52872    }
52873
52874    #[inline]
52875    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
52876        <V as VisitMut>::visit_mut_ts_import_type(&mut **self, node)
52877    }
52878
52879    #[inline]
52880    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
52881        <V as VisitMut>::visit_mut_ts_index_signature(&mut **self, node)
52882    }
52883
52884    #[inline]
52885    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
52886        <V as VisitMut>::visit_mut_ts_indexed_access_type(&mut **self, node)
52887    }
52888
52889    #[inline]
52890    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
52891        <V as VisitMut>::visit_mut_ts_infer_type(&mut **self, node)
52892    }
52893
52894    #[inline]
52895    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
52896        <V as VisitMut>::visit_mut_ts_instantiation(&mut **self, node)
52897    }
52898
52899    #[inline]
52900    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
52901        <V as VisitMut>::visit_mut_ts_interface_body(&mut **self, node)
52902    }
52903
52904    #[inline]
52905    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
52906        <V as VisitMut>::visit_mut_ts_interface_decl(&mut **self, node)
52907    }
52908
52909    #[inline]
52910    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
52911        <V as VisitMut>::visit_mut_ts_intersection_type(&mut **self, node)
52912    }
52913
52914    #[inline]
52915    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
52916        <V as VisitMut>::visit_mut_ts_keyword_type(&mut **self, node)
52917    }
52918
52919    #[inline]
52920    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
52921        <V as VisitMut>::visit_mut_ts_keyword_type_kind(&mut **self, node)
52922    }
52923
52924    #[inline]
52925    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
52926        <V as VisitMut>::visit_mut_ts_lit(&mut **self, node)
52927    }
52928
52929    #[inline]
52930    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
52931        <V as VisitMut>::visit_mut_ts_lit_type(&mut **self, node)
52932    }
52933
52934    #[inline]
52935    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
52936        <V as VisitMut>::visit_mut_ts_mapped_type(&mut **self, node)
52937    }
52938
52939    #[inline]
52940    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
52941        <V as VisitMut>::visit_mut_ts_method_signature(&mut **self, node)
52942    }
52943
52944    #[inline]
52945    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
52946        <V as VisitMut>::visit_mut_ts_module_block(&mut **self, node)
52947    }
52948
52949    #[inline]
52950    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
52951        <V as VisitMut>::visit_mut_ts_module_decl(&mut **self, node)
52952    }
52953
52954    #[inline]
52955    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
52956        <V as VisitMut>::visit_mut_ts_module_name(&mut **self, node)
52957    }
52958
52959    #[inline]
52960    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
52961        <V as VisitMut>::visit_mut_ts_module_ref(&mut **self, node)
52962    }
52963
52964    #[inline]
52965    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
52966        <V as VisitMut>::visit_mut_ts_namespace_body(&mut **self, node)
52967    }
52968
52969    #[inline]
52970    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
52971        <V as VisitMut>::visit_mut_ts_namespace_decl(&mut **self, node)
52972    }
52973
52974    #[inline]
52975    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
52976        <V as VisitMut>::visit_mut_ts_namespace_export_decl(&mut **self, node)
52977    }
52978
52979    #[inline]
52980    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
52981        <V as VisitMut>::visit_mut_ts_non_null_expr(&mut **self, node)
52982    }
52983
52984    #[inline]
52985    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
52986        <V as VisitMut>::visit_mut_ts_optional_type(&mut **self, node)
52987    }
52988
52989    #[inline]
52990    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
52991        <V as VisitMut>::visit_mut_ts_param_prop(&mut **self, node)
52992    }
52993
52994    #[inline]
52995    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
52996        <V as VisitMut>::visit_mut_ts_param_prop_param(&mut **self, node)
52997    }
52998
52999    #[inline]
53000    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
53001        <V as VisitMut>::visit_mut_ts_parenthesized_type(&mut **self, node)
53002    }
53003
53004    #[inline]
53005    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
53006        <V as VisitMut>::visit_mut_ts_property_signature(&mut **self, node)
53007    }
53008
53009    #[inline]
53010    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
53011        <V as VisitMut>::visit_mut_ts_qualified_name(&mut **self, node)
53012    }
53013
53014    #[inline]
53015    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
53016        <V as VisitMut>::visit_mut_ts_rest_type(&mut **self, node)
53017    }
53018
53019    #[inline]
53020    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
53021        <V as VisitMut>::visit_mut_ts_satisfies_expr(&mut **self, node)
53022    }
53023
53024    #[inline]
53025    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
53026        <V as VisitMut>::visit_mut_ts_setter_signature(&mut **self, node)
53027    }
53028
53029    #[inline]
53030    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
53031        <V as VisitMut>::visit_mut_ts_this_type(&mut **self, node)
53032    }
53033
53034    #[inline]
53035    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
53036        <V as VisitMut>::visit_mut_ts_this_type_or_ident(&mut **self, node)
53037    }
53038
53039    #[inline]
53040    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
53041        <V as VisitMut>::visit_mut_ts_tpl_lit_type(&mut **self, node)
53042    }
53043
53044    #[inline]
53045    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
53046        <V as VisitMut>::visit_mut_ts_tuple_element(&mut **self, node)
53047    }
53048
53049    #[inline]
53050    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
53051        <V as VisitMut>::visit_mut_ts_tuple_elements(&mut **self, node)
53052    }
53053
53054    #[inline]
53055    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
53056        <V as VisitMut>::visit_mut_ts_tuple_type(&mut **self, node)
53057    }
53058
53059    #[inline]
53060    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
53061        <V as VisitMut>::visit_mut_ts_type(&mut **self, node)
53062    }
53063
53064    #[inline]
53065    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
53066        <V as VisitMut>::visit_mut_ts_type_alias_decl(&mut **self, node)
53067    }
53068
53069    #[inline]
53070    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
53071        <V as VisitMut>::visit_mut_ts_type_ann(&mut **self, node)
53072    }
53073
53074    #[inline]
53075    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
53076        <V as VisitMut>::visit_mut_ts_type_assertion(&mut **self, node)
53077    }
53078
53079    #[inline]
53080    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
53081        <V as VisitMut>::visit_mut_ts_type_element(&mut **self, node)
53082    }
53083
53084    #[inline]
53085    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
53086        <V as VisitMut>::visit_mut_ts_type_elements(&mut **self, node)
53087    }
53088
53089    #[inline]
53090    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
53091        <V as VisitMut>::visit_mut_ts_type_lit(&mut **self, node)
53092    }
53093
53094    #[inline]
53095    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
53096        <V as VisitMut>::visit_mut_ts_type_operator(&mut **self, node)
53097    }
53098
53099    #[inline]
53100    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
53101        <V as VisitMut>::visit_mut_ts_type_operator_op(&mut **self, node)
53102    }
53103
53104    #[inline]
53105    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
53106        <V as VisitMut>::visit_mut_ts_type_param(&mut **self, node)
53107    }
53108
53109    #[inline]
53110    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
53111        <V as VisitMut>::visit_mut_ts_type_param_decl(&mut **self, node)
53112    }
53113
53114    #[inline]
53115    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
53116        <V as VisitMut>::visit_mut_ts_type_param_instantiation(&mut **self, node)
53117    }
53118
53119    #[inline]
53120    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
53121        <V as VisitMut>::visit_mut_ts_type_params(&mut **self, node)
53122    }
53123
53124    #[inline]
53125    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
53126        <V as VisitMut>::visit_mut_ts_type_predicate(&mut **self, node)
53127    }
53128
53129    #[inline]
53130    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
53131        <V as VisitMut>::visit_mut_ts_type_query(&mut **self, node)
53132    }
53133
53134    #[inline]
53135    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
53136        <V as VisitMut>::visit_mut_ts_type_query_expr(&mut **self, node)
53137    }
53138
53139    #[inline]
53140    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
53141        <V as VisitMut>::visit_mut_ts_type_ref(&mut **self, node)
53142    }
53143
53144    #[inline]
53145    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
53146        <V as VisitMut>::visit_mut_ts_types(&mut **self, node)
53147    }
53148
53149    #[inline]
53150    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
53151        <V as VisitMut>::visit_mut_ts_union_or_intersection_type(&mut **self, node)
53152    }
53153
53154    #[inline]
53155    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
53156        <V as VisitMut>::visit_mut_ts_union_type(&mut **self, node)
53157    }
53158
53159    #[inline]
53160    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
53161        <V as VisitMut>::visit_mut_unary_expr(&mut **self, node)
53162    }
53163
53164    #[inline]
53165    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
53166        <V as VisitMut>::visit_mut_unary_op(&mut **self, node)
53167    }
53168
53169    #[inline]
53170    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
53171        <V as VisitMut>::visit_mut_update_expr(&mut **self, node)
53172    }
53173
53174    #[inline]
53175    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
53176        <V as VisitMut>::visit_mut_update_op(&mut **self, node)
53177    }
53178
53179    #[inline]
53180    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
53181        <V as VisitMut>::visit_mut_using_decl(&mut **self, node)
53182    }
53183
53184    #[inline]
53185    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
53186        <V as VisitMut>::visit_mut_var_decl(&mut **self, node)
53187    }
53188
53189    #[inline]
53190    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
53191        <V as VisitMut>::visit_mut_var_decl_kind(&mut **self, node)
53192    }
53193
53194    #[inline]
53195    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
53196        <V as VisitMut>::visit_mut_var_decl_or_expr(&mut **self, node)
53197    }
53198
53199    #[inline]
53200    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
53201        <V as VisitMut>::visit_mut_var_declarator(&mut **self, node)
53202    }
53203
53204    #[inline]
53205    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
53206        <V as VisitMut>::visit_mut_var_declarators(&mut **self, node)
53207    }
53208
53209    #[inline]
53210    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
53211        <V as VisitMut>::visit_mut_while_stmt(&mut **self, node)
53212    }
53213
53214    #[inline]
53215    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
53216        <V as VisitMut>::visit_mut_with_stmt(&mut **self, node)
53217    }
53218
53219    #[inline]
53220    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
53221        <V as VisitMut>::visit_mut_yield_expr(&mut **self, node)
53222    }
53223}
53224impl<A, B> VisitMut for ::swc_visit::Either<A, B>
53225where
53226    A: VisitMut,
53227    B: VisitMut,
53228{
53229    #[inline]
53230    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
53231        match self {
53232            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_accessibility(visitor, node),
53233            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_accessibility(visitor, node),
53234        }
53235    }
53236
53237    #[inline]
53238    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
53239        match self {
53240            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_array_lit(visitor, node),
53241            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_array_lit(visitor, node),
53242        }
53243    }
53244
53245    #[inline]
53246    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
53247        match self {
53248            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_array_pat(visitor, node),
53249            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_array_pat(visitor, node),
53250        }
53251    }
53252
53253    #[inline]
53254    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
53255        match self {
53256            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_arrow_expr(visitor, node),
53257            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_arrow_expr(visitor, node),
53258        }
53259    }
53260
53261    #[inline]
53262    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
53263        match self {
53264            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_expr(visitor, node),
53265            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_expr(visitor, node),
53266        }
53267    }
53268
53269    #[inline]
53270    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
53271        match self {
53272            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_op(visitor, node),
53273            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_op(visitor, node),
53274        }
53275    }
53276
53277    #[inline]
53278    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
53279        match self {
53280            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_pat(visitor, node),
53281            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_pat(visitor, node),
53282        }
53283    }
53284
53285    #[inline]
53286    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
53287        match self {
53288            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_pat_prop(visitor, node),
53289            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_pat_prop(visitor, node),
53290        }
53291    }
53292
53293    #[inline]
53294    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
53295        match self {
53296            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_prop(visitor, node),
53297            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_prop(visitor, node),
53298        }
53299    }
53300
53301    #[inline]
53302    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
53303        match self {
53304            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_assign_target(visitor, node),
53305            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_assign_target(visitor, node),
53306        }
53307    }
53308
53309    #[inline]
53310    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
53311        match self {
53312            swc_visit::Either::Left(visitor) => {
53313                VisitMut::visit_mut_assign_target_pat(visitor, node)
53314            }
53315            swc_visit::Either::Right(visitor) => {
53316                VisitMut::visit_mut_assign_target_pat(visitor, node)
53317            }
53318        }
53319    }
53320
53321    #[inline]
53322    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
53323        match self {
53324            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_atom(visitor, node),
53325            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_atom(visitor, node),
53326        }
53327    }
53328
53329    #[inline]
53330    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
53331        match self {
53332            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_auto_accessor(visitor, node),
53333            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_auto_accessor(visitor, node),
53334        }
53335    }
53336
53337    #[inline]
53338    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
53339        match self {
53340            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_await_expr(visitor, node),
53341            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_await_expr(visitor, node),
53342        }
53343    }
53344
53345    #[inline]
53346    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
53347        match self {
53348            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_big_int(visitor, node),
53349            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_big_int(visitor, node),
53350        }
53351    }
53352
53353    #[inline]
53354    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
53355        match self {
53356            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_big_int_value(visitor, node),
53357            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_big_int_value(visitor, node),
53358        }
53359    }
53360
53361    #[inline]
53362    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
53363        match self {
53364            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_bin_expr(visitor, node),
53365            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_bin_expr(visitor, node),
53366        }
53367    }
53368
53369    #[inline]
53370    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
53371        match self {
53372            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_binary_op(visitor, node),
53373            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_binary_op(visitor, node),
53374        }
53375    }
53376
53377    #[inline]
53378    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
53379        match self {
53380            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_binding_ident(visitor, node),
53381            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_binding_ident(visitor, node),
53382        }
53383    }
53384
53385    #[inline]
53386    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
53387        match self {
53388            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_block_stmt(visitor, node),
53389            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_block_stmt(visitor, node),
53390        }
53391    }
53392
53393    #[inline]
53394    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
53395        match self {
53396            swc_visit::Either::Left(visitor) => {
53397                VisitMut::visit_mut_block_stmt_or_expr(visitor, node)
53398            }
53399            swc_visit::Either::Right(visitor) => {
53400                VisitMut::visit_mut_block_stmt_or_expr(visitor, node)
53401            }
53402        }
53403    }
53404
53405    #[inline]
53406    fn visit_mut_bool(&mut self, node: &mut Bool) {
53407        match self {
53408            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_bool(visitor, node),
53409            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_bool(visitor, node),
53410        }
53411    }
53412
53413    #[inline]
53414    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
53415        match self {
53416            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_break_stmt(visitor, node),
53417            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_break_stmt(visitor, node),
53418        }
53419    }
53420
53421    #[inline]
53422    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
53423        match self {
53424            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_call_expr(visitor, node),
53425            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_call_expr(visitor, node),
53426        }
53427    }
53428
53429    #[inline]
53430    fn visit_mut_callee(&mut self, node: &mut Callee) {
53431        match self {
53432            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_callee(visitor, node),
53433            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_callee(visitor, node),
53434        }
53435    }
53436
53437    #[inline]
53438    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
53439        match self {
53440            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_catch_clause(visitor, node),
53441            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_catch_clause(visitor, node),
53442        }
53443    }
53444
53445    #[inline]
53446    fn visit_mut_class(&mut self, node: &mut Class) {
53447        match self {
53448            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class(visitor, node),
53449            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class(visitor, node),
53450        }
53451    }
53452
53453    #[inline]
53454    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
53455        match self {
53456            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_decl(visitor, node),
53457            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_decl(visitor, node),
53458        }
53459    }
53460
53461    #[inline]
53462    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
53463        match self {
53464            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_expr(visitor, node),
53465            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_expr(visitor, node),
53466        }
53467    }
53468
53469    #[inline]
53470    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
53471        match self {
53472            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_member(visitor, node),
53473            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_member(visitor, node),
53474        }
53475    }
53476
53477    #[inline]
53478    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
53479        match self {
53480            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_members(visitor, node),
53481            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_members(visitor, node),
53482        }
53483    }
53484
53485    #[inline]
53486    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
53487        match self {
53488            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_method(visitor, node),
53489            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_method(visitor, node),
53490        }
53491    }
53492
53493    #[inline]
53494    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
53495        match self {
53496            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_class_prop(visitor, node),
53497            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_class_prop(visitor, node),
53498        }
53499    }
53500
53501    #[inline]
53502    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
53503        match self {
53504            swc_visit::Either::Left(visitor) => {
53505                VisitMut::visit_mut_computed_prop_name(visitor, node)
53506            }
53507            swc_visit::Either::Right(visitor) => {
53508                VisitMut::visit_mut_computed_prop_name(visitor, node)
53509            }
53510        }
53511    }
53512
53513    #[inline]
53514    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
53515        match self {
53516            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_cond_expr(visitor, node),
53517            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_cond_expr(visitor, node),
53518        }
53519    }
53520
53521    #[inline]
53522    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
53523        match self {
53524            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_constructor(visitor, node),
53525            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_constructor(visitor, node),
53526        }
53527    }
53528
53529    #[inline]
53530    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
53531        match self {
53532            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_continue_stmt(visitor, node),
53533            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_continue_stmt(visitor, node),
53534        }
53535    }
53536
53537    #[inline]
53538    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
53539        match self {
53540            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_debugger_stmt(visitor, node),
53541            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_debugger_stmt(visitor, node),
53542        }
53543    }
53544
53545    #[inline]
53546    fn visit_mut_decl(&mut self, node: &mut Decl) {
53547        match self {
53548            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_decl(visitor, node),
53549            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_decl(visitor, node),
53550        }
53551    }
53552
53553    #[inline]
53554    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
53555        match self {
53556            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_decorator(visitor, node),
53557            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_decorator(visitor, node),
53558        }
53559    }
53560
53561    #[inline]
53562    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
53563        match self {
53564            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_decorators(visitor, node),
53565            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_decorators(visitor, node),
53566        }
53567    }
53568
53569    #[inline]
53570    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
53571        match self {
53572            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_default_decl(visitor, node),
53573            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_default_decl(visitor, node),
53574        }
53575    }
53576
53577    #[inline]
53578    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
53579        match self {
53580            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_do_while_stmt(visitor, node),
53581            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_do_while_stmt(visitor, node),
53582        }
53583    }
53584
53585    #[inline]
53586    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
53587        match self {
53588            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_empty_stmt(visitor, node),
53589            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_empty_stmt(visitor, node),
53590        }
53591    }
53592
53593    #[inline]
53594    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
53595        match self {
53596            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_export_all(visitor, node),
53597            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_export_all(visitor, node),
53598        }
53599    }
53600
53601    #[inline]
53602    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
53603        match self {
53604            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_export_decl(visitor, node),
53605            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_export_decl(visitor, node),
53606        }
53607    }
53608
53609    #[inline]
53610    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
53611        match self {
53612            swc_visit::Either::Left(visitor) => {
53613                VisitMut::visit_mut_export_default_decl(visitor, node)
53614            }
53615            swc_visit::Either::Right(visitor) => {
53616                VisitMut::visit_mut_export_default_decl(visitor, node)
53617            }
53618        }
53619    }
53620
53621    #[inline]
53622    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
53623        match self {
53624            swc_visit::Either::Left(visitor) => {
53625                VisitMut::visit_mut_export_default_expr(visitor, node)
53626            }
53627            swc_visit::Either::Right(visitor) => {
53628                VisitMut::visit_mut_export_default_expr(visitor, node)
53629            }
53630        }
53631    }
53632
53633    #[inline]
53634    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
53635        match self {
53636            swc_visit::Either::Left(visitor) => {
53637                VisitMut::visit_mut_export_default_specifier(visitor, node)
53638            }
53639            swc_visit::Either::Right(visitor) => {
53640                VisitMut::visit_mut_export_default_specifier(visitor, node)
53641            }
53642        }
53643    }
53644
53645    #[inline]
53646    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
53647        match self {
53648            swc_visit::Either::Left(visitor) => {
53649                VisitMut::visit_mut_export_named_specifier(visitor, node)
53650            }
53651            swc_visit::Either::Right(visitor) => {
53652                VisitMut::visit_mut_export_named_specifier(visitor, node)
53653            }
53654        }
53655    }
53656
53657    #[inline]
53658    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
53659        match self {
53660            swc_visit::Either::Left(visitor) => {
53661                VisitMut::visit_mut_export_namespace_specifier(visitor, node)
53662            }
53663            swc_visit::Either::Right(visitor) => {
53664                VisitMut::visit_mut_export_namespace_specifier(visitor, node)
53665            }
53666        }
53667    }
53668
53669    #[inline]
53670    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
53671        match self {
53672            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_export_specifier(visitor, node),
53673            swc_visit::Either::Right(visitor) => {
53674                VisitMut::visit_mut_export_specifier(visitor, node)
53675            }
53676        }
53677    }
53678
53679    #[inline]
53680    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
53681        match self {
53682            swc_visit::Either::Left(visitor) => {
53683                VisitMut::visit_mut_export_specifiers(visitor, node)
53684            }
53685            swc_visit::Either::Right(visitor) => {
53686                VisitMut::visit_mut_export_specifiers(visitor, node)
53687            }
53688        }
53689    }
53690
53691    #[inline]
53692    fn visit_mut_expr(&mut self, node: &mut Expr) {
53693        match self {
53694            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr(visitor, node),
53695            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr(visitor, node),
53696        }
53697    }
53698
53699    #[inline]
53700    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
53701        match self {
53702            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr_or_spread(visitor, node),
53703            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr_or_spread(visitor, node),
53704        }
53705    }
53706
53707    #[inline]
53708    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
53709        match self {
53710            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr_or_spreads(visitor, node),
53711            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr_or_spreads(visitor, node),
53712        }
53713    }
53714
53715    #[inline]
53716    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
53717        match self {
53718            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_expr_stmt(visitor, node),
53719            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_expr_stmt(visitor, node),
53720        }
53721    }
53722
53723    #[inline]
53724    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
53725        match self {
53726            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_exprs(visitor, node),
53727            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_exprs(visitor, node),
53728        }
53729    }
53730
53731    #[inline]
53732    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
53733        match self {
53734            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_fn_decl(visitor, node),
53735            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_fn_decl(visitor, node),
53736        }
53737    }
53738
53739    #[inline]
53740    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
53741        match self {
53742            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_fn_expr(visitor, node),
53743            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_fn_expr(visitor, node),
53744        }
53745    }
53746
53747    #[inline]
53748    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
53749        match self {
53750            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_head(visitor, node),
53751            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_head(visitor, node),
53752        }
53753    }
53754
53755    #[inline]
53756    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
53757        match self {
53758            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_in_stmt(visitor, node),
53759            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_in_stmt(visitor, node),
53760        }
53761    }
53762
53763    #[inline]
53764    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
53765        match self {
53766            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_of_stmt(visitor, node),
53767            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_of_stmt(visitor, node),
53768        }
53769    }
53770
53771    #[inline]
53772    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
53773        match self {
53774            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_for_stmt(visitor, node),
53775            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_for_stmt(visitor, node),
53776        }
53777    }
53778
53779    #[inline]
53780    fn visit_mut_function(&mut self, node: &mut Function) {
53781        match self {
53782            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_function(visitor, node),
53783            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_function(visitor, node),
53784        }
53785    }
53786
53787    #[inline]
53788    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
53789        match self {
53790            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_getter_prop(visitor, node),
53791            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_getter_prop(visitor, node),
53792        }
53793    }
53794
53795    #[inline]
53796    fn visit_mut_ident(&mut self, node: &mut Ident) {
53797        match self {
53798            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ident(visitor, node),
53799            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ident(visitor, node),
53800        }
53801    }
53802
53803    #[inline]
53804    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
53805        match self {
53806            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ident_name(visitor, node),
53807            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ident_name(visitor, node),
53808        }
53809    }
53810
53811    #[inline]
53812    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
53813        match self {
53814            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_if_stmt(visitor, node),
53815            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_if_stmt(visitor, node),
53816        }
53817    }
53818
53819    #[inline]
53820    fn visit_mut_import(&mut self, node: &mut Import) {
53821        match self {
53822            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import(visitor, node),
53823            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import(visitor, node),
53824        }
53825    }
53826
53827    #[inline]
53828    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
53829        match self {
53830            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_decl(visitor, node),
53831            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import_decl(visitor, node),
53832        }
53833    }
53834
53835    #[inline]
53836    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
53837        match self {
53838            swc_visit::Either::Left(visitor) => {
53839                VisitMut::visit_mut_import_default_specifier(visitor, node)
53840            }
53841            swc_visit::Either::Right(visitor) => {
53842                VisitMut::visit_mut_import_default_specifier(visitor, node)
53843            }
53844        }
53845    }
53846
53847    #[inline]
53848    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
53849        match self {
53850            swc_visit::Either::Left(visitor) => {
53851                VisitMut::visit_mut_import_named_specifier(visitor, node)
53852            }
53853            swc_visit::Either::Right(visitor) => {
53854                VisitMut::visit_mut_import_named_specifier(visitor, node)
53855            }
53856        }
53857    }
53858
53859    #[inline]
53860    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
53861        match self {
53862            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_phase(visitor, node),
53863            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import_phase(visitor, node),
53864        }
53865    }
53866
53867    #[inline]
53868    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
53869        match self {
53870            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_specifier(visitor, node),
53871            swc_visit::Either::Right(visitor) => {
53872                VisitMut::visit_mut_import_specifier(visitor, node)
53873            }
53874        }
53875    }
53876
53877    #[inline]
53878    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
53879        match self {
53880            swc_visit::Either::Left(visitor) => {
53881                VisitMut::visit_mut_import_specifiers(visitor, node)
53882            }
53883            swc_visit::Either::Right(visitor) => {
53884                VisitMut::visit_mut_import_specifiers(visitor, node)
53885            }
53886        }
53887    }
53888
53889    #[inline]
53890    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
53891        match self {
53892            swc_visit::Either::Left(visitor) => {
53893                VisitMut::visit_mut_import_star_as_specifier(visitor, node)
53894            }
53895            swc_visit::Either::Right(visitor) => {
53896                VisitMut::visit_mut_import_star_as_specifier(visitor, node)
53897            }
53898        }
53899    }
53900
53901    #[inline]
53902    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
53903        match self {
53904            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_with(visitor, node),
53905            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_import_with(visitor, node),
53906        }
53907    }
53908
53909    #[inline]
53910    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
53911        match self {
53912            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_import_with_item(visitor, node),
53913            swc_visit::Either::Right(visitor) => {
53914                VisitMut::visit_mut_import_with_item(visitor, node)
53915            }
53916        }
53917    }
53918
53919    #[inline]
53920    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
53921        match self {
53922            swc_visit::Either::Left(visitor) => {
53923                VisitMut::visit_mut_import_with_items(visitor, node)
53924            }
53925            swc_visit::Either::Right(visitor) => {
53926                VisitMut::visit_mut_import_with_items(visitor, node)
53927            }
53928        }
53929    }
53930
53931    #[inline]
53932    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
53933        match self {
53934            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_invalid(visitor, node),
53935            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_invalid(visitor, node),
53936        }
53937    }
53938
53939    #[inline]
53940    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
53941        match self {
53942            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_attr(visitor, node),
53943            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_attr(visitor, node),
53944        }
53945    }
53946
53947    #[inline]
53948    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
53949        match self {
53950            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_attr_name(visitor, node),
53951            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_attr_name(visitor, node),
53952        }
53953    }
53954
53955    #[inline]
53956    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
53957        match self {
53958            swc_visit::Either::Left(visitor) => {
53959                VisitMut::visit_mut_jsx_attr_or_spread(visitor, node)
53960            }
53961            swc_visit::Either::Right(visitor) => {
53962                VisitMut::visit_mut_jsx_attr_or_spread(visitor, node)
53963            }
53964        }
53965    }
53966
53967    #[inline]
53968    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
53969        match self {
53970            swc_visit::Either::Left(visitor) => {
53971                VisitMut::visit_mut_jsx_attr_or_spreads(visitor, node)
53972            }
53973            swc_visit::Either::Right(visitor) => {
53974                VisitMut::visit_mut_jsx_attr_or_spreads(visitor, node)
53975            }
53976        }
53977    }
53978
53979    #[inline]
53980    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
53981        match self {
53982            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_attr_value(visitor, node),
53983            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_attr_value(visitor, node),
53984        }
53985    }
53986
53987    #[inline]
53988    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
53989        match self {
53990            swc_visit::Either::Left(visitor) => {
53991                VisitMut::visit_mut_jsx_closing_element(visitor, node)
53992            }
53993            swc_visit::Either::Right(visitor) => {
53994                VisitMut::visit_mut_jsx_closing_element(visitor, node)
53995            }
53996        }
53997    }
53998
53999    #[inline]
54000    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
54001        match self {
54002            swc_visit::Either::Left(visitor) => {
54003                VisitMut::visit_mut_jsx_closing_fragment(visitor, node)
54004            }
54005            swc_visit::Either::Right(visitor) => {
54006                VisitMut::visit_mut_jsx_closing_fragment(visitor, node)
54007            }
54008        }
54009    }
54010
54011    #[inline]
54012    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
54013        match self {
54014            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_element(visitor, node),
54015            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_element(visitor, node),
54016        }
54017    }
54018
54019    #[inline]
54020    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
54021        match self {
54022            swc_visit::Either::Left(visitor) => {
54023                VisitMut::visit_mut_jsx_element_child(visitor, node)
54024            }
54025            swc_visit::Either::Right(visitor) => {
54026                VisitMut::visit_mut_jsx_element_child(visitor, node)
54027            }
54028        }
54029    }
54030
54031    #[inline]
54032    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
54033        match self {
54034            swc_visit::Either::Left(visitor) => {
54035                VisitMut::visit_mut_jsx_element_childs(visitor, node)
54036            }
54037            swc_visit::Either::Right(visitor) => {
54038                VisitMut::visit_mut_jsx_element_childs(visitor, node)
54039            }
54040        }
54041    }
54042
54043    #[inline]
54044    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
54045        match self {
54046            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_element_name(visitor, node),
54047            swc_visit::Either::Right(visitor) => {
54048                VisitMut::visit_mut_jsx_element_name(visitor, node)
54049            }
54050        }
54051    }
54052
54053    #[inline]
54054    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
54055        match self {
54056            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_empty_expr(visitor, node),
54057            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_empty_expr(visitor, node),
54058        }
54059    }
54060
54061    #[inline]
54062    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
54063        match self {
54064            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_expr(visitor, node),
54065            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_expr(visitor, node),
54066        }
54067    }
54068
54069    #[inline]
54070    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
54071        match self {
54072            swc_visit::Either::Left(visitor) => {
54073                VisitMut::visit_mut_jsx_expr_container(visitor, node)
54074            }
54075            swc_visit::Either::Right(visitor) => {
54076                VisitMut::visit_mut_jsx_expr_container(visitor, node)
54077            }
54078        }
54079    }
54080
54081    #[inline]
54082    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
54083        match self {
54084            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_fragment(visitor, node),
54085            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_fragment(visitor, node),
54086        }
54087    }
54088
54089    #[inline]
54090    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
54091        match self {
54092            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_member_expr(visitor, node),
54093            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_member_expr(visitor, node),
54094        }
54095    }
54096
54097    #[inline]
54098    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
54099        match self {
54100            swc_visit::Either::Left(visitor) => {
54101                VisitMut::visit_mut_jsx_namespaced_name(visitor, node)
54102            }
54103            swc_visit::Either::Right(visitor) => {
54104                VisitMut::visit_mut_jsx_namespaced_name(visitor, node)
54105            }
54106        }
54107    }
54108
54109    #[inline]
54110    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
54111        match self {
54112            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_object(visitor, node),
54113            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_object(visitor, node),
54114        }
54115    }
54116
54117    #[inline]
54118    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
54119        match self {
54120            swc_visit::Either::Left(visitor) => {
54121                VisitMut::visit_mut_jsx_opening_element(visitor, node)
54122            }
54123            swc_visit::Either::Right(visitor) => {
54124                VisitMut::visit_mut_jsx_opening_element(visitor, node)
54125            }
54126        }
54127    }
54128
54129    #[inline]
54130    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
54131        match self {
54132            swc_visit::Either::Left(visitor) => {
54133                VisitMut::visit_mut_jsx_opening_fragment(visitor, node)
54134            }
54135            swc_visit::Either::Right(visitor) => {
54136                VisitMut::visit_mut_jsx_opening_fragment(visitor, node)
54137            }
54138        }
54139    }
54140
54141    #[inline]
54142    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
54143        match self {
54144            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_spread_child(visitor, node),
54145            swc_visit::Either::Right(visitor) => {
54146                VisitMut::visit_mut_jsx_spread_child(visitor, node)
54147            }
54148        }
54149    }
54150
54151    #[inline]
54152    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
54153        match self {
54154            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_jsx_text(visitor, node),
54155            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_jsx_text(visitor, node),
54156        }
54157    }
54158
54159    #[inline]
54160    fn visit_mut_key(&mut self, node: &mut Key) {
54161        match self {
54162            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_key(visitor, node),
54163            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_key(visitor, node),
54164        }
54165    }
54166
54167    #[inline]
54168    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
54169        match self {
54170            swc_visit::Either::Left(visitor) => {
54171                VisitMut::visit_mut_key_value_pat_prop(visitor, node)
54172            }
54173            swc_visit::Either::Right(visitor) => {
54174                VisitMut::visit_mut_key_value_pat_prop(visitor, node)
54175            }
54176        }
54177    }
54178
54179    #[inline]
54180    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
54181        match self {
54182            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_key_value_prop(visitor, node),
54183            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_key_value_prop(visitor, node),
54184        }
54185    }
54186
54187    #[inline]
54188    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
54189        match self {
54190            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_labeled_stmt(visitor, node),
54191            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_labeled_stmt(visitor, node),
54192        }
54193    }
54194
54195    #[inline]
54196    fn visit_mut_lit(&mut self, node: &mut Lit) {
54197        match self {
54198            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_lit(visitor, node),
54199            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_lit(visitor, node),
54200        }
54201    }
54202
54203    #[inline]
54204    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
54205        match self {
54206            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_member_expr(visitor, node),
54207            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_member_expr(visitor, node),
54208        }
54209    }
54210
54211    #[inline]
54212    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
54213        match self {
54214            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_member_prop(visitor, node),
54215            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_member_prop(visitor, node),
54216        }
54217    }
54218
54219    #[inline]
54220    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
54221        match self {
54222            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_meta_prop_expr(visitor, node),
54223            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_meta_prop_expr(visitor, node),
54224        }
54225    }
54226
54227    #[inline]
54228    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
54229        match self {
54230            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_meta_prop_kind(visitor, node),
54231            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_meta_prop_kind(visitor, node),
54232        }
54233    }
54234
54235    #[inline]
54236    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
54237        match self {
54238            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_method_kind(visitor, node),
54239            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_method_kind(visitor, node),
54240        }
54241    }
54242
54243    #[inline]
54244    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
54245        match self {
54246            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_method_prop(visitor, node),
54247            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_method_prop(visitor, node),
54248        }
54249    }
54250
54251    #[inline]
54252    fn visit_mut_module(&mut self, node: &mut Module) {
54253        match self {
54254            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module(visitor, node),
54255            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module(visitor, node),
54256        }
54257    }
54258
54259    #[inline]
54260    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
54261        match self {
54262            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module_decl(visitor, node),
54263            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module_decl(visitor, node),
54264        }
54265    }
54266
54267    #[inline]
54268    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
54269        match self {
54270            swc_visit::Either::Left(visitor) => {
54271                VisitMut::visit_mut_module_export_name(visitor, node)
54272            }
54273            swc_visit::Either::Right(visitor) => {
54274                VisitMut::visit_mut_module_export_name(visitor, node)
54275            }
54276        }
54277    }
54278
54279    #[inline]
54280    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
54281        match self {
54282            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module_item(visitor, node),
54283            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module_item(visitor, node),
54284        }
54285    }
54286
54287    #[inline]
54288    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
54289        match self {
54290            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_module_items(visitor, node),
54291            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_module_items(visitor, node),
54292        }
54293    }
54294
54295    #[inline]
54296    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
54297        match self {
54298            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_named_export(visitor, node),
54299            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_named_export(visitor, node),
54300        }
54301    }
54302
54303    #[inline]
54304    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
54305        match self {
54306            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_new_expr(visitor, node),
54307            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_new_expr(visitor, node),
54308        }
54309    }
54310
54311    #[inline]
54312    fn visit_mut_null(&mut self, node: &mut Null) {
54313        match self {
54314            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_null(visitor, node),
54315            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_null(visitor, node),
54316        }
54317    }
54318
54319    #[inline]
54320    fn visit_mut_number(&mut self, node: &mut Number) {
54321        match self {
54322            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_number(visitor, node),
54323            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_number(visitor, node),
54324        }
54325    }
54326
54327    #[inline]
54328    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
54329        match self {
54330            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_lit(visitor, node),
54331            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_object_lit(visitor, node),
54332        }
54333    }
54334
54335    #[inline]
54336    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
54337        match self {
54338            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_pat(visitor, node),
54339            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_object_pat(visitor, node),
54340        }
54341    }
54342
54343    #[inline]
54344    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
54345        match self {
54346            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_pat_prop(visitor, node),
54347            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_object_pat_prop(visitor, node),
54348        }
54349    }
54350
54351    #[inline]
54352    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
54353        match self {
54354            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_object_pat_props(visitor, node),
54355            swc_visit::Either::Right(visitor) => {
54356                VisitMut::visit_mut_object_pat_props(visitor, node)
54357            }
54358        }
54359    }
54360
54361    #[inline]
54362    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
54363        match self {
54364            swc_visit::Either::Left(visitor) => {
54365                VisitMut::visit_mut_opt_accessibility(visitor, node)
54366            }
54367            swc_visit::Either::Right(visitor) => {
54368                VisitMut::visit_mut_opt_accessibility(visitor, node)
54369            }
54370        }
54371    }
54372
54373    #[inline]
54374    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
54375        match self {
54376            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_atom(visitor, node),
54377            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_atom(visitor, node),
54378        }
54379    }
54380
54381    #[inline]
54382    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
54383        match self {
54384            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_block_stmt(visitor, node),
54385            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_block_stmt(visitor, node),
54386        }
54387    }
54388
54389    #[inline]
54390    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
54391        match self {
54392            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_call(visitor, node),
54393            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_call(visitor, node),
54394        }
54395    }
54396
54397    #[inline]
54398    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
54399        match self {
54400            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_catch_clause(visitor, node),
54401            swc_visit::Either::Right(visitor) => {
54402                VisitMut::visit_mut_opt_catch_clause(visitor, node)
54403            }
54404        }
54405    }
54406
54407    #[inline]
54408    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
54409        match self {
54410            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_chain_base(visitor, node),
54411            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_chain_base(visitor, node),
54412        }
54413    }
54414
54415    #[inline]
54416    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
54417        match self {
54418            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_chain_expr(visitor, node),
54419            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_chain_expr(visitor, node),
54420        }
54421    }
54422
54423    #[inline]
54424    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
54425        match self {
54426            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_expr(visitor, node),
54427            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_expr(visitor, node),
54428        }
54429    }
54430
54431    #[inline]
54432    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
54433        match self {
54434            swc_visit::Either::Left(visitor) => {
54435                VisitMut::visit_mut_opt_expr_or_spread(visitor, node)
54436            }
54437            swc_visit::Either::Right(visitor) => {
54438                VisitMut::visit_mut_opt_expr_or_spread(visitor, node)
54439            }
54440        }
54441    }
54442
54443    #[inline]
54444    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
54445        match self {
54446            swc_visit::Either::Left(visitor) => {
54447                VisitMut::visit_mut_opt_expr_or_spreads(visitor, node)
54448            }
54449            swc_visit::Either::Right(visitor) => {
54450                VisitMut::visit_mut_opt_expr_or_spreads(visitor, node)
54451            }
54452        }
54453    }
54454
54455    #[inline]
54456    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
54457        match self {
54458            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_ident(visitor, node),
54459            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_ident(visitor, node),
54460        }
54461    }
54462
54463    #[inline]
54464    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
54465        match self {
54466            swc_visit::Either::Left(visitor) => {
54467                VisitMut::visit_mut_opt_jsx_attr_value(visitor, node)
54468            }
54469            swc_visit::Either::Right(visitor) => {
54470                VisitMut::visit_mut_opt_jsx_attr_value(visitor, node)
54471            }
54472        }
54473    }
54474
54475    #[inline]
54476    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
54477        match self {
54478            swc_visit::Either::Left(visitor) => {
54479                VisitMut::visit_mut_opt_jsx_closing_element(visitor, node)
54480            }
54481            swc_visit::Either::Right(visitor) => {
54482                VisitMut::visit_mut_opt_jsx_closing_element(visitor, node)
54483            }
54484        }
54485    }
54486
54487    #[inline]
54488    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
54489        match self {
54490            swc_visit::Either::Left(visitor) => {
54491                VisitMut::visit_mut_opt_module_export_name(visitor, node)
54492            }
54493            swc_visit::Either::Right(visitor) => {
54494                VisitMut::visit_mut_opt_module_export_name(visitor, node)
54495            }
54496        }
54497    }
54498
54499    #[inline]
54500    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
54501        match self {
54502            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_object_lit(visitor, node),
54503            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_object_lit(visitor, node),
54504        }
54505    }
54506
54507    #[inline]
54508    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
54509        match self {
54510            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_pat(visitor, node),
54511            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_pat(visitor, node),
54512        }
54513    }
54514
54515    #[inline]
54516    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
54517        match self {
54518            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_span(visitor, node),
54519            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_span(visitor, node),
54520        }
54521    }
54522
54523    #[inline]
54524    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
54525        match self {
54526            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_stmt(visitor, node),
54527            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_stmt(visitor, node),
54528        }
54529    }
54530
54531    #[inline]
54532    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
54533        match self {
54534            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_str(visitor, node),
54535            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_str(visitor, node),
54536        }
54537    }
54538
54539    #[inline]
54540    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
54541        match self {
54542            swc_visit::Either::Left(visitor) => {
54543                VisitMut::visit_mut_opt_true_plus_minus(visitor, node)
54544            }
54545            swc_visit::Either::Right(visitor) => {
54546                VisitMut::visit_mut_opt_true_plus_minus(visitor, node)
54547            }
54548        }
54549    }
54550
54551    #[inline]
54552    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
54553        match self {
54554            swc_visit::Either::Left(visitor) => {
54555                VisitMut::visit_mut_opt_ts_entity_name(visitor, node)
54556            }
54557            swc_visit::Either::Right(visitor) => {
54558                VisitMut::visit_mut_opt_ts_entity_name(visitor, node)
54559            }
54560        }
54561    }
54562
54563    #[inline]
54564    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
54565        match self {
54566            swc_visit::Either::Left(visitor) => {
54567                VisitMut::visit_mut_opt_ts_namespace_body(visitor, node)
54568            }
54569            swc_visit::Either::Right(visitor) => {
54570                VisitMut::visit_mut_opt_ts_namespace_body(visitor, node)
54571            }
54572        }
54573    }
54574
54575    #[inline]
54576    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
54577        match self {
54578            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_ts_type(visitor, node),
54579            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_ts_type(visitor, node),
54580        }
54581    }
54582
54583    #[inline]
54584    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
54585        match self {
54586            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_ts_type_ann(visitor, node),
54587            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_ts_type_ann(visitor, node),
54588        }
54589    }
54590
54591    #[inline]
54592    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
54593        match self {
54594            swc_visit::Either::Left(visitor) => {
54595                VisitMut::visit_mut_opt_ts_type_param_decl(visitor, node)
54596            }
54597            swc_visit::Either::Right(visitor) => {
54598                VisitMut::visit_mut_opt_ts_type_param_decl(visitor, node)
54599            }
54600        }
54601    }
54602
54603    #[inline]
54604    fn visit_mut_opt_ts_type_param_instantiation(
54605        &mut self,
54606        node: &mut Option<Box<TsTypeParamInstantiation>>,
54607    ) {
54608        match self {
54609            swc_visit::Either::Left(visitor) => {
54610                VisitMut::visit_mut_opt_ts_type_param_instantiation(visitor, node)
54611            }
54612            swc_visit::Either::Right(visitor) => {
54613                VisitMut::visit_mut_opt_ts_type_param_instantiation(visitor, node)
54614            }
54615        }
54616    }
54617
54618    #[inline]
54619    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
54620        match self {
54621            swc_visit::Either::Left(visitor) => {
54622                VisitMut::visit_mut_opt_var_decl_or_expr(visitor, node)
54623            }
54624            swc_visit::Either::Right(visitor) => {
54625                VisitMut::visit_mut_opt_var_decl_or_expr(visitor, node)
54626            }
54627        }
54628    }
54629
54630    #[inline]
54631    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
54632        match self {
54633            swc_visit::Either::Left(visitor) => {
54634                VisitMut::visit_mut_opt_vec_expr_or_spreads(visitor, node)
54635            }
54636            swc_visit::Either::Right(visitor) => {
54637                VisitMut::visit_mut_opt_vec_expr_or_spreads(visitor, node)
54638            }
54639        }
54640    }
54641
54642    #[inline]
54643    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
54644        match self {
54645            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_opt_vec_pats(visitor, node),
54646            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_opt_vec_pats(visitor, node),
54647        }
54648    }
54649
54650    #[inline]
54651    fn visit_mut_param(&mut self, node: &mut Param) {
54652        match self {
54653            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_param(visitor, node),
54654            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_param(visitor, node),
54655        }
54656    }
54657
54658    #[inline]
54659    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
54660        match self {
54661            swc_visit::Either::Left(visitor) => {
54662                VisitMut::visit_mut_param_or_ts_param_prop(visitor, node)
54663            }
54664            swc_visit::Either::Right(visitor) => {
54665                VisitMut::visit_mut_param_or_ts_param_prop(visitor, node)
54666            }
54667        }
54668    }
54669
54670    #[inline]
54671    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
54672        match self {
54673            swc_visit::Either::Left(visitor) => {
54674                VisitMut::visit_mut_param_or_ts_param_props(visitor, node)
54675            }
54676            swc_visit::Either::Right(visitor) => {
54677                VisitMut::visit_mut_param_or_ts_param_props(visitor, node)
54678            }
54679        }
54680    }
54681
54682    #[inline]
54683    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
54684        match self {
54685            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_params(visitor, node),
54686            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_params(visitor, node),
54687        }
54688    }
54689
54690    #[inline]
54691    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
54692        match self {
54693            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_paren_expr(visitor, node),
54694            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_paren_expr(visitor, node),
54695        }
54696    }
54697
54698    #[inline]
54699    fn visit_mut_pat(&mut self, node: &mut Pat) {
54700        match self {
54701            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_pat(visitor, node),
54702            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_pat(visitor, node),
54703        }
54704    }
54705
54706    #[inline]
54707    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
54708        match self {
54709            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_pats(visitor, node),
54710            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_pats(visitor, node),
54711        }
54712    }
54713
54714    #[inline]
54715    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
54716        match self {
54717            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_private_method(visitor, node),
54718            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_private_method(visitor, node),
54719        }
54720    }
54721
54722    #[inline]
54723    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
54724        match self {
54725            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_private_name(visitor, node),
54726            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_private_name(visitor, node),
54727        }
54728    }
54729
54730    #[inline]
54731    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
54732        match self {
54733            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_private_prop(visitor, node),
54734            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_private_prop(visitor, node),
54735        }
54736    }
54737
54738    #[inline]
54739    fn visit_mut_program(&mut self, node: &mut Program) {
54740        match self {
54741            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_program(visitor, node),
54742            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_program(visitor, node),
54743        }
54744    }
54745
54746    #[inline]
54747    fn visit_mut_prop(&mut self, node: &mut Prop) {
54748        match self {
54749            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop(visitor, node),
54750            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop(visitor, node),
54751        }
54752    }
54753
54754    #[inline]
54755    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
54756        match self {
54757            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop_name(visitor, node),
54758            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop_name(visitor, node),
54759        }
54760    }
54761
54762    #[inline]
54763    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
54764        match self {
54765            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop_or_spread(visitor, node),
54766            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop_or_spread(visitor, node),
54767        }
54768    }
54769
54770    #[inline]
54771    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
54772        match self {
54773            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_prop_or_spreads(visitor, node),
54774            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_prop_or_spreads(visitor, node),
54775        }
54776    }
54777
54778    #[inline]
54779    fn visit_mut_regex(&mut self, node: &mut Regex) {
54780        match self {
54781            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_regex(visitor, node),
54782            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_regex(visitor, node),
54783        }
54784    }
54785
54786    #[inline]
54787    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
54788        match self {
54789            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_rest_pat(visitor, node),
54790            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_rest_pat(visitor, node),
54791        }
54792    }
54793
54794    #[inline]
54795    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
54796        match self {
54797            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_return_stmt(visitor, node),
54798            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_return_stmt(visitor, node),
54799        }
54800    }
54801
54802    #[inline]
54803    fn visit_mut_script(&mut self, node: &mut Script) {
54804        match self {
54805            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_script(visitor, node),
54806            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_script(visitor, node),
54807        }
54808    }
54809
54810    #[inline]
54811    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
54812        match self {
54813            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_seq_expr(visitor, node),
54814            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_seq_expr(visitor, node),
54815        }
54816    }
54817
54818    #[inline]
54819    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
54820        match self {
54821            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_setter_prop(visitor, node),
54822            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_setter_prop(visitor, node),
54823        }
54824    }
54825
54826    #[inline]
54827    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
54828        match self {
54829            swc_visit::Either::Left(visitor) => {
54830                VisitMut::visit_mut_simple_assign_target(visitor, node)
54831            }
54832            swc_visit::Either::Right(visitor) => {
54833                VisitMut::visit_mut_simple_assign_target(visitor, node)
54834            }
54835        }
54836    }
54837
54838    #[inline]
54839    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
54840        match self {
54841            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_span(visitor, node),
54842            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_span(visitor, node),
54843        }
54844    }
54845
54846    #[inline]
54847    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
54848        match self {
54849            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_spread_element(visitor, node),
54850            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_spread_element(visitor, node),
54851        }
54852    }
54853
54854    #[inline]
54855    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
54856        match self {
54857            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_static_block(visitor, node),
54858            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_static_block(visitor, node),
54859        }
54860    }
54861
54862    #[inline]
54863    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
54864        match self {
54865            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_stmt(visitor, node),
54866            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_stmt(visitor, node),
54867        }
54868    }
54869
54870    #[inline]
54871    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
54872        match self {
54873            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_stmts(visitor, node),
54874            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_stmts(visitor, node),
54875        }
54876    }
54877
54878    #[inline]
54879    fn visit_mut_str(&mut self, node: &mut Str) {
54880        match self {
54881            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_str(visitor, node),
54882            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_str(visitor, node),
54883        }
54884    }
54885
54886    #[inline]
54887    fn visit_mut_super(&mut self, node: &mut Super) {
54888        match self {
54889            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_super(visitor, node),
54890            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_super(visitor, node),
54891        }
54892    }
54893
54894    #[inline]
54895    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
54896        match self {
54897            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_super_prop(visitor, node),
54898            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_super_prop(visitor, node),
54899        }
54900    }
54901
54902    #[inline]
54903    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
54904        match self {
54905            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_super_prop_expr(visitor, node),
54906            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_super_prop_expr(visitor, node),
54907        }
54908    }
54909
54910    #[inline]
54911    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
54912        match self {
54913            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_switch_case(visitor, node),
54914            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_switch_case(visitor, node),
54915        }
54916    }
54917
54918    #[inline]
54919    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
54920        match self {
54921            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_switch_cases(visitor, node),
54922            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_switch_cases(visitor, node),
54923        }
54924    }
54925
54926    #[inline]
54927    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
54928        match self {
54929            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_switch_stmt(visitor, node),
54930            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_switch_stmt(visitor, node),
54931        }
54932    }
54933
54934    #[inline]
54935    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
54936        match self {
54937            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_syntax_context(visitor, node),
54938            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_syntax_context(visitor, node),
54939        }
54940    }
54941
54942    #[inline]
54943    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
54944        match self {
54945            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tagged_tpl(visitor, node),
54946            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tagged_tpl(visitor, node),
54947        }
54948    }
54949
54950    #[inline]
54951    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
54952        match self {
54953            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_this_expr(visitor, node),
54954            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_this_expr(visitor, node),
54955        }
54956    }
54957
54958    #[inline]
54959    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
54960        match self {
54961            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_throw_stmt(visitor, node),
54962            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_throw_stmt(visitor, node),
54963        }
54964    }
54965
54966    #[inline]
54967    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
54968        match self {
54969            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tpl(visitor, node),
54970            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tpl(visitor, node),
54971        }
54972    }
54973
54974    #[inline]
54975    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
54976        match self {
54977            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tpl_element(visitor, node),
54978            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tpl_element(visitor, node),
54979        }
54980    }
54981
54982    #[inline]
54983    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
54984        match self {
54985            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_tpl_elements(visitor, node),
54986            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_tpl_elements(visitor, node),
54987        }
54988    }
54989
54990    #[inline]
54991    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
54992        match self {
54993            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_true_plus_minus(visitor, node),
54994            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_true_plus_minus(visitor, node),
54995        }
54996    }
54997
54998    #[inline]
54999    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
55000        match self {
55001            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_try_stmt(visitor, node),
55002            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_try_stmt(visitor, node),
55003        }
55004    }
55005
55006    #[inline]
55007    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
55008        match self {
55009            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_array_type(visitor, node),
55010            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_array_type(visitor, node),
55011        }
55012    }
55013
55014    #[inline]
55015    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
55016        match self {
55017            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_as_expr(visitor, node),
55018            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_as_expr(visitor, node),
55019        }
55020    }
55021
55022    #[inline]
55023    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
55024        match self {
55025            swc_visit::Either::Left(visitor) => {
55026                VisitMut::visit_mut_ts_call_signature_decl(visitor, node)
55027            }
55028            swc_visit::Either::Right(visitor) => {
55029                VisitMut::visit_mut_ts_call_signature_decl(visitor, node)
55030            }
55031        }
55032    }
55033
55034    #[inline]
55035    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
55036        match self {
55037            swc_visit::Either::Left(visitor) => {
55038                VisitMut::visit_mut_ts_conditional_type(visitor, node)
55039            }
55040            swc_visit::Either::Right(visitor) => {
55041                VisitMut::visit_mut_ts_conditional_type(visitor, node)
55042            }
55043        }
55044    }
55045
55046    #[inline]
55047    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
55048        match self {
55049            swc_visit::Either::Left(visitor) => {
55050                VisitMut::visit_mut_ts_const_assertion(visitor, node)
55051            }
55052            swc_visit::Either::Right(visitor) => {
55053                VisitMut::visit_mut_ts_const_assertion(visitor, node)
55054            }
55055        }
55056    }
55057
55058    #[inline]
55059    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
55060        match self {
55061            swc_visit::Either::Left(visitor) => {
55062                VisitMut::visit_mut_ts_construct_signature_decl(visitor, node)
55063            }
55064            swc_visit::Either::Right(visitor) => {
55065                VisitMut::visit_mut_ts_construct_signature_decl(visitor, node)
55066            }
55067        }
55068    }
55069
55070    #[inline]
55071    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
55072        match self {
55073            swc_visit::Either::Left(visitor) => {
55074                VisitMut::visit_mut_ts_constructor_type(visitor, node)
55075            }
55076            swc_visit::Either::Right(visitor) => {
55077                VisitMut::visit_mut_ts_constructor_type(visitor, node)
55078            }
55079        }
55080    }
55081
55082    #[inline]
55083    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
55084        match self {
55085            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_entity_name(visitor, node),
55086            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_entity_name(visitor, node),
55087        }
55088    }
55089
55090    #[inline]
55091    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
55092        match self {
55093            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_enum_decl(visitor, node),
55094            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_enum_decl(visitor, node),
55095        }
55096    }
55097
55098    #[inline]
55099    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
55100        match self {
55101            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_enum_member(visitor, node),
55102            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_enum_member(visitor, node),
55103        }
55104    }
55105
55106    #[inline]
55107    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
55108        match self {
55109            swc_visit::Either::Left(visitor) => {
55110                VisitMut::visit_mut_ts_enum_member_id(visitor, node)
55111            }
55112            swc_visit::Either::Right(visitor) => {
55113                VisitMut::visit_mut_ts_enum_member_id(visitor, node)
55114            }
55115        }
55116    }
55117
55118    #[inline]
55119    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
55120        match self {
55121            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_enum_members(visitor, node),
55122            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_enum_members(visitor, node),
55123        }
55124    }
55125
55126    #[inline]
55127    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
55128        match self {
55129            swc_visit::Either::Left(visitor) => {
55130                VisitMut::visit_mut_ts_export_assignment(visitor, node)
55131            }
55132            swc_visit::Either::Right(visitor) => {
55133                VisitMut::visit_mut_ts_export_assignment(visitor, node)
55134            }
55135        }
55136    }
55137
55138    #[inline]
55139    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
55140        match self {
55141            swc_visit::Either::Left(visitor) => {
55142                VisitMut::visit_mut_ts_expr_with_type_args(visitor, node)
55143            }
55144            swc_visit::Either::Right(visitor) => {
55145                VisitMut::visit_mut_ts_expr_with_type_args(visitor, node)
55146            }
55147        }
55148    }
55149
55150    #[inline]
55151    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
55152        match self {
55153            swc_visit::Either::Left(visitor) => {
55154                VisitMut::visit_mut_ts_expr_with_type_argss(visitor, node)
55155            }
55156            swc_visit::Either::Right(visitor) => {
55157                VisitMut::visit_mut_ts_expr_with_type_argss(visitor, node)
55158            }
55159        }
55160    }
55161
55162    #[inline]
55163    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
55164        match self {
55165            swc_visit::Either::Left(visitor) => {
55166                VisitMut::visit_mut_ts_external_module_ref(visitor, node)
55167            }
55168            swc_visit::Either::Right(visitor) => {
55169                VisitMut::visit_mut_ts_external_module_ref(visitor, node)
55170            }
55171        }
55172    }
55173
55174    #[inline]
55175    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
55176        match self {
55177            swc_visit::Either::Left(visitor) => {
55178                VisitMut::visit_mut_ts_fn_or_constructor_type(visitor, node)
55179            }
55180            swc_visit::Either::Right(visitor) => {
55181                VisitMut::visit_mut_ts_fn_or_constructor_type(visitor, node)
55182            }
55183        }
55184    }
55185
55186    #[inline]
55187    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
55188        match self {
55189            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_fn_param(visitor, node),
55190            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_fn_param(visitor, node),
55191        }
55192    }
55193
55194    #[inline]
55195    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
55196        match self {
55197            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_fn_params(visitor, node),
55198            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_fn_params(visitor, node),
55199        }
55200    }
55201
55202    #[inline]
55203    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
55204        match self {
55205            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_fn_type(visitor, node),
55206            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_fn_type(visitor, node),
55207        }
55208    }
55209
55210    #[inline]
55211    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
55212        match self {
55213            swc_visit::Either::Left(visitor) => {
55214                VisitMut::visit_mut_ts_getter_signature(visitor, node)
55215            }
55216            swc_visit::Either::Right(visitor) => {
55217                VisitMut::visit_mut_ts_getter_signature(visitor, node)
55218            }
55219        }
55220    }
55221
55222    #[inline]
55223    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
55224        match self {
55225            swc_visit::Either::Left(visitor) => {
55226                VisitMut::visit_mut_ts_import_equals_decl(visitor, node)
55227            }
55228            swc_visit::Either::Right(visitor) => {
55229                VisitMut::visit_mut_ts_import_equals_decl(visitor, node)
55230            }
55231        }
55232    }
55233
55234    #[inline]
55235    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
55236        match self {
55237            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_import_type(visitor, node),
55238            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_import_type(visitor, node),
55239        }
55240    }
55241
55242    #[inline]
55243    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
55244        match self {
55245            swc_visit::Either::Left(visitor) => {
55246                VisitMut::visit_mut_ts_index_signature(visitor, node)
55247            }
55248            swc_visit::Either::Right(visitor) => {
55249                VisitMut::visit_mut_ts_index_signature(visitor, node)
55250            }
55251        }
55252    }
55253
55254    #[inline]
55255    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
55256        match self {
55257            swc_visit::Either::Left(visitor) => {
55258                VisitMut::visit_mut_ts_indexed_access_type(visitor, node)
55259            }
55260            swc_visit::Either::Right(visitor) => {
55261                VisitMut::visit_mut_ts_indexed_access_type(visitor, node)
55262            }
55263        }
55264    }
55265
55266    #[inline]
55267    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
55268        match self {
55269            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_infer_type(visitor, node),
55270            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_infer_type(visitor, node),
55271        }
55272    }
55273
55274    #[inline]
55275    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
55276        match self {
55277            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_instantiation(visitor, node),
55278            swc_visit::Either::Right(visitor) => {
55279                VisitMut::visit_mut_ts_instantiation(visitor, node)
55280            }
55281        }
55282    }
55283
55284    #[inline]
55285    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
55286        match self {
55287            swc_visit::Either::Left(visitor) => {
55288                VisitMut::visit_mut_ts_interface_body(visitor, node)
55289            }
55290            swc_visit::Either::Right(visitor) => {
55291                VisitMut::visit_mut_ts_interface_body(visitor, node)
55292            }
55293        }
55294    }
55295
55296    #[inline]
55297    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
55298        match self {
55299            swc_visit::Either::Left(visitor) => {
55300                VisitMut::visit_mut_ts_interface_decl(visitor, node)
55301            }
55302            swc_visit::Either::Right(visitor) => {
55303                VisitMut::visit_mut_ts_interface_decl(visitor, node)
55304            }
55305        }
55306    }
55307
55308    #[inline]
55309    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
55310        match self {
55311            swc_visit::Either::Left(visitor) => {
55312                VisitMut::visit_mut_ts_intersection_type(visitor, node)
55313            }
55314            swc_visit::Either::Right(visitor) => {
55315                VisitMut::visit_mut_ts_intersection_type(visitor, node)
55316            }
55317        }
55318    }
55319
55320    #[inline]
55321    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
55322        match self {
55323            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_keyword_type(visitor, node),
55324            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_keyword_type(visitor, node),
55325        }
55326    }
55327
55328    #[inline]
55329    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
55330        match self {
55331            swc_visit::Either::Left(visitor) => {
55332                VisitMut::visit_mut_ts_keyword_type_kind(visitor, node)
55333            }
55334            swc_visit::Either::Right(visitor) => {
55335                VisitMut::visit_mut_ts_keyword_type_kind(visitor, node)
55336            }
55337        }
55338    }
55339
55340    #[inline]
55341    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
55342        match self {
55343            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_lit(visitor, node),
55344            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_lit(visitor, node),
55345        }
55346    }
55347
55348    #[inline]
55349    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
55350        match self {
55351            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_lit_type(visitor, node),
55352            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_lit_type(visitor, node),
55353        }
55354    }
55355
55356    #[inline]
55357    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
55358        match self {
55359            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_mapped_type(visitor, node),
55360            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_mapped_type(visitor, node),
55361        }
55362    }
55363
55364    #[inline]
55365    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
55366        match self {
55367            swc_visit::Either::Left(visitor) => {
55368                VisitMut::visit_mut_ts_method_signature(visitor, node)
55369            }
55370            swc_visit::Either::Right(visitor) => {
55371                VisitMut::visit_mut_ts_method_signature(visitor, node)
55372            }
55373        }
55374    }
55375
55376    #[inline]
55377    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
55378        match self {
55379            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_block(visitor, node),
55380            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_block(visitor, node),
55381        }
55382    }
55383
55384    #[inline]
55385    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
55386        match self {
55387            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_decl(visitor, node),
55388            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_decl(visitor, node),
55389        }
55390    }
55391
55392    #[inline]
55393    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
55394        match self {
55395            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_name(visitor, node),
55396            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_name(visitor, node),
55397        }
55398    }
55399
55400    #[inline]
55401    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
55402        match self {
55403            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_module_ref(visitor, node),
55404            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_module_ref(visitor, node),
55405        }
55406    }
55407
55408    #[inline]
55409    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
55410        match self {
55411            swc_visit::Either::Left(visitor) => {
55412                VisitMut::visit_mut_ts_namespace_body(visitor, node)
55413            }
55414            swc_visit::Either::Right(visitor) => {
55415                VisitMut::visit_mut_ts_namespace_body(visitor, node)
55416            }
55417        }
55418    }
55419
55420    #[inline]
55421    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
55422        match self {
55423            swc_visit::Either::Left(visitor) => {
55424                VisitMut::visit_mut_ts_namespace_decl(visitor, node)
55425            }
55426            swc_visit::Either::Right(visitor) => {
55427                VisitMut::visit_mut_ts_namespace_decl(visitor, node)
55428            }
55429        }
55430    }
55431
55432    #[inline]
55433    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
55434        match self {
55435            swc_visit::Either::Left(visitor) => {
55436                VisitMut::visit_mut_ts_namespace_export_decl(visitor, node)
55437            }
55438            swc_visit::Either::Right(visitor) => {
55439                VisitMut::visit_mut_ts_namespace_export_decl(visitor, node)
55440            }
55441        }
55442    }
55443
55444    #[inline]
55445    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
55446        match self {
55447            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_non_null_expr(visitor, node),
55448            swc_visit::Either::Right(visitor) => {
55449                VisitMut::visit_mut_ts_non_null_expr(visitor, node)
55450            }
55451        }
55452    }
55453
55454    #[inline]
55455    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
55456        match self {
55457            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_optional_type(visitor, node),
55458            swc_visit::Either::Right(visitor) => {
55459                VisitMut::visit_mut_ts_optional_type(visitor, node)
55460            }
55461        }
55462    }
55463
55464    #[inline]
55465    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
55466        match self {
55467            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_param_prop(visitor, node),
55468            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_param_prop(visitor, node),
55469        }
55470    }
55471
55472    #[inline]
55473    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
55474        match self {
55475            swc_visit::Either::Left(visitor) => {
55476                VisitMut::visit_mut_ts_param_prop_param(visitor, node)
55477            }
55478            swc_visit::Either::Right(visitor) => {
55479                VisitMut::visit_mut_ts_param_prop_param(visitor, node)
55480            }
55481        }
55482    }
55483
55484    #[inline]
55485    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
55486        match self {
55487            swc_visit::Either::Left(visitor) => {
55488                VisitMut::visit_mut_ts_parenthesized_type(visitor, node)
55489            }
55490            swc_visit::Either::Right(visitor) => {
55491                VisitMut::visit_mut_ts_parenthesized_type(visitor, node)
55492            }
55493        }
55494    }
55495
55496    #[inline]
55497    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
55498        match self {
55499            swc_visit::Either::Left(visitor) => {
55500                VisitMut::visit_mut_ts_property_signature(visitor, node)
55501            }
55502            swc_visit::Either::Right(visitor) => {
55503                VisitMut::visit_mut_ts_property_signature(visitor, node)
55504            }
55505        }
55506    }
55507
55508    #[inline]
55509    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
55510        match self {
55511            swc_visit::Either::Left(visitor) => {
55512                VisitMut::visit_mut_ts_qualified_name(visitor, node)
55513            }
55514            swc_visit::Either::Right(visitor) => {
55515                VisitMut::visit_mut_ts_qualified_name(visitor, node)
55516            }
55517        }
55518    }
55519
55520    #[inline]
55521    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
55522        match self {
55523            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_rest_type(visitor, node),
55524            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_rest_type(visitor, node),
55525        }
55526    }
55527
55528    #[inline]
55529    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
55530        match self {
55531            swc_visit::Either::Left(visitor) => {
55532                VisitMut::visit_mut_ts_satisfies_expr(visitor, node)
55533            }
55534            swc_visit::Either::Right(visitor) => {
55535                VisitMut::visit_mut_ts_satisfies_expr(visitor, node)
55536            }
55537        }
55538    }
55539
55540    #[inline]
55541    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
55542        match self {
55543            swc_visit::Either::Left(visitor) => {
55544                VisitMut::visit_mut_ts_setter_signature(visitor, node)
55545            }
55546            swc_visit::Either::Right(visitor) => {
55547                VisitMut::visit_mut_ts_setter_signature(visitor, node)
55548            }
55549        }
55550    }
55551
55552    #[inline]
55553    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
55554        match self {
55555            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_this_type(visitor, node),
55556            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_this_type(visitor, node),
55557        }
55558    }
55559
55560    #[inline]
55561    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
55562        match self {
55563            swc_visit::Either::Left(visitor) => {
55564                VisitMut::visit_mut_ts_this_type_or_ident(visitor, node)
55565            }
55566            swc_visit::Either::Right(visitor) => {
55567                VisitMut::visit_mut_ts_this_type_or_ident(visitor, node)
55568            }
55569        }
55570    }
55571
55572    #[inline]
55573    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
55574        match self {
55575            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_tpl_lit_type(visitor, node),
55576            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_tpl_lit_type(visitor, node),
55577        }
55578    }
55579
55580    #[inline]
55581    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
55582        match self {
55583            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_tuple_element(visitor, node),
55584            swc_visit::Either::Right(visitor) => {
55585                VisitMut::visit_mut_ts_tuple_element(visitor, node)
55586            }
55587        }
55588    }
55589
55590    #[inline]
55591    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
55592        match self {
55593            swc_visit::Either::Left(visitor) => {
55594                VisitMut::visit_mut_ts_tuple_elements(visitor, node)
55595            }
55596            swc_visit::Either::Right(visitor) => {
55597                VisitMut::visit_mut_ts_tuple_elements(visitor, node)
55598            }
55599        }
55600    }
55601
55602    #[inline]
55603    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
55604        match self {
55605            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_tuple_type(visitor, node),
55606            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_tuple_type(visitor, node),
55607        }
55608    }
55609
55610    #[inline]
55611    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
55612        match self {
55613            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type(visitor, node),
55614            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type(visitor, node),
55615        }
55616    }
55617
55618    #[inline]
55619    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
55620        match self {
55621            swc_visit::Either::Left(visitor) => {
55622                VisitMut::visit_mut_ts_type_alias_decl(visitor, node)
55623            }
55624            swc_visit::Either::Right(visitor) => {
55625                VisitMut::visit_mut_ts_type_alias_decl(visitor, node)
55626            }
55627        }
55628    }
55629
55630    #[inline]
55631    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
55632        match self {
55633            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_ann(visitor, node),
55634            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_ann(visitor, node),
55635        }
55636    }
55637
55638    #[inline]
55639    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
55640        match self {
55641            swc_visit::Either::Left(visitor) => {
55642                VisitMut::visit_mut_ts_type_assertion(visitor, node)
55643            }
55644            swc_visit::Either::Right(visitor) => {
55645                VisitMut::visit_mut_ts_type_assertion(visitor, node)
55646            }
55647        }
55648    }
55649
55650    #[inline]
55651    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
55652        match self {
55653            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_element(visitor, node),
55654            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_element(visitor, node),
55655        }
55656    }
55657
55658    #[inline]
55659    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
55660        match self {
55661            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_elements(visitor, node),
55662            swc_visit::Either::Right(visitor) => {
55663                VisitMut::visit_mut_ts_type_elements(visitor, node)
55664            }
55665        }
55666    }
55667
55668    #[inline]
55669    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
55670        match self {
55671            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_lit(visitor, node),
55672            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_lit(visitor, node),
55673        }
55674    }
55675
55676    #[inline]
55677    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
55678        match self {
55679            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_operator(visitor, node),
55680            swc_visit::Either::Right(visitor) => {
55681                VisitMut::visit_mut_ts_type_operator(visitor, node)
55682            }
55683        }
55684    }
55685
55686    #[inline]
55687    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
55688        match self {
55689            swc_visit::Either::Left(visitor) => {
55690                VisitMut::visit_mut_ts_type_operator_op(visitor, node)
55691            }
55692            swc_visit::Either::Right(visitor) => {
55693                VisitMut::visit_mut_ts_type_operator_op(visitor, node)
55694            }
55695        }
55696    }
55697
55698    #[inline]
55699    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
55700        match self {
55701            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_param(visitor, node),
55702            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_param(visitor, node),
55703        }
55704    }
55705
55706    #[inline]
55707    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
55708        match self {
55709            swc_visit::Either::Left(visitor) => {
55710                VisitMut::visit_mut_ts_type_param_decl(visitor, node)
55711            }
55712            swc_visit::Either::Right(visitor) => {
55713                VisitMut::visit_mut_ts_type_param_decl(visitor, node)
55714            }
55715        }
55716    }
55717
55718    #[inline]
55719    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
55720        match self {
55721            swc_visit::Either::Left(visitor) => {
55722                VisitMut::visit_mut_ts_type_param_instantiation(visitor, node)
55723            }
55724            swc_visit::Either::Right(visitor) => {
55725                VisitMut::visit_mut_ts_type_param_instantiation(visitor, node)
55726            }
55727        }
55728    }
55729
55730    #[inline]
55731    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
55732        match self {
55733            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_params(visitor, node),
55734            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_params(visitor, node),
55735        }
55736    }
55737
55738    #[inline]
55739    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
55740        match self {
55741            swc_visit::Either::Left(visitor) => {
55742                VisitMut::visit_mut_ts_type_predicate(visitor, node)
55743            }
55744            swc_visit::Either::Right(visitor) => {
55745                VisitMut::visit_mut_ts_type_predicate(visitor, node)
55746            }
55747        }
55748    }
55749
55750    #[inline]
55751    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
55752        match self {
55753            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_query(visitor, node),
55754            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_query(visitor, node),
55755        }
55756    }
55757
55758    #[inline]
55759    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
55760        match self {
55761            swc_visit::Either::Left(visitor) => {
55762                VisitMut::visit_mut_ts_type_query_expr(visitor, node)
55763            }
55764            swc_visit::Either::Right(visitor) => {
55765                VisitMut::visit_mut_ts_type_query_expr(visitor, node)
55766            }
55767        }
55768    }
55769
55770    #[inline]
55771    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
55772        match self {
55773            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_type_ref(visitor, node),
55774            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_type_ref(visitor, node),
55775        }
55776    }
55777
55778    #[inline]
55779    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
55780        match self {
55781            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_types(visitor, node),
55782            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_types(visitor, node),
55783        }
55784    }
55785
55786    #[inline]
55787    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
55788        match self {
55789            swc_visit::Either::Left(visitor) => {
55790                VisitMut::visit_mut_ts_union_or_intersection_type(visitor, node)
55791            }
55792            swc_visit::Either::Right(visitor) => {
55793                VisitMut::visit_mut_ts_union_or_intersection_type(visitor, node)
55794            }
55795        }
55796    }
55797
55798    #[inline]
55799    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
55800        match self {
55801            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_ts_union_type(visitor, node),
55802            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_ts_union_type(visitor, node),
55803        }
55804    }
55805
55806    #[inline]
55807    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
55808        match self {
55809            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_unary_expr(visitor, node),
55810            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_unary_expr(visitor, node),
55811        }
55812    }
55813
55814    #[inline]
55815    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
55816        match self {
55817            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_unary_op(visitor, node),
55818            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_unary_op(visitor, node),
55819        }
55820    }
55821
55822    #[inline]
55823    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
55824        match self {
55825            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_update_expr(visitor, node),
55826            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_update_expr(visitor, node),
55827        }
55828    }
55829
55830    #[inline]
55831    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
55832        match self {
55833            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_update_op(visitor, node),
55834            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_update_op(visitor, node),
55835        }
55836    }
55837
55838    #[inline]
55839    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
55840        match self {
55841            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_using_decl(visitor, node),
55842            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_using_decl(visitor, node),
55843        }
55844    }
55845
55846    #[inline]
55847    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
55848        match self {
55849            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_decl(visitor, node),
55850            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_decl(visitor, node),
55851        }
55852    }
55853
55854    #[inline]
55855    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
55856        match self {
55857            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_decl_kind(visitor, node),
55858            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_decl_kind(visitor, node),
55859        }
55860    }
55861
55862    #[inline]
55863    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
55864        match self {
55865            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_decl_or_expr(visitor, node),
55866            swc_visit::Either::Right(visitor) => {
55867                VisitMut::visit_mut_var_decl_or_expr(visitor, node)
55868            }
55869        }
55870    }
55871
55872    #[inline]
55873    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
55874        match self {
55875            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_declarator(visitor, node),
55876            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_declarator(visitor, node),
55877        }
55878    }
55879
55880    #[inline]
55881    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
55882        match self {
55883            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_var_declarators(visitor, node),
55884            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_var_declarators(visitor, node),
55885        }
55886    }
55887
55888    #[inline]
55889    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
55890        match self {
55891            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_while_stmt(visitor, node),
55892            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_while_stmt(visitor, node),
55893        }
55894    }
55895
55896    #[inline]
55897    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
55898        match self {
55899            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_with_stmt(visitor, node),
55900            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_with_stmt(visitor, node),
55901        }
55902    }
55903
55904    #[inline]
55905    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
55906        match self {
55907            swc_visit::Either::Left(visitor) => VisitMut::visit_mut_yield_expr(visitor, node),
55908            swc_visit::Either::Right(visitor) => VisitMut::visit_mut_yield_expr(visitor, node),
55909        }
55910    }
55911}
55912impl<V> VisitMut for ::swc_visit::Optional<V>
55913where
55914    V: VisitMut,
55915{
55916    #[inline]
55917    fn visit_mut_accessibility(&mut self, node: &mut Accessibility) {
55918        if self.enabled {
55919            <V as VisitMut>::visit_mut_accessibility(&mut self.visitor, node)
55920        } else {
55921        }
55922    }
55923
55924    #[inline]
55925    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit) {
55926        if self.enabled {
55927            <V as VisitMut>::visit_mut_array_lit(&mut self.visitor, node)
55928        } else {
55929        }
55930    }
55931
55932    #[inline]
55933    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat) {
55934        if self.enabled {
55935            <V as VisitMut>::visit_mut_array_pat(&mut self.visitor, node)
55936        } else {
55937        }
55938    }
55939
55940    #[inline]
55941    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
55942        if self.enabled {
55943            <V as VisitMut>::visit_mut_arrow_expr(&mut self.visitor, node)
55944        } else {
55945        }
55946    }
55947
55948    #[inline]
55949    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr) {
55950        if self.enabled {
55951            <V as VisitMut>::visit_mut_assign_expr(&mut self.visitor, node)
55952        } else {
55953        }
55954    }
55955
55956    #[inline]
55957    fn visit_mut_assign_op(&mut self, node: &mut AssignOp) {
55958        if self.enabled {
55959            <V as VisitMut>::visit_mut_assign_op(&mut self.visitor, node)
55960        } else {
55961        }
55962    }
55963
55964    #[inline]
55965    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat) {
55966        if self.enabled {
55967            <V as VisitMut>::visit_mut_assign_pat(&mut self.visitor, node)
55968        } else {
55969        }
55970    }
55971
55972    #[inline]
55973    fn visit_mut_assign_pat_prop(&mut self, node: &mut AssignPatProp) {
55974        if self.enabled {
55975            <V as VisitMut>::visit_mut_assign_pat_prop(&mut self.visitor, node)
55976        } else {
55977        }
55978    }
55979
55980    #[inline]
55981    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp) {
55982        if self.enabled {
55983            <V as VisitMut>::visit_mut_assign_prop(&mut self.visitor, node)
55984        } else {
55985        }
55986    }
55987
55988    #[inline]
55989    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget) {
55990        if self.enabled {
55991            <V as VisitMut>::visit_mut_assign_target(&mut self.visitor, node)
55992        } else {
55993        }
55994    }
55995
55996    #[inline]
55997    fn visit_mut_assign_target_pat(&mut self, node: &mut AssignTargetPat) {
55998        if self.enabled {
55999            <V as VisitMut>::visit_mut_assign_target_pat(&mut self.visitor, node)
56000        } else {
56001        }
56002    }
56003
56004    #[inline]
56005    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom) {
56006        if self.enabled {
56007            <V as VisitMut>::visit_mut_atom(&mut self.visitor, node)
56008        } else {
56009        }
56010    }
56011
56012    #[inline]
56013    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor) {
56014        if self.enabled {
56015            <V as VisitMut>::visit_mut_auto_accessor(&mut self.visitor, node)
56016        } else {
56017        }
56018    }
56019
56020    #[inline]
56021    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr) {
56022        if self.enabled {
56023            <V as VisitMut>::visit_mut_await_expr(&mut self.visitor, node)
56024        } else {
56025        }
56026    }
56027
56028    #[inline]
56029    fn visit_mut_big_int(&mut self, node: &mut BigInt) {
56030        if self.enabled {
56031            <V as VisitMut>::visit_mut_big_int(&mut self.visitor, node)
56032        } else {
56033        }
56034    }
56035
56036    #[inline]
56037    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue) {
56038        if self.enabled {
56039            <V as VisitMut>::visit_mut_big_int_value(&mut self.visitor, node)
56040        } else {
56041        }
56042    }
56043
56044    #[inline]
56045    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr) {
56046        if self.enabled {
56047            <V as VisitMut>::visit_mut_bin_expr(&mut self.visitor, node)
56048        } else {
56049        }
56050    }
56051
56052    #[inline]
56053    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp) {
56054        if self.enabled {
56055            <V as VisitMut>::visit_mut_binary_op(&mut self.visitor, node)
56056        } else {
56057        }
56058    }
56059
56060    #[inline]
56061    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent) {
56062        if self.enabled {
56063            <V as VisitMut>::visit_mut_binding_ident(&mut self.visitor, node)
56064        } else {
56065        }
56066    }
56067
56068    #[inline]
56069    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt) {
56070        if self.enabled {
56071            <V as VisitMut>::visit_mut_block_stmt(&mut self.visitor, node)
56072        } else {
56073        }
56074    }
56075
56076    #[inline]
56077    fn visit_mut_block_stmt_or_expr(&mut self, node: &mut BlockStmtOrExpr) {
56078        if self.enabled {
56079            <V as VisitMut>::visit_mut_block_stmt_or_expr(&mut self.visitor, node)
56080        } else {
56081        }
56082    }
56083
56084    #[inline]
56085    fn visit_mut_bool(&mut self, node: &mut Bool) {
56086        if self.enabled {
56087            <V as VisitMut>::visit_mut_bool(&mut self.visitor, node)
56088        } else {
56089        }
56090    }
56091
56092    #[inline]
56093    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt) {
56094        if self.enabled {
56095            <V as VisitMut>::visit_mut_break_stmt(&mut self.visitor, node)
56096        } else {
56097        }
56098    }
56099
56100    #[inline]
56101    fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
56102        if self.enabled {
56103            <V as VisitMut>::visit_mut_call_expr(&mut self.visitor, node)
56104        } else {
56105        }
56106    }
56107
56108    #[inline]
56109    fn visit_mut_callee(&mut self, node: &mut Callee) {
56110        if self.enabled {
56111            <V as VisitMut>::visit_mut_callee(&mut self.visitor, node)
56112        } else {
56113        }
56114    }
56115
56116    #[inline]
56117    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause) {
56118        if self.enabled {
56119            <V as VisitMut>::visit_mut_catch_clause(&mut self.visitor, node)
56120        } else {
56121        }
56122    }
56123
56124    #[inline]
56125    fn visit_mut_class(&mut self, node: &mut Class) {
56126        if self.enabled {
56127            <V as VisitMut>::visit_mut_class(&mut self.visitor, node)
56128        } else {
56129        }
56130    }
56131
56132    #[inline]
56133    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl) {
56134        if self.enabled {
56135            <V as VisitMut>::visit_mut_class_decl(&mut self.visitor, node)
56136        } else {
56137        }
56138    }
56139
56140    #[inline]
56141    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr) {
56142        if self.enabled {
56143            <V as VisitMut>::visit_mut_class_expr(&mut self.visitor, node)
56144        } else {
56145        }
56146    }
56147
56148    #[inline]
56149    fn visit_mut_class_member(&mut self, node: &mut ClassMember) {
56150        if self.enabled {
56151            <V as VisitMut>::visit_mut_class_member(&mut self.visitor, node)
56152        } else {
56153        }
56154    }
56155
56156    #[inline]
56157    fn visit_mut_class_members(&mut self, node: &mut Vec<ClassMember>) {
56158        if self.enabled {
56159            <V as VisitMut>::visit_mut_class_members(&mut self.visitor, node)
56160        } else {
56161        }
56162    }
56163
56164    #[inline]
56165    fn visit_mut_class_method(&mut self, node: &mut ClassMethod) {
56166        if self.enabled {
56167            <V as VisitMut>::visit_mut_class_method(&mut self.visitor, node)
56168        } else {
56169        }
56170    }
56171
56172    #[inline]
56173    fn visit_mut_class_prop(&mut self, node: &mut ClassProp) {
56174        if self.enabled {
56175            <V as VisitMut>::visit_mut_class_prop(&mut self.visitor, node)
56176        } else {
56177        }
56178    }
56179
56180    #[inline]
56181    fn visit_mut_computed_prop_name(&mut self, node: &mut ComputedPropName) {
56182        if self.enabled {
56183            <V as VisitMut>::visit_mut_computed_prop_name(&mut self.visitor, node)
56184        } else {
56185        }
56186    }
56187
56188    #[inline]
56189    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr) {
56190        if self.enabled {
56191            <V as VisitMut>::visit_mut_cond_expr(&mut self.visitor, node)
56192        } else {
56193        }
56194    }
56195
56196    #[inline]
56197    fn visit_mut_constructor(&mut self, node: &mut Constructor) {
56198        if self.enabled {
56199            <V as VisitMut>::visit_mut_constructor(&mut self.visitor, node)
56200        } else {
56201        }
56202    }
56203
56204    #[inline]
56205    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt) {
56206        if self.enabled {
56207            <V as VisitMut>::visit_mut_continue_stmt(&mut self.visitor, node)
56208        } else {
56209        }
56210    }
56211
56212    #[inline]
56213    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt) {
56214        if self.enabled {
56215            <V as VisitMut>::visit_mut_debugger_stmt(&mut self.visitor, node)
56216        } else {
56217        }
56218    }
56219
56220    #[inline]
56221    fn visit_mut_decl(&mut self, node: &mut Decl) {
56222        if self.enabled {
56223            <V as VisitMut>::visit_mut_decl(&mut self.visitor, node)
56224        } else {
56225        }
56226    }
56227
56228    #[inline]
56229    fn visit_mut_decorator(&mut self, node: &mut Decorator) {
56230        if self.enabled {
56231            <V as VisitMut>::visit_mut_decorator(&mut self.visitor, node)
56232        } else {
56233        }
56234    }
56235
56236    #[inline]
56237    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>) {
56238        if self.enabled {
56239            <V as VisitMut>::visit_mut_decorators(&mut self.visitor, node)
56240        } else {
56241        }
56242    }
56243
56244    #[inline]
56245    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl) {
56246        if self.enabled {
56247            <V as VisitMut>::visit_mut_default_decl(&mut self.visitor, node)
56248        } else {
56249        }
56250    }
56251
56252    #[inline]
56253    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt) {
56254        if self.enabled {
56255            <V as VisitMut>::visit_mut_do_while_stmt(&mut self.visitor, node)
56256        } else {
56257        }
56258    }
56259
56260    #[inline]
56261    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt) {
56262        if self.enabled {
56263            <V as VisitMut>::visit_mut_empty_stmt(&mut self.visitor, node)
56264        } else {
56265        }
56266    }
56267
56268    #[inline]
56269    fn visit_mut_export_all(&mut self, node: &mut ExportAll) {
56270        if self.enabled {
56271            <V as VisitMut>::visit_mut_export_all(&mut self.visitor, node)
56272        } else {
56273        }
56274    }
56275
56276    #[inline]
56277    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl) {
56278        if self.enabled {
56279            <V as VisitMut>::visit_mut_export_decl(&mut self.visitor, node)
56280        } else {
56281        }
56282    }
56283
56284    #[inline]
56285    fn visit_mut_export_default_decl(&mut self, node: &mut ExportDefaultDecl) {
56286        if self.enabled {
56287            <V as VisitMut>::visit_mut_export_default_decl(&mut self.visitor, node)
56288        } else {
56289        }
56290    }
56291
56292    #[inline]
56293    fn visit_mut_export_default_expr(&mut self, node: &mut ExportDefaultExpr) {
56294        if self.enabled {
56295            <V as VisitMut>::visit_mut_export_default_expr(&mut self.visitor, node)
56296        } else {
56297        }
56298    }
56299
56300    #[inline]
56301    fn visit_mut_export_default_specifier(&mut self, node: &mut ExportDefaultSpecifier) {
56302        if self.enabled {
56303            <V as VisitMut>::visit_mut_export_default_specifier(&mut self.visitor, node)
56304        } else {
56305        }
56306    }
56307
56308    #[inline]
56309    fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
56310        if self.enabled {
56311            <V as VisitMut>::visit_mut_export_named_specifier(&mut self.visitor, node)
56312        } else {
56313        }
56314    }
56315
56316    #[inline]
56317    fn visit_mut_export_namespace_specifier(&mut self, node: &mut ExportNamespaceSpecifier) {
56318        if self.enabled {
56319            <V as VisitMut>::visit_mut_export_namespace_specifier(&mut self.visitor, node)
56320        } else {
56321        }
56322    }
56323
56324    #[inline]
56325    fn visit_mut_export_specifier(&mut self, node: &mut ExportSpecifier) {
56326        if self.enabled {
56327            <V as VisitMut>::visit_mut_export_specifier(&mut self.visitor, node)
56328        } else {
56329        }
56330    }
56331
56332    #[inline]
56333    fn visit_mut_export_specifiers(&mut self, node: &mut Vec<ExportSpecifier>) {
56334        if self.enabled {
56335            <V as VisitMut>::visit_mut_export_specifiers(&mut self.visitor, node)
56336        } else {
56337        }
56338    }
56339
56340    #[inline]
56341    fn visit_mut_expr(&mut self, node: &mut Expr) {
56342        if self.enabled {
56343            <V as VisitMut>::visit_mut_expr(&mut self.visitor, node)
56344        } else {
56345        }
56346    }
56347
56348    #[inline]
56349    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread) {
56350        if self.enabled {
56351            <V as VisitMut>::visit_mut_expr_or_spread(&mut self.visitor, node)
56352        } else {
56353        }
56354    }
56355
56356    #[inline]
56357    fn visit_mut_expr_or_spreads(&mut self, node: &mut Vec<ExprOrSpread>) {
56358        if self.enabled {
56359            <V as VisitMut>::visit_mut_expr_or_spreads(&mut self.visitor, node)
56360        } else {
56361        }
56362    }
56363
56364    #[inline]
56365    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt) {
56366        if self.enabled {
56367            <V as VisitMut>::visit_mut_expr_stmt(&mut self.visitor, node)
56368        } else {
56369        }
56370    }
56371
56372    #[inline]
56373    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>) {
56374        if self.enabled {
56375            <V as VisitMut>::visit_mut_exprs(&mut self.visitor, node)
56376        } else {
56377        }
56378    }
56379
56380    #[inline]
56381    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl) {
56382        if self.enabled {
56383            <V as VisitMut>::visit_mut_fn_decl(&mut self.visitor, node)
56384        } else {
56385        }
56386    }
56387
56388    #[inline]
56389    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr) {
56390        if self.enabled {
56391            <V as VisitMut>::visit_mut_fn_expr(&mut self.visitor, node)
56392        } else {
56393        }
56394    }
56395
56396    #[inline]
56397    fn visit_mut_for_head(&mut self, node: &mut ForHead) {
56398        if self.enabled {
56399            <V as VisitMut>::visit_mut_for_head(&mut self.visitor, node)
56400        } else {
56401        }
56402    }
56403
56404    #[inline]
56405    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt) {
56406        if self.enabled {
56407            <V as VisitMut>::visit_mut_for_in_stmt(&mut self.visitor, node)
56408        } else {
56409        }
56410    }
56411
56412    #[inline]
56413    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt) {
56414        if self.enabled {
56415            <V as VisitMut>::visit_mut_for_of_stmt(&mut self.visitor, node)
56416        } else {
56417        }
56418    }
56419
56420    #[inline]
56421    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt) {
56422        if self.enabled {
56423            <V as VisitMut>::visit_mut_for_stmt(&mut self.visitor, node)
56424        } else {
56425        }
56426    }
56427
56428    #[inline]
56429    fn visit_mut_function(&mut self, node: &mut Function) {
56430        if self.enabled {
56431            <V as VisitMut>::visit_mut_function(&mut self.visitor, node)
56432        } else {
56433        }
56434    }
56435
56436    #[inline]
56437    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp) {
56438        if self.enabled {
56439            <V as VisitMut>::visit_mut_getter_prop(&mut self.visitor, node)
56440        } else {
56441        }
56442    }
56443
56444    #[inline]
56445    fn visit_mut_ident(&mut self, node: &mut Ident) {
56446        if self.enabled {
56447            <V as VisitMut>::visit_mut_ident(&mut self.visitor, node)
56448        } else {
56449        }
56450    }
56451
56452    #[inline]
56453    fn visit_mut_ident_name(&mut self, node: &mut IdentName) {
56454        if self.enabled {
56455            <V as VisitMut>::visit_mut_ident_name(&mut self.visitor, node)
56456        } else {
56457        }
56458    }
56459
56460    #[inline]
56461    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt) {
56462        if self.enabled {
56463            <V as VisitMut>::visit_mut_if_stmt(&mut self.visitor, node)
56464        } else {
56465        }
56466    }
56467
56468    #[inline]
56469    fn visit_mut_import(&mut self, node: &mut Import) {
56470        if self.enabled {
56471            <V as VisitMut>::visit_mut_import(&mut self.visitor, node)
56472        } else {
56473        }
56474    }
56475
56476    #[inline]
56477    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) {
56478        if self.enabled {
56479            <V as VisitMut>::visit_mut_import_decl(&mut self.visitor, node)
56480        } else {
56481        }
56482    }
56483
56484    #[inline]
56485    fn visit_mut_import_default_specifier(&mut self, node: &mut ImportDefaultSpecifier) {
56486        if self.enabled {
56487            <V as VisitMut>::visit_mut_import_default_specifier(&mut self.visitor, node)
56488        } else {
56489        }
56490    }
56491
56492    #[inline]
56493    fn visit_mut_import_named_specifier(&mut self, node: &mut ImportNamedSpecifier) {
56494        if self.enabled {
56495            <V as VisitMut>::visit_mut_import_named_specifier(&mut self.visitor, node)
56496        } else {
56497        }
56498    }
56499
56500    #[inline]
56501    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase) {
56502        if self.enabled {
56503            <V as VisitMut>::visit_mut_import_phase(&mut self.visitor, node)
56504        } else {
56505        }
56506    }
56507
56508    #[inline]
56509    fn visit_mut_import_specifier(&mut self, node: &mut ImportSpecifier) {
56510        if self.enabled {
56511            <V as VisitMut>::visit_mut_import_specifier(&mut self.visitor, node)
56512        } else {
56513        }
56514    }
56515
56516    #[inline]
56517    fn visit_mut_import_specifiers(&mut self, node: &mut Vec<ImportSpecifier>) {
56518        if self.enabled {
56519            <V as VisitMut>::visit_mut_import_specifiers(&mut self.visitor, node)
56520        } else {
56521        }
56522    }
56523
56524    #[inline]
56525    fn visit_mut_import_star_as_specifier(&mut self, node: &mut ImportStarAsSpecifier) {
56526        if self.enabled {
56527            <V as VisitMut>::visit_mut_import_star_as_specifier(&mut self.visitor, node)
56528        } else {
56529        }
56530    }
56531
56532    #[inline]
56533    fn visit_mut_import_with(&mut self, node: &mut ImportWith) {
56534        if self.enabled {
56535            <V as VisitMut>::visit_mut_import_with(&mut self.visitor, node)
56536        } else {
56537        }
56538    }
56539
56540    #[inline]
56541    fn visit_mut_import_with_item(&mut self, node: &mut ImportWithItem) {
56542        if self.enabled {
56543            <V as VisitMut>::visit_mut_import_with_item(&mut self.visitor, node)
56544        } else {
56545        }
56546    }
56547
56548    #[inline]
56549    fn visit_mut_import_with_items(&mut self, node: &mut Vec<ImportWithItem>) {
56550        if self.enabled {
56551            <V as VisitMut>::visit_mut_import_with_items(&mut self.visitor, node)
56552        } else {
56553        }
56554    }
56555
56556    #[inline]
56557    fn visit_mut_invalid(&mut self, node: &mut Invalid) {
56558        if self.enabled {
56559            <V as VisitMut>::visit_mut_invalid(&mut self.visitor, node)
56560        } else {
56561        }
56562    }
56563
56564    #[inline]
56565    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr) {
56566        if self.enabled {
56567            <V as VisitMut>::visit_mut_jsx_attr(&mut self.visitor, node)
56568        } else {
56569        }
56570    }
56571
56572    #[inline]
56573    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName) {
56574        if self.enabled {
56575            <V as VisitMut>::visit_mut_jsx_attr_name(&mut self.visitor, node)
56576        } else {
56577        }
56578    }
56579
56580    #[inline]
56581    fn visit_mut_jsx_attr_or_spread(&mut self, node: &mut JSXAttrOrSpread) {
56582        if self.enabled {
56583            <V as VisitMut>::visit_mut_jsx_attr_or_spread(&mut self.visitor, node)
56584        } else {
56585        }
56586    }
56587
56588    #[inline]
56589    fn visit_mut_jsx_attr_or_spreads(&mut self, node: &mut Vec<JSXAttrOrSpread>) {
56590        if self.enabled {
56591            <V as VisitMut>::visit_mut_jsx_attr_or_spreads(&mut self.visitor, node)
56592        } else {
56593        }
56594    }
56595
56596    #[inline]
56597    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue) {
56598        if self.enabled {
56599            <V as VisitMut>::visit_mut_jsx_attr_value(&mut self.visitor, node)
56600        } else {
56601        }
56602    }
56603
56604    #[inline]
56605    fn visit_mut_jsx_closing_element(&mut self, node: &mut JSXClosingElement) {
56606        if self.enabled {
56607            <V as VisitMut>::visit_mut_jsx_closing_element(&mut self.visitor, node)
56608        } else {
56609        }
56610    }
56611
56612    #[inline]
56613    fn visit_mut_jsx_closing_fragment(&mut self, node: &mut JSXClosingFragment) {
56614        if self.enabled {
56615            <V as VisitMut>::visit_mut_jsx_closing_fragment(&mut self.visitor, node)
56616        } else {
56617        }
56618    }
56619
56620    #[inline]
56621    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement) {
56622        if self.enabled {
56623            <V as VisitMut>::visit_mut_jsx_element(&mut self.visitor, node)
56624        } else {
56625        }
56626    }
56627
56628    #[inline]
56629    fn visit_mut_jsx_element_child(&mut self, node: &mut JSXElementChild) {
56630        if self.enabled {
56631            <V as VisitMut>::visit_mut_jsx_element_child(&mut self.visitor, node)
56632        } else {
56633        }
56634    }
56635
56636    #[inline]
56637    fn visit_mut_jsx_element_childs(&mut self, node: &mut Vec<JSXElementChild>) {
56638        if self.enabled {
56639            <V as VisitMut>::visit_mut_jsx_element_childs(&mut self.visitor, node)
56640        } else {
56641        }
56642    }
56643
56644    #[inline]
56645    fn visit_mut_jsx_element_name(&mut self, node: &mut JSXElementName) {
56646        if self.enabled {
56647            <V as VisitMut>::visit_mut_jsx_element_name(&mut self.visitor, node)
56648        } else {
56649        }
56650    }
56651
56652    #[inline]
56653    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr) {
56654        if self.enabled {
56655            <V as VisitMut>::visit_mut_jsx_empty_expr(&mut self.visitor, node)
56656        } else {
56657        }
56658    }
56659
56660    #[inline]
56661    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr) {
56662        if self.enabled {
56663            <V as VisitMut>::visit_mut_jsx_expr(&mut self.visitor, node)
56664        } else {
56665        }
56666    }
56667
56668    #[inline]
56669    fn visit_mut_jsx_expr_container(&mut self, node: &mut JSXExprContainer) {
56670        if self.enabled {
56671            <V as VisitMut>::visit_mut_jsx_expr_container(&mut self.visitor, node)
56672        } else {
56673        }
56674    }
56675
56676    #[inline]
56677    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment) {
56678        if self.enabled {
56679            <V as VisitMut>::visit_mut_jsx_fragment(&mut self.visitor, node)
56680        } else {
56681        }
56682    }
56683
56684    #[inline]
56685    fn visit_mut_jsx_member_expr(&mut self, node: &mut JSXMemberExpr) {
56686        if self.enabled {
56687            <V as VisitMut>::visit_mut_jsx_member_expr(&mut self.visitor, node)
56688        } else {
56689        }
56690    }
56691
56692    #[inline]
56693    fn visit_mut_jsx_namespaced_name(&mut self, node: &mut JSXNamespacedName) {
56694        if self.enabled {
56695            <V as VisitMut>::visit_mut_jsx_namespaced_name(&mut self.visitor, node)
56696        } else {
56697        }
56698    }
56699
56700    #[inline]
56701    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject) {
56702        if self.enabled {
56703            <V as VisitMut>::visit_mut_jsx_object(&mut self.visitor, node)
56704        } else {
56705        }
56706    }
56707
56708    #[inline]
56709    fn visit_mut_jsx_opening_element(&mut self, node: &mut JSXOpeningElement) {
56710        if self.enabled {
56711            <V as VisitMut>::visit_mut_jsx_opening_element(&mut self.visitor, node)
56712        } else {
56713        }
56714    }
56715
56716    #[inline]
56717    fn visit_mut_jsx_opening_fragment(&mut self, node: &mut JSXOpeningFragment) {
56718        if self.enabled {
56719            <V as VisitMut>::visit_mut_jsx_opening_fragment(&mut self.visitor, node)
56720        } else {
56721        }
56722    }
56723
56724    #[inline]
56725    fn visit_mut_jsx_spread_child(&mut self, node: &mut JSXSpreadChild) {
56726        if self.enabled {
56727            <V as VisitMut>::visit_mut_jsx_spread_child(&mut self.visitor, node)
56728        } else {
56729        }
56730    }
56731
56732    #[inline]
56733    fn visit_mut_jsx_text(&mut self, node: &mut JSXText) {
56734        if self.enabled {
56735            <V as VisitMut>::visit_mut_jsx_text(&mut self.visitor, node)
56736        } else {
56737        }
56738    }
56739
56740    #[inline]
56741    fn visit_mut_key(&mut self, node: &mut Key) {
56742        if self.enabled {
56743            <V as VisitMut>::visit_mut_key(&mut self.visitor, node)
56744        } else {
56745        }
56746    }
56747
56748    #[inline]
56749    fn visit_mut_key_value_pat_prop(&mut self, node: &mut KeyValuePatProp) {
56750        if self.enabled {
56751            <V as VisitMut>::visit_mut_key_value_pat_prop(&mut self.visitor, node)
56752        } else {
56753        }
56754    }
56755
56756    #[inline]
56757    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp) {
56758        if self.enabled {
56759            <V as VisitMut>::visit_mut_key_value_prop(&mut self.visitor, node)
56760        } else {
56761        }
56762    }
56763
56764    #[inline]
56765    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt) {
56766        if self.enabled {
56767            <V as VisitMut>::visit_mut_labeled_stmt(&mut self.visitor, node)
56768        } else {
56769        }
56770    }
56771
56772    #[inline]
56773    fn visit_mut_lit(&mut self, node: &mut Lit) {
56774        if self.enabled {
56775            <V as VisitMut>::visit_mut_lit(&mut self.visitor, node)
56776        } else {
56777        }
56778    }
56779
56780    #[inline]
56781    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr) {
56782        if self.enabled {
56783            <V as VisitMut>::visit_mut_member_expr(&mut self.visitor, node)
56784        } else {
56785        }
56786    }
56787
56788    #[inline]
56789    fn visit_mut_member_prop(&mut self, node: &mut MemberProp) {
56790        if self.enabled {
56791            <V as VisitMut>::visit_mut_member_prop(&mut self.visitor, node)
56792        } else {
56793        }
56794    }
56795
56796    #[inline]
56797    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr) {
56798        if self.enabled {
56799            <V as VisitMut>::visit_mut_meta_prop_expr(&mut self.visitor, node)
56800        } else {
56801        }
56802    }
56803
56804    #[inline]
56805    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind) {
56806        if self.enabled {
56807            <V as VisitMut>::visit_mut_meta_prop_kind(&mut self.visitor, node)
56808        } else {
56809        }
56810    }
56811
56812    #[inline]
56813    fn visit_mut_method_kind(&mut self, node: &mut MethodKind) {
56814        if self.enabled {
56815            <V as VisitMut>::visit_mut_method_kind(&mut self.visitor, node)
56816        } else {
56817        }
56818    }
56819
56820    #[inline]
56821    fn visit_mut_method_prop(&mut self, node: &mut MethodProp) {
56822        if self.enabled {
56823            <V as VisitMut>::visit_mut_method_prop(&mut self.visitor, node)
56824        } else {
56825        }
56826    }
56827
56828    #[inline]
56829    fn visit_mut_module(&mut self, node: &mut Module) {
56830        if self.enabled {
56831            <V as VisitMut>::visit_mut_module(&mut self.visitor, node)
56832        } else {
56833        }
56834    }
56835
56836    #[inline]
56837    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl) {
56838        if self.enabled {
56839            <V as VisitMut>::visit_mut_module_decl(&mut self.visitor, node)
56840        } else {
56841        }
56842    }
56843
56844    #[inline]
56845    fn visit_mut_module_export_name(&mut self, node: &mut ModuleExportName) {
56846        if self.enabled {
56847            <V as VisitMut>::visit_mut_module_export_name(&mut self.visitor, node)
56848        } else {
56849        }
56850    }
56851
56852    #[inline]
56853    fn visit_mut_module_item(&mut self, node: &mut ModuleItem) {
56854        if self.enabled {
56855            <V as VisitMut>::visit_mut_module_item(&mut self.visitor, node)
56856        } else {
56857        }
56858    }
56859
56860    #[inline]
56861    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>) {
56862        if self.enabled {
56863            <V as VisitMut>::visit_mut_module_items(&mut self.visitor, node)
56864        } else {
56865        }
56866    }
56867
56868    #[inline]
56869    fn visit_mut_named_export(&mut self, node: &mut NamedExport) {
56870        if self.enabled {
56871            <V as VisitMut>::visit_mut_named_export(&mut self.visitor, node)
56872        } else {
56873        }
56874    }
56875
56876    #[inline]
56877    fn visit_mut_new_expr(&mut self, node: &mut NewExpr) {
56878        if self.enabled {
56879            <V as VisitMut>::visit_mut_new_expr(&mut self.visitor, node)
56880        } else {
56881        }
56882    }
56883
56884    #[inline]
56885    fn visit_mut_null(&mut self, node: &mut Null) {
56886        if self.enabled {
56887            <V as VisitMut>::visit_mut_null(&mut self.visitor, node)
56888        } else {
56889        }
56890    }
56891
56892    #[inline]
56893    fn visit_mut_number(&mut self, node: &mut Number) {
56894        if self.enabled {
56895            <V as VisitMut>::visit_mut_number(&mut self.visitor, node)
56896        } else {
56897        }
56898    }
56899
56900    #[inline]
56901    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit) {
56902        if self.enabled {
56903            <V as VisitMut>::visit_mut_object_lit(&mut self.visitor, node)
56904        } else {
56905        }
56906    }
56907
56908    #[inline]
56909    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat) {
56910        if self.enabled {
56911            <V as VisitMut>::visit_mut_object_pat(&mut self.visitor, node)
56912        } else {
56913        }
56914    }
56915
56916    #[inline]
56917    fn visit_mut_object_pat_prop(&mut self, node: &mut ObjectPatProp) {
56918        if self.enabled {
56919            <V as VisitMut>::visit_mut_object_pat_prop(&mut self.visitor, node)
56920        } else {
56921        }
56922    }
56923
56924    #[inline]
56925    fn visit_mut_object_pat_props(&mut self, node: &mut Vec<ObjectPatProp>) {
56926        if self.enabled {
56927            <V as VisitMut>::visit_mut_object_pat_props(&mut self.visitor, node)
56928        } else {
56929        }
56930    }
56931
56932    #[inline]
56933    fn visit_mut_opt_accessibility(&mut self, node: &mut Option<Accessibility>) {
56934        if self.enabled {
56935            <V as VisitMut>::visit_mut_opt_accessibility(&mut self.visitor, node)
56936        } else {
56937        }
56938    }
56939
56940    #[inline]
56941    fn visit_mut_opt_atom(&mut self, node: &mut Option<swc_atoms::Atom>) {
56942        if self.enabled {
56943            <V as VisitMut>::visit_mut_opt_atom(&mut self.visitor, node)
56944        } else {
56945        }
56946    }
56947
56948    #[inline]
56949    fn visit_mut_opt_block_stmt(&mut self, node: &mut Option<BlockStmt>) {
56950        if self.enabled {
56951            <V as VisitMut>::visit_mut_opt_block_stmt(&mut self.visitor, node)
56952        } else {
56953        }
56954    }
56955
56956    #[inline]
56957    fn visit_mut_opt_call(&mut self, node: &mut OptCall) {
56958        if self.enabled {
56959            <V as VisitMut>::visit_mut_opt_call(&mut self.visitor, node)
56960        } else {
56961        }
56962    }
56963
56964    #[inline]
56965    fn visit_mut_opt_catch_clause(&mut self, node: &mut Option<CatchClause>) {
56966        if self.enabled {
56967            <V as VisitMut>::visit_mut_opt_catch_clause(&mut self.visitor, node)
56968        } else {
56969        }
56970    }
56971
56972    #[inline]
56973    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase) {
56974        if self.enabled {
56975            <V as VisitMut>::visit_mut_opt_chain_base(&mut self.visitor, node)
56976        } else {
56977        }
56978    }
56979
56980    #[inline]
56981    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr) {
56982        if self.enabled {
56983            <V as VisitMut>::visit_mut_opt_chain_expr(&mut self.visitor, node)
56984        } else {
56985        }
56986    }
56987
56988    #[inline]
56989    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>) {
56990        if self.enabled {
56991            <V as VisitMut>::visit_mut_opt_expr(&mut self.visitor, node)
56992        } else {
56993        }
56994    }
56995
56996    #[inline]
56997    fn visit_mut_opt_expr_or_spread(&mut self, node: &mut Option<ExprOrSpread>) {
56998        if self.enabled {
56999            <V as VisitMut>::visit_mut_opt_expr_or_spread(&mut self.visitor, node)
57000        } else {
57001        }
57002    }
57003
57004    #[inline]
57005    fn visit_mut_opt_expr_or_spreads(&mut self, node: &mut Option<Vec<ExprOrSpread>>) {
57006        if self.enabled {
57007            <V as VisitMut>::visit_mut_opt_expr_or_spreads(&mut self.visitor, node)
57008        } else {
57009        }
57010    }
57011
57012    #[inline]
57013    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>) {
57014        if self.enabled {
57015            <V as VisitMut>::visit_mut_opt_ident(&mut self.visitor, node)
57016        } else {
57017        }
57018    }
57019
57020    #[inline]
57021    fn visit_mut_opt_jsx_attr_value(&mut self, node: &mut Option<JSXAttrValue>) {
57022        if self.enabled {
57023            <V as VisitMut>::visit_mut_opt_jsx_attr_value(&mut self.visitor, node)
57024        } else {
57025        }
57026    }
57027
57028    #[inline]
57029    fn visit_mut_opt_jsx_closing_element(&mut self, node: &mut Option<JSXClosingElement>) {
57030        if self.enabled {
57031            <V as VisitMut>::visit_mut_opt_jsx_closing_element(&mut self.visitor, node)
57032        } else {
57033        }
57034    }
57035
57036    #[inline]
57037    fn visit_mut_opt_module_export_name(&mut self, node: &mut Option<ModuleExportName>) {
57038        if self.enabled {
57039            <V as VisitMut>::visit_mut_opt_module_export_name(&mut self.visitor, node)
57040        } else {
57041        }
57042    }
57043
57044    #[inline]
57045    fn visit_mut_opt_object_lit(&mut self, node: &mut Option<Box<ObjectLit>>) {
57046        if self.enabled {
57047            <V as VisitMut>::visit_mut_opt_object_lit(&mut self.visitor, node)
57048        } else {
57049        }
57050    }
57051
57052    #[inline]
57053    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>) {
57054        if self.enabled {
57055            <V as VisitMut>::visit_mut_opt_pat(&mut self.visitor, node)
57056        } else {
57057        }
57058    }
57059
57060    #[inline]
57061    fn visit_mut_opt_span(&mut self, node: &mut Option<swc_common::Span>) {
57062        if self.enabled {
57063            <V as VisitMut>::visit_mut_opt_span(&mut self.visitor, node)
57064        } else {
57065        }
57066    }
57067
57068    #[inline]
57069    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>) {
57070        if self.enabled {
57071            <V as VisitMut>::visit_mut_opt_stmt(&mut self.visitor, node)
57072        } else {
57073        }
57074    }
57075
57076    #[inline]
57077    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>) {
57078        if self.enabled {
57079            <V as VisitMut>::visit_mut_opt_str(&mut self.visitor, node)
57080        } else {
57081        }
57082    }
57083
57084    #[inline]
57085    fn visit_mut_opt_true_plus_minus(&mut self, node: &mut Option<TruePlusMinus>) {
57086        if self.enabled {
57087            <V as VisitMut>::visit_mut_opt_true_plus_minus(&mut self.visitor, node)
57088        } else {
57089        }
57090    }
57091
57092    #[inline]
57093    fn visit_mut_opt_ts_entity_name(&mut self, node: &mut Option<TsEntityName>) {
57094        if self.enabled {
57095            <V as VisitMut>::visit_mut_opt_ts_entity_name(&mut self.visitor, node)
57096        } else {
57097        }
57098    }
57099
57100    #[inline]
57101    fn visit_mut_opt_ts_namespace_body(&mut self, node: &mut Option<TsNamespaceBody>) {
57102        if self.enabled {
57103            <V as VisitMut>::visit_mut_opt_ts_namespace_body(&mut self.visitor, node)
57104        } else {
57105        }
57106    }
57107
57108    #[inline]
57109    fn visit_mut_opt_ts_type(&mut self, node: &mut Option<Box<TsType>>) {
57110        if self.enabled {
57111            <V as VisitMut>::visit_mut_opt_ts_type(&mut self.visitor, node)
57112        } else {
57113        }
57114    }
57115
57116    #[inline]
57117    fn visit_mut_opt_ts_type_ann(&mut self, node: &mut Option<Box<TsTypeAnn>>) {
57118        if self.enabled {
57119            <V as VisitMut>::visit_mut_opt_ts_type_ann(&mut self.visitor, node)
57120        } else {
57121        }
57122    }
57123
57124    #[inline]
57125    fn visit_mut_opt_ts_type_param_decl(&mut self, node: &mut Option<Box<TsTypeParamDecl>>) {
57126        if self.enabled {
57127            <V as VisitMut>::visit_mut_opt_ts_type_param_decl(&mut self.visitor, node)
57128        } else {
57129        }
57130    }
57131
57132    #[inline]
57133    fn visit_mut_opt_ts_type_param_instantiation(
57134        &mut self,
57135        node: &mut Option<Box<TsTypeParamInstantiation>>,
57136    ) {
57137        if self.enabled {
57138            <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(&mut self.visitor, node)
57139        } else {
57140        }
57141    }
57142
57143    #[inline]
57144    fn visit_mut_opt_var_decl_or_expr(&mut self, node: &mut Option<VarDeclOrExpr>) {
57145        if self.enabled {
57146            <V as VisitMut>::visit_mut_opt_var_decl_or_expr(&mut self.visitor, node)
57147        } else {
57148        }
57149    }
57150
57151    #[inline]
57152    fn visit_mut_opt_vec_expr_or_spreads(&mut self, node: &mut Vec<Option<ExprOrSpread>>) {
57153        if self.enabled {
57154            <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(&mut self.visitor, node)
57155        } else {
57156        }
57157    }
57158
57159    #[inline]
57160    fn visit_mut_opt_vec_pats(&mut self, node: &mut Vec<Option<Pat>>) {
57161        if self.enabled {
57162            <V as VisitMut>::visit_mut_opt_vec_pats(&mut self.visitor, node)
57163        } else {
57164        }
57165    }
57166
57167    #[inline]
57168    fn visit_mut_param(&mut self, node: &mut Param) {
57169        if self.enabled {
57170            <V as VisitMut>::visit_mut_param(&mut self.visitor, node)
57171        } else {
57172        }
57173    }
57174
57175    #[inline]
57176    fn visit_mut_param_or_ts_param_prop(&mut self, node: &mut ParamOrTsParamProp) {
57177        if self.enabled {
57178            <V as VisitMut>::visit_mut_param_or_ts_param_prop(&mut self.visitor, node)
57179        } else {
57180        }
57181    }
57182
57183    #[inline]
57184    fn visit_mut_param_or_ts_param_props(&mut self, node: &mut Vec<ParamOrTsParamProp>) {
57185        if self.enabled {
57186            <V as VisitMut>::visit_mut_param_or_ts_param_props(&mut self.visitor, node)
57187        } else {
57188        }
57189    }
57190
57191    #[inline]
57192    fn visit_mut_params(&mut self, node: &mut Vec<Param>) {
57193        if self.enabled {
57194            <V as VisitMut>::visit_mut_params(&mut self.visitor, node)
57195        } else {
57196        }
57197    }
57198
57199    #[inline]
57200    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr) {
57201        if self.enabled {
57202            <V as VisitMut>::visit_mut_paren_expr(&mut self.visitor, node)
57203        } else {
57204        }
57205    }
57206
57207    #[inline]
57208    fn visit_mut_pat(&mut self, node: &mut Pat) {
57209        if self.enabled {
57210            <V as VisitMut>::visit_mut_pat(&mut self.visitor, node)
57211        } else {
57212        }
57213    }
57214
57215    #[inline]
57216    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>) {
57217        if self.enabled {
57218            <V as VisitMut>::visit_mut_pats(&mut self.visitor, node)
57219        } else {
57220        }
57221    }
57222
57223    #[inline]
57224    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod) {
57225        if self.enabled {
57226            <V as VisitMut>::visit_mut_private_method(&mut self.visitor, node)
57227        } else {
57228        }
57229    }
57230
57231    #[inline]
57232    fn visit_mut_private_name(&mut self, node: &mut PrivateName) {
57233        if self.enabled {
57234            <V as VisitMut>::visit_mut_private_name(&mut self.visitor, node)
57235        } else {
57236        }
57237    }
57238
57239    #[inline]
57240    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp) {
57241        if self.enabled {
57242            <V as VisitMut>::visit_mut_private_prop(&mut self.visitor, node)
57243        } else {
57244        }
57245    }
57246
57247    #[inline]
57248    fn visit_mut_program(&mut self, node: &mut Program) {
57249        if self.enabled {
57250            <V as VisitMut>::visit_mut_program(&mut self.visitor, node)
57251        } else {
57252        }
57253    }
57254
57255    #[inline]
57256    fn visit_mut_prop(&mut self, node: &mut Prop) {
57257        if self.enabled {
57258            <V as VisitMut>::visit_mut_prop(&mut self.visitor, node)
57259        } else {
57260        }
57261    }
57262
57263    #[inline]
57264    fn visit_mut_prop_name(&mut self, node: &mut PropName) {
57265        if self.enabled {
57266            <V as VisitMut>::visit_mut_prop_name(&mut self.visitor, node)
57267        } else {
57268        }
57269    }
57270
57271    #[inline]
57272    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread) {
57273        if self.enabled {
57274            <V as VisitMut>::visit_mut_prop_or_spread(&mut self.visitor, node)
57275        } else {
57276        }
57277    }
57278
57279    #[inline]
57280    fn visit_mut_prop_or_spreads(&mut self, node: &mut Vec<PropOrSpread>) {
57281        if self.enabled {
57282            <V as VisitMut>::visit_mut_prop_or_spreads(&mut self.visitor, node)
57283        } else {
57284        }
57285    }
57286
57287    #[inline]
57288    fn visit_mut_regex(&mut self, node: &mut Regex) {
57289        if self.enabled {
57290            <V as VisitMut>::visit_mut_regex(&mut self.visitor, node)
57291        } else {
57292        }
57293    }
57294
57295    #[inline]
57296    fn visit_mut_rest_pat(&mut self, node: &mut RestPat) {
57297        if self.enabled {
57298            <V as VisitMut>::visit_mut_rest_pat(&mut self.visitor, node)
57299        } else {
57300        }
57301    }
57302
57303    #[inline]
57304    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt) {
57305        if self.enabled {
57306            <V as VisitMut>::visit_mut_return_stmt(&mut self.visitor, node)
57307        } else {
57308        }
57309    }
57310
57311    #[inline]
57312    fn visit_mut_script(&mut self, node: &mut Script) {
57313        if self.enabled {
57314            <V as VisitMut>::visit_mut_script(&mut self.visitor, node)
57315        } else {
57316        }
57317    }
57318
57319    #[inline]
57320    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr) {
57321        if self.enabled {
57322            <V as VisitMut>::visit_mut_seq_expr(&mut self.visitor, node)
57323        } else {
57324        }
57325    }
57326
57327    #[inline]
57328    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp) {
57329        if self.enabled {
57330            <V as VisitMut>::visit_mut_setter_prop(&mut self.visitor, node)
57331        } else {
57332        }
57333    }
57334
57335    #[inline]
57336    fn visit_mut_simple_assign_target(&mut self, node: &mut SimpleAssignTarget) {
57337        if self.enabled {
57338            <V as VisitMut>::visit_mut_simple_assign_target(&mut self.visitor, node)
57339        } else {
57340        }
57341    }
57342
57343    #[inline]
57344    fn visit_mut_span(&mut self, node: &mut swc_common::Span) {
57345        if self.enabled {
57346            <V as VisitMut>::visit_mut_span(&mut self.visitor, node)
57347        } else {
57348        }
57349    }
57350
57351    #[inline]
57352    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement) {
57353        if self.enabled {
57354            <V as VisitMut>::visit_mut_spread_element(&mut self.visitor, node)
57355        } else {
57356        }
57357    }
57358
57359    #[inline]
57360    fn visit_mut_static_block(&mut self, node: &mut StaticBlock) {
57361        if self.enabled {
57362            <V as VisitMut>::visit_mut_static_block(&mut self.visitor, node)
57363        } else {
57364        }
57365    }
57366
57367    #[inline]
57368    fn visit_mut_stmt(&mut self, node: &mut Stmt) {
57369        if self.enabled {
57370            <V as VisitMut>::visit_mut_stmt(&mut self.visitor, node)
57371        } else {
57372        }
57373    }
57374
57375    #[inline]
57376    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>) {
57377        if self.enabled {
57378            <V as VisitMut>::visit_mut_stmts(&mut self.visitor, node)
57379        } else {
57380        }
57381    }
57382
57383    #[inline]
57384    fn visit_mut_str(&mut self, node: &mut Str) {
57385        if self.enabled {
57386            <V as VisitMut>::visit_mut_str(&mut self.visitor, node)
57387        } else {
57388        }
57389    }
57390
57391    #[inline]
57392    fn visit_mut_super(&mut self, node: &mut Super) {
57393        if self.enabled {
57394            <V as VisitMut>::visit_mut_super(&mut self.visitor, node)
57395        } else {
57396        }
57397    }
57398
57399    #[inline]
57400    fn visit_mut_super_prop(&mut self, node: &mut SuperProp) {
57401        if self.enabled {
57402            <V as VisitMut>::visit_mut_super_prop(&mut self.visitor, node)
57403        } else {
57404        }
57405    }
57406
57407    #[inline]
57408    fn visit_mut_super_prop_expr(&mut self, node: &mut SuperPropExpr) {
57409        if self.enabled {
57410            <V as VisitMut>::visit_mut_super_prop_expr(&mut self.visitor, node)
57411        } else {
57412        }
57413    }
57414
57415    #[inline]
57416    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase) {
57417        if self.enabled {
57418            <V as VisitMut>::visit_mut_switch_case(&mut self.visitor, node)
57419        } else {
57420        }
57421    }
57422
57423    #[inline]
57424    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>) {
57425        if self.enabled {
57426            <V as VisitMut>::visit_mut_switch_cases(&mut self.visitor, node)
57427        } else {
57428        }
57429    }
57430
57431    #[inline]
57432    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt) {
57433        if self.enabled {
57434            <V as VisitMut>::visit_mut_switch_stmt(&mut self.visitor, node)
57435        } else {
57436        }
57437    }
57438
57439    #[inline]
57440    fn visit_mut_syntax_context(&mut self, node: &mut swc_common::SyntaxContext) {
57441        if self.enabled {
57442            <V as VisitMut>::visit_mut_syntax_context(&mut self.visitor, node)
57443        } else {
57444        }
57445    }
57446
57447    #[inline]
57448    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl) {
57449        if self.enabled {
57450            <V as VisitMut>::visit_mut_tagged_tpl(&mut self.visitor, node)
57451        } else {
57452        }
57453    }
57454
57455    #[inline]
57456    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr) {
57457        if self.enabled {
57458            <V as VisitMut>::visit_mut_this_expr(&mut self.visitor, node)
57459        } else {
57460        }
57461    }
57462
57463    #[inline]
57464    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt) {
57465        if self.enabled {
57466            <V as VisitMut>::visit_mut_throw_stmt(&mut self.visitor, node)
57467        } else {
57468        }
57469    }
57470
57471    #[inline]
57472    fn visit_mut_tpl(&mut self, node: &mut Tpl) {
57473        if self.enabled {
57474            <V as VisitMut>::visit_mut_tpl(&mut self.visitor, node)
57475        } else {
57476        }
57477    }
57478
57479    #[inline]
57480    fn visit_mut_tpl_element(&mut self, node: &mut TplElement) {
57481        if self.enabled {
57482            <V as VisitMut>::visit_mut_tpl_element(&mut self.visitor, node)
57483        } else {
57484        }
57485    }
57486
57487    #[inline]
57488    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>) {
57489        if self.enabled {
57490            <V as VisitMut>::visit_mut_tpl_elements(&mut self.visitor, node)
57491        } else {
57492        }
57493    }
57494
57495    #[inline]
57496    fn visit_mut_true_plus_minus(&mut self, node: &mut TruePlusMinus) {
57497        if self.enabled {
57498            <V as VisitMut>::visit_mut_true_plus_minus(&mut self.visitor, node)
57499        } else {
57500        }
57501    }
57502
57503    #[inline]
57504    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt) {
57505        if self.enabled {
57506            <V as VisitMut>::visit_mut_try_stmt(&mut self.visitor, node)
57507        } else {
57508        }
57509    }
57510
57511    #[inline]
57512    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType) {
57513        if self.enabled {
57514            <V as VisitMut>::visit_mut_ts_array_type(&mut self.visitor, node)
57515        } else {
57516        }
57517    }
57518
57519    #[inline]
57520    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr) {
57521        if self.enabled {
57522            <V as VisitMut>::visit_mut_ts_as_expr(&mut self.visitor, node)
57523        } else {
57524        }
57525    }
57526
57527    #[inline]
57528    fn visit_mut_ts_call_signature_decl(&mut self, node: &mut TsCallSignatureDecl) {
57529        if self.enabled {
57530            <V as VisitMut>::visit_mut_ts_call_signature_decl(&mut self.visitor, node)
57531        } else {
57532        }
57533    }
57534
57535    #[inline]
57536    fn visit_mut_ts_conditional_type(&mut self, node: &mut TsConditionalType) {
57537        if self.enabled {
57538            <V as VisitMut>::visit_mut_ts_conditional_type(&mut self.visitor, node)
57539        } else {
57540        }
57541    }
57542
57543    #[inline]
57544    fn visit_mut_ts_const_assertion(&mut self, node: &mut TsConstAssertion) {
57545        if self.enabled {
57546            <V as VisitMut>::visit_mut_ts_const_assertion(&mut self.visitor, node)
57547        } else {
57548        }
57549    }
57550
57551    #[inline]
57552    fn visit_mut_ts_construct_signature_decl(&mut self, node: &mut TsConstructSignatureDecl) {
57553        if self.enabled {
57554            <V as VisitMut>::visit_mut_ts_construct_signature_decl(&mut self.visitor, node)
57555        } else {
57556        }
57557    }
57558
57559    #[inline]
57560    fn visit_mut_ts_constructor_type(&mut self, node: &mut TsConstructorType) {
57561        if self.enabled {
57562            <V as VisitMut>::visit_mut_ts_constructor_type(&mut self.visitor, node)
57563        } else {
57564        }
57565    }
57566
57567    #[inline]
57568    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName) {
57569        if self.enabled {
57570            <V as VisitMut>::visit_mut_ts_entity_name(&mut self.visitor, node)
57571        } else {
57572        }
57573    }
57574
57575    #[inline]
57576    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl) {
57577        if self.enabled {
57578            <V as VisitMut>::visit_mut_ts_enum_decl(&mut self.visitor, node)
57579        } else {
57580        }
57581    }
57582
57583    #[inline]
57584    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember) {
57585        if self.enabled {
57586            <V as VisitMut>::visit_mut_ts_enum_member(&mut self.visitor, node)
57587        } else {
57588        }
57589    }
57590
57591    #[inline]
57592    fn visit_mut_ts_enum_member_id(&mut self, node: &mut TsEnumMemberId) {
57593        if self.enabled {
57594            <V as VisitMut>::visit_mut_ts_enum_member_id(&mut self.visitor, node)
57595        } else {
57596        }
57597    }
57598
57599    #[inline]
57600    fn visit_mut_ts_enum_members(&mut self, node: &mut Vec<TsEnumMember>) {
57601        if self.enabled {
57602            <V as VisitMut>::visit_mut_ts_enum_members(&mut self.visitor, node)
57603        } else {
57604        }
57605    }
57606
57607    #[inline]
57608    fn visit_mut_ts_export_assignment(&mut self, node: &mut TsExportAssignment) {
57609        if self.enabled {
57610            <V as VisitMut>::visit_mut_ts_export_assignment(&mut self.visitor, node)
57611        } else {
57612        }
57613    }
57614
57615    #[inline]
57616    fn visit_mut_ts_expr_with_type_args(&mut self, node: &mut TsExprWithTypeArgs) {
57617        if self.enabled {
57618            <V as VisitMut>::visit_mut_ts_expr_with_type_args(&mut self.visitor, node)
57619        } else {
57620        }
57621    }
57622
57623    #[inline]
57624    fn visit_mut_ts_expr_with_type_argss(&mut self, node: &mut Vec<TsExprWithTypeArgs>) {
57625        if self.enabled {
57626            <V as VisitMut>::visit_mut_ts_expr_with_type_argss(&mut self.visitor, node)
57627        } else {
57628        }
57629    }
57630
57631    #[inline]
57632    fn visit_mut_ts_external_module_ref(&mut self, node: &mut TsExternalModuleRef) {
57633        if self.enabled {
57634            <V as VisitMut>::visit_mut_ts_external_module_ref(&mut self.visitor, node)
57635        } else {
57636        }
57637    }
57638
57639    #[inline]
57640    fn visit_mut_ts_fn_or_constructor_type(&mut self, node: &mut TsFnOrConstructorType) {
57641        if self.enabled {
57642            <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(&mut self.visitor, node)
57643        } else {
57644        }
57645    }
57646
57647    #[inline]
57648    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam) {
57649        if self.enabled {
57650            <V as VisitMut>::visit_mut_ts_fn_param(&mut self.visitor, node)
57651        } else {
57652        }
57653    }
57654
57655    #[inline]
57656    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>) {
57657        if self.enabled {
57658            <V as VisitMut>::visit_mut_ts_fn_params(&mut self.visitor, node)
57659        } else {
57660        }
57661    }
57662
57663    #[inline]
57664    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType) {
57665        if self.enabled {
57666            <V as VisitMut>::visit_mut_ts_fn_type(&mut self.visitor, node)
57667        } else {
57668        }
57669    }
57670
57671    #[inline]
57672    fn visit_mut_ts_getter_signature(&mut self, node: &mut TsGetterSignature) {
57673        if self.enabled {
57674            <V as VisitMut>::visit_mut_ts_getter_signature(&mut self.visitor, node)
57675        } else {
57676        }
57677    }
57678
57679    #[inline]
57680    fn visit_mut_ts_import_equals_decl(&mut self, node: &mut TsImportEqualsDecl) {
57681        if self.enabled {
57682            <V as VisitMut>::visit_mut_ts_import_equals_decl(&mut self.visitor, node)
57683        } else {
57684        }
57685    }
57686
57687    #[inline]
57688    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType) {
57689        if self.enabled {
57690            <V as VisitMut>::visit_mut_ts_import_type(&mut self.visitor, node)
57691        } else {
57692        }
57693    }
57694
57695    #[inline]
57696    fn visit_mut_ts_index_signature(&mut self, node: &mut TsIndexSignature) {
57697        if self.enabled {
57698            <V as VisitMut>::visit_mut_ts_index_signature(&mut self.visitor, node)
57699        } else {
57700        }
57701    }
57702
57703    #[inline]
57704    fn visit_mut_ts_indexed_access_type(&mut self, node: &mut TsIndexedAccessType) {
57705        if self.enabled {
57706            <V as VisitMut>::visit_mut_ts_indexed_access_type(&mut self.visitor, node)
57707        } else {
57708        }
57709    }
57710
57711    #[inline]
57712    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType) {
57713        if self.enabled {
57714            <V as VisitMut>::visit_mut_ts_infer_type(&mut self.visitor, node)
57715        } else {
57716        }
57717    }
57718
57719    #[inline]
57720    fn visit_mut_ts_instantiation(&mut self, node: &mut TsInstantiation) {
57721        if self.enabled {
57722            <V as VisitMut>::visit_mut_ts_instantiation(&mut self.visitor, node)
57723        } else {
57724        }
57725    }
57726
57727    #[inline]
57728    fn visit_mut_ts_interface_body(&mut self, node: &mut TsInterfaceBody) {
57729        if self.enabled {
57730            <V as VisitMut>::visit_mut_ts_interface_body(&mut self.visitor, node)
57731        } else {
57732        }
57733    }
57734
57735    #[inline]
57736    fn visit_mut_ts_interface_decl(&mut self, node: &mut TsInterfaceDecl) {
57737        if self.enabled {
57738            <V as VisitMut>::visit_mut_ts_interface_decl(&mut self.visitor, node)
57739        } else {
57740        }
57741    }
57742
57743    #[inline]
57744    fn visit_mut_ts_intersection_type(&mut self, node: &mut TsIntersectionType) {
57745        if self.enabled {
57746            <V as VisitMut>::visit_mut_ts_intersection_type(&mut self.visitor, node)
57747        } else {
57748        }
57749    }
57750
57751    #[inline]
57752    fn visit_mut_ts_keyword_type(&mut self, node: &mut TsKeywordType) {
57753        if self.enabled {
57754            <V as VisitMut>::visit_mut_ts_keyword_type(&mut self.visitor, node)
57755        } else {
57756        }
57757    }
57758
57759    #[inline]
57760    fn visit_mut_ts_keyword_type_kind(&mut self, node: &mut TsKeywordTypeKind) {
57761        if self.enabled {
57762            <V as VisitMut>::visit_mut_ts_keyword_type_kind(&mut self.visitor, node)
57763        } else {
57764        }
57765    }
57766
57767    #[inline]
57768    fn visit_mut_ts_lit(&mut self, node: &mut TsLit) {
57769        if self.enabled {
57770            <V as VisitMut>::visit_mut_ts_lit(&mut self.visitor, node)
57771        } else {
57772        }
57773    }
57774
57775    #[inline]
57776    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType) {
57777        if self.enabled {
57778            <V as VisitMut>::visit_mut_ts_lit_type(&mut self.visitor, node)
57779        } else {
57780        }
57781    }
57782
57783    #[inline]
57784    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType) {
57785        if self.enabled {
57786            <V as VisitMut>::visit_mut_ts_mapped_type(&mut self.visitor, node)
57787        } else {
57788        }
57789    }
57790
57791    #[inline]
57792    fn visit_mut_ts_method_signature(&mut self, node: &mut TsMethodSignature) {
57793        if self.enabled {
57794            <V as VisitMut>::visit_mut_ts_method_signature(&mut self.visitor, node)
57795        } else {
57796        }
57797    }
57798
57799    #[inline]
57800    fn visit_mut_ts_module_block(&mut self, node: &mut TsModuleBlock) {
57801        if self.enabled {
57802            <V as VisitMut>::visit_mut_ts_module_block(&mut self.visitor, node)
57803        } else {
57804        }
57805    }
57806
57807    #[inline]
57808    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl) {
57809        if self.enabled {
57810            <V as VisitMut>::visit_mut_ts_module_decl(&mut self.visitor, node)
57811        } else {
57812        }
57813    }
57814
57815    #[inline]
57816    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName) {
57817        if self.enabled {
57818            <V as VisitMut>::visit_mut_ts_module_name(&mut self.visitor, node)
57819        } else {
57820        }
57821    }
57822
57823    #[inline]
57824    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef) {
57825        if self.enabled {
57826            <V as VisitMut>::visit_mut_ts_module_ref(&mut self.visitor, node)
57827        } else {
57828        }
57829    }
57830
57831    #[inline]
57832    fn visit_mut_ts_namespace_body(&mut self, node: &mut TsNamespaceBody) {
57833        if self.enabled {
57834            <V as VisitMut>::visit_mut_ts_namespace_body(&mut self.visitor, node)
57835        } else {
57836        }
57837    }
57838
57839    #[inline]
57840    fn visit_mut_ts_namespace_decl(&mut self, node: &mut TsNamespaceDecl) {
57841        if self.enabled {
57842            <V as VisitMut>::visit_mut_ts_namespace_decl(&mut self.visitor, node)
57843        } else {
57844        }
57845    }
57846
57847    #[inline]
57848    fn visit_mut_ts_namespace_export_decl(&mut self, node: &mut TsNamespaceExportDecl) {
57849        if self.enabled {
57850            <V as VisitMut>::visit_mut_ts_namespace_export_decl(&mut self.visitor, node)
57851        } else {
57852        }
57853    }
57854
57855    #[inline]
57856    fn visit_mut_ts_non_null_expr(&mut self, node: &mut TsNonNullExpr) {
57857        if self.enabled {
57858            <V as VisitMut>::visit_mut_ts_non_null_expr(&mut self.visitor, node)
57859        } else {
57860        }
57861    }
57862
57863    #[inline]
57864    fn visit_mut_ts_optional_type(&mut self, node: &mut TsOptionalType) {
57865        if self.enabled {
57866            <V as VisitMut>::visit_mut_ts_optional_type(&mut self.visitor, node)
57867        } else {
57868        }
57869    }
57870
57871    #[inline]
57872    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp) {
57873        if self.enabled {
57874            <V as VisitMut>::visit_mut_ts_param_prop(&mut self.visitor, node)
57875        } else {
57876        }
57877    }
57878
57879    #[inline]
57880    fn visit_mut_ts_param_prop_param(&mut self, node: &mut TsParamPropParam) {
57881        if self.enabled {
57882            <V as VisitMut>::visit_mut_ts_param_prop_param(&mut self.visitor, node)
57883        } else {
57884        }
57885    }
57886
57887    #[inline]
57888    fn visit_mut_ts_parenthesized_type(&mut self, node: &mut TsParenthesizedType) {
57889        if self.enabled {
57890            <V as VisitMut>::visit_mut_ts_parenthesized_type(&mut self.visitor, node)
57891        } else {
57892        }
57893    }
57894
57895    #[inline]
57896    fn visit_mut_ts_property_signature(&mut self, node: &mut TsPropertySignature) {
57897        if self.enabled {
57898            <V as VisitMut>::visit_mut_ts_property_signature(&mut self.visitor, node)
57899        } else {
57900        }
57901    }
57902
57903    #[inline]
57904    fn visit_mut_ts_qualified_name(&mut self, node: &mut TsQualifiedName) {
57905        if self.enabled {
57906            <V as VisitMut>::visit_mut_ts_qualified_name(&mut self.visitor, node)
57907        } else {
57908        }
57909    }
57910
57911    #[inline]
57912    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType) {
57913        if self.enabled {
57914            <V as VisitMut>::visit_mut_ts_rest_type(&mut self.visitor, node)
57915        } else {
57916        }
57917    }
57918
57919    #[inline]
57920    fn visit_mut_ts_satisfies_expr(&mut self, node: &mut TsSatisfiesExpr) {
57921        if self.enabled {
57922            <V as VisitMut>::visit_mut_ts_satisfies_expr(&mut self.visitor, node)
57923        } else {
57924        }
57925    }
57926
57927    #[inline]
57928    fn visit_mut_ts_setter_signature(&mut self, node: &mut TsSetterSignature) {
57929        if self.enabled {
57930            <V as VisitMut>::visit_mut_ts_setter_signature(&mut self.visitor, node)
57931        } else {
57932        }
57933    }
57934
57935    #[inline]
57936    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType) {
57937        if self.enabled {
57938            <V as VisitMut>::visit_mut_ts_this_type(&mut self.visitor, node)
57939        } else {
57940        }
57941    }
57942
57943    #[inline]
57944    fn visit_mut_ts_this_type_or_ident(&mut self, node: &mut TsThisTypeOrIdent) {
57945        if self.enabled {
57946            <V as VisitMut>::visit_mut_ts_this_type_or_ident(&mut self.visitor, node)
57947        } else {
57948        }
57949    }
57950
57951    #[inline]
57952    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType) {
57953        if self.enabled {
57954            <V as VisitMut>::visit_mut_ts_tpl_lit_type(&mut self.visitor, node)
57955        } else {
57956        }
57957    }
57958
57959    #[inline]
57960    fn visit_mut_ts_tuple_element(&mut self, node: &mut TsTupleElement) {
57961        if self.enabled {
57962            <V as VisitMut>::visit_mut_ts_tuple_element(&mut self.visitor, node)
57963        } else {
57964        }
57965    }
57966
57967    #[inline]
57968    fn visit_mut_ts_tuple_elements(&mut self, node: &mut Vec<TsTupleElement>) {
57969        if self.enabled {
57970            <V as VisitMut>::visit_mut_ts_tuple_elements(&mut self.visitor, node)
57971        } else {
57972        }
57973    }
57974
57975    #[inline]
57976    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType) {
57977        if self.enabled {
57978            <V as VisitMut>::visit_mut_ts_tuple_type(&mut self.visitor, node)
57979        } else {
57980        }
57981    }
57982
57983    #[inline]
57984    fn visit_mut_ts_type(&mut self, node: &mut TsType) {
57985        if self.enabled {
57986            <V as VisitMut>::visit_mut_ts_type(&mut self.visitor, node)
57987        } else {
57988        }
57989    }
57990
57991    #[inline]
57992    fn visit_mut_ts_type_alias_decl(&mut self, node: &mut TsTypeAliasDecl) {
57993        if self.enabled {
57994            <V as VisitMut>::visit_mut_ts_type_alias_decl(&mut self.visitor, node)
57995        } else {
57996        }
57997    }
57998
57999    #[inline]
58000    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn) {
58001        if self.enabled {
58002            <V as VisitMut>::visit_mut_ts_type_ann(&mut self.visitor, node)
58003        } else {
58004        }
58005    }
58006
58007    #[inline]
58008    fn visit_mut_ts_type_assertion(&mut self, node: &mut TsTypeAssertion) {
58009        if self.enabled {
58010            <V as VisitMut>::visit_mut_ts_type_assertion(&mut self.visitor, node)
58011        } else {
58012        }
58013    }
58014
58015    #[inline]
58016    fn visit_mut_ts_type_element(&mut self, node: &mut TsTypeElement) {
58017        if self.enabled {
58018            <V as VisitMut>::visit_mut_ts_type_element(&mut self.visitor, node)
58019        } else {
58020        }
58021    }
58022
58023    #[inline]
58024    fn visit_mut_ts_type_elements(&mut self, node: &mut Vec<TsTypeElement>) {
58025        if self.enabled {
58026            <V as VisitMut>::visit_mut_ts_type_elements(&mut self.visitor, node)
58027        } else {
58028        }
58029    }
58030
58031    #[inline]
58032    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit) {
58033        if self.enabled {
58034            <V as VisitMut>::visit_mut_ts_type_lit(&mut self.visitor, node)
58035        } else {
58036        }
58037    }
58038
58039    #[inline]
58040    fn visit_mut_ts_type_operator(&mut self, node: &mut TsTypeOperator) {
58041        if self.enabled {
58042            <V as VisitMut>::visit_mut_ts_type_operator(&mut self.visitor, node)
58043        } else {
58044        }
58045    }
58046
58047    #[inline]
58048    fn visit_mut_ts_type_operator_op(&mut self, node: &mut TsTypeOperatorOp) {
58049        if self.enabled {
58050            <V as VisitMut>::visit_mut_ts_type_operator_op(&mut self.visitor, node)
58051        } else {
58052        }
58053    }
58054
58055    #[inline]
58056    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam) {
58057        if self.enabled {
58058            <V as VisitMut>::visit_mut_ts_type_param(&mut self.visitor, node)
58059        } else {
58060        }
58061    }
58062
58063    #[inline]
58064    fn visit_mut_ts_type_param_decl(&mut self, node: &mut TsTypeParamDecl) {
58065        if self.enabled {
58066            <V as VisitMut>::visit_mut_ts_type_param_decl(&mut self.visitor, node)
58067        } else {
58068        }
58069    }
58070
58071    #[inline]
58072    fn visit_mut_ts_type_param_instantiation(&mut self, node: &mut TsTypeParamInstantiation) {
58073        if self.enabled {
58074            <V as VisitMut>::visit_mut_ts_type_param_instantiation(&mut self.visitor, node)
58075        } else {
58076        }
58077    }
58078
58079    #[inline]
58080    fn visit_mut_ts_type_params(&mut self, node: &mut Vec<TsTypeParam>) {
58081        if self.enabled {
58082            <V as VisitMut>::visit_mut_ts_type_params(&mut self.visitor, node)
58083        } else {
58084        }
58085    }
58086
58087    #[inline]
58088    fn visit_mut_ts_type_predicate(&mut self, node: &mut TsTypePredicate) {
58089        if self.enabled {
58090            <V as VisitMut>::visit_mut_ts_type_predicate(&mut self.visitor, node)
58091        } else {
58092        }
58093    }
58094
58095    #[inline]
58096    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery) {
58097        if self.enabled {
58098            <V as VisitMut>::visit_mut_ts_type_query(&mut self.visitor, node)
58099        } else {
58100        }
58101    }
58102
58103    #[inline]
58104    fn visit_mut_ts_type_query_expr(&mut self, node: &mut TsTypeQueryExpr) {
58105        if self.enabled {
58106            <V as VisitMut>::visit_mut_ts_type_query_expr(&mut self.visitor, node)
58107        } else {
58108        }
58109    }
58110
58111    #[inline]
58112    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef) {
58113        if self.enabled {
58114            <V as VisitMut>::visit_mut_ts_type_ref(&mut self.visitor, node)
58115        } else {
58116        }
58117    }
58118
58119    #[inline]
58120    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>) {
58121        if self.enabled {
58122            <V as VisitMut>::visit_mut_ts_types(&mut self.visitor, node)
58123        } else {
58124        }
58125    }
58126
58127    #[inline]
58128    fn visit_mut_ts_union_or_intersection_type(&mut self, node: &mut TsUnionOrIntersectionType) {
58129        if self.enabled {
58130            <V as VisitMut>::visit_mut_ts_union_or_intersection_type(&mut self.visitor, node)
58131        } else {
58132        }
58133    }
58134
58135    #[inline]
58136    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType) {
58137        if self.enabled {
58138            <V as VisitMut>::visit_mut_ts_union_type(&mut self.visitor, node)
58139        } else {
58140        }
58141    }
58142
58143    #[inline]
58144    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr) {
58145        if self.enabled {
58146            <V as VisitMut>::visit_mut_unary_expr(&mut self.visitor, node)
58147        } else {
58148        }
58149    }
58150
58151    #[inline]
58152    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp) {
58153        if self.enabled {
58154            <V as VisitMut>::visit_mut_unary_op(&mut self.visitor, node)
58155        } else {
58156        }
58157    }
58158
58159    #[inline]
58160    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr) {
58161        if self.enabled {
58162            <V as VisitMut>::visit_mut_update_expr(&mut self.visitor, node)
58163        } else {
58164        }
58165    }
58166
58167    #[inline]
58168    fn visit_mut_update_op(&mut self, node: &mut UpdateOp) {
58169        if self.enabled {
58170            <V as VisitMut>::visit_mut_update_op(&mut self.visitor, node)
58171        } else {
58172        }
58173    }
58174
58175    #[inline]
58176    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl) {
58177        if self.enabled {
58178            <V as VisitMut>::visit_mut_using_decl(&mut self.visitor, node)
58179        } else {
58180        }
58181    }
58182
58183    #[inline]
58184    fn visit_mut_var_decl(&mut self, node: &mut VarDecl) {
58185        if self.enabled {
58186            <V as VisitMut>::visit_mut_var_decl(&mut self.visitor, node)
58187        } else {
58188        }
58189    }
58190
58191    #[inline]
58192    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind) {
58193        if self.enabled {
58194            <V as VisitMut>::visit_mut_var_decl_kind(&mut self.visitor, node)
58195        } else {
58196        }
58197    }
58198
58199    #[inline]
58200    fn visit_mut_var_decl_or_expr(&mut self, node: &mut VarDeclOrExpr) {
58201        if self.enabled {
58202            <V as VisitMut>::visit_mut_var_decl_or_expr(&mut self.visitor, node)
58203        } else {
58204        }
58205    }
58206
58207    #[inline]
58208    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator) {
58209        if self.enabled {
58210            <V as VisitMut>::visit_mut_var_declarator(&mut self.visitor, node)
58211        } else {
58212        }
58213    }
58214
58215    #[inline]
58216    fn visit_mut_var_declarators(&mut self, node: &mut Vec<VarDeclarator>) {
58217        if self.enabled {
58218            <V as VisitMut>::visit_mut_var_declarators(&mut self.visitor, node)
58219        } else {
58220        }
58221    }
58222
58223    #[inline]
58224    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt) {
58225        if self.enabled {
58226            <V as VisitMut>::visit_mut_while_stmt(&mut self.visitor, node)
58227        } else {
58228        }
58229    }
58230
58231    #[inline]
58232    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt) {
58233        if self.enabled {
58234            <V as VisitMut>::visit_mut_with_stmt(&mut self.visitor, node)
58235        } else {
58236        }
58237    }
58238
58239    #[inline]
58240    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr) {
58241        if self.enabled {
58242            <V as VisitMut>::visit_mut_yield_expr(&mut self.visitor, node)
58243        } else {
58244        }
58245    }
58246}
58247#[doc = r" A trait implemented for types that can be visited using a visitor."]
58248pub trait VisitMutWith<V: ?Sized + VisitMut> {
58249    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
58250    fn visit_mut_with(&mut self, visitor: &mut V);
58251    #[doc = r" Visit children nodes of `self`` with `visitor`."]
58252    fn visit_mut_children_with(&mut self, visitor: &mut V);
58253}
58254impl<V: ?Sized + VisitMut> VisitMutWith<V> for Accessibility {
58255    #[doc = "Calls [VisitMut`::visit_mut_accessibility`] with `self`."]
58256    fn visit_mut_with(&mut self, visitor: &mut V) {
58257        <V as VisitMut>::visit_mut_accessibility(visitor, self)
58258    }
58259
58260    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58261        match self {
58262            Accessibility::Public => {}
58263            Accessibility::Protected => {}
58264            Accessibility::Private => {}
58265        }
58266    }
58267}
58268impl<V: ?Sized + VisitMut> VisitMutWith<V> for ArrayLit {
58269    #[doc = "Calls [VisitMut`::visit_mut_array_lit`] with `self`."]
58270    fn visit_mut_with(&mut self, visitor: &mut V) {
58271        <V as VisitMut>::visit_mut_array_lit(visitor, self)
58272    }
58273
58274    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58275        match self {
58276            ArrayLit { span, elems } => {
58277                {
58278                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58279                };
58280                {
58281                    <Vec<Option<ExprOrSpread>> as VisitMutWith<V>>::visit_mut_with(elems, visitor)
58282                };
58283            }
58284        }
58285    }
58286}
58287impl<V: ?Sized + VisitMut> VisitMutWith<V> for ArrayPat {
58288    #[doc = "Calls [VisitMut`::visit_mut_array_pat`] with `self`."]
58289    fn visit_mut_with(&mut self, visitor: &mut V) {
58290        <V as VisitMut>::visit_mut_array_pat(visitor, self)
58291    }
58292
58293    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58294        match self {
58295            ArrayPat {
58296                span,
58297                elems,
58298                optional,
58299                type_ann,
58300            } => {
58301                {
58302                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58303                };
58304                {
58305                    <Vec<Option<Pat>> as VisitMutWith<V>>::visit_mut_with(elems, visitor)
58306                };
58307                {
58308                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
58309                };
58310            }
58311        }
58312    }
58313}
58314impl<V: ?Sized + VisitMut> VisitMutWith<V> for ArrowExpr {
58315    #[doc = "Calls [VisitMut`::visit_mut_arrow_expr`] with `self`."]
58316    fn visit_mut_with(&mut self, visitor: &mut V) {
58317        <V as VisitMut>::visit_mut_arrow_expr(visitor, self)
58318    }
58319
58320    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58321        match self {
58322            ArrowExpr {
58323                span,
58324                ctxt,
58325                params,
58326                body,
58327                is_async,
58328                is_generator,
58329                type_params,
58330                return_type,
58331            } => {
58332                {
58333                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58334                };
58335                {
58336                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
58337                };
58338                {
58339                    <Vec<Pat> as VisitMutWith<V>>::visit_mut_with(params, visitor)
58340                };
58341                {
58342                    <Box<BlockStmtOrExpr> as VisitMutWith<V>>::visit_mut_with(body, visitor)
58343                };
58344                {
58345                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
58346                        type_params,
58347                        visitor,
58348                    )
58349                };
58350                {
58351                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(
58352                        return_type,
58353                        visitor,
58354                    )
58355                };
58356            }
58357        }
58358    }
58359}
58360impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignExpr {
58361    #[doc = "Calls [VisitMut`::visit_mut_assign_expr`] with `self`."]
58362    fn visit_mut_with(&mut self, visitor: &mut V) {
58363        <V as VisitMut>::visit_mut_assign_expr(visitor, self)
58364    }
58365
58366    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58367        match self {
58368            AssignExpr {
58369                span,
58370                op,
58371                left,
58372                right,
58373            } => {
58374                {
58375                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58376                };
58377                {
58378                    <AssignOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
58379                };
58380                {
58381                    <AssignTarget as VisitMutWith<V>>::visit_mut_with(left, visitor)
58382                };
58383                {
58384                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
58385                };
58386            }
58387        }
58388    }
58389}
58390impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignOp {
58391    #[doc = "Calls [VisitMut`::visit_mut_assign_op`] with `self`."]
58392    fn visit_mut_with(&mut self, visitor: &mut V) {
58393        <V as VisitMut>::visit_mut_assign_op(visitor, self)
58394    }
58395
58396    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58397        match self {
58398            AssignOp::Assign => {}
58399            AssignOp::AddAssign => {}
58400            AssignOp::SubAssign => {}
58401            AssignOp::MulAssign => {}
58402            AssignOp::DivAssign => {}
58403            AssignOp::ModAssign => {}
58404            AssignOp::LShiftAssign => {}
58405            AssignOp::RShiftAssign => {}
58406            AssignOp::ZeroFillRShiftAssign => {}
58407            AssignOp::BitOrAssign => {}
58408            AssignOp::BitXorAssign => {}
58409            AssignOp::BitAndAssign => {}
58410            AssignOp::ExpAssign => {}
58411            AssignOp::AndAssign => {}
58412            AssignOp::OrAssign => {}
58413            AssignOp::NullishAssign => {}
58414        }
58415    }
58416}
58417impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignPat {
58418    #[doc = "Calls [VisitMut`::visit_mut_assign_pat`] with `self`."]
58419    fn visit_mut_with(&mut self, visitor: &mut V) {
58420        <V as VisitMut>::visit_mut_assign_pat(visitor, self)
58421    }
58422
58423    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58424        match self {
58425            AssignPat { span, left, right } => {
58426                {
58427                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58428                };
58429                {
58430                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(left, visitor)
58431                };
58432                {
58433                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
58434                };
58435            }
58436        }
58437    }
58438}
58439impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignPatProp {
58440    #[doc = "Calls [VisitMut`::visit_mut_assign_pat_prop`] with `self`."]
58441    fn visit_mut_with(&mut self, visitor: &mut V) {
58442        <V as VisitMut>::visit_mut_assign_pat_prop(visitor, self)
58443    }
58444
58445    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58446        match self {
58447            AssignPatProp { span, key, value } => {
58448                {
58449                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58450                };
58451                {
58452                    <BindingIdent as VisitMutWith<V>>::visit_mut_with(key, visitor)
58453                };
58454                {
58455                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58456                };
58457            }
58458        }
58459    }
58460}
58461impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignProp {
58462    #[doc = "Calls [VisitMut`::visit_mut_assign_prop`] with `self`."]
58463    fn visit_mut_with(&mut self, visitor: &mut V) {
58464        <V as VisitMut>::visit_mut_assign_prop(visitor, self)
58465    }
58466
58467    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58468        match self {
58469            AssignProp { span, key, value } => {
58470                {
58471                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58472                };
58473                {
58474                    <Ident as VisitMutWith<V>>::visit_mut_with(key, visitor)
58475                };
58476                {
58477                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58478                };
58479            }
58480        }
58481    }
58482}
58483impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignTarget {
58484    #[doc = "Calls [VisitMut`::visit_mut_assign_target`] with `self`."]
58485    fn visit_mut_with(&mut self, visitor: &mut V) {
58486        <V as VisitMut>::visit_mut_assign_target(visitor, self)
58487    }
58488
58489    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58490        match self {
58491            AssignTarget::Simple { 0: _field_0 } => {
58492                <SimpleAssignTarget as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58493            }
58494            AssignTarget::Pat { 0: _field_0 } => {
58495                <AssignTargetPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58496            }
58497        }
58498    }
58499}
58500impl<V: ?Sized + VisitMut> VisitMutWith<V> for AssignTargetPat {
58501    #[doc = "Calls [VisitMut`::visit_mut_assign_target_pat`] with `self`."]
58502    fn visit_mut_with(&mut self, visitor: &mut V) {
58503        <V as VisitMut>::visit_mut_assign_target_pat(visitor, self)
58504    }
58505
58506    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58507        match self {
58508            AssignTargetPat::Array { 0: _field_0 } => {
58509                <ArrayPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58510            }
58511            AssignTargetPat::Object { 0: _field_0 } => {
58512                <ObjectPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58513            }
58514            AssignTargetPat::Invalid { 0: _field_0 } => {
58515                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58516            }
58517        }
58518    }
58519}
58520impl<V: ?Sized + VisitMut> VisitMutWith<V> for AutoAccessor {
58521    #[doc = "Calls [VisitMut`::visit_mut_auto_accessor`] with `self`."]
58522    fn visit_mut_with(&mut self, visitor: &mut V) {
58523        <V as VisitMut>::visit_mut_auto_accessor(visitor, self)
58524    }
58525
58526    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58527        match self {
58528            AutoAccessor {
58529                span,
58530                key,
58531                value,
58532                type_ann,
58533                is_static,
58534                decorators,
58535                accessibility,
58536                is_abstract,
58537                is_override,
58538                definite,
58539            } => {
58540                {
58541                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58542                };
58543                {
58544                    <Key as VisitMutWith<V>>::visit_mut_with(key, visitor)
58545                };
58546                {
58547                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58548                };
58549                {
58550                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
58551                };
58552                {
58553                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
58554                };
58555                {
58556                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
58557                        accessibility,
58558                        visitor,
58559                    )
58560                };
58561            }
58562        }
58563    }
58564}
58565impl<V: ?Sized + VisitMut> VisitMutWith<V> for AwaitExpr {
58566    #[doc = "Calls [VisitMut`::visit_mut_await_expr`] with `self`."]
58567    fn visit_mut_with(&mut self, visitor: &mut V) {
58568        <V as VisitMut>::visit_mut_await_expr(visitor, self)
58569    }
58570
58571    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58572        match self {
58573            AwaitExpr { span, arg } => {
58574                {
58575                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58576                };
58577                {
58578                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
58579                };
58580            }
58581        }
58582    }
58583}
58584impl<V: ?Sized + VisitMut> VisitMutWith<V> for BigInt {
58585    #[doc = "Calls [VisitMut`::visit_mut_big_int`] with `self`."]
58586    fn visit_mut_with(&mut self, visitor: &mut V) {
58587        <V as VisitMut>::visit_mut_big_int(visitor, self)
58588    }
58589
58590    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58591        match self {
58592            BigInt { span, value, raw } => {
58593                {
58594                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58595                };
58596                {
58597                    <Box<BigIntValue> as VisitMutWith<V>>::visit_mut_with(value, visitor)
58598                };
58599                {
58600                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(raw, visitor)
58601                };
58602            }
58603        }
58604    }
58605}
58606impl<V: ?Sized + VisitMut> VisitMutWith<V> for BinExpr {
58607    #[doc = "Calls [VisitMut`::visit_mut_bin_expr`] with `self`."]
58608    fn visit_mut_with(&mut self, visitor: &mut V) {
58609        <V as VisitMut>::visit_mut_bin_expr(visitor, self)
58610    }
58611
58612    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58613        match self {
58614            BinExpr {
58615                span,
58616                op,
58617                left,
58618                right,
58619            } => {
58620                {
58621                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58622                };
58623                {
58624                    <BinaryOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
58625                };
58626                {
58627                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(left, visitor)
58628                };
58629                {
58630                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
58631                };
58632            }
58633        }
58634    }
58635}
58636impl<V: ?Sized + VisitMut> VisitMutWith<V> for BinaryOp {
58637    #[doc = "Calls [VisitMut`::visit_mut_binary_op`] with `self`."]
58638    fn visit_mut_with(&mut self, visitor: &mut V) {
58639        <V as VisitMut>::visit_mut_binary_op(visitor, self)
58640    }
58641
58642    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58643        match self {
58644            BinaryOp::EqEq => {}
58645            BinaryOp::NotEq => {}
58646            BinaryOp::EqEqEq => {}
58647            BinaryOp::NotEqEq => {}
58648            BinaryOp::Lt => {}
58649            BinaryOp::LtEq => {}
58650            BinaryOp::Gt => {}
58651            BinaryOp::GtEq => {}
58652            BinaryOp::LShift => {}
58653            BinaryOp::RShift => {}
58654            BinaryOp::ZeroFillRShift => {}
58655            BinaryOp::Add => {}
58656            BinaryOp::Sub => {}
58657            BinaryOp::Mul => {}
58658            BinaryOp::Div => {}
58659            BinaryOp::Mod => {}
58660            BinaryOp::BitOr => {}
58661            BinaryOp::BitXor => {}
58662            BinaryOp::BitAnd => {}
58663            BinaryOp::LogicalOr => {}
58664            BinaryOp::LogicalAnd => {}
58665            BinaryOp::In => {}
58666            BinaryOp::InstanceOf => {}
58667            BinaryOp::Exp => {}
58668            BinaryOp::NullishCoalescing => {}
58669        }
58670    }
58671}
58672impl<V: ?Sized + VisitMut> VisitMutWith<V> for BindingIdent {
58673    #[doc = "Calls [VisitMut`::visit_mut_binding_ident`] with `self`."]
58674    fn visit_mut_with(&mut self, visitor: &mut V) {
58675        <V as VisitMut>::visit_mut_binding_ident(visitor, self)
58676    }
58677
58678    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58679        match self {
58680            BindingIdent { id, type_ann } => {
58681                {
58682                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
58683                };
58684                {
58685                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
58686                };
58687            }
58688        }
58689    }
58690}
58691impl<V: ?Sized + VisitMut> VisitMutWith<V> for BlockStmt {
58692    #[doc = "Calls [VisitMut`::visit_mut_block_stmt`] with `self`."]
58693    fn visit_mut_with(&mut self, visitor: &mut V) {
58694        <V as VisitMut>::visit_mut_block_stmt(visitor, self)
58695    }
58696
58697    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58698        match self {
58699            BlockStmt { span, ctxt, stmts } => {
58700                {
58701                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58702                };
58703                {
58704                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
58705                };
58706                {
58707                    <Vec<Stmt> as VisitMutWith<V>>::visit_mut_with(stmts, visitor)
58708                };
58709            }
58710        }
58711    }
58712}
58713impl<V: ?Sized + VisitMut> VisitMutWith<V> for BlockStmtOrExpr {
58714    #[doc = "Calls [VisitMut`::visit_mut_block_stmt_or_expr`] with `self`."]
58715    fn visit_mut_with(&mut self, visitor: &mut V) {
58716        <V as VisitMut>::visit_mut_block_stmt_or_expr(visitor, self)
58717    }
58718
58719    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58720        match self {
58721            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
58722                <BlockStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58723            }
58724            BlockStmtOrExpr::Expr { 0: _field_0 } => {
58725                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58726            }
58727        }
58728    }
58729}
58730impl<V: ?Sized + VisitMut> VisitMutWith<V> for Bool {
58731    #[doc = "Calls [VisitMut`::visit_mut_bool`] with `self`."]
58732    fn visit_mut_with(&mut self, visitor: &mut V) {
58733        <V as VisitMut>::visit_mut_bool(visitor, self)
58734    }
58735
58736    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58737        match self {
58738            Bool { span, value } => {
58739                {
58740                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58741                };
58742            }
58743        }
58744    }
58745}
58746impl<V: ?Sized + VisitMut> VisitMutWith<V> for BreakStmt {
58747    #[doc = "Calls [VisitMut`::visit_mut_break_stmt`] with `self`."]
58748    fn visit_mut_with(&mut self, visitor: &mut V) {
58749        <V as VisitMut>::visit_mut_break_stmt(visitor, self)
58750    }
58751
58752    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58753        match self {
58754            BreakStmt { span, label } => {
58755                {
58756                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58757                };
58758                {
58759                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(label, visitor)
58760                };
58761            }
58762        }
58763    }
58764}
58765impl<V: ?Sized + VisitMut> VisitMutWith<V> for CallExpr {
58766    #[doc = "Calls [VisitMut`::visit_mut_call_expr`] with `self`."]
58767    fn visit_mut_with(&mut self, visitor: &mut V) {
58768        <V as VisitMut>::visit_mut_call_expr(visitor, self)
58769    }
58770
58771    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58772        match self {
58773            CallExpr {
58774                span,
58775                ctxt,
58776                callee,
58777                args,
58778                type_args,
58779            } => {
58780                {
58781                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58782                };
58783                {
58784                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
58785                };
58786                {
58787                    <Callee as VisitMutWith<V>>::visit_mut_with(callee, visitor)
58788                };
58789                {
58790                    <Vec<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(args, visitor)
58791                };
58792                {
58793                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
58794                        type_args, visitor,
58795                    )
58796                };
58797            }
58798        }
58799    }
58800}
58801impl<V: ?Sized + VisitMut> VisitMutWith<V> for Callee {
58802    #[doc = "Calls [VisitMut`::visit_mut_callee`] with `self`."]
58803    fn visit_mut_with(&mut self, visitor: &mut V) {
58804        <V as VisitMut>::visit_mut_callee(visitor, self)
58805    }
58806
58807    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58808        match self {
58809            Callee::Super { 0: _field_0 } => {
58810                <Super as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58811            }
58812            Callee::Import { 0: _field_0 } => {
58813                <Import as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58814            }
58815            Callee::Expr { 0: _field_0 } => {
58816                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58817            }
58818        }
58819    }
58820}
58821impl<V: ?Sized + VisitMut> VisitMutWith<V> for CatchClause {
58822    #[doc = "Calls [VisitMut`::visit_mut_catch_clause`] with `self`."]
58823    fn visit_mut_with(&mut self, visitor: &mut V) {
58824        <V as VisitMut>::visit_mut_catch_clause(visitor, self)
58825    }
58826
58827    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58828        match self {
58829            CatchClause { span, param, body } => {
58830                {
58831                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58832                };
58833                {
58834                    <Option<Pat> as VisitMutWith<V>>::visit_mut_with(param, visitor)
58835                };
58836                {
58837                    <BlockStmt as VisitMutWith<V>>::visit_mut_with(body, visitor)
58838                };
58839            }
58840        }
58841    }
58842}
58843impl<V: ?Sized + VisitMut> VisitMutWith<V> for Class {
58844    #[doc = "Calls [VisitMut`::visit_mut_class`] with `self`."]
58845    fn visit_mut_with(&mut self, visitor: &mut V) {
58846        <V as VisitMut>::visit_mut_class(visitor, self)
58847    }
58848
58849    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58850        match self {
58851            Class {
58852                span,
58853                ctxt,
58854                decorators,
58855                body,
58856                super_class,
58857                is_abstract,
58858                type_params,
58859                super_type_params,
58860                implements,
58861            } => {
58862                {
58863                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58864                };
58865                {
58866                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
58867                };
58868                {
58869                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
58870                };
58871                {
58872                    <Vec<ClassMember> as VisitMutWith<V>>::visit_mut_with(body, visitor)
58873                };
58874                {
58875                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(super_class, visitor)
58876                };
58877                {
58878                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
58879                        type_params,
58880                        visitor,
58881                    )
58882                };
58883                {
58884                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
58885                        super_type_params,
58886                        visitor,
58887                    )
58888                };
58889                {
58890                    <Vec<TsExprWithTypeArgs> as VisitMutWith<V>>::visit_mut_with(
58891                        implements, visitor,
58892                    )
58893                };
58894            }
58895        }
58896    }
58897}
58898impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassDecl {
58899    #[doc = "Calls [VisitMut`::visit_mut_class_decl`] with `self`."]
58900    fn visit_mut_with(&mut self, visitor: &mut V) {
58901        <V as VisitMut>::visit_mut_class_decl(visitor, self)
58902    }
58903
58904    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58905        match self {
58906            ClassDecl {
58907                ident,
58908                declare,
58909                class,
58910            } => {
58911                {
58912                    <Ident as VisitMutWith<V>>::visit_mut_with(ident, visitor)
58913                };
58914                {
58915                    <Box<Class> as VisitMutWith<V>>::visit_mut_with(class, visitor)
58916                };
58917            }
58918        }
58919    }
58920}
58921impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassExpr {
58922    #[doc = "Calls [VisitMut`::visit_mut_class_expr`] with `self`."]
58923    fn visit_mut_with(&mut self, visitor: &mut V) {
58924        <V as VisitMut>::visit_mut_class_expr(visitor, self)
58925    }
58926
58927    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58928        match self {
58929            ClassExpr { ident, class } => {
58930                {
58931                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(ident, visitor)
58932                };
58933                {
58934                    <Box<Class> as VisitMutWith<V>>::visit_mut_with(class, visitor)
58935                };
58936            }
58937        }
58938    }
58939}
58940impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassMember {
58941    #[doc = "Calls [VisitMut`::visit_mut_class_member`] with `self`."]
58942    fn visit_mut_with(&mut self, visitor: &mut V) {
58943        <V as VisitMut>::visit_mut_class_member(visitor, self)
58944    }
58945
58946    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58947        match self {
58948            ClassMember::Constructor { 0: _field_0 } => {
58949                <Constructor as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58950            }
58951            ClassMember::Method { 0: _field_0 } => {
58952                <ClassMethod as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58953            }
58954            ClassMember::PrivateMethod { 0: _field_0 } => {
58955                <PrivateMethod as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58956            }
58957            ClassMember::ClassProp { 0: _field_0 } => {
58958                <ClassProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58959            }
58960            ClassMember::PrivateProp { 0: _field_0 } => {
58961                <PrivateProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58962            }
58963            ClassMember::TsIndexSignature { 0: _field_0 } => {
58964                <TsIndexSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58965            }
58966            ClassMember::Empty { 0: _field_0 } => {
58967                <EmptyStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58968            }
58969            ClassMember::StaticBlock { 0: _field_0 } => {
58970                <StaticBlock as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58971            }
58972            ClassMember::AutoAccessor { 0: _field_0 } => {
58973                <AutoAccessor as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
58974            }
58975        }
58976    }
58977}
58978impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassMethod {
58979    #[doc = "Calls [VisitMut`::visit_mut_class_method`] with `self`."]
58980    fn visit_mut_with(&mut self, visitor: &mut V) {
58981        <V as VisitMut>::visit_mut_class_method(visitor, self)
58982    }
58983
58984    fn visit_mut_children_with(&mut self, visitor: &mut V) {
58985        match self {
58986            ClassMethod {
58987                span,
58988                key,
58989                function,
58990                kind,
58991                is_static,
58992                accessibility,
58993                is_abstract,
58994                is_optional,
58995                is_override,
58996            } => {
58997                {
58998                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
58999                };
59000                {
59001                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59002                };
59003                {
59004                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
59005                };
59006                {
59007                    <MethodKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
59008                };
59009                {
59010                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
59011                        accessibility,
59012                        visitor,
59013                    )
59014                };
59015            }
59016        }
59017    }
59018}
59019impl<V: ?Sized + VisitMut> VisitMutWith<V> for ClassProp {
59020    #[doc = "Calls [VisitMut`::visit_mut_class_prop`] with `self`."]
59021    fn visit_mut_with(&mut self, visitor: &mut V) {
59022        <V as VisitMut>::visit_mut_class_prop(visitor, self)
59023    }
59024
59025    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59026        match self {
59027            ClassProp {
59028                span,
59029                key,
59030                value,
59031                type_ann,
59032                is_static,
59033                decorators,
59034                accessibility,
59035                is_abstract,
59036                is_optional,
59037                is_override,
59038                readonly,
59039                declare,
59040                definite,
59041            } => {
59042                {
59043                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59044                };
59045                {
59046                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59047                };
59048                {
59049                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
59050                };
59051                {
59052                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
59053                };
59054                {
59055                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
59056                };
59057                {
59058                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
59059                        accessibility,
59060                        visitor,
59061                    )
59062                };
59063            }
59064        }
59065    }
59066}
59067impl<V: ?Sized + VisitMut> VisitMutWith<V> for ComputedPropName {
59068    #[doc = "Calls [VisitMut`::visit_mut_computed_prop_name`] with `self`."]
59069    fn visit_mut_with(&mut self, visitor: &mut V) {
59070        <V as VisitMut>::visit_mut_computed_prop_name(visitor, self)
59071    }
59072
59073    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59074        match self {
59075            ComputedPropName { span, expr } => {
59076                {
59077                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59078                };
59079                {
59080                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59081                };
59082            }
59083        }
59084    }
59085}
59086impl<V: ?Sized + VisitMut> VisitMutWith<V> for CondExpr {
59087    #[doc = "Calls [VisitMut`::visit_mut_cond_expr`] with `self`."]
59088    fn visit_mut_with(&mut self, visitor: &mut V) {
59089        <V as VisitMut>::visit_mut_cond_expr(visitor, self)
59090    }
59091
59092    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59093        match self {
59094            CondExpr {
59095                span,
59096                test,
59097                cons,
59098                alt,
59099            } => {
59100                {
59101                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59102                };
59103                {
59104                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
59105                };
59106                {
59107                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(cons, visitor)
59108                };
59109                {
59110                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(alt, visitor)
59111                };
59112            }
59113        }
59114    }
59115}
59116impl<V: ?Sized + VisitMut> VisitMutWith<V> for Constructor {
59117    #[doc = "Calls [VisitMut`::visit_mut_constructor`] with `self`."]
59118    fn visit_mut_with(&mut self, visitor: &mut V) {
59119        <V as VisitMut>::visit_mut_constructor(visitor, self)
59120    }
59121
59122    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59123        match self {
59124            Constructor {
59125                span,
59126                ctxt,
59127                key,
59128                params,
59129                body,
59130                accessibility,
59131                is_optional,
59132            } => {
59133                {
59134                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59135                };
59136                {
59137                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59138                };
59139                {
59140                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59141                };
59142                {
59143                    <Vec<ParamOrTsParamProp> as VisitMutWith<V>>::visit_mut_with(params, visitor)
59144                };
59145                {
59146                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59147                };
59148                {
59149                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
59150                        accessibility,
59151                        visitor,
59152                    )
59153                };
59154            }
59155        }
59156    }
59157}
59158impl<V: ?Sized + VisitMut> VisitMutWith<V> for ContinueStmt {
59159    #[doc = "Calls [VisitMut`::visit_mut_continue_stmt`] with `self`."]
59160    fn visit_mut_with(&mut self, visitor: &mut V) {
59161        <V as VisitMut>::visit_mut_continue_stmt(visitor, self)
59162    }
59163
59164    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59165        match self {
59166            ContinueStmt { span, label } => {
59167                {
59168                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59169                };
59170                {
59171                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(label, visitor)
59172                };
59173            }
59174        }
59175    }
59176}
59177impl<V: ?Sized + VisitMut> VisitMutWith<V> for DebuggerStmt {
59178    #[doc = "Calls [VisitMut`::visit_mut_debugger_stmt`] with `self`."]
59179    fn visit_mut_with(&mut self, visitor: &mut V) {
59180        <V as VisitMut>::visit_mut_debugger_stmt(visitor, self)
59181    }
59182
59183    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59184        match self {
59185            DebuggerStmt { span } => {
59186                {
59187                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59188                };
59189            }
59190        }
59191    }
59192}
59193impl<V: ?Sized + VisitMut> VisitMutWith<V> for Decl {
59194    #[doc = "Calls [VisitMut`::visit_mut_decl`] with `self`."]
59195    fn visit_mut_with(&mut self, visitor: &mut V) {
59196        <V as VisitMut>::visit_mut_decl(visitor, self)
59197    }
59198
59199    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59200        match self {
59201            Decl::Class { 0: _field_0 } => {
59202                <ClassDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59203            }
59204            Decl::Fn { 0: _field_0 } => {
59205                <FnDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59206            }
59207            Decl::Var { 0: _field_0 } => {
59208                <Box<VarDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59209            }
59210            Decl::Using { 0: _field_0 } => {
59211                <Box<UsingDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59212            }
59213            Decl::TsInterface { 0: _field_0 } => {
59214                <Box<TsInterfaceDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59215            }
59216            Decl::TsTypeAlias { 0: _field_0 } => {
59217                <Box<TsTypeAliasDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59218            }
59219            Decl::TsEnum { 0: _field_0 } => {
59220                <Box<TsEnumDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59221            }
59222            Decl::TsModule { 0: _field_0 } => {
59223                <Box<TsModuleDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59224            }
59225        }
59226    }
59227}
59228impl<V: ?Sized + VisitMut> VisitMutWith<V> for Decorator {
59229    #[doc = "Calls [VisitMut`::visit_mut_decorator`] with `self`."]
59230    fn visit_mut_with(&mut self, visitor: &mut V) {
59231        <V as VisitMut>::visit_mut_decorator(visitor, self)
59232    }
59233
59234    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59235        match self {
59236            Decorator { span, expr } => {
59237                {
59238                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59239                };
59240                {
59241                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59242                };
59243            }
59244        }
59245    }
59246}
59247impl<V: ?Sized + VisitMut> VisitMutWith<V> for DefaultDecl {
59248    #[doc = "Calls [VisitMut`::visit_mut_default_decl`] with `self`."]
59249    fn visit_mut_with(&mut self, visitor: &mut V) {
59250        <V as VisitMut>::visit_mut_default_decl(visitor, self)
59251    }
59252
59253    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59254        match self {
59255            DefaultDecl::Class { 0: _field_0 } => {
59256                <ClassExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59257            }
59258            DefaultDecl::Fn { 0: _field_0 } => {
59259                <FnExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59260            }
59261            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
59262                <Box<TsInterfaceDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59263            }
59264        }
59265    }
59266}
59267impl<V: ?Sized + VisitMut> VisitMutWith<V> for DoWhileStmt {
59268    #[doc = "Calls [VisitMut`::visit_mut_do_while_stmt`] with `self`."]
59269    fn visit_mut_with(&mut self, visitor: &mut V) {
59270        <V as VisitMut>::visit_mut_do_while_stmt(visitor, self)
59271    }
59272
59273    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59274        match self {
59275            DoWhileStmt { span, test, body } => {
59276                {
59277                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59278                };
59279                {
59280                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
59281                };
59282                {
59283                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59284                };
59285            }
59286        }
59287    }
59288}
59289impl<V: ?Sized + VisitMut> VisitMutWith<V> for EmptyStmt {
59290    #[doc = "Calls [VisitMut`::visit_mut_empty_stmt`] with `self`."]
59291    fn visit_mut_with(&mut self, visitor: &mut V) {
59292        <V as VisitMut>::visit_mut_empty_stmt(visitor, self)
59293    }
59294
59295    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59296        match self {
59297            EmptyStmt { span } => {
59298                {
59299                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59300                };
59301            }
59302        }
59303    }
59304}
59305impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportAll {
59306    #[doc = "Calls [VisitMut`::visit_mut_export_all`] with `self`."]
59307    fn visit_mut_with(&mut self, visitor: &mut V) {
59308        <V as VisitMut>::visit_mut_export_all(visitor, self)
59309    }
59310
59311    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59312        match self {
59313            ExportAll {
59314                span,
59315                src,
59316                type_only,
59317                with,
59318            } => {
59319                {
59320                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59321                };
59322                {
59323                    <Box<Str> as VisitMutWith<V>>::visit_mut_with(src, visitor)
59324                };
59325                {
59326                    <Option<Box<ObjectLit>> as VisitMutWith<V>>::visit_mut_with(with, visitor)
59327                };
59328            }
59329        }
59330    }
59331}
59332impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDecl {
59333    #[doc = "Calls [VisitMut`::visit_mut_export_decl`] with `self`."]
59334    fn visit_mut_with(&mut self, visitor: &mut V) {
59335        <V as VisitMut>::visit_mut_export_decl(visitor, self)
59336    }
59337
59338    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59339        match self {
59340            ExportDecl { span, decl } => {
59341                {
59342                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59343                };
59344                {
59345                    <Decl as VisitMutWith<V>>::visit_mut_with(decl, visitor)
59346                };
59347            }
59348        }
59349    }
59350}
59351impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDefaultDecl {
59352    #[doc = "Calls [VisitMut`::visit_mut_export_default_decl`] with `self`."]
59353    fn visit_mut_with(&mut self, visitor: &mut V) {
59354        <V as VisitMut>::visit_mut_export_default_decl(visitor, self)
59355    }
59356
59357    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59358        match self {
59359            ExportDefaultDecl { span, decl } => {
59360                {
59361                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59362                };
59363                {
59364                    <DefaultDecl as VisitMutWith<V>>::visit_mut_with(decl, visitor)
59365                };
59366            }
59367        }
59368    }
59369}
59370impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDefaultExpr {
59371    #[doc = "Calls [VisitMut`::visit_mut_export_default_expr`] with `self`."]
59372    fn visit_mut_with(&mut self, visitor: &mut V) {
59373        <V as VisitMut>::visit_mut_export_default_expr(visitor, self)
59374    }
59375
59376    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59377        match self {
59378            ExportDefaultExpr { span, expr } => {
59379                {
59380                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59381                };
59382                {
59383                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59384                };
59385            }
59386        }
59387    }
59388}
59389impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportDefaultSpecifier {
59390    #[doc = "Calls [VisitMut`::visit_mut_export_default_specifier`] with `self`."]
59391    fn visit_mut_with(&mut self, visitor: &mut V) {
59392        <V as VisitMut>::visit_mut_export_default_specifier(visitor, self)
59393    }
59394
59395    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59396        match self {
59397            ExportDefaultSpecifier { exported } => {
59398                {
59399                    <Ident as VisitMutWith<V>>::visit_mut_with(exported, visitor)
59400                };
59401            }
59402        }
59403    }
59404}
59405impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportNamedSpecifier {
59406    #[doc = "Calls [VisitMut`::visit_mut_export_named_specifier`] with `self`."]
59407    fn visit_mut_with(&mut self, visitor: &mut V) {
59408        <V as VisitMut>::visit_mut_export_named_specifier(visitor, self)
59409    }
59410
59411    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59412        match self {
59413            ExportNamedSpecifier {
59414                span,
59415                orig,
59416                exported,
59417                is_type_only,
59418            } => {
59419                {
59420                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59421                };
59422                {
59423                    <ModuleExportName as VisitMutWith<V>>::visit_mut_with(orig, visitor)
59424                };
59425                {
59426                    <Option<ModuleExportName> as VisitMutWith<V>>::visit_mut_with(exported, visitor)
59427                };
59428            }
59429        }
59430    }
59431}
59432impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportNamespaceSpecifier {
59433    #[doc = "Calls [VisitMut`::visit_mut_export_namespace_specifier`] with `self`."]
59434    fn visit_mut_with(&mut self, visitor: &mut V) {
59435        <V as VisitMut>::visit_mut_export_namespace_specifier(visitor, self)
59436    }
59437
59438    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59439        match self {
59440            ExportNamespaceSpecifier { span, name } => {
59441                {
59442                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59443                };
59444                {
59445                    <ModuleExportName as VisitMutWith<V>>::visit_mut_with(name, visitor)
59446                };
59447            }
59448        }
59449    }
59450}
59451impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExportSpecifier {
59452    #[doc = "Calls [VisitMut`::visit_mut_export_specifier`] with `self`."]
59453    fn visit_mut_with(&mut self, visitor: &mut V) {
59454        <V as VisitMut>::visit_mut_export_specifier(visitor, self)
59455    }
59456
59457    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59458        match self {
59459            ExportSpecifier::Namespace { 0: _field_0 } => {
59460                <ExportNamespaceSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59461            }
59462            ExportSpecifier::Default { 0: _field_0 } => {
59463                <ExportDefaultSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59464            }
59465            ExportSpecifier::Named { 0: _field_0 } => {
59466                <ExportNamedSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59467            }
59468        }
59469    }
59470}
59471impl<V: ?Sized + VisitMut> VisitMutWith<V> for Expr {
59472    #[doc = "Calls [VisitMut`::visit_mut_expr`] with `self`."]
59473    fn visit_mut_with(&mut self, visitor: &mut V) {
59474        <V as VisitMut>::visit_mut_expr(visitor, self)
59475    }
59476
59477    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59478        match self {
59479            Expr::This { 0: _field_0 } => {
59480                <ThisExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59481            }
59482            Expr::Array { 0: _field_0 } => {
59483                <ArrayLit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59484            }
59485            Expr::Object { 0: _field_0 } => {
59486                <ObjectLit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59487            }
59488            Expr::Fn { 0: _field_0 } => {
59489                <FnExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59490            }
59491            Expr::Unary { 0: _field_0 } => {
59492                <UnaryExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59493            }
59494            Expr::Update { 0: _field_0 } => {
59495                <UpdateExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59496            }
59497            Expr::Bin { 0: _field_0 } => {
59498                <BinExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59499            }
59500            Expr::Assign { 0: _field_0 } => {
59501                <AssignExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59502            }
59503            Expr::Member { 0: _field_0 } => {
59504                <MemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59505            }
59506            Expr::SuperProp { 0: _field_0 } => {
59507                <SuperPropExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59508            }
59509            Expr::Cond { 0: _field_0 } => {
59510                <CondExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59511            }
59512            Expr::Call { 0: _field_0 } => {
59513                <CallExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59514            }
59515            Expr::New { 0: _field_0 } => {
59516                <NewExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59517            }
59518            Expr::Seq { 0: _field_0 } => {
59519                <SeqExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59520            }
59521            Expr::Ident { 0: _field_0 } => {
59522                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59523            }
59524            Expr::Lit { 0: _field_0 } => {
59525                <Lit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59526            }
59527            Expr::Tpl { 0: _field_0 } => {
59528                <Tpl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59529            }
59530            Expr::TaggedTpl { 0: _field_0 } => {
59531                <TaggedTpl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59532            }
59533            Expr::Arrow { 0: _field_0 } => {
59534                <ArrowExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59535            }
59536            Expr::Class { 0: _field_0 } => {
59537                <ClassExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59538            }
59539            Expr::Yield { 0: _field_0 } => {
59540                <YieldExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59541            }
59542            Expr::MetaProp { 0: _field_0 } => {
59543                <MetaPropExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59544            }
59545            Expr::Await { 0: _field_0 } => {
59546                <AwaitExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59547            }
59548            Expr::Paren { 0: _field_0 } => {
59549                <ParenExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59550            }
59551            Expr::JSXMember { 0: _field_0 } => {
59552                <JSXMemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59553            }
59554            Expr::JSXNamespacedName { 0: _field_0 } => {
59555                <JSXNamespacedName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59556            }
59557            Expr::JSXEmpty { 0: _field_0 } => {
59558                <JSXEmptyExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59559            }
59560            Expr::JSXElement { 0: _field_0 } => {
59561                <Box<JSXElement> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59562            }
59563            Expr::JSXFragment { 0: _field_0 } => {
59564                <JSXFragment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59565            }
59566            Expr::TsTypeAssertion { 0: _field_0 } => {
59567                <TsTypeAssertion as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59568            }
59569            Expr::TsConstAssertion { 0: _field_0 } => {
59570                <TsConstAssertion as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59571            }
59572            Expr::TsNonNull { 0: _field_0 } => {
59573                <TsNonNullExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59574            }
59575            Expr::TsAs { 0: _field_0 } => {
59576                <TsAsExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59577            }
59578            Expr::TsInstantiation { 0: _field_0 } => {
59579                <TsInstantiation as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59580            }
59581            Expr::TsSatisfies { 0: _field_0 } => {
59582                <TsSatisfiesExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59583            }
59584            Expr::PrivateName { 0: _field_0 } => {
59585                <PrivateName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59586            }
59587            Expr::OptChain { 0: _field_0 } => {
59588                <OptChainExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59589            }
59590            Expr::Invalid { 0: _field_0 } => {
59591                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59592            }
59593        }
59594    }
59595}
59596impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExprOrSpread {
59597    #[doc = "Calls [VisitMut`::visit_mut_expr_or_spread`] with `self`."]
59598    fn visit_mut_with(&mut self, visitor: &mut V) {
59599        <V as VisitMut>::visit_mut_expr_or_spread(visitor, self)
59600    }
59601
59602    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59603        match self {
59604            ExprOrSpread { spread, expr } => {
59605                {
59606                    <Option<swc_common::Span> as VisitMutWith<V>>::visit_mut_with(spread, visitor)
59607                };
59608                {
59609                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59610                };
59611            }
59612        }
59613    }
59614}
59615impl<V: ?Sized + VisitMut> VisitMutWith<V> for ExprStmt {
59616    #[doc = "Calls [VisitMut`::visit_mut_expr_stmt`] with `self`."]
59617    fn visit_mut_with(&mut self, visitor: &mut V) {
59618        <V as VisitMut>::visit_mut_expr_stmt(visitor, self)
59619    }
59620
59621    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59622        match self {
59623            ExprStmt { span, expr } => {
59624                {
59625                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59626                };
59627                {
59628                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
59629                };
59630            }
59631        }
59632    }
59633}
59634impl<V: ?Sized + VisitMut> VisitMutWith<V> for FnDecl {
59635    #[doc = "Calls [VisitMut`::visit_mut_fn_decl`] with `self`."]
59636    fn visit_mut_with(&mut self, visitor: &mut V) {
59637        <V as VisitMut>::visit_mut_fn_decl(visitor, self)
59638    }
59639
59640    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59641        match self {
59642            FnDecl {
59643                ident,
59644                declare,
59645                function,
59646            } => {
59647                {
59648                    <Ident as VisitMutWith<V>>::visit_mut_with(ident, visitor)
59649                };
59650                {
59651                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
59652                };
59653            }
59654        }
59655    }
59656}
59657impl<V: ?Sized + VisitMut> VisitMutWith<V> for FnExpr {
59658    #[doc = "Calls [VisitMut`::visit_mut_fn_expr`] with `self`."]
59659    fn visit_mut_with(&mut self, visitor: &mut V) {
59660        <V as VisitMut>::visit_mut_fn_expr(visitor, self)
59661    }
59662
59663    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59664        match self {
59665            FnExpr { ident, function } => {
59666                {
59667                    <Option<Ident> as VisitMutWith<V>>::visit_mut_with(ident, visitor)
59668                };
59669                {
59670                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
59671                };
59672            }
59673        }
59674    }
59675}
59676impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForHead {
59677    #[doc = "Calls [VisitMut`::visit_mut_for_head`] with `self`."]
59678    fn visit_mut_with(&mut self, visitor: &mut V) {
59679        <V as VisitMut>::visit_mut_for_head(visitor, self)
59680    }
59681
59682    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59683        match self {
59684            ForHead::VarDecl { 0: _field_0 } => {
59685                <Box<VarDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59686            }
59687            ForHead::UsingDecl { 0: _field_0 } => {
59688                <Box<UsingDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59689            }
59690            ForHead::Pat { 0: _field_0 } => {
59691                <Box<Pat> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
59692            }
59693        }
59694    }
59695}
59696impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForInStmt {
59697    #[doc = "Calls [VisitMut`::visit_mut_for_in_stmt`] with `self`."]
59698    fn visit_mut_with(&mut self, visitor: &mut V) {
59699        <V as VisitMut>::visit_mut_for_in_stmt(visitor, self)
59700    }
59701
59702    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59703        match self {
59704            ForInStmt {
59705                span,
59706                left,
59707                right,
59708                body,
59709            } => {
59710                {
59711                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59712                };
59713                {
59714                    <ForHead as VisitMutWith<V>>::visit_mut_with(left, visitor)
59715                };
59716                {
59717                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
59718                };
59719                {
59720                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59721                };
59722            }
59723        }
59724    }
59725}
59726impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForOfStmt {
59727    #[doc = "Calls [VisitMut`::visit_mut_for_of_stmt`] with `self`."]
59728    fn visit_mut_with(&mut self, visitor: &mut V) {
59729        <V as VisitMut>::visit_mut_for_of_stmt(visitor, self)
59730    }
59731
59732    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59733        match self {
59734            ForOfStmt {
59735                span,
59736                is_await,
59737                left,
59738                right,
59739                body,
59740            } => {
59741                {
59742                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59743                };
59744                {
59745                    <ForHead as VisitMutWith<V>>::visit_mut_with(left, visitor)
59746                };
59747                {
59748                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(right, visitor)
59749                };
59750                {
59751                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59752                };
59753            }
59754        }
59755    }
59756}
59757impl<V: ?Sized + VisitMut> VisitMutWith<V> for ForStmt {
59758    #[doc = "Calls [VisitMut`::visit_mut_for_stmt`] with `self`."]
59759    fn visit_mut_with(&mut self, visitor: &mut V) {
59760        <V as VisitMut>::visit_mut_for_stmt(visitor, self)
59761    }
59762
59763    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59764        match self {
59765            ForStmt {
59766                span,
59767                init,
59768                test,
59769                update,
59770                body,
59771            } => {
59772                {
59773                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59774                };
59775                {
59776                    <Option<VarDeclOrExpr> as VisitMutWith<V>>::visit_mut_with(init, visitor)
59777                };
59778                {
59779                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(test, visitor)
59780                };
59781                {
59782                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(update, visitor)
59783                };
59784                {
59785                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59786                };
59787            }
59788        }
59789    }
59790}
59791impl<V: ?Sized + VisitMut> VisitMutWith<V> for Function {
59792    #[doc = "Calls [VisitMut`::visit_mut_function`] with `self`."]
59793    fn visit_mut_with(&mut self, visitor: &mut V) {
59794        <V as VisitMut>::visit_mut_function(visitor, self)
59795    }
59796
59797    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59798        match self {
59799            Function {
59800                params,
59801                decorators,
59802                span,
59803                ctxt,
59804                body,
59805                is_generator,
59806                is_async,
59807                type_params,
59808                return_type,
59809            } => {
59810                {
59811                    <Vec<Param> as VisitMutWith<V>>::visit_mut_with(params, visitor)
59812                };
59813                {
59814                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
59815                };
59816                {
59817                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59818                };
59819                {
59820                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59821                };
59822                {
59823                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59824                };
59825                {
59826                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
59827                        type_params,
59828                        visitor,
59829                    )
59830                };
59831                {
59832                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(
59833                        return_type,
59834                        visitor,
59835                    )
59836                };
59837            }
59838        }
59839    }
59840}
59841impl<V: ?Sized + VisitMut> VisitMutWith<V> for GetterProp {
59842    #[doc = "Calls [VisitMut`::visit_mut_getter_prop`] with `self`."]
59843    fn visit_mut_with(&mut self, visitor: &mut V) {
59844        <V as VisitMut>::visit_mut_getter_prop(visitor, self)
59845    }
59846
59847    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59848        match self {
59849            GetterProp {
59850                span,
59851                key,
59852                type_ann,
59853                body,
59854            } => {
59855                {
59856                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59857                };
59858                {
59859                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
59860                };
59861                {
59862                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
59863                };
59864                {
59865                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
59866                };
59867            }
59868        }
59869    }
59870}
59871impl<V: ?Sized + VisitMut> VisitMutWith<V> for Ident {
59872    #[doc = "Calls [VisitMut`::visit_mut_ident`] with `self`."]
59873    fn visit_mut_with(&mut self, visitor: &mut V) {
59874        <V as VisitMut>::visit_mut_ident(visitor, self)
59875    }
59876
59877    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59878        match self {
59879            Ident {
59880                span,
59881                ctxt,
59882                sym,
59883                optional,
59884            } => {
59885                {
59886                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59887                };
59888                {
59889                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
59890                };
59891                {
59892                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(sym, visitor)
59893                };
59894            }
59895        }
59896    }
59897}
59898impl<V: ?Sized + VisitMut> VisitMutWith<V> for IdentName {
59899    #[doc = "Calls [VisitMut`::visit_mut_ident_name`] with `self`."]
59900    fn visit_mut_with(&mut self, visitor: &mut V) {
59901        <V as VisitMut>::visit_mut_ident_name(visitor, self)
59902    }
59903
59904    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59905        match self {
59906            IdentName { span, sym } => {
59907                {
59908                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59909                };
59910                {
59911                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(sym, visitor)
59912                };
59913            }
59914        }
59915    }
59916}
59917impl<V: ?Sized + VisitMut> VisitMutWith<V> for IfStmt {
59918    #[doc = "Calls [VisitMut`::visit_mut_if_stmt`] with `self`."]
59919    fn visit_mut_with(&mut self, visitor: &mut V) {
59920        <V as VisitMut>::visit_mut_if_stmt(visitor, self)
59921    }
59922
59923    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59924        match self {
59925            IfStmt {
59926                span,
59927                test,
59928                cons,
59929                alt,
59930            } => {
59931                {
59932                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59933                };
59934                {
59935                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
59936                };
59937                {
59938                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(cons, visitor)
59939                };
59940                {
59941                    <Option<Box<Stmt>> as VisitMutWith<V>>::visit_mut_with(alt, visitor)
59942                };
59943            }
59944        }
59945    }
59946}
59947impl<V: ?Sized + VisitMut> VisitMutWith<V> for Import {
59948    #[doc = "Calls [VisitMut`::visit_mut_import`] with `self`."]
59949    fn visit_mut_with(&mut self, visitor: &mut V) {
59950        <V as VisitMut>::visit_mut_import(visitor, self)
59951    }
59952
59953    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59954        match self {
59955            Import { span, phase } => {
59956                {
59957                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59958                };
59959                {
59960                    <ImportPhase as VisitMutWith<V>>::visit_mut_with(phase, visitor)
59961                };
59962            }
59963        }
59964    }
59965}
59966impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportDecl {
59967    #[doc = "Calls [VisitMut`::visit_mut_import_decl`] with `self`."]
59968    fn visit_mut_with(&mut self, visitor: &mut V) {
59969        <V as VisitMut>::visit_mut_import_decl(visitor, self)
59970    }
59971
59972    fn visit_mut_children_with(&mut self, visitor: &mut V) {
59973        match self {
59974            ImportDecl {
59975                span,
59976                specifiers,
59977                src,
59978                type_only,
59979                with,
59980                phase,
59981            } => {
59982                {
59983                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
59984                };
59985                {
59986                    <Vec<ImportSpecifier> as VisitMutWith<V>>::visit_mut_with(specifiers, visitor)
59987                };
59988                {
59989                    <Box<Str> as VisitMutWith<V>>::visit_mut_with(src, visitor)
59990                };
59991                {
59992                    <Option<Box<ObjectLit>> as VisitMutWith<V>>::visit_mut_with(with, visitor)
59993                };
59994                {
59995                    <ImportPhase as VisitMutWith<V>>::visit_mut_with(phase, visitor)
59996                };
59997            }
59998        }
59999    }
60000}
60001impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportDefaultSpecifier {
60002    #[doc = "Calls [VisitMut`::visit_mut_import_default_specifier`] with `self`."]
60003    fn visit_mut_with(&mut self, visitor: &mut V) {
60004        <V as VisitMut>::visit_mut_import_default_specifier(visitor, self)
60005    }
60006
60007    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60008        match self {
60009            ImportDefaultSpecifier { span, local } => {
60010                {
60011                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60012                };
60013                {
60014                    <Ident as VisitMutWith<V>>::visit_mut_with(local, visitor)
60015                };
60016            }
60017        }
60018    }
60019}
60020impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportNamedSpecifier {
60021    #[doc = "Calls [VisitMut`::visit_mut_import_named_specifier`] with `self`."]
60022    fn visit_mut_with(&mut self, visitor: &mut V) {
60023        <V as VisitMut>::visit_mut_import_named_specifier(visitor, self)
60024    }
60025
60026    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60027        match self {
60028            ImportNamedSpecifier {
60029                span,
60030                local,
60031                imported,
60032                is_type_only,
60033            } => {
60034                {
60035                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60036                };
60037                {
60038                    <Ident as VisitMutWith<V>>::visit_mut_with(local, visitor)
60039                };
60040                {
60041                    <Option<ModuleExportName> as VisitMutWith<V>>::visit_mut_with(imported, visitor)
60042                };
60043            }
60044        }
60045    }
60046}
60047impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportPhase {
60048    #[doc = "Calls [VisitMut`::visit_mut_import_phase`] with `self`."]
60049    fn visit_mut_with(&mut self, visitor: &mut V) {
60050        <V as VisitMut>::visit_mut_import_phase(visitor, self)
60051    }
60052
60053    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60054        match self {
60055            ImportPhase::Evaluation => {}
60056            ImportPhase::Source => {}
60057            ImportPhase::Defer => {}
60058        }
60059    }
60060}
60061impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportSpecifier {
60062    #[doc = "Calls [VisitMut`::visit_mut_import_specifier`] with `self`."]
60063    fn visit_mut_with(&mut self, visitor: &mut V) {
60064        <V as VisitMut>::visit_mut_import_specifier(visitor, self)
60065    }
60066
60067    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60068        match self {
60069            ImportSpecifier::Named { 0: _field_0 } => {
60070                <ImportNamedSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60071            }
60072            ImportSpecifier::Default { 0: _field_0 } => {
60073                <ImportDefaultSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60074            }
60075            ImportSpecifier::Namespace { 0: _field_0 } => {
60076                <ImportStarAsSpecifier as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60077            }
60078        }
60079    }
60080}
60081impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportStarAsSpecifier {
60082    #[doc = "Calls [VisitMut`::visit_mut_import_star_as_specifier`] with `self`."]
60083    fn visit_mut_with(&mut self, visitor: &mut V) {
60084        <V as VisitMut>::visit_mut_import_star_as_specifier(visitor, self)
60085    }
60086
60087    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60088        match self {
60089            ImportStarAsSpecifier { span, local } => {
60090                {
60091                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60092                };
60093                {
60094                    <Ident as VisitMutWith<V>>::visit_mut_with(local, visitor)
60095                };
60096            }
60097        }
60098    }
60099}
60100impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportWith {
60101    #[doc = "Calls [VisitMut`::visit_mut_import_with`] with `self`."]
60102    fn visit_mut_with(&mut self, visitor: &mut V) {
60103        <V as VisitMut>::visit_mut_import_with(visitor, self)
60104    }
60105
60106    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60107        match self {
60108            ImportWith { span, values } => {
60109                {
60110                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60111                };
60112                {
60113                    <Vec<ImportWithItem> as VisitMutWith<V>>::visit_mut_with(values, visitor)
60114                };
60115            }
60116        }
60117    }
60118}
60119impl<V: ?Sized + VisitMut> VisitMutWith<V> for ImportWithItem {
60120    #[doc = "Calls [VisitMut`::visit_mut_import_with_item`] with `self`."]
60121    fn visit_mut_with(&mut self, visitor: &mut V) {
60122        <V as VisitMut>::visit_mut_import_with_item(visitor, self)
60123    }
60124
60125    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60126        match self {
60127            ImportWithItem { key, value } => {
60128                {
60129                    <IdentName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60130                };
60131                {
60132                    <Str as VisitMutWith<V>>::visit_mut_with(value, visitor)
60133                };
60134            }
60135        }
60136    }
60137}
60138impl<V: ?Sized + VisitMut> VisitMutWith<V> for Invalid {
60139    #[doc = "Calls [VisitMut`::visit_mut_invalid`] with `self`."]
60140    fn visit_mut_with(&mut self, visitor: &mut V) {
60141        <V as VisitMut>::visit_mut_invalid(visitor, self)
60142    }
60143
60144    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60145        match self {
60146            Invalid { span } => {
60147                {
60148                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60149                };
60150            }
60151        }
60152    }
60153}
60154impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttr {
60155    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr`] with `self`."]
60156    fn visit_mut_with(&mut self, visitor: &mut V) {
60157        <V as VisitMut>::visit_mut_jsx_attr(visitor, self)
60158    }
60159
60160    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60161        match self {
60162            JSXAttr { span, name, value } => {
60163                {
60164                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60165                };
60166                {
60167                    <JSXAttrName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60168                };
60169                {
60170                    <Option<JSXAttrValue> as VisitMutWith<V>>::visit_mut_with(value, visitor)
60171                };
60172            }
60173        }
60174    }
60175}
60176impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttrName {
60177    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_name`] with `self`."]
60178    fn visit_mut_with(&mut self, visitor: &mut V) {
60179        <V as VisitMut>::visit_mut_jsx_attr_name(visitor, self)
60180    }
60181
60182    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60183        match self {
60184            JSXAttrName::Ident { 0: _field_0 } => {
60185                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60186            }
60187            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
60188                <JSXNamespacedName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60189            }
60190        }
60191    }
60192}
60193impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttrOrSpread {
60194    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_or_spread`] with `self`."]
60195    fn visit_mut_with(&mut self, visitor: &mut V) {
60196        <V as VisitMut>::visit_mut_jsx_attr_or_spread(visitor, self)
60197    }
60198
60199    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60200        match self {
60201            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
60202                <JSXAttr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60203            }
60204            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
60205                <SpreadElement as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60206            }
60207        }
60208    }
60209}
60210impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXAttrValue {
60211    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_value`] with `self`."]
60212    fn visit_mut_with(&mut self, visitor: &mut V) {
60213        <V as VisitMut>::visit_mut_jsx_attr_value(visitor, self)
60214    }
60215
60216    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60217        match self {
60218            JSXAttrValue::Lit { 0: _field_0 } => {
60219                <Lit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60220            }
60221            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
60222                <JSXExprContainer as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60223            }
60224            JSXAttrValue::JSXElement { 0: _field_0 } => {
60225                <Box<JSXElement> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60226            }
60227            JSXAttrValue::JSXFragment { 0: _field_0 } => {
60228                <JSXFragment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60229            }
60230        }
60231    }
60232}
60233impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXClosingElement {
60234    #[doc = "Calls [VisitMut`::visit_mut_jsx_closing_element`] with `self`."]
60235    fn visit_mut_with(&mut self, visitor: &mut V) {
60236        <V as VisitMut>::visit_mut_jsx_closing_element(visitor, self)
60237    }
60238
60239    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60240        match self {
60241            JSXClosingElement { span, name } => {
60242                {
60243                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60244                };
60245                {
60246                    <JSXElementName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60247                };
60248            }
60249        }
60250    }
60251}
60252impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXClosingFragment {
60253    #[doc = "Calls [VisitMut`::visit_mut_jsx_closing_fragment`] with `self`."]
60254    fn visit_mut_with(&mut self, visitor: &mut V) {
60255        <V as VisitMut>::visit_mut_jsx_closing_fragment(visitor, self)
60256    }
60257
60258    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60259        match self {
60260            JSXClosingFragment { span } => {
60261                {
60262                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60263                };
60264            }
60265        }
60266    }
60267}
60268impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXElement {
60269    #[doc = "Calls [VisitMut`::visit_mut_jsx_element`] with `self`."]
60270    fn visit_mut_with(&mut self, visitor: &mut V) {
60271        <V as VisitMut>::visit_mut_jsx_element(visitor, self)
60272    }
60273
60274    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60275        match self {
60276            JSXElement {
60277                span,
60278                opening,
60279                children,
60280                closing,
60281            } => {
60282                {
60283                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60284                };
60285                {
60286                    <JSXOpeningElement as VisitMutWith<V>>::visit_mut_with(opening, visitor)
60287                };
60288                {
60289                    <Vec<JSXElementChild> as VisitMutWith<V>>::visit_mut_with(children, visitor)
60290                };
60291                {
60292                    <Option<JSXClosingElement> as VisitMutWith<V>>::visit_mut_with(closing, visitor)
60293                };
60294            }
60295        }
60296    }
60297}
60298impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXElementChild {
60299    #[doc = "Calls [VisitMut`::visit_mut_jsx_element_child`] with `self`."]
60300    fn visit_mut_with(&mut self, visitor: &mut V) {
60301        <V as VisitMut>::visit_mut_jsx_element_child(visitor, self)
60302    }
60303
60304    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60305        match self {
60306            JSXElementChild::JSXText { 0: _field_0 } => {
60307                <JSXText as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60308            }
60309            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
60310                <JSXExprContainer as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60311            }
60312            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
60313                <JSXSpreadChild as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60314            }
60315            JSXElementChild::JSXElement { 0: _field_0 } => {
60316                <Box<JSXElement> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60317            }
60318            JSXElementChild::JSXFragment { 0: _field_0 } => {
60319                <JSXFragment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60320            }
60321        }
60322    }
60323}
60324impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXElementName {
60325    #[doc = "Calls [VisitMut`::visit_mut_jsx_element_name`] with `self`."]
60326    fn visit_mut_with(&mut self, visitor: &mut V) {
60327        <V as VisitMut>::visit_mut_jsx_element_name(visitor, self)
60328    }
60329
60330    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60331        match self {
60332            JSXElementName::Ident { 0: _field_0 } => {
60333                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60334            }
60335            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
60336                <JSXMemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60337            }
60338            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
60339                <JSXNamespacedName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60340            }
60341        }
60342    }
60343}
60344impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXEmptyExpr {
60345    #[doc = "Calls [VisitMut`::visit_mut_jsx_empty_expr`] with `self`."]
60346    fn visit_mut_with(&mut self, visitor: &mut V) {
60347        <V as VisitMut>::visit_mut_jsx_empty_expr(visitor, self)
60348    }
60349
60350    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60351        match self {
60352            JSXEmptyExpr { span } => {
60353                {
60354                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60355                };
60356            }
60357        }
60358    }
60359}
60360impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXExpr {
60361    #[doc = "Calls [VisitMut`::visit_mut_jsx_expr`] with `self`."]
60362    fn visit_mut_with(&mut self, visitor: &mut V) {
60363        <V as VisitMut>::visit_mut_jsx_expr(visitor, self)
60364    }
60365
60366    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60367        match self {
60368            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
60369                <JSXEmptyExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60370            }
60371            JSXExpr::Expr { 0: _field_0 } => {
60372                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60373            }
60374        }
60375    }
60376}
60377impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXExprContainer {
60378    #[doc = "Calls [VisitMut`::visit_mut_jsx_expr_container`] with `self`."]
60379    fn visit_mut_with(&mut self, visitor: &mut V) {
60380        <V as VisitMut>::visit_mut_jsx_expr_container(visitor, self)
60381    }
60382
60383    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60384        match self {
60385            JSXExprContainer { span, expr } => {
60386                {
60387                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60388                };
60389                {
60390                    <JSXExpr as VisitMutWith<V>>::visit_mut_with(expr, visitor)
60391                };
60392            }
60393        }
60394    }
60395}
60396impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXFragment {
60397    #[doc = "Calls [VisitMut`::visit_mut_jsx_fragment`] with `self`."]
60398    fn visit_mut_with(&mut self, visitor: &mut V) {
60399        <V as VisitMut>::visit_mut_jsx_fragment(visitor, self)
60400    }
60401
60402    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60403        match self {
60404            JSXFragment {
60405                span,
60406                opening,
60407                children,
60408                closing,
60409            } => {
60410                {
60411                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60412                };
60413                {
60414                    <JSXOpeningFragment as VisitMutWith<V>>::visit_mut_with(opening, visitor)
60415                };
60416                {
60417                    <Vec<JSXElementChild> as VisitMutWith<V>>::visit_mut_with(children, visitor)
60418                };
60419                {
60420                    <JSXClosingFragment as VisitMutWith<V>>::visit_mut_with(closing, visitor)
60421                };
60422            }
60423        }
60424    }
60425}
60426impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXMemberExpr {
60427    #[doc = "Calls [VisitMut`::visit_mut_jsx_member_expr`] with `self`."]
60428    fn visit_mut_with(&mut self, visitor: &mut V) {
60429        <V as VisitMut>::visit_mut_jsx_member_expr(visitor, self)
60430    }
60431
60432    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60433        match self {
60434            JSXMemberExpr { span, obj, prop } => {
60435                {
60436                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60437                };
60438                {
60439                    <JSXObject as VisitMutWith<V>>::visit_mut_with(obj, visitor)
60440                };
60441                {
60442                    <IdentName as VisitMutWith<V>>::visit_mut_with(prop, visitor)
60443                };
60444            }
60445        }
60446    }
60447}
60448impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXNamespacedName {
60449    #[doc = "Calls [VisitMut`::visit_mut_jsx_namespaced_name`] with `self`."]
60450    fn visit_mut_with(&mut self, visitor: &mut V) {
60451        <V as VisitMut>::visit_mut_jsx_namespaced_name(visitor, self)
60452    }
60453
60454    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60455        match self {
60456            JSXNamespacedName { span, ns, name } => {
60457                {
60458                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60459                };
60460                {
60461                    <IdentName as VisitMutWith<V>>::visit_mut_with(ns, visitor)
60462                };
60463                {
60464                    <IdentName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60465                };
60466            }
60467        }
60468    }
60469}
60470impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXObject {
60471    #[doc = "Calls [VisitMut`::visit_mut_jsx_object`] with `self`."]
60472    fn visit_mut_with(&mut self, visitor: &mut V) {
60473        <V as VisitMut>::visit_mut_jsx_object(visitor, self)
60474    }
60475
60476    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60477        match self {
60478            JSXObject::JSXMemberExpr { 0: _field_0 } => {
60479                <Box<JSXMemberExpr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60480            }
60481            JSXObject::Ident { 0: _field_0 } => {
60482                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60483            }
60484        }
60485    }
60486}
60487impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXOpeningElement {
60488    #[doc = "Calls [VisitMut`::visit_mut_jsx_opening_element`] with `self`."]
60489    fn visit_mut_with(&mut self, visitor: &mut V) {
60490        <V as VisitMut>::visit_mut_jsx_opening_element(visitor, self)
60491    }
60492
60493    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60494        match self {
60495            JSXOpeningElement {
60496                name,
60497                span,
60498                attrs,
60499                self_closing,
60500                type_args,
60501            } => {
60502                {
60503                    <JSXElementName as VisitMutWith<V>>::visit_mut_with(name, visitor)
60504                };
60505                {
60506                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60507                };
60508                {
60509                    <Vec<JSXAttrOrSpread> as VisitMutWith<V>>::visit_mut_with(attrs, visitor)
60510                };
60511                {
60512                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
60513                        type_args, visitor,
60514                    )
60515                };
60516            }
60517        }
60518    }
60519}
60520impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXOpeningFragment {
60521    #[doc = "Calls [VisitMut`::visit_mut_jsx_opening_fragment`] with `self`."]
60522    fn visit_mut_with(&mut self, visitor: &mut V) {
60523        <V as VisitMut>::visit_mut_jsx_opening_fragment(visitor, self)
60524    }
60525
60526    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60527        match self {
60528            JSXOpeningFragment { span } => {
60529                {
60530                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60531                };
60532            }
60533        }
60534    }
60535}
60536impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXSpreadChild {
60537    #[doc = "Calls [VisitMut`::visit_mut_jsx_spread_child`] with `self`."]
60538    fn visit_mut_with(&mut self, visitor: &mut V) {
60539        <V as VisitMut>::visit_mut_jsx_spread_child(visitor, self)
60540    }
60541
60542    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60543        match self {
60544            JSXSpreadChild { span, expr } => {
60545                {
60546                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60547                };
60548                {
60549                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
60550                };
60551            }
60552        }
60553    }
60554}
60555impl<V: ?Sized + VisitMut> VisitMutWith<V> for JSXText {
60556    #[doc = "Calls [VisitMut`::visit_mut_jsx_text`] with `self`."]
60557    fn visit_mut_with(&mut self, visitor: &mut V) {
60558        <V as VisitMut>::visit_mut_jsx_text(visitor, self)
60559    }
60560
60561    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60562        match self {
60563            JSXText { span, value, raw } => {
60564                {
60565                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60566                };
60567                {
60568                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(value, visitor)
60569                };
60570                {
60571                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(raw, visitor)
60572                };
60573            }
60574        }
60575    }
60576}
60577impl<V: ?Sized + VisitMut> VisitMutWith<V> for Key {
60578    #[doc = "Calls [VisitMut`::visit_mut_key`] with `self`."]
60579    fn visit_mut_with(&mut self, visitor: &mut V) {
60580        <V as VisitMut>::visit_mut_key(visitor, self)
60581    }
60582
60583    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60584        match self {
60585            Key::Private { 0: _field_0 } => {
60586                <PrivateName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60587            }
60588            Key::Public { 0: _field_0 } => {
60589                <PropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60590            }
60591        }
60592    }
60593}
60594impl<V: ?Sized + VisitMut> VisitMutWith<V> for KeyValuePatProp {
60595    #[doc = "Calls [VisitMut`::visit_mut_key_value_pat_prop`] with `self`."]
60596    fn visit_mut_with(&mut self, visitor: &mut V) {
60597        <V as VisitMut>::visit_mut_key_value_pat_prop(visitor, self)
60598    }
60599
60600    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60601        match self {
60602            KeyValuePatProp { key, value } => {
60603                {
60604                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60605                };
60606                {
60607                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(value, visitor)
60608                };
60609            }
60610        }
60611    }
60612}
60613impl<V: ?Sized + VisitMut> VisitMutWith<V> for KeyValueProp {
60614    #[doc = "Calls [VisitMut`::visit_mut_key_value_prop`] with `self`."]
60615    fn visit_mut_with(&mut self, visitor: &mut V) {
60616        <V as VisitMut>::visit_mut_key_value_prop(visitor, self)
60617    }
60618
60619    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60620        match self {
60621            KeyValueProp { key, value } => {
60622                {
60623                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60624                };
60625                {
60626                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(value, visitor)
60627                };
60628            }
60629        }
60630    }
60631}
60632impl<V: ?Sized + VisitMut> VisitMutWith<V> for LabeledStmt {
60633    #[doc = "Calls [VisitMut`::visit_mut_labeled_stmt`] with `self`."]
60634    fn visit_mut_with(&mut self, visitor: &mut V) {
60635        <V as VisitMut>::visit_mut_labeled_stmt(visitor, self)
60636    }
60637
60638    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60639        match self {
60640            LabeledStmt { span, label, body } => {
60641                {
60642                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60643                };
60644                {
60645                    <Ident as VisitMutWith<V>>::visit_mut_with(label, visitor)
60646                };
60647                {
60648                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60649                };
60650            }
60651        }
60652    }
60653}
60654impl<V: ?Sized + VisitMut> VisitMutWith<V> for Lit {
60655    #[doc = "Calls [VisitMut`::visit_mut_lit`] with `self`."]
60656    fn visit_mut_with(&mut self, visitor: &mut V) {
60657        <V as VisitMut>::visit_mut_lit(visitor, self)
60658    }
60659
60660    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60661        match self {
60662            Lit::Str { 0: _field_0 } => {
60663                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60664            }
60665            Lit::Bool { 0: _field_0 } => {
60666                <Bool as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60667            }
60668            Lit::Null { 0: _field_0 } => {
60669                <Null as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60670            }
60671            Lit::Num { 0: _field_0 } => {
60672                <Number as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60673            }
60674            Lit::BigInt { 0: _field_0 } => {
60675                <BigInt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60676            }
60677            Lit::Regex { 0: _field_0 } => {
60678                <Regex as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60679            }
60680            Lit::JSXText { 0: _field_0 } => {
60681                <JSXText as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60682            }
60683        }
60684    }
60685}
60686impl<V: ?Sized + VisitMut> VisitMutWith<V> for MemberExpr {
60687    #[doc = "Calls [VisitMut`::visit_mut_member_expr`] with `self`."]
60688    fn visit_mut_with(&mut self, visitor: &mut V) {
60689        <V as VisitMut>::visit_mut_member_expr(visitor, self)
60690    }
60691
60692    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60693        match self {
60694            MemberExpr { span, obj, prop } => {
60695                {
60696                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60697                };
60698                {
60699                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(obj, visitor)
60700                };
60701                {
60702                    <MemberProp as VisitMutWith<V>>::visit_mut_with(prop, visitor)
60703                };
60704            }
60705        }
60706    }
60707}
60708impl<V: ?Sized + VisitMut> VisitMutWith<V> for MemberProp {
60709    #[doc = "Calls [VisitMut`::visit_mut_member_prop`] with `self`."]
60710    fn visit_mut_with(&mut self, visitor: &mut V) {
60711        <V as VisitMut>::visit_mut_member_prop(visitor, self)
60712    }
60713
60714    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60715        match self {
60716            MemberProp::Ident { 0: _field_0 } => {
60717                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60718            }
60719            MemberProp::PrivateName { 0: _field_0 } => {
60720                <PrivateName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60721            }
60722            MemberProp::Computed { 0: _field_0 } => {
60723                <ComputedPropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60724            }
60725        }
60726    }
60727}
60728impl<V: ?Sized + VisitMut> VisitMutWith<V> for MetaPropExpr {
60729    #[doc = "Calls [VisitMut`::visit_mut_meta_prop_expr`] with `self`."]
60730    fn visit_mut_with(&mut self, visitor: &mut V) {
60731        <V as VisitMut>::visit_mut_meta_prop_expr(visitor, self)
60732    }
60733
60734    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60735        match self {
60736            MetaPropExpr { span, kind } => {
60737                {
60738                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60739                };
60740                {
60741                    <MetaPropKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
60742                };
60743            }
60744        }
60745    }
60746}
60747impl<V: ?Sized + VisitMut> VisitMutWith<V> for MetaPropKind {
60748    #[doc = "Calls [VisitMut`::visit_mut_meta_prop_kind`] with `self`."]
60749    fn visit_mut_with(&mut self, visitor: &mut V) {
60750        <V as VisitMut>::visit_mut_meta_prop_kind(visitor, self)
60751    }
60752
60753    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60754        match self {
60755            MetaPropKind::NewTarget => {}
60756            MetaPropKind::ImportMeta => {}
60757        }
60758    }
60759}
60760impl<V: ?Sized + VisitMut> VisitMutWith<V> for MethodKind {
60761    #[doc = "Calls [VisitMut`::visit_mut_method_kind`] with `self`."]
60762    fn visit_mut_with(&mut self, visitor: &mut V) {
60763        <V as VisitMut>::visit_mut_method_kind(visitor, self)
60764    }
60765
60766    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60767        match self {
60768            MethodKind::Method => {}
60769            MethodKind::Getter => {}
60770            MethodKind::Setter => {}
60771        }
60772    }
60773}
60774impl<V: ?Sized + VisitMut> VisitMutWith<V> for MethodProp {
60775    #[doc = "Calls [VisitMut`::visit_mut_method_prop`] with `self`."]
60776    fn visit_mut_with(&mut self, visitor: &mut V) {
60777        <V as VisitMut>::visit_mut_method_prop(visitor, self)
60778    }
60779
60780    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60781        match self {
60782            MethodProp { key, function } => {
60783                {
60784                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
60785                };
60786                {
60787                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
60788                };
60789            }
60790        }
60791    }
60792}
60793impl<V: ?Sized + VisitMut> VisitMutWith<V> for Module {
60794    #[doc = "Calls [VisitMut`::visit_mut_module`] with `self`."]
60795    fn visit_mut_with(&mut self, visitor: &mut V) {
60796        <V as VisitMut>::visit_mut_module(visitor, self)
60797    }
60798
60799    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60800        match self {
60801            Module {
60802                span,
60803                body,
60804                shebang,
60805            } => {
60806                {
60807                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60808                };
60809                {
60810                    <Vec<ModuleItem> as VisitMutWith<V>>::visit_mut_with(body, visitor)
60811                };
60812                {
60813                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(shebang, visitor)
60814                };
60815            }
60816        }
60817    }
60818}
60819impl<V: ?Sized + VisitMut> VisitMutWith<V> for ModuleDecl {
60820    #[doc = "Calls [VisitMut`::visit_mut_module_decl`] with `self`."]
60821    fn visit_mut_with(&mut self, visitor: &mut V) {
60822        <V as VisitMut>::visit_mut_module_decl(visitor, self)
60823    }
60824
60825    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60826        match self {
60827            ModuleDecl::Import { 0: _field_0 } => {
60828                <ImportDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60829            }
60830            ModuleDecl::ExportDecl { 0: _field_0 } => {
60831                <ExportDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60832            }
60833            ModuleDecl::ExportNamed { 0: _field_0 } => {
60834                <NamedExport as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60835            }
60836            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
60837                <ExportDefaultDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60838            }
60839            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
60840                <ExportDefaultExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60841            }
60842            ModuleDecl::ExportAll { 0: _field_0 } => {
60843                <ExportAll as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60844            }
60845            ModuleDecl::TsImportEquals { 0: _field_0 } => {
60846                <Box<TsImportEqualsDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60847            }
60848            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
60849                <TsExportAssignment as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60850            }
60851            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
60852                <TsNamespaceExportDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60853            }
60854        }
60855    }
60856}
60857impl<V: ?Sized + VisitMut> VisitMutWith<V> for ModuleExportName {
60858    #[doc = "Calls [VisitMut`::visit_mut_module_export_name`] with `self`."]
60859    fn visit_mut_with(&mut self, visitor: &mut V) {
60860        <V as VisitMut>::visit_mut_module_export_name(visitor, self)
60861    }
60862
60863    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60864        match self {
60865            ModuleExportName::Ident { 0: _field_0 } => {
60866                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60867            }
60868            ModuleExportName::Str { 0: _field_0 } => {
60869                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60870            }
60871        }
60872    }
60873}
60874impl<V: ?Sized + VisitMut> VisitMutWith<V> for ModuleItem {
60875    #[doc = "Calls [VisitMut`::visit_mut_module_item`] with `self`."]
60876    fn visit_mut_with(&mut self, visitor: &mut V) {
60877        <V as VisitMut>::visit_mut_module_item(visitor, self)
60878    }
60879
60880    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60881        match self {
60882            ModuleItem::ModuleDecl { 0: _field_0 } => {
60883                <ModuleDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60884            }
60885            ModuleItem::Stmt { 0: _field_0 } => {
60886                <Stmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
60887            }
60888        }
60889    }
60890}
60891impl<V: ?Sized + VisitMut> VisitMutWith<V> for NamedExport {
60892    #[doc = "Calls [VisitMut`::visit_mut_named_export`] with `self`."]
60893    fn visit_mut_with(&mut self, visitor: &mut V) {
60894        <V as VisitMut>::visit_mut_named_export(visitor, self)
60895    }
60896
60897    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60898        match self {
60899            NamedExport {
60900                span,
60901                specifiers,
60902                src,
60903                type_only,
60904                with,
60905            } => {
60906                {
60907                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60908                };
60909                {
60910                    <Vec<ExportSpecifier> as VisitMutWith<V>>::visit_mut_with(specifiers, visitor)
60911                };
60912                {
60913                    <Option<Box<Str>> as VisitMutWith<V>>::visit_mut_with(src, visitor)
60914                };
60915                {
60916                    <Option<Box<ObjectLit>> as VisitMutWith<V>>::visit_mut_with(with, visitor)
60917                };
60918            }
60919        }
60920    }
60921}
60922impl<V: ?Sized + VisitMut> VisitMutWith<V> for NewExpr {
60923    #[doc = "Calls [VisitMut`::visit_mut_new_expr`] with `self`."]
60924    fn visit_mut_with(&mut self, visitor: &mut V) {
60925        <V as VisitMut>::visit_mut_new_expr(visitor, self)
60926    }
60927
60928    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60929        match self {
60930            NewExpr {
60931                span,
60932                ctxt,
60933                callee,
60934                args,
60935                type_args,
60936            } => {
60937                {
60938                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60939                };
60940                {
60941                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
60942                };
60943                {
60944                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(callee, visitor)
60945                };
60946                {
60947                    <Option<Vec<ExprOrSpread>> as VisitMutWith<V>>::visit_mut_with(args, visitor)
60948                };
60949                {
60950                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
60951                        type_args, visitor,
60952                    )
60953                };
60954            }
60955        }
60956    }
60957}
60958impl<V: ?Sized + VisitMut> VisitMutWith<V> for Null {
60959    #[doc = "Calls [VisitMut`::visit_mut_null`] with `self`."]
60960    fn visit_mut_with(&mut self, visitor: &mut V) {
60961        <V as VisitMut>::visit_mut_null(visitor, self)
60962    }
60963
60964    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60965        match self {
60966            Null { span } => {
60967                {
60968                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60969                };
60970            }
60971        }
60972    }
60973}
60974impl<V: ?Sized + VisitMut> VisitMutWith<V> for Number {
60975    #[doc = "Calls [VisitMut`::visit_mut_number`] with `self`."]
60976    fn visit_mut_with(&mut self, visitor: &mut V) {
60977        <V as VisitMut>::visit_mut_number(visitor, self)
60978    }
60979
60980    fn visit_mut_children_with(&mut self, visitor: &mut V) {
60981        match self {
60982            Number { span, value, raw } => {
60983                {
60984                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
60985                };
60986                {
60987                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(raw, visitor)
60988                };
60989            }
60990        }
60991    }
60992}
60993impl<V: ?Sized + VisitMut> VisitMutWith<V> for ObjectLit {
60994    #[doc = "Calls [VisitMut`::visit_mut_object_lit`] with `self`."]
60995    fn visit_mut_with(&mut self, visitor: &mut V) {
60996        <V as VisitMut>::visit_mut_object_lit(visitor, self)
60997    }
60998
60999    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61000        match self {
61001            ObjectLit { span, props } => {
61002                {
61003                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61004                };
61005                {
61006                    <Vec<PropOrSpread> as VisitMutWith<V>>::visit_mut_with(props, visitor)
61007                };
61008            }
61009        }
61010    }
61011}
61012impl<V: ?Sized + VisitMut> VisitMutWith<V> for ObjectPat {
61013    #[doc = "Calls [VisitMut`::visit_mut_object_pat`] with `self`."]
61014    fn visit_mut_with(&mut self, visitor: &mut V) {
61015        <V as VisitMut>::visit_mut_object_pat(visitor, self)
61016    }
61017
61018    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61019        match self {
61020            ObjectPat {
61021                span,
61022                props,
61023                optional,
61024                type_ann,
61025            } => {
61026                {
61027                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61028                };
61029                {
61030                    <Vec<ObjectPatProp> as VisitMutWith<V>>::visit_mut_with(props, visitor)
61031                };
61032                {
61033                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
61034                };
61035            }
61036        }
61037    }
61038}
61039impl<V: ?Sized + VisitMut> VisitMutWith<V> for ObjectPatProp {
61040    #[doc = "Calls [VisitMut`::visit_mut_object_pat_prop`] with `self`."]
61041    fn visit_mut_with(&mut self, visitor: &mut V) {
61042        <V as VisitMut>::visit_mut_object_pat_prop(visitor, self)
61043    }
61044
61045    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61046        match self {
61047            ObjectPatProp::KeyValue { 0: _field_0 } => {
61048                <KeyValuePatProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61049            }
61050            ObjectPatProp::Assign { 0: _field_0 } => {
61051                <AssignPatProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61052            }
61053            ObjectPatProp::Rest { 0: _field_0 } => {
61054                <RestPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61055            }
61056        }
61057    }
61058}
61059impl<V: ?Sized + VisitMut> VisitMutWith<V> for OptCall {
61060    #[doc = "Calls [VisitMut`::visit_mut_opt_call`] with `self`."]
61061    fn visit_mut_with(&mut self, visitor: &mut V) {
61062        <V as VisitMut>::visit_mut_opt_call(visitor, self)
61063    }
61064
61065    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61066        match self {
61067            OptCall {
61068                span,
61069                ctxt,
61070                callee,
61071                args,
61072                type_args,
61073            } => {
61074                {
61075                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61076                };
61077                {
61078                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
61079                };
61080                {
61081                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(callee, visitor)
61082                };
61083                {
61084                    <Vec<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(args, visitor)
61085                };
61086                {
61087                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
61088                        type_args, visitor,
61089                    )
61090                };
61091            }
61092        }
61093    }
61094}
61095impl<V: ?Sized + VisitMut> VisitMutWith<V> for OptChainBase {
61096    #[doc = "Calls [VisitMut`::visit_mut_opt_chain_base`] with `self`."]
61097    fn visit_mut_with(&mut self, visitor: &mut V) {
61098        <V as VisitMut>::visit_mut_opt_chain_base(visitor, self)
61099    }
61100
61101    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61102        match self {
61103            OptChainBase::Member { 0: _field_0 } => {
61104                <MemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61105            }
61106            OptChainBase::Call { 0: _field_0 } => {
61107                <OptCall as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61108            }
61109        }
61110    }
61111}
61112impl<V: ?Sized + VisitMut> VisitMutWith<V> for OptChainExpr {
61113    #[doc = "Calls [VisitMut`::visit_mut_opt_chain_expr`] with `self`."]
61114    fn visit_mut_with(&mut self, visitor: &mut V) {
61115        <V as VisitMut>::visit_mut_opt_chain_expr(visitor, self)
61116    }
61117
61118    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61119        match self {
61120            OptChainExpr {
61121                span,
61122                optional,
61123                base,
61124            } => {
61125                {
61126                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61127                };
61128                {
61129                    <Box<OptChainBase> as VisitMutWith<V>>::visit_mut_with(base, visitor)
61130                };
61131            }
61132        }
61133    }
61134}
61135impl<V: ?Sized + VisitMut> VisitMutWith<V> for Param {
61136    #[doc = "Calls [VisitMut`::visit_mut_param`] with `self`."]
61137    fn visit_mut_with(&mut self, visitor: &mut V) {
61138        <V as VisitMut>::visit_mut_param(visitor, self)
61139    }
61140
61141    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61142        match self {
61143            Param {
61144                span,
61145                decorators,
61146                pat,
61147            } => {
61148                {
61149                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61150                };
61151                {
61152                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
61153                };
61154                {
61155                    <Pat as VisitMutWith<V>>::visit_mut_with(pat, visitor)
61156                };
61157            }
61158        }
61159    }
61160}
61161impl<V: ?Sized + VisitMut> VisitMutWith<V> for ParamOrTsParamProp {
61162    #[doc = "Calls [VisitMut`::visit_mut_param_or_ts_param_prop`] with `self`."]
61163    fn visit_mut_with(&mut self, visitor: &mut V) {
61164        <V as VisitMut>::visit_mut_param_or_ts_param_prop(visitor, self)
61165    }
61166
61167    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61168        match self {
61169            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
61170                <TsParamProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61171            }
61172            ParamOrTsParamProp::Param { 0: _field_0 } => {
61173                <Param as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61174            }
61175        }
61176    }
61177}
61178impl<V: ?Sized + VisitMut> VisitMutWith<V> for ParenExpr {
61179    #[doc = "Calls [VisitMut`::visit_mut_paren_expr`] with `self`."]
61180    fn visit_mut_with(&mut self, visitor: &mut V) {
61181        <V as VisitMut>::visit_mut_paren_expr(visitor, self)
61182    }
61183
61184    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61185        match self {
61186            ParenExpr { span, expr } => {
61187                {
61188                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61189                };
61190                {
61191                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
61192                };
61193            }
61194        }
61195    }
61196}
61197impl<V: ?Sized + VisitMut> VisitMutWith<V> for Pat {
61198    #[doc = "Calls [VisitMut`::visit_mut_pat`] with `self`."]
61199    fn visit_mut_with(&mut self, visitor: &mut V) {
61200        <V as VisitMut>::visit_mut_pat(visitor, self)
61201    }
61202
61203    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61204        match self {
61205            Pat::Ident { 0: _field_0 } => {
61206                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61207            }
61208            Pat::Array { 0: _field_0 } => {
61209                <ArrayPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61210            }
61211            Pat::Rest { 0: _field_0 } => {
61212                <RestPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61213            }
61214            Pat::Object { 0: _field_0 } => {
61215                <ObjectPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61216            }
61217            Pat::Assign { 0: _field_0 } => {
61218                <AssignPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61219            }
61220            Pat::Invalid { 0: _field_0 } => {
61221                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61222            }
61223            Pat::Expr { 0: _field_0 } => {
61224                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61225            }
61226        }
61227    }
61228}
61229impl<V: ?Sized + VisitMut> VisitMutWith<V> for PrivateMethod {
61230    #[doc = "Calls [VisitMut`::visit_mut_private_method`] with `self`."]
61231    fn visit_mut_with(&mut self, visitor: &mut V) {
61232        <V as VisitMut>::visit_mut_private_method(visitor, self)
61233    }
61234
61235    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61236        match self {
61237            PrivateMethod {
61238                span,
61239                key,
61240                function,
61241                kind,
61242                is_static,
61243                accessibility,
61244                is_abstract,
61245                is_optional,
61246                is_override,
61247            } => {
61248                {
61249                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61250                };
61251                {
61252                    <PrivateName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61253                };
61254                {
61255                    <Box<Function> as VisitMutWith<V>>::visit_mut_with(function, visitor)
61256                };
61257                {
61258                    <MethodKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
61259                };
61260                {
61261                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
61262                        accessibility,
61263                        visitor,
61264                    )
61265                };
61266            }
61267        }
61268    }
61269}
61270impl<V: ?Sized + VisitMut> VisitMutWith<V> for PrivateName {
61271    #[doc = "Calls [VisitMut`::visit_mut_private_name`] with `self`."]
61272    fn visit_mut_with(&mut self, visitor: &mut V) {
61273        <V as VisitMut>::visit_mut_private_name(visitor, self)
61274    }
61275
61276    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61277        match self {
61278            PrivateName { span, name } => {
61279                {
61280                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61281                };
61282                {
61283                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(name, visitor)
61284                };
61285            }
61286        }
61287    }
61288}
61289impl<V: ?Sized + VisitMut> VisitMutWith<V> for PrivateProp {
61290    #[doc = "Calls [VisitMut`::visit_mut_private_prop`] with `self`."]
61291    fn visit_mut_with(&mut self, visitor: &mut V) {
61292        <V as VisitMut>::visit_mut_private_prop(visitor, self)
61293    }
61294
61295    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61296        match self {
61297            PrivateProp {
61298                span,
61299                ctxt,
61300                key,
61301                value,
61302                type_ann,
61303                is_static,
61304                decorators,
61305                accessibility,
61306                is_optional,
61307                is_override,
61308                readonly,
61309                definite,
61310            } => {
61311                {
61312                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61313                };
61314                {
61315                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
61316                };
61317                {
61318                    <PrivateName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61319                };
61320                {
61321                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(value, visitor)
61322                };
61323                {
61324                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
61325                };
61326                {
61327                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
61328                };
61329                {
61330                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
61331                        accessibility,
61332                        visitor,
61333                    )
61334                };
61335            }
61336        }
61337    }
61338}
61339impl<V: ?Sized + VisitMut> VisitMutWith<V> for Program {
61340    #[doc = "Calls [VisitMut`::visit_mut_program`] with `self`."]
61341    fn visit_mut_with(&mut self, visitor: &mut V) {
61342        <V as VisitMut>::visit_mut_program(visitor, self)
61343    }
61344
61345    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61346        match self {
61347            Program::Module { 0: _field_0 } => {
61348                <Module as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61349            }
61350            Program::Script { 0: _field_0 } => {
61351                <Script as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61352            }
61353        }
61354    }
61355}
61356impl<V: ?Sized + VisitMut> VisitMutWith<V> for Prop {
61357    #[doc = "Calls [VisitMut`::visit_mut_prop`] with `self`."]
61358    fn visit_mut_with(&mut self, visitor: &mut V) {
61359        <V as VisitMut>::visit_mut_prop(visitor, self)
61360    }
61361
61362    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61363        match self {
61364            Prop::Shorthand { 0: _field_0 } => {
61365                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61366            }
61367            Prop::KeyValue { 0: _field_0 } => {
61368                <KeyValueProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61369            }
61370            Prop::Assign { 0: _field_0 } => {
61371                <AssignProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61372            }
61373            Prop::Getter { 0: _field_0 } => {
61374                <GetterProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61375            }
61376            Prop::Setter { 0: _field_0 } => {
61377                <SetterProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61378            }
61379            Prop::Method { 0: _field_0 } => {
61380                <MethodProp as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61381            }
61382        }
61383    }
61384}
61385impl<V: ?Sized + VisitMut> VisitMutWith<V> for PropName {
61386    #[doc = "Calls [VisitMut`::visit_mut_prop_name`] with `self`."]
61387    fn visit_mut_with(&mut self, visitor: &mut V) {
61388        <V as VisitMut>::visit_mut_prop_name(visitor, self)
61389    }
61390
61391    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61392        match self {
61393            PropName::Ident { 0: _field_0 } => {
61394                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61395            }
61396            PropName::Str { 0: _field_0 } => {
61397                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61398            }
61399            PropName::Num { 0: _field_0 } => {
61400                <Number as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61401            }
61402            PropName::Computed { 0: _field_0 } => {
61403                <ComputedPropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61404            }
61405            PropName::BigInt { 0: _field_0 } => {
61406                <BigInt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61407            }
61408        }
61409    }
61410}
61411impl<V: ?Sized + VisitMut> VisitMutWith<V> for PropOrSpread {
61412    #[doc = "Calls [VisitMut`::visit_mut_prop_or_spread`] with `self`."]
61413    fn visit_mut_with(&mut self, visitor: &mut V) {
61414        <V as VisitMut>::visit_mut_prop_or_spread(visitor, self)
61415    }
61416
61417    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61418        match self {
61419            PropOrSpread::Spread { 0: _field_0 } => {
61420                <SpreadElement as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61421            }
61422            PropOrSpread::Prop { 0: _field_0 } => {
61423                <Box<Prop> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61424            }
61425        }
61426    }
61427}
61428impl<V: ?Sized + VisitMut> VisitMutWith<V> for Regex {
61429    #[doc = "Calls [VisitMut`::visit_mut_regex`] with `self`."]
61430    fn visit_mut_with(&mut self, visitor: &mut V) {
61431        <V as VisitMut>::visit_mut_regex(visitor, self)
61432    }
61433
61434    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61435        match self {
61436            Regex { span, exp, flags } => {
61437                {
61438                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61439                };
61440                {
61441                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(exp, visitor)
61442                };
61443                {
61444                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(flags, visitor)
61445                };
61446            }
61447        }
61448    }
61449}
61450impl<V: ?Sized + VisitMut> VisitMutWith<V> for RestPat {
61451    #[doc = "Calls [VisitMut`::visit_mut_rest_pat`] with `self`."]
61452    fn visit_mut_with(&mut self, visitor: &mut V) {
61453        <V as VisitMut>::visit_mut_rest_pat(visitor, self)
61454    }
61455
61456    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61457        match self {
61458            RestPat {
61459                span,
61460                dot3_token,
61461                arg,
61462                type_ann,
61463            } => {
61464                {
61465                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61466                };
61467                {
61468                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(dot3_token, visitor)
61469                };
61470                {
61471                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
61472                };
61473                {
61474                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
61475                };
61476            }
61477        }
61478    }
61479}
61480impl<V: ?Sized + VisitMut> VisitMutWith<V> for ReturnStmt {
61481    #[doc = "Calls [VisitMut`::visit_mut_return_stmt`] with `self`."]
61482    fn visit_mut_with(&mut self, visitor: &mut V) {
61483        <V as VisitMut>::visit_mut_return_stmt(visitor, self)
61484    }
61485
61486    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61487        match self {
61488            ReturnStmt { span, arg } => {
61489                {
61490                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61491                };
61492                {
61493                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
61494                };
61495            }
61496        }
61497    }
61498}
61499impl<V: ?Sized + VisitMut> VisitMutWith<V> for Script {
61500    #[doc = "Calls [VisitMut`::visit_mut_script`] with `self`."]
61501    fn visit_mut_with(&mut self, visitor: &mut V) {
61502        <V as VisitMut>::visit_mut_script(visitor, self)
61503    }
61504
61505    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61506        match self {
61507            Script {
61508                span,
61509                body,
61510                shebang,
61511            } => {
61512                {
61513                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61514                };
61515                {
61516                    <Vec<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
61517                };
61518                {
61519                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(shebang, visitor)
61520                };
61521            }
61522        }
61523    }
61524}
61525impl<V: ?Sized + VisitMut> VisitMutWith<V> for SeqExpr {
61526    #[doc = "Calls [VisitMut`::visit_mut_seq_expr`] with `self`."]
61527    fn visit_mut_with(&mut self, visitor: &mut V) {
61528        <V as VisitMut>::visit_mut_seq_expr(visitor, self)
61529    }
61530
61531    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61532        match self {
61533            SeqExpr { span, exprs } => {
61534                {
61535                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61536                };
61537                {
61538                    <Vec<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(exprs, visitor)
61539                };
61540            }
61541        }
61542    }
61543}
61544impl<V: ?Sized + VisitMut> VisitMutWith<V> for SetterProp {
61545    #[doc = "Calls [VisitMut`::visit_mut_setter_prop`] with `self`."]
61546    fn visit_mut_with(&mut self, visitor: &mut V) {
61547        <V as VisitMut>::visit_mut_setter_prop(visitor, self)
61548    }
61549
61550    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61551        match self {
61552            SetterProp {
61553                span,
61554                key,
61555                this_param,
61556                param,
61557                body,
61558            } => {
61559                {
61560                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61561                };
61562                {
61563                    <PropName as VisitMutWith<V>>::visit_mut_with(key, visitor)
61564                };
61565                {
61566                    <Option<Pat> as VisitMutWith<V>>::visit_mut_with(this_param, visitor)
61567                };
61568                {
61569                    <Box<Pat> as VisitMutWith<V>>::visit_mut_with(param, visitor)
61570                };
61571                {
61572                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
61573                };
61574            }
61575        }
61576    }
61577}
61578impl<V: ?Sized + VisitMut> VisitMutWith<V> for SimpleAssignTarget {
61579    #[doc = "Calls [VisitMut`::visit_mut_simple_assign_target`] with `self`."]
61580    fn visit_mut_with(&mut self, visitor: &mut V) {
61581        <V as VisitMut>::visit_mut_simple_assign_target(visitor, self)
61582    }
61583
61584    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61585        match self {
61586            SimpleAssignTarget::Ident { 0: _field_0 } => {
61587                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61588            }
61589            SimpleAssignTarget::Member { 0: _field_0 } => {
61590                <MemberExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61591            }
61592            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
61593                <SuperPropExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61594            }
61595            SimpleAssignTarget::Paren { 0: _field_0 } => {
61596                <ParenExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61597            }
61598            SimpleAssignTarget::OptChain { 0: _field_0 } => {
61599                <OptChainExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61600            }
61601            SimpleAssignTarget::TsAs { 0: _field_0 } => {
61602                <TsAsExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61603            }
61604            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
61605                <TsSatisfiesExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61606            }
61607            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
61608                <TsNonNullExpr as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61609            }
61610            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
61611                <TsTypeAssertion as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61612            }
61613            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
61614                <TsInstantiation as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61615            }
61616            SimpleAssignTarget::Invalid { 0: _field_0 } => {
61617                <Invalid as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61618            }
61619        }
61620    }
61621}
61622impl<V: ?Sized + VisitMut> VisitMutWith<V> for SpreadElement {
61623    #[doc = "Calls [VisitMut`::visit_mut_spread_element`] with `self`."]
61624    fn visit_mut_with(&mut self, visitor: &mut V) {
61625        <V as VisitMut>::visit_mut_spread_element(visitor, self)
61626    }
61627
61628    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61629        match self {
61630            SpreadElement { dot3_token, expr } => {
61631                {
61632                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(dot3_token, visitor)
61633                };
61634                {
61635                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
61636                };
61637            }
61638        }
61639    }
61640}
61641impl<V: ?Sized + VisitMut> VisitMutWith<V> for StaticBlock {
61642    #[doc = "Calls [VisitMut`::visit_mut_static_block`] with `self`."]
61643    fn visit_mut_with(&mut self, visitor: &mut V) {
61644        <V as VisitMut>::visit_mut_static_block(visitor, self)
61645    }
61646
61647    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61648        match self {
61649            StaticBlock { span, body } => {
61650                {
61651                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61652                };
61653                {
61654                    <BlockStmt as VisitMutWith<V>>::visit_mut_with(body, visitor)
61655                };
61656            }
61657        }
61658    }
61659}
61660impl<V: ?Sized + VisitMut> VisitMutWith<V> for Stmt {
61661    #[doc = "Calls [VisitMut`::visit_mut_stmt`] with `self`."]
61662    fn visit_mut_with(&mut self, visitor: &mut V) {
61663        <V as VisitMut>::visit_mut_stmt(visitor, self)
61664    }
61665
61666    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61667        match self {
61668            Stmt::Block { 0: _field_0 } => {
61669                <BlockStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61670            }
61671            Stmt::Empty { 0: _field_0 } => {
61672                <EmptyStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61673            }
61674            Stmt::Debugger { 0: _field_0 } => {
61675                <DebuggerStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61676            }
61677            Stmt::With { 0: _field_0 } => {
61678                <WithStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61679            }
61680            Stmt::Return { 0: _field_0 } => {
61681                <ReturnStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61682            }
61683            Stmt::Labeled { 0: _field_0 } => {
61684                <LabeledStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61685            }
61686            Stmt::Break { 0: _field_0 } => {
61687                <BreakStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61688            }
61689            Stmt::Continue { 0: _field_0 } => {
61690                <ContinueStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61691            }
61692            Stmt::If { 0: _field_0 } => {
61693                <IfStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61694            }
61695            Stmt::Switch { 0: _field_0 } => {
61696                <SwitchStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61697            }
61698            Stmt::Throw { 0: _field_0 } => {
61699                <ThrowStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61700            }
61701            Stmt::Try { 0: _field_0 } => {
61702                <Box<TryStmt> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61703            }
61704            Stmt::While { 0: _field_0 } => {
61705                <WhileStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61706            }
61707            Stmt::DoWhile { 0: _field_0 } => {
61708                <DoWhileStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61709            }
61710            Stmt::For { 0: _field_0 } => {
61711                <ForStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61712            }
61713            Stmt::ForIn { 0: _field_0 } => {
61714                <ForInStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61715            }
61716            Stmt::ForOf { 0: _field_0 } => {
61717                <ForOfStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61718            }
61719            Stmt::Decl { 0: _field_0 } => {
61720                <Decl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61721            }
61722            Stmt::Expr { 0: _field_0 } => {
61723                <ExprStmt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61724            }
61725        }
61726    }
61727}
61728impl<V: ?Sized + VisitMut> VisitMutWith<V> for Str {
61729    #[doc = "Calls [VisitMut`::visit_mut_str`] with `self`."]
61730    fn visit_mut_with(&mut self, visitor: &mut V) {
61731        <V as VisitMut>::visit_mut_str(visitor, self)
61732    }
61733
61734    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61735        match self {
61736            Str { span, value, raw } => {
61737                {
61738                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61739                };
61740                {
61741                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(value, visitor)
61742                };
61743                {
61744                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(raw, visitor)
61745                };
61746            }
61747        }
61748    }
61749}
61750impl<V: ?Sized + VisitMut> VisitMutWith<V> for Super {
61751    #[doc = "Calls [VisitMut`::visit_mut_super`] with `self`."]
61752    fn visit_mut_with(&mut self, visitor: &mut V) {
61753        <V as VisitMut>::visit_mut_super(visitor, self)
61754    }
61755
61756    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61757        match self {
61758            Super { span } => {
61759                {
61760                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61761                };
61762            }
61763        }
61764    }
61765}
61766impl<V: ?Sized + VisitMut> VisitMutWith<V> for SuperProp {
61767    #[doc = "Calls [VisitMut`::visit_mut_super_prop`] with `self`."]
61768    fn visit_mut_with(&mut self, visitor: &mut V) {
61769        <V as VisitMut>::visit_mut_super_prop(visitor, self)
61770    }
61771
61772    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61773        match self {
61774            SuperProp::Ident { 0: _field_0 } => {
61775                <IdentName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61776            }
61777            SuperProp::Computed { 0: _field_0 } => {
61778                <ComputedPropName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
61779            }
61780        }
61781    }
61782}
61783impl<V: ?Sized + VisitMut> VisitMutWith<V> for SuperPropExpr {
61784    #[doc = "Calls [VisitMut`::visit_mut_super_prop_expr`] with `self`."]
61785    fn visit_mut_with(&mut self, visitor: &mut V) {
61786        <V as VisitMut>::visit_mut_super_prop_expr(visitor, self)
61787    }
61788
61789    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61790        match self {
61791            SuperPropExpr { span, obj, prop } => {
61792                {
61793                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61794                };
61795                {
61796                    <Super as VisitMutWith<V>>::visit_mut_with(obj, visitor)
61797                };
61798                {
61799                    <SuperProp as VisitMutWith<V>>::visit_mut_with(prop, visitor)
61800                };
61801            }
61802        }
61803    }
61804}
61805impl<V: ?Sized + VisitMut> VisitMutWith<V> for SwitchCase {
61806    #[doc = "Calls [VisitMut`::visit_mut_switch_case`] with `self`."]
61807    fn visit_mut_with(&mut self, visitor: &mut V) {
61808        <V as VisitMut>::visit_mut_switch_case(visitor, self)
61809    }
61810
61811    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61812        match self {
61813            SwitchCase { span, test, cons } => {
61814                {
61815                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61816                };
61817                {
61818                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(test, visitor)
61819                };
61820                {
61821                    <Vec<Stmt> as VisitMutWith<V>>::visit_mut_with(cons, visitor)
61822                };
61823            }
61824        }
61825    }
61826}
61827impl<V: ?Sized + VisitMut> VisitMutWith<V> for SwitchStmt {
61828    #[doc = "Calls [VisitMut`::visit_mut_switch_stmt`] with `self`."]
61829    fn visit_mut_with(&mut self, visitor: &mut V) {
61830        <V as VisitMut>::visit_mut_switch_stmt(visitor, self)
61831    }
61832
61833    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61834        match self {
61835            SwitchStmt {
61836                span,
61837                discriminant,
61838                cases,
61839            } => {
61840                {
61841                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61842                };
61843                {
61844                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(discriminant, visitor)
61845                };
61846                {
61847                    <Vec<SwitchCase> as VisitMutWith<V>>::visit_mut_with(cases, visitor)
61848                };
61849            }
61850        }
61851    }
61852}
61853impl<V: ?Sized + VisitMut> VisitMutWith<V> for TaggedTpl {
61854    #[doc = "Calls [VisitMut`::visit_mut_tagged_tpl`] with `self`."]
61855    fn visit_mut_with(&mut self, visitor: &mut V) {
61856        <V as VisitMut>::visit_mut_tagged_tpl(visitor, self)
61857    }
61858
61859    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61860        match self {
61861            TaggedTpl {
61862                span,
61863                ctxt,
61864                tag,
61865                type_params,
61866                tpl,
61867            } => {
61868                {
61869                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61870                };
61871                {
61872                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
61873                };
61874                {
61875                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(tag, visitor)
61876                };
61877                {
61878                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
61879                        type_params,
61880                        visitor,
61881                    )
61882                };
61883                {
61884                    <Box<Tpl> as VisitMutWith<V>>::visit_mut_with(tpl, visitor)
61885                };
61886            }
61887        }
61888    }
61889}
61890impl<V: ?Sized + VisitMut> VisitMutWith<V> for ThisExpr {
61891    #[doc = "Calls [VisitMut`::visit_mut_this_expr`] with `self`."]
61892    fn visit_mut_with(&mut self, visitor: &mut V) {
61893        <V as VisitMut>::visit_mut_this_expr(visitor, self)
61894    }
61895
61896    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61897        match self {
61898            ThisExpr { span } => {
61899                {
61900                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61901                };
61902            }
61903        }
61904    }
61905}
61906impl<V: ?Sized + VisitMut> VisitMutWith<V> for ThrowStmt {
61907    #[doc = "Calls [VisitMut`::visit_mut_throw_stmt`] with `self`."]
61908    fn visit_mut_with(&mut self, visitor: &mut V) {
61909        <V as VisitMut>::visit_mut_throw_stmt(visitor, self)
61910    }
61911
61912    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61913        match self {
61914            ThrowStmt { span, arg } => {
61915                {
61916                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61917                };
61918                {
61919                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
61920                };
61921            }
61922        }
61923    }
61924}
61925impl<V: ?Sized + VisitMut> VisitMutWith<V> for Tpl {
61926    #[doc = "Calls [VisitMut`::visit_mut_tpl`] with `self`."]
61927    fn visit_mut_with(&mut self, visitor: &mut V) {
61928        <V as VisitMut>::visit_mut_tpl(visitor, self)
61929    }
61930
61931    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61932        match self {
61933            Tpl {
61934                span,
61935                exprs,
61936                quasis,
61937            } => {
61938                {
61939                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61940                };
61941                {
61942                    <Vec<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(exprs, visitor)
61943                };
61944                {
61945                    <Vec<TplElement> as VisitMutWith<V>>::visit_mut_with(quasis, visitor)
61946                };
61947            }
61948        }
61949    }
61950}
61951impl<V: ?Sized + VisitMut> VisitMutWith<V> for TplElement {
61952    #[doc = "Calls [VisitMut`::visit_mut_tpl_element`] with `self`."]
61953    fn visit_mut_with(&mut self, visitor: &mut V) {
61954        <V as VisitMut>::visit_mut_tpl_element(visitor, self)
61955    }
61956
61957    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61958        match self {
61959            TplElement {
61960                span,
61961                tail,
61962                cooked,
61963                raw,
61964            } => {
61965                {
61966                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
61967                };
61968                {
61969                    <Option<swc_atoms::Atom> as VisitMutWith<V>>::visit_mut_with(cooked, visitor)
61970                };
61971                {
61972                    <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(raw, visitor)
61973                };
61974            }
61975        }
61976    }
61977}
61978impl<V: ?Sized + VisitMut> VisitMutWith<V> for TruePlusMinus {
61979    #[doc = "Calls [VisitMut`::visit_mut_true_plus_minus`] with `self`."]
61980    fn visit_mut_with(&mut self, visitor: &mut V) {
61981        <V as VisitMut>::visit_mut_true_plus_minus(visitor, self)
61982    }
61983
61984    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61985        match self {
61986            TruePlusMinus::True => {}
61987            TruePlusMinus::Plus => {}
61988            TruePlusMinus::Minus => {}
61989        }
61990    }
61991}
61992impl<V: ?Sized + VisitMut> VisitMutWith<V> for TryStmt {
61993    #[doc = "Calls [VisitMut`::visit_mut_try_stmt`] with `self`."]
61994    fn visit_mut_with(&mut self, visitor: &mut V) {
61995        <V as VisitMut>::visit_mut_try_stmt(visitor, self)
61996    }
61997
61998    fn visit_mut_children_with(&mut self, visitor: &mut V) {
61999        match self {
62000            TryStmt {
62001                span,
62002                block,
62003                handler,
62004                finalizer,
62005            } => {
62006                {
62007                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62008                };
62009                {
62010                    <BlockStmt as VisitMutWith<V>>::visit_mut_with(block, visitor)
62011                };
62012                {
62013                    <Option<CatchClause> as VisitMutWith<V>>::visit_mut_with(handler, visitor)
62014                };
62015                {
62016                    <Option<BlockStmt> as VisitMutWith<V>>::visit_mut_with(finalizer, visitor)
62017                };
62018            }
62019        }
62020    }
62021}
62022impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsArrayType {
62023    #[doc = "Calls [VisitMut`::visit_mut_ts_array_type`] with `self`."]
62024    fn visit_mut_with(&mut self, visitor: &mut V) {
62025        <V as VisitMut>::visit_mut_ts_array_type(visitor, self)
62026    }
62027
62028    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62029        match self {
62030            TsArrayType { span, elem_type } => {
62031                {
62032                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62033                };
62034                {
62035                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(elem_type, visitor)
62036                };
62037            }
62038        }
62039    }
62040}
62041impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsAsExpr {
62042    #[doc = "Calls [VisitMut`::visit_mut_ts_as_expr`] with `self`."]
62043    fn visit_mut_with(&mut self, visitor: &mut V) {
62044        <V as VisitMut>::visit_mut_ts_as_expr(visitor, self)
62045    }
62046
62047    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62048        match self {
62049            TsAsExpr {
62050                span,
62051                expr,
62052                type_ann,
62053            } => {
62054                {
62055                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62056                };
62057                {
62058                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62059                };
62060                {
62061                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62062                };
62063            }
62064        }
62065    }
62066}
62067impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsCallSignatureDecl {
62068    #[doc = "Calls [VisitMut`::visit_mut_ts_call_signature_decl`] with `self`."]
62069    fn visit_mut_with(&mut self, visitor: &mut V) {
62070        <V as VisitMut>::visit_mut_ts_call_signature_decl(visitor, self)
62071    }
62072
62073    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62074        match self {
62075            TsCallSignatureDecl {
62076                span,
62077                params,
62078                type_ann,
62079                type_params,
62080            } => {
62081                {
62082                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62083                };
62084                {
62085                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62086                };
62087                {
62088                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62089                };
62090                {
62091                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62092                        type_params,
62093                        visitor,
62094                    )
62095                };
62096            }
62097        }
62098    }
62099}
62100impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConditionalType {
62101    #[doc = "Calls [VisitMut`::visit_mut_ts_conditional_type`] with `self`."]
62102    fn visit_mut_with(&mut self, visitor: &mut V) {
62103        <V as VisitMut>::visit_mut_ts_conditional_type(visitor, self)
62104    }
62105
62106    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62107        match self {
62108            TsConditionalType {
62109                span,
62110                check_type,
62111                extends_type,
62112                true_type,
62113                false_type,
62114            } => {
62115                {
62116                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62117                };
62118                {
62119                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(check_type, visitor)
62120                };
62121                {
62122                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(extends_type, visitor)
62123                };
62124                {
62125                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(true_type, visitor)
62126                };
62127                {
62128                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(false_type, visitor)
62129                };
62130            }
62131        }
62132    }
62133}
62134impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConstAssertion {
62135    #[doc = "Calls [VisitMut`::visit_mut_ts_const_assertion`] with `self`."]
62136    fn visit_mut_with(&mut self, visitor: &mut V) {
62137        <V as VisitMut>::visit_mut_ts_const_assertion(visitor, self)
62138    }
62139
62140    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62141        match self {
62142            TsConstAssertion { span, expr } => {
62143                {
62144                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62145                };
62146                {
62147                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62148                };
62149            }
62150        }
62151    }
62152}
62153impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConstructSignatureDecl {
62154    #[doc = "Calls [VisitMut`::visit_mut_ts_construct_signature_decl`] with `self`."]
62155    fn visit_mut_with(&mut self, visitor: &mut V) {
62156        <V as VisitMut>::visit_mut_ts_construct_signature_decl(visitor, self)
62157    }
62158
62159    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62160        match self {
62161            TsConstructSignatureDecl {
62162                span,
62163                params,
62164                type_ann,
62165                type_params,
62166            } => {
62167                {
62168                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62169                };
62170                {
62171                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62172                };
62173                {
62174                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62175                };
62176                {
62177                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62178                        type_params,
62179                        visitor,
62180                    )
62181                };
62182            }
62183        }
62184    }
62185}
62186impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsConstructorType {
62187    #[doc = "Calls [VisitMut`::visit_mut_ts_constructor_type`] with `self`."]
62188    fn visit_mut_with(&mut self, visitor: &mut V) {
62189        <V as VisitMut>::visit_mut_ts_constructor_type(visitor, self)
62190    }
62191
62192    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62193        match self {
62194            TsConstructorType {
62195                span,
62196                params,
62197                type_params,
62198                type_ann,
62199                is_abstract,
62200            } => {
62201                {
62202                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62203                };
62204                {
62205                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62206                };
62207                {
62208                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62209                        type_params,
62210                        visitor,
62211                    )
62212                };
62213                {
62214                    <Box<TsTypeAnn> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62215                };
62216            }
62217        }
62218    }
62219}
62220impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEntityName {
62221    #[doc = "Calls [VisitMut`::visit_mut_ts_entity_name`] with `self`."]
62222    fn visit_mut_with(&mut self, visitor: &mut V) {
62223        <V as VisitMut>::visit_mut_ts_entity_name(visitor, self)
62224    }
62225
62226    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62227        match self {
62228            TsEntityName::TsQualifiedName { 0: _field_0 } => {
62229                <Box<TsQualifiedName> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62230            }
62231            TsEntityName::Ident { 0: _field_0 } => {
62232                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62233            }
62234        }
62235    }
62236}
62237impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEnumDecl {
62238    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_decl`] with `self`."]
62239    fn visit_mut_with(&mut self, visitor: &mut V) {
62240        <V as VisitMut>::visit_mut_ts_enum_decl(visitor, self)
62241    }
62242
62243    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62244        match self {
62245            TsEnumDecl {
62246                span,
62247                declare,
62248                is_const,
62249                id,
62250                members,
62251            } => {
62252                {
62253                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62254                };
62255                {
62256                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
62257                };
62258                {
62259                    <Vec<TsEnumMember> as VisitMutWith<V>>::visit_mut_with(members, visitor)
62260                };
62261            }
62262        }
62263    }
62264}
62265impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEnumMember {
62266    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_member`] with `self`."]
62267    fn visit_mut_with(&mut self, visitor: &mut V) {
62268        <V as VisitMut>::visit_mut_ts_enum_member(visitor, self)
62269    }
62270
62271    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62272        match self {
62273            TsEnumMember { span, id, init } => {
62274                {
62275                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62276                };
62277                {
62278                    <TsEnumMemberId as VisitMutWith<V>>::visit_mut_with(id, visitor)
62279                };
62280                {
62281                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(init, visitor)
62282                };
62283            }
62284        }
62285    }
62286}
62287impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsEnumMemberId {
62288    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_member_id`] with `self`."]
62289    fn visit_mut_with(&mut self, visitor: &mut V) {
62290        <V as VisitMut>::visit_mut_ts_enum_member_id(visitor, self)
62291    }
62292
62293    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62294        match self {
62295            TsEnumMemberId::Ident { 0: _field_0 } => {
62296                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62297            }
62298            TsEnumMemberId::Str { 0: _field_0 } => {
62299                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62300            }
62301        }
62302    }
62303}
62304impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsExportAssignment {
62305    #[doc = "Calls [VisitMut`::visit_mut_ts_export_assignment`] with `self`."]
62306    fn visit_mut_with(&mut self, visitor: &mut V) {
62307        <V as VisitMut>::visit_mut_ts_export_assignment(visitor, self)
62308    }
62309
62310    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62311        match self {
62312            TsExportAssignment { span, expr } => {
62313                {
62314                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62315                };
62316                {
62317                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62318                };
62319            }
62320        }
62321    }
62322}
62323impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsExprWithTypeArgs {
62324    #[doc = "Calls [VisitMut`::visit_mut_ts_expr_with_type_args`] with `self`."]
62325    fn visit_mut_with(&mut self, visitor: &mut V) {
62326        <V as VisitMut>::visit_mut_ts_expr_with_type_args(visitor, self)
62327    }
62328
62329    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62330        match self {
62331            TsExprWithTypeArgs {
62332                span,
62333                expr,
62334                type_args,
62335            } => {
62336                {
62337                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62338                };
62339                {
62340                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62341                };
62342                {
62343                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
62344                        type_args, visitor,
62345                    )
62346                };
62347            }
62348        }
62349    }
62350}
62351impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsExternalModuleRef {
62352    #[doc = "Calls [VisitMut`::visit_mut_ts_external_module_ref`] with `self`."]
62353    fn visit_mut_with(&mut self, visitor: &mut V) {
62354        <V as VisitMut>::visit_mut_ts_external_module_ref(visitor, self)
62355    }
62356
62357    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62358        match self {
62359            TsExternalModuleRef { span, expr } => {
62360                {
62361                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62362                };
62363                {
62364                    <Str as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62365                };
62366            }
62367        }
62368    }
62369}
62370impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsFnOrConstructorType {
62371    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_or_constructor_type`] with `self`."]
62372    fn visit_mut_with(&mut self, visitor: &mut V) {
62373        <V as VisitMut>::visit_mut_ts_fn_or_constructor_type(visitor, self)
62374    }
62375
62376    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62377        match self {
62378            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
62379                <TsFnType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62380            }
62381            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
62382                <TsConstructorType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62383            }
62384        }
62385    }
62386}
62387impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsFnParam {
62388    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_param`] with `self`."]
62389    fn visit_mut_with(&mut self, visitor: &mut V) {
62390        <V as VisitMut>::visit_mut_ts_fn_param(visitor, self)
62391    }
62392
62393    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62394        match self {
62395            TsFnParam::Ident { 0: _field_0 } => {
62396                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62397            }
62398            TsFnParam::Array { 0: _field_0 } => {
62399                <ArrayPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62400            }
62401            TsFnParam::Rest { 0: _field_0 } => {
62402                <RestPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62403            }
62404            TsFnParam::Object { 0: _field_0 } => {
62405                <ObjectPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62406            }
62407        }
62408    }
62409}
62410impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsFnType {
62411    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_type`] with `self`."]
62412    fn visit_mut_with(&mut self, visitor: &mut V) {
62413        <V as VisitMut>::visit_mut_ts_fn_type(visitor, self)
62414    }
62415
62416    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62417        match self {
62418            TsFnType {
62419                span,
62420                params,
62421                type_params,
62422                type_ann,
62423            } => {
62424                {
62425                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62426                };
62427                {
62428                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62429                };
62430                {
62431                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62432                        type_params,
62433                        visitor,
62434                    )
62435                };
62436                {
62437                    <Box<TsTypeAnn> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62438                };
62439            }
62440        }
62441    }
62442}
62443impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsGetterSignature {
62444    #[doc = "Calls [VisitMut`::visit_mut_ts_getter_signature`] with `self`."]
62445    fn visit_mut_with(&mut self, visitor: &mut V) {
62446        <V as VisitMut>::visit_mut_ts_getter_signature(visitor, self)
62447    }
62448
62449    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62450        match self {
62451            TsGetterSignature {
62452                span,
62453                key,
62454                computed,
62455                type_ann,
62456            } => {
62457                {
62458                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62459                };
62460                {
62461                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
62462                };
62463                {
62464                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62465                };
62466            }
62467        }
62468    }
62469}
62470impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsImportEqualsDecl {
62471    #[doc = "Calls [VisitMut`::visit_mut_ts_import_equals_decl`] with `self`."]
62472    fn visit_mut_with(&mut self, visitor: &mut V) {
62473        <V as VisitMut>::visit_mut_ts_import_equals_decl(visitor, self)
62474    }
62475
62476    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62477        match self {
62478            TsImportEqualsDecl {
62479                span,
62480                is_export,
62481                is_type_only,
62482                id,
62483                module_ref,
62484            } => {
62485                {
62486                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62487                };
62488                {
62489                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
62490                };
62491                {
62492                    <TsModuleRef as VisitMutWith<V>>::visit_mut_with(module_ref, visitor)
62493                };
62494            }
62495        }
62496    }
62497}
62498impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsImportType {
62499    #[doc = "Calls [VisitMut`::visit_mut_ts_import_type`] with `self`."]
62500    fn visit_mut_with(&mut self, visitor: &mut V) {
62501        <V as VisitMut>::visit_mut_ts_import_type(visitor, self)
62502    }
62503
62504    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62505        match self {
62506            TsImportType {
62507                span,
62508                arg,
62509                qualifier,
62510                type_args,
62511            } => {
62512                {
62513                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62514                };
62515                {
62516                    <Str as VisitMutWith<V>>::visit_mut_with(arg, visitor)
62517                };
62518                {
62519                    <Option<TsEntityName> as VisitMutWith<V>>::visit_mut_with(qualifier, visitor)
62520                };
62521                {
62522                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
62523                        type_args, visitor,
62524                    )
62525                };
62526            }
62527        }
62528    }
62529}
62530impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsIndexSignature {
62531    #[doc = "Calls [VisitMut`::visit_mut_ts_index_signature`] with `self`."]
62532    fn visit_mut_with(&mut self, visitor: &mut V) {
62533        <V as VisitMut>::visit_mut_ts_index_signature(visitor, self)
62534    }
62535
62536    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62537        match self {
62538            TsIndexSignature {
62539                params,
62540                type_ann,
62541                readonly,
62542                is_static,
62543                span,
62544            } => {
62545                {
62546                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62547                };
62548                {
62549                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62550                };
62551                {
62552                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62553                };
62554            }
62555        }
62556    }
62557}
62558impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsIndexedAccessType {
62559    #[doc = "Calls [VisitMut`::visit_mut_ts_indexed_access_type`] with `self`."]
62560    fn visit_mut_with(&mut self, visitor: &mut V) {
62561        <V as VisitMut>::visit_mut_ts_indexed_access_type(visitor, self)
62562    }
62563
62564    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62565        match self {
62566            TsIndexedAccessType {
62567                span,
62568                readonly,
62569                obj_type,
62570                index_type,
62571            } => {
62572                {
62573                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62574                };
62575                {
62576                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(obj_type, visitor)
62577                };
62578                {
62579                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(index_type, visitor)
62580                };
62581            }
62582        }
62583    }
62584}
62585impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInferType {
62586    #[doc = "Calls [VisitMut`::visit_mut_ts_infer_type`] with `self`."]
62587    fn visit_mut_with(&mut self, visitor: &mut V) {
62588        <V as VisitMut>::visit_mut_ts_infer_type(visitor, self)
62589    }
62590
62591    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62592        match self {
62593            TsInferType { span, type_param } => {
62594                {
62595                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62596                };
62597                {
62598                    <TsTypeParam as VisitMutWith<V>>::visit_mut_with(type_param, visitor)
62599                };
62600            }
62601        }
62602    }
62603}
62604impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInstantiation {
62605    #[doc = "Calls [VisitMut`::visit_mut_ts_instantiation`] with `self`."]
62606    fn visit_mut_with(&mut self, visitor: &mut V) {
62607        <V as VisitMut>::visit_mut_ts_instantiation(visitor, self)
62608    }
62609
62610    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62611        match self {
62612            TsInstantiation {
62613                span,
62614                expr,
62615                type_args,
62616            } => {
62617                {
62618                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62619                };
62620                {
62621                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
62622                };
62623                {
62624                    <Box<TsTypeParamInstantiation> as VisitMutWith<V>>::visit_mut_with(
62625                        type_args, visitor,
62626                    )
62627                };
62628            }
62629        }
62630    }
62631}
62632impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInterfaceBody {
62633    #[doc = "Calls [VisitMut`::visit_mut_ts_interface_body`] with `self`."]
62634    fn visit_mut_with(&mut self, visitor: &mut V) {
62635        <V as VisitMut>::visit_mut_ts_interface_body(visitor, self)
62636    }
62637
62638    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62639        match self {
62640            TsInterfaceBody { span, body } => {
62641                {
62642                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62643                };
62644                {
62645                    <Vec<TsTypeElement> as VisitMutWith<V>>::visit_mut_with(body, visitor)
62646                };
62647            }
62648        }
62649    }
62650}
62651impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsInterfaceDecl {
62652    #[doc = "Calls [VisitMut`::visit_mut_ts_interface_decl`] with `self`."]
62653    fn visit_mut_with(&mut self, visitor: &mut V) {
62654        <V as VisitMut>::visit_mut_ts_interface_decl(visitor, self)
62655    }
62656
62657    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62658        match self {
62659            TsInterfaceDecl {
62660                span,
62661                id,
62662                declare,
62663                type_params,
62664                extends,
62665                body,
62666            } => {
62667                {
62668                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62669                };
62670                {
62671                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
62672                };
62673                {
62674                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62675                        type_params,
62676                        visitor,
62677                    )
62678                };
62679                {
62680                    <Vec<TsExprWithTypeArgs> as VisitMutWith<V>>::visit_mut_with(extends, visitor)
62681                };
62682                {
62683                    <TsInterfaceBody as VisitMutWith<V>>::visit_mut_with(body, visitor)
62684                };
62685            }
62686        }
62687    }
62688}
62689impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsIntersectionType {
62690    #[doc = "Calls [VisitMut`::visit_mut_ts_intersection_type`] with `self`."]
62691    fn visit_mut_with(&mut self, visitor: &mut V) {
62692        <V as VisitMut>::visit_mut_ts_intersection_type(visitor, self)
62693    }
62694
62695    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62696        match self {
62697            TsIntersectionType { span, types } => {
62698                {
62699                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62700                };
62701                {
62702                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(types, visitor)
62703                };
62704            }
62705        }
62706    }
62707}
62708impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsKeywordType {
62709    #[doc = "Calls [VisitMut`::visit_mut_ts_keyword_type`] with `self`."]
62710    fn visit_mut_with(&mut self, visitor: &mut V) {
62711        <V as VisitMut>::visit_mut_ts_keyword_type(visitor, self)
62712    }
62713
62714    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62715        match self {
62716            TsKeywordType { span, kind } => {
62717                {
62718                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62719                };
62720                {
62721                    <TsKeywordTypeKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
62722                };
62723            }
62724        }
62725    }
62726}
62727impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsKeywordTypeKind {
62728    #[doc = "Calls [VisitMut`::visit_mut_ts_keyword_type_kind`] with `self`."]
62729    fn visit_mut_with(&mut self, visitor: &mut V) {
62730        <V as VisitMut>::visit_mut_ts_keyword_type_kind(visitor, self)
62731    }
62732
62733    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62734        match self {
62735            TsKeywordTypeKind::TsAnyKeyword => {}
62736            TsKeywordTypeKind::TsUnknownKeyword => {}
62737            TsKeywordTypeKind::TsNumberKeyword => {}
62738            TsKeywordTypeKind::TsObjectKeyword => {}
62739            TsKeywordTypeKind::TsBooleanKeyword => {}
62740            TsKeywordTypeKind::TsBigIntKeyword => {}
62741            TsKeywordTypeKind::TsStringKeyword => {}
62742            TsKeywordTypeKind::TsSymbolKeyword => {}
62743            TsKeywordTypeKind::TsVoidKeyword => {}
62744            TsKeywordTypeKind::TsUndefinedKeyword => {}
62745            TsKeywordTypeKind::TsNullKeyword => {}
62746            TsKeywordTypeKind::TsNeverKeyword => {}
62747            TsKeywordTypeKind::TsIntrinsicKeyword => {}
62748        }
62749    }
62750}
62751impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsLit {
62752    #[doc = "Calls [VisitMut`::visit_mut_ts_lit`] with `self`."]
62753    fn visit_mut_with(&mut self, visitor: &mut V) {
62754        <V as VisitMut>::visit_mut_ts_lit(visitor, self)
62755    }
62756
62757    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62758        match self {
62759            TsLit::Number { 0: _field_0 } => {
62760                <Number as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62761            }
62762            TsLit::Str { 0: _field_0 } => {
62763                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62764            }
62765            TsLit::Bool { 0: _field_0 } => {
62766                <Bool as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62767            }
62768            TsLit::BigInt { 0: _field_0 } => {
62769                <BigInt as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62770            }
62771            TsLit::Tpl { 0: _field_0 } => {
62772                <TsTplLitType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62773            }
62774        }
62775    }
62776}
62777impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsLitType {
62778    #[doc = "Calls [VisitMut`::visit_mut_ts_lit_type`] with `self`."]
62779    fn visit_mut_with(&mut self, visitor: &mut V) {
62780        <V as VisitMut>::visit_mut_ts_lit_type(visitor, self)
62781    }
62782
62783    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62784        match self {
62785            TsLitType { span, lit } => {
62786                {
62787                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62788                };
62789                {
62790                    <TsLit as VisitMutWith<V>>::visit_mut_with(lit, visitor)
62791                };
62792            }
62793        }
62794    }
62795}
62796impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsMappedType {
62797    #[doc = "Calls [VisitMut`::visit_mut_ts_mapped_type`] with `self`."]
62798    fn visit_mut_with(&mut self, visitor: &mut V) {
62799        <V as VisitMut>::visit_mut_ts_mapped_type(visitor, self)
62800    }
62801
62802    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62803        match self {
62804            TsMappedType {
62805                span,
62806                readonly,
62807                type_param,
62808                name_type,
62809                optional,
62810                type_ann,
62811            } => {
62812                {
62813                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62814                };
62815                {
62816                    <Option<TruePlusMinus> as VisitMutWith<V>>::visit_mut_with(readonly, visitor)
62817                };
62818                {
62819                    <TsTypeParam as VisitMutWith<V>>::visit_mut_with(type_param, visitor)
62820                };
62821                {
62822                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(name_type, visitor)
62823                };
62824                {
62825                    <Option<TruePlusMinus> as VisitMutWith<V>>::visit_mut_with(optional, visitor)
62826                };
62827                {
62828                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62829                };
62830            }
62831        }
62832    }
62833}
62834impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsMethodSignature {
62835    #[doc = "Calls [VisitMut`::visit_mut_ts_method_signature`] with `self`."]
62836    fn visit_mut_with(&mut self, visitor: &mut V) {
62837        <V as VisitMut>::visit_mut_ts_method_signature(visitor, self)
62838    }
62839
62840    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62841        match self {
62842            TsMethodSignature {
62843                span,
62844                key,
62845                computed,
62846                optional,
62847                params,
62848                type_ann,
62849                type_params,
62850            } => {
62851                {
62852                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62853                };
62854                {
62855                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
62856                };
62857                {
62858                    <Vec<TsFnParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
62859                };
62860                {
62861                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
62862                };
62863                {
62864                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
62865                        type_params,
62866                        visitor,
62867                    )
62868                };
62869            }
62870        }
62871    }
62872}
62873impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleBlock {
62874    #[doc = "Calls [VisitMut`::visit_mut_ts_module_block`] with `self`."]
62875    fn visit_mut_with(&mut self, visitor: &mut V) {
62876        <V as VisitMut>::visit_mut_ts_module_block(visitor, self)
62877    }
62878
62879    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62880        match self {
62881            TsModuleBlock { span, body } => {
62882                {
62883                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62884                };
62885                {
62886                    <Vec<ModuleItem> as VisitMutWith<V>>::visit_mut_with(body, visitor)
62887                };
62888            }
62889        }
62890    }
62891}
62892impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleDecl {
62893    #[doc = "Calls [VisitMut`::visit_mut_ts_module_decl`] with `self`."]
62894    fn visit_mut_with(&mut self, visitor: &mut V) {
62895        <V as VisitMut>::visit_mut_ts_module_decl(visitor, self)
62896    }
62897
62898    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62899        match self {
62900            TsModuleDecl {
62901                span,
62902                declare,
62903                global,
62904                id,
62905                body,
62906            } => {
62907                {
62908                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62909                };
62910                {
62911                    <TsModuleName as VisitMutWith<V>>::visit_mut_with(id, visitor)
62912                };
62913                {
62914                    <Option<TsNamespaceBody> as VisitMutWith<V>>::visit_mut_with(body, visitor)
62915                };
62916            }
62917        }
62918    }
62919}
62920impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleName {
62921    #[doc = "Calls [VisitMut`::visit_mut_ts_module_name`] with `self`."]
62922    fn visit_mut_with(&mut self, visitor: &mut V) {
62923        <V as VisitMut>::visit_mut_ts_module_name(visitor, self)
62924    }
62925
62926    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62927        match self {
62928            TsModuleName::Ident { 0: _field_0 } => {
62929                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62930            }
62931            TsModuleName::Str { 0: _field_0 } => {
62932                <Str as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62933            }
62934        }
62935    }
62936}
62937impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsModuleRef {
62938    #[doc = "Calls [VisitMut`::visit_mut_ts_module_ref`] with `self`."]
62939    fn visit_mut_with(&mut self, visitor: &mut V) {
62940        <V as VisitMut>::visit_mut_ts_module_ref(visitor, self)
62941    }
62942
62943    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62944        match self {
62945            TsModuleRef::TsEntityName { 0: _field_0 } => {
62946                <TsEntityName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62947            }
62948            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
62949                <TsExternalModuleRef as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62950            }
62951        }
62952    }
62953}
62954impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNamespaceBody {
62955    #[doc = "Calls [VisitMut`::visit_mut_ts_namespace_body`] with `self`."]
62956    fn visit_mut_with(&mut self, visitor: &mut V) {
62957        <V as VisitMut>::visit_mut_ts_namespace_body(visitor, self)
62958    }
62959
62960    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62961        match self {
62962            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
62963                <TsModuleBlock as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62964            }
62965            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
62966                <TsNamespaceDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
62967            }
62968        }
62969    }
62970}
62971impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNamespaceDecl {
62972    #[doc = "Calls [VisitMut`::visit_mut_ts_namespace_decl`] with `self`."]
62973    fn visit_mut_with(&mut self, visitor: &mut V) {
62974        <V as VisitMut>::visit_mut_ts_namespace_decl(visitor, self)
62975    }
62976
62977    fn visit_mut_children_with(&mut self, visitor: &mut V) {
62978        match self {
62979            TsNamespaceDecl {
62980                span,
62981                declare,
62982                global,
62983                id,
62984                body,
62985            } => {
62986                {
62987                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
62988                };
62989                {
62990                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
62991                };
62992                {
62993                    <Box<TsNamespaceBody> as VisitMutWith<V>>::visit_mut_with(body, visitor)
62994                };
62995            }
62996        }
62997    }
62998}
62999impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNamespaceExportDecl {
63000    #[doc = "Calls [VisitMut`::visit_mut_ts_namespace_export_decl`] with `self`."]
63001    fn visit_mut_with(&mut self, visitor: &mut V) {
63002        <V as VisitMut>::visit_mut_ts_namespace_export_decl(visitor, self)
63003    }
63004
63005    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63006        match self {
63007            TsNamespaceExportDecl { span, id } => {
63008                {
63009                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63010                };
63011                {
63012                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
63013                };
63014            }
63015        }
63016    }
63017}
63018impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsNonNullExpr {
63019    #[doc = "Calls [VisitMut`::visit_mut_ts_non_null_expr`] with `self`."]
63020    fn visit_mut_with(&mut self, visitor: &mut V) {
63021        <V as VisitMut>::visit_mut_ts_non_null_expr(visitor, self)
63022    }
63023
63024    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63025        match self {
63026            TsNonNullExpr { span, expr } => {
63027                {
63028                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63029                };
63030                {
63031                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63032                };
63033            }
63034        }
63035    }
63036}
63037impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsOptionalType {
63038    #[doc = "Calls [VisitMut`::visit_mut_ts_optional_type`] with `self`."]
63039    fn visit_mut_with(&mut self, visitor: &mut V) {
63040        <V as VisitMut>::visit_mut_ts_optional_type(visitor, self)
63041    }
63042
63043    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63044        match self {
63045            TsOptionalType { span, type_ann } => {
63046                {
63047                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63048                };
63049                {
63050                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63051                };
63052            }
63053        }
63054    }
63055}
63056impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsParamProp {
63057    #[doc = "Calls [VisitMut`::visit_mut_ts_param_prop`] with `self`."]
63058    fn visit_mut_with(&mut self, visitor: &mut V) {
63059        <V as VisitMut>::visit_mut_ts_param_prop(visitor, self)
63060    }
63061
63062    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63063        match self {
63064            TsParamProp {
63065                span,
63066                decorators,
63067                accessibility,
63068                is_override,
63069                readonly,
63070                param,
63071            } => {
63072                {
63073                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63074                };
63075                {
63076                    <Vec<Decorator> as VisitMutWith<V>>::visit_mut_with(decorators, visitor)
63077                };
63078                {
63079                    <Option<Accessibility> as VisitMutWith<V>>::visit_mut_with(
63080                        accessibility,
63081                        visitor,
63082                    )
63083                };
63084                {
63085                    <TsParamPropParam as VisitMutWith<V>>::visit_mut_with(param, visitor)
63086                };
63087            }
63088        }
63089    }
63090}
63091impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsParamPropParam {
63092    #[doc = "Calls [VisitMut`::visit_mut_ts_param_prop_param`] with `self`."]
63093    fn visit_mut_with(&mut self, visitor: &mut V) {
63094        <V as VisitMut>::visit_mut_ts_param_prop_param(visitor, self)
63095    }
63096
63097    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63098        match self {
63099            TsParamPropParam::Ident { 0: _field_0 } => {
63100                <BindingIdent as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63101            }
63102            TsParamPropParam::Assign { 0: _field_0 } => {
63103                <AssignPat as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63104            }
63105        }
63106    }
63107}
63108impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsParenthesizedType {
63109    #[doc = "Calls [VisitMut`::visit_mut_ts_parenthesized_type`] with `self`."]
63110    fn visit_mut_with(&mut self, visitor: &mut V) {
63111        <V as VisitMut>::visit_mut_ts_parenthesized_type(visitor, self)
63112    }
63113
63114    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63115        match self {
63116            TsParenthesizedType { span, type_ann } => {
63117                {
63118                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63119                };
63120                {
63121                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63122                };
63123            }
63124        }
63125    }
63126}
63127impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsPropertySignature {
63128    #[doc = "Calls [VisitMut`::visit_mut_ts_property_signature`] with `self`."]
63129    fn visit_mut_with(&mut self, visitor: &mut V) {
63130        <V as VisitMut>::visit_mut_ts_property_signature(visitor, self)
63131    }
63132
63133    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63134        match self {
63135            TsPropertySignature {
63136                span,
63137                readonly,
63138                key,
63139                computed,
63140                optional,
63141                type_ann,
63142            } => {
63143                {
63144                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63145                };
63146                {
63147                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
63148                };
63149                {
63150                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63151                };
63152            }
63153        }
63154    }
63155}
63156impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsQualifiedName {
63157    #[doc = "Calls [VisitMut`::visit_mut_ts_qualified_name`] with `self`."]
63158    fn visit_mut_with(&mut self, visitor: &mut V) {
63159        <V as VisitMut>::visit_mut_ts_qualified_name(visitor, self)
63160    }
63161
63162    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63163        match self {
63164            TsQualifiedName { span, left, right } => {
63165                {
63166                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63167                };
63168                {
63169                    <TsEntityName as VisitMutWith<V>>::visit_mut_with(left, visitor)
63170                };
63171                {
63172                    <IdentName as VisitMutWith<V>>::visit_mut_with(right, visitor)
63173                };
63174            }
63175        }
63176    }
63177}
63178impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsRestType {
63179    #[doc = "Calls [VisitMut`::visit_mut_ts_rest_type`] with `self`."]
63180    fn visit_mut_with(&mut self, visitor: &mut V) {
63181        <V as VisitMut>::visit_mut_ts_rest_type(visitor, self)
63182    }
63183
63184    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63185        match self {
63186            TsRestType { span, type_ann } => {
63187                {
63188                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63189                };
63190                {
63191                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63192                };
63193            }
63194        }
63195    }
63196}
63197impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsSatisfiesExpr {
63198    #[doc = "Calls [VisitMut`::visit_mut_ts_satisfies_expr`] with `self`."]
63199    fn visit_mut_with(&mut self, visitor: &mut V) {
63200        <V as VisitMut>::visit_mut_ts_satisfies_expr(visitor, self)
63201    }
63202
63203    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63204        match self {
63205            TsSatisfiesExpr {
63206                span,
63207                expr,
63208                type_ann,
63209            } => {
63210                {
63211                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63212                };
63213                {
63214                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63215                };
63216                {
63217                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63218                };
63219            }
63220        }
63221    }
63222}
63223impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsSetterSignature {
63224    #[doc = "Calls [VisitMut`::visit_mut_ts_setter_signature`] with `self`."]
63225    fn visit_mut_with(&mut self, visitor: &mut V) {
63226        <V as VisitMut>::visit_mut_ts_setter_signature(visitor, self)
63227    }
63228
63229    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63230        match self {
63231            TsSetterSignature {
63232                span,
63233                key,
63234                computed,
63235                param,
63236            } => {
63237                {
63238                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63239                };
63240                {
63241                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(key, visitor)
63242                };
63243                {
63244                    <TsFnParam as VisitMutWith<V>>::visit_mut_with(param, visitor)
63245                };
63246            }
63247        }
63248    }
63249}
63250impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsThisType {
63251    #[doc = "Calls [VisitMut`::visit_mut_ts_this_type`] with `self`."]
63252    fn visit_mut_with(&mut self, visitor: &mut V) {
63253        <V as VisitMut>::visit_mut_ts_this_type(visitor, self)
63254    }
63255
63256    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63257        match self {
63258            TsThisType { span } => {
63259                {
63260                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63261                };
63262            }
63263        }
63264    }
63265}
63266impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsThisTypeOrIdent {
63267    #[doc = "Calls [VisitMut`::visit_mut_ts_this_type_or_ident`] with `self`."]
63268    fn visit_mut_with(&mut self, visitor: &mut V) {
63269        <V as VisitMut>::visit_mut_ts_this_type_or_ident(visitor, self)
63270    }
63271
63272    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63273        match self {
63274            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
63275                <TsThisType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63276            }
63277            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
63278                <Ident as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63279            }
63280        }
63281    }
63282}
63283impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTplLitType {
63284    #[doc = "Calls [VisitMut`::visit_mut_ts_tpl_lit_type`] with `self`."]
63285    fn visit_mut_with(&mut self, visitor: &mut V) {
63286        <V as VisitMut>::visit_mut_ts_tpl_lit_type(visitor, self)
63287    }
63288
63289    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63290        match self {
63291            TsTplLitType {
63292                span,
63293                types,
63294                quasis,
63295            } => {
63296                {
63297                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63298                };
63299                {
63300                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(types, visitor)
63301                };
63302                {
63303                    <Vec<TplElement> as VisitMutWith<V>>::visit_mut_with(quasis, visitor)
63304                };
63305            }
63306        }
63307    }
63308}
63309impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTupleElement {
63310    #[doc = "Calls [VisitMut`::visit_mut_ts_tuple_element`] with `self`."]
63311    fn visit_mut_with(&mut self, visitor: &mut V) {
63312        <V as VisitMut>::visit_mut_ts_tuple_element(visitor, self)
63313    }
63314
63315    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63316        match self {
63317            TsTupleElement { span, label, ty } => {
63318                {
63319                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63320                };
63321                {
63322                    <Option<Pat> as VisitMutWith<V>>::visit_mut_with(label, visitor)
63323                };
63324                {
63325                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(ty, visitor)
63326                };
63327            }
63328        }
63329    }
63330}
63331impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTupleType {
63332    #[doc = "Calls [VisitMut`::visit_mut_ts_tuple_type`] with `self`."]
63333    fn visit_mut_with(&mut self, visitor: &mut V) {
63334        <V as VisitMut>::visit_mut_ts_tuple_type(visitor, self)
63335    }
63336
63337    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63338        match self {
63339            TsTupleType { span, elem_types } => {
63340                {
63341                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63342                };
63343                {
63344                    <Vec<TsTupleElement> as VisitMutWith<V>>::visit_mut_with(elem_types, visitor)
63345                };
63346            }
63347        }
63348    }
63349}
63350impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsType {
63351    #[doc = "Calls [VisitMut`::visit_mut_ts_type`] with `self`."]
63352    fn visit_mut_with(&mut self, visitor: &mut V) {
63353        <V as VisitMut>::visit_mut_ts_type(visitor, self)
63354    }
63355
63356    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63357        match self {
63358            TsType::TsKeywordType { 0: _field_0 } => {
63359                <TsKeywordType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63360            }
63361            TsType::TsThisType { 0: _field_0 } => {
63362                <TsThisType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63363            }
63364            TsType::TsFnOrConstructorType { 0: _field_0 } => {
63365                <TsFnOrConstructorType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63366            }
63367            TsType::TsTypeRef { 0: _field_0 } => {
63368                <TsTypeRef as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63369            }
63370            TsType::TsTypeQuery { 0: _field_0 } => {
63371                <TsTypeQuery as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63372            }
63373            TsType::TsTypeLit { 0: _field_0 } => {
63374                <TsTypeLit as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63375            }
63376            TsType::TsArrayType { 0: _field_0 } => {
63377                <TsArrayType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63378            }
63379            TsType::TsTupleType { 0: _field_0 } => {
63380                <TsTupleType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63381            }
63382            TsType::TsOptionalType { 0: _field_0 } => {
63383                <TsOptionalType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63384            }
63385            TsType::TsRestType { 0: _field_0 } => {
63386                <TsRestType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63387            }
63388            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
63389                <TsUnionOrIntersectionType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63390            }
63391            TsType::TsConditionalType { 0: _field_0 } => {
63392                <TsConditionalType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63393            }
63394            TsType::TsInferType { 0: _field_0 } => {
63395                <TsInferType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63396            }
63397            TsType::TsParenthesizedType { 0: _field_0 } => {
63398                <TsParenthesizedType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63399            }
63400            TsType::TsTypeOperator { 0: _field_0 } => {
63401                <TsTypeOperator as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63402            }
63403            TsType::TsIndexedAccessType { 0: _field_0 } => {
63404                <TsIndexedAccessType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63405            }
63406            TsType::TsMappedType { 0: _field_0 } => {
63407                <TsMappedType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63408            }
63409            TsType::TsLitType { 0: _field_0 } => {
63410                <TsLitType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63411            }
63412            TsType::TsTypePredicate { 0: _field_0 } => {
63413                <TsTypePredicate as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63414            }
63415            TsType::TsImportType { 0: _field_0 } => {
63416                <TsImportType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63417            }
63418        }
63419    }
63420}
63421impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeAliasDecl {
63422    #[doc = "Calls [VisitMut`::visit_mut_ts_type_alias_decl`] with `self`."]
63423    fn visit_mut_with(&mut self, visitor: &mut V) {
63424        <V as VisitMut>::visit_mut_ts_type_alias_decl(visitor, self)
63425    }
63426
63427    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63428        match self {
63429            TsTypeAliasDecl {
63430                span,
63431                declare,
63432                id,
63433                type_params,
63434                type_ann,
63435            } => {
63436                {
63437                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63438                };
63439                {
63440                    <Ident as VisitMutWith<V>>::visit_mut_with(id, visitor)
63441                };
63442                {
63443                    <Option<Box<TsTypeParamDecl>> as VisitMutWith<V>>::visit_mut_with(
63444                        type_params,
63445                        visitor,
63446                    )
63447                };
63448                {
63449                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63450                };
63451            }
63452        }
63453    }
63454}
63455impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeAnn {
63456    #[doc = "Calls [VisitMut`::visit_mut_ts_type_ann`] with `self`."]
63457    fn visit_mut_with(&mut self, visitor: &mut V) {
63458        <V as VisitMut>::visit_mut_ts_type_ann(visitor, self)
63459    }
63460
63461    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63462        match self {
63463            TsTypeAnn { span, type_ann } => {
63464                {
63465                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63466                };
63467                {
63468                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63469                };
63470            }
63471        }
63472    }
63473}
63474impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeAssertion {
63475    #[doc = "Calls [VisitMut`::visit_mut_ts_type_assertion`] with `self`."]
63476    fn visit_mut_with(&mut self, visitor: &mut V) {
63477        <V as VisitMut>::visit_mut_ts_type_assertion(visitor, self)
63478    }
63479
63480    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63481        match self {
63482            TsTypeAssertion {
63483                span,
63484                expr,
63485                type_ann,
63486            } => {
63487                {
63488                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63489                };
63490                {
63491                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(expr, visitor)
63492                };
63493                {
63494                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63495                };
63496            }
63497        }
63498    }
63499}
63500impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeElement {
63501    #[doc = "Calls [VisitMut`::visit_mut_ts_type_element`] with `self`."]
63502    fn visit_mut_with(&mut self, visitor: &mut V) {
63503        <V as VisitMut>::visit_mut_ts_type_element(visitor, self)
63504    }
63505
63506    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63507        match self {
63508            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
63509                <TsCallSignatureDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63510            }
63511            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
63512                <TsConstructSignatureDecl as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63513            }
63514            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
63515                <TsPropertySignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63516            }
63517            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
63518                <TsGetterSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63519            }
63520            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
63521                <TsSetterSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63522            }
63523            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
63524                <TsMethodSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63525            }
63526            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
63527                <TsIndexSignature as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63528            }
63529        }
63530    }
63531}
63532impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeLit {
63533    #[doc = "Calls [VisitMut`::visit_mut_ts_type_lit`] with `self`."]
63534    fn visit_mut_with(&mut self, visitor: &mut V) {
63535        <V as VisitMut>::visit_mut_ts_type_lit(visitor, self)
63536    }
63537
63538    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63539        match self {
63540            TsTypeLit { span, members } => {
63541                {
63542                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63543                };
63544                {
63545                    <Vec<TsTypeElement> as VisitMutWith<V>>::visit_mut_with(members, visitor)
63546                };
63547            }
63548        }
63549    }
63550}
63551impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeOperator {
63552    #[doc = "Calls [VisitMut`::visit_mut_ts_type_operator`] with `self`."]
63553    fn visit_mut_with(&mut self, visitor: &mut V) {
63554        <V as VisitMut>::visit_mut_ts_type_operator(visitor, self)
63555    }
63556
63557    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63558        match self {
63559            TsTypeOperator { span, op, type_ann } => {
63560                {
63561                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63562                };
63563                {
63564                    <TsTypeOperatorOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
63565                };
63566                {
63567                    <Box<TsType> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63568                };
63569            }
63570        }
63571    }
63572}
63573impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeOperatorOp {
63574    #[doc = "Calls [VisitMut`::visit_mut_ts_type_operator_op`] with `self`."]
63575    fn visit_mut_with(&mut self, visitor: &mut V) {
63576        <V as VisitMut>::visit_mut_ts_type_operator_op(visitor, self)
63577    }
63578
63579    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63580        match self {
63581            TsTypeOperatorOp::KeyOf => {}
63582            TsTypeOperatorOp::Unique => {}
63583            TsTypeOperatorOp::ReadOnly => {}
63584        }
63585    }
63586}
63587impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeParam {
63588    #[doc = "Calls [VisitMut`::visit_mut_ts_type_param`] with `self`."]
63589    fn visit_mut_with(&mut self, visitor: &mut V) {
63590        <V as VisitMut>::visit_mut_ts_type_param(visitor, self)
63591    }
63592
63593    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63594        match self {
63595            TsTypeParam {
63596                span,
63597                name,
63598                is_in,
63599                is_out,
63600                is_const,
63601                constraint,
63602                default,
63603            } => {
63604                {
63605                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63606                };
63607                {
63608                    <Ident as VisitMutWith<V>>::visit_mut_with(name, visitor)
63609                };
63610                {
63611                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(constraint, visitor)
63612                };
63613                {
63614                    <Option<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(default, visitor)
63615                };
63616            }
63617        }
63618    }
63619}
63620impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeParamDecl {
63621    #[doc = "Calls [VisitMut`::visit_mut_ts_type_param_decl`] with `self`."]
63622    fn visit_mut_with(&mut self, visitor: &mut V) {
63623        <V as VisitMut>::visit_mut_ts_type_param_decl(visitor, self)
63624    }
63625
63626    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63627        match self {
63628            TsTypeParamDecl { span, params } => {
63629                {
63630                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63631                };
63632                {
63633                    <Vec<TsTypeParam> as VisitMutWith<V>>::visit_mut_with(params, visitor)
63634                };
63635            }
63636        }
63637    }
63638}
63639impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeParamInstantiation {
63640    #[doc = "Calls [VisitMut`::visit_mut_ts_type_param_instantiation`] with `self`."]
63641    fn visit_mut_with(&mut self, visitor: &mut V) {
63642        <V as VisitMut>::visit_mut_ts_type_param_instantiation(visitor, self)
63643    }
63644
63645    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63646        match self {
63647            TsTypeParamInstantiation { span, params } => {
63648                {
63649                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63650                };
63651                {
63652                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(params, visitor)
63653                };
63654            }
63655        }
63656    }
63657}
63658impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypePredicate {
63659    #[doc = "Calls [VisitMut`::visit_mut_ts_type_predicate`] with `self`."]
63660    fn visit_mut_with(&mut self, visitor: &mut V) {
63661        <V as VisitMut>::visit_mut_ts_type_predicate(visitor, self)
63662    }
63663
63664    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63665        match self {
63666            TsTypePredicate {
63667                span,
63668                asserts,
63669                param_name,
63670                type_ann,
63671            } => {
63672                {
63673                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63674                };
63675                {
63676                    <TsThisTypeOrIdent as VisitMutWith<V>>::visit_mut_with(param_name, visitor)
63677                };
63678                {
63679                    <Option<Box<TsTypeAnn>> as VisitMutWith<V>>::visit_mut_with(type_ann, visitor)
63680                };
63681            }
63682        }
63683    }
63684}
63685impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeQuery {
63686    #[doc = "Calls [VisitMut`::visit_mut_ts_type_query`] with `self`."]
63687    fn visit_mut_with(&mut self, visitor: &mut V) {
63688        <V as VisitMut>::visit_mut_ts_type_query(visitor, self)
63689    }
63690
63691    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63692        match self {
63693            TsTypeQuery {
63694                span,
63695                expr_name,
63696                type_args,
63697            } => {
63698                {
63699                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63700                };
63701                {
63702                    <TsTypeQueryExpr as VisitMutWith<V>>::visit_mut_with(expr_name, visitor)
63703                };
63704                {
63705                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
63706                        type_args, visitor,
63707                    )
63708                };
63709            }
63710        }
63711    }
63712}
63713impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeQueryExpr {
63714    #[doc = "Calls [VisitMut`::visit_mut_ts_type_query_expr`] with `self`."]
63715    fn visit_mut_with(&mut self, visitor: &mut V) {
63716        <V as VisitMut>::visit_mut_ts_type_query_expr(visitor, self)
63717    }
63718
63719    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63720        match self {
63721            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
63722                <TsEntityName as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63723            }
63724            TsTypeQueryExpr::Import { 0: _field_0 } => {
63725                <TsImportType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63726            }
63727        }
63728    }
63729}
63730impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsTypeRef {
63731    #[doc = "Calls [VisitMut`::visit_mut_ts_type_ref`] with `self`."]
63732    fn visit_mut_with(&mut self, visitor: &mut V) {
63733        <V as VisitMut>::visit_mut_ts_type_ref(visitor, self)
63734    }
63735
63736    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63737        match self {
63738            TsTypeRef {
63739                span,
63740                type_name,
63741                type_params,
63742            } => {
63743                {
63744                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63745                };
63746                {
63747                    <TsEntityName as VisitMutWith<V>>::visit_mut_with(type_name, visitor)
63748                };
63749                {
63750                    <Option<Box<TsTypeParamInstantiation>> as VisitMutWith<V>>::visit_mut_with(
63751                        type_params,
63752                        visitor,
63753                    )
63754                };
63755            }
63756        }
63757    }
63758}
63759impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsUnionOrIntersectionType {
63760    #[doc = "Calls [VisitMut`::visit_mut_ts_union_or_intersection_type`] with `self`."]
63761    fn visit_mut_with(&mut self, visitor: &mut V) {
63762        <V as VisitMut>::visit_mut_ts_union_or_intersection_type(visitor, self)
63763    }
63764
63765    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63766        match self {
63767            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
63768                <TsUnionType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63769            }
63770            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
63771                <TsIntersectionType as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63772            }
63773        }
63774    }
63775}
63776impl<V: ?Sized + VisitMut> VisitMutWith<V> for TsUnionType {
63777    #[doc = "Calls [VisitMut`::visit_mut_ts_union_type`] with `self`."]
63778    fn visit_mut_with(&mut self, visitor: &mut V) {
63779        <V as VisitMut>::visit_mut_ts_union_type(visitor, self)
63780    }
63781
63782    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63783        match self {
63784            TsUnionType { span, types } => {
63785                {
63786                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63787                };
63788                {
63789                    <Vec<Box<TsType>> as VisitMutWith<V>>::visit_mut_with(types, visitor)
63790                };
63791            }
63792        }
63793    }
63794}
63795impl<V: ?Sized + VisitMut> VisitMutWith<V> for UnaryExpr {
63796    #[doc = "Calls [VisitMut`::visit_mut_unary_expr`] with `self`."]
63797    fn visit_mut_with(&mut self, visitor: &mut V) {
63798        <V as VisitMut>::visit_mut_unary_expr(visitor, self)
63799    }
63800
63801    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63802        match self {
63803            UnaryExpr { span, op, arg } => {
63804                {
63805                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63806                };
63807                {
63808                    <UnaryOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
63809                };
63810                {
63811                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
63812                };
63813            }
63814        }
63815    }
63816}
63817impl<V: ?Sized + VisitMut> VisitMutWith<V> for UnaryOp {
63818    #[doc = "Calls [VisitMut`::visit_mut_unary_op`] with `self`."]
63819    fn visit_mut_with(&mut self, visitor: &mut V) {
63820        <V as VisitMut>::visit_mut_unary_op(visitor, self)
63821    }
63822
63823    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63824        match self {
63825            UnaryOp::Minus => {}
63826            UnaryOp::Plus => {}
63827            UnaryOp::Bang => {}
63828            UnaryOp::Tilde => {}
63829            UnaryOp::TypeOf => {}
63830            UnaryOp::Void => {}
63831            UnaryOp::Delete => {}
63832        }
63833    }
63834}
63835impl<V: ?Sized + VisitMut> VisitMutWith<V> for UpdateExpr {
63836    #[doc = "Calls [VisitMut`::visit_mut_update_expr`] with `self`."]
63837    fn visit_mut_with(&mut self, visitor: &mut V) {
63838        <V as VisitMut>::visit_mut_update_expr(visitor, self)
63839    }
63840
63841    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63842        match self {
63843            UpdateExpr {
63844                span,
63845                op,
63846                prefix,
63847                arg,
63848            } => {
63849                {
63850                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63851                };
63852                {
63853                    <UpdateOp as VisitMutWith<V>>::visit_mut_with(op, visitor)
63854                };
63855                {
63856                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
63857                };
63858            }
63859        }
63860    }
63861}
63862impl<V: ?Sized + VisitMut> VisitMutWith<V> for UpdateOp {
63863    #[doc = "Calls [VisitMut`::visit_mut_update_op`] with `self`."]
63864    fn visit_mut_with(&mut self, visitor: &mut V) {
63865        <V as VisitMut>::visit_mut_update_op(visitor, self)
63866    }
63867
63868    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63869        match self {
63870            UpdateOp::PlusPlus => {}
63871            UpdateOp::MinusMinus => {}
63872        }
63873    }
63874}
63875impl<V: ?Sized + VisitMut> VisitMutWith<V> for UsingDecl {
63876    #[doc = "Calls [VisitMut`::visit_mut_using_decl`] with `self`."]
63877    fn visit_mut_with(&mut self, visitor: &mut V) {
63878        <V as VisitMut>::visit_mut_using_decl(visitor, self)
63879    }
63880
63881    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63882        match self {
63883            UsingDecl {
63884                span,
63885                is_await,
63886                decls,
63887            } => {
63888                {
63889                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63890                };
63891                {
63892                    <Vec<VarDeclarator> as VisitMutWith<V>>::visit_mut_with(decls, visitor)
63893                };
63894            }
63895        }
63896    }
63897}
63898impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDecl {
63899    #[doc = "Calls [VisitMut`::visit_mut_var_decl`] with `self`."]
63900    fn visit_mut_with(&mut self, visitor: &mut V) {
63901        <V as VisitMut>::visit_mut_var_decl(visitor, self)
63902    }
63903
63904    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63905        match self {
63906            VarDecl {
63907                span,
63908                ctxt,
63909                kind,
63910                declare,
63911                decls,
63912            } => {
63913                {
63914                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63915                };
63916                {
63917                    <swc_common::SyntaxContext as VisitMutWith<V>>::visit_mut_with(ctxt, visitor)
63918                };
63919                {
63920                    <VarDeclKind as VisitMutWith<V>>::visit_mut_with(kind, visitor)
63921                };
63922                {
63923                    <Vec<VarDeclarator> as VisitMutWith<V>>::visit_mut_with(decls, visitor)
63924                };
63925            }
63926        }
63927    }
63928}
63929impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDeclKind {
63930    #[doc = "Calls [VisitMut`::visit_mut_var_decl_kind`] with `self`."]
63931    fn visit_mut_with(&mut self, visitor: &mut V) {
63932        <V as VisitMut>::visit_mut_var_decl_kind(visitor, self)
63933    }
63934
63935    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63936        match self {
63937            VarDeclKind::Var => {}
63938            VarDeclKind::Let => {}
63939            VarDeclKind::Const => {}
63940        }
63941    }
63942}
63943impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDeclOrExpr {
63944    #[doc = "Calls [VisitMut`::visit_mut_var_decl_or_expr`] with `self`."]
63945    fn visit_mut_with(&mut self, visitor: &mut V) {
63946        <V as VisitMut>::visit_mut_var_decl_or_expr(visitor, self)
63947    }
63948
63949    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63950        match self {
63951            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
63952                <Box<VarDecl> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63953            }
63954            VarDeclOrExpr::Expr { 0: _field_0 } => {
63955                <Box<Expr> as VisitMutWith<V>>::visit_mut_with(_field_0, visitor);
63956            }
63957        }
63958    }
63959}
63960impl<V: ?Sized + VisitMut> VisitMutWith<V> for VarDeclarator {
63961    #[doc = "Calls [VisitMut`::visit_mut_var_declarator`] with `self`."]
63962    fn visit_mut_with(&mut self, visitor: &mut V) {
63963        <V as VisitMut>::visit_mut_var_declarator(visitor, self)
63964    }
63965
63966    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63967        match self {
63968            VarDeclarator {
63969                span,
63970                name,
63971                init,
63972                definite,
63973            } => {
63974                {
63975                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63976                };
63977                {
63978                    <Pat as VisitMutWith<V>>::visit_mut_with(name, visitor)
63979                };
63980                {
63981                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(init, visitor)
63982                };
63983            }
63984        }
63985    }
63986}
63987impl<V: ?Sized + VisitMut> VisitMutWith<V> for WhileStmt {
63988    #[doc = "Calls [VisitMut`::visit_mut_while_stmt`] with `self`."]
63989    fn visit_mut_with(&mut self, visitor: &mut V) {
63990        <V as VisitMut>::visit_mut_while_stmt(visitor, self)
63991    }
63992
63993    fn visit_mut_children_with(&mut self, visitor: &mut V) {
63994        match self {
63995            WhileStmt { span, test, body } => {
63996                {
63997                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
63998                };
63999                {
64000                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(test, visitor)
64001                };
64002                {
64003                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
64004                };
64005            }
64006        }
64007    }
64008}
64009impl<V: ?Sized + VisitMut> VisitMutWith<V> for WithStmt {
64010    #[doc = "Calls [VisitMut`::visit_mut_with_stmt`] with `self`."]
64011    fn visit_mut_with(&mut self, visitor: &mut V) {
64012        <V as VisitMut>::visit_mut_with_stmt(visitor, self)
64013    }
64014
64015    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64016        match self {
64017            WithStmt { span, obj, body } => {
64018                {
64019                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64020                };
64021                {
64022                    <Box<Expr> as VisitMutWith<V>>::visit_mut_with(obj, visitor)
64023                };
64024                {
64025                    <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(body, visitor)
64026                };
64027            }
64028        }
64029    }
64030}
64031impl<V: ?Sized + VisitMut> VisitMutWith<V> for YieldExpr {
64032    #[doc = "Calls [VisitMut`::visit_mut_yield_expr`] with `self`."]
64033    fn visit_mut_with(&mut self, visitor: &mut V) {
64034        <V as VisitMut>::visit_mut_yield_expr(visitor, self)
64035    }
64036
64037    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64038        match self {
64039            YieldExpr {
64040                span,
64041                arg,
64042                delegate,
64043            } => {
64044                {
64045                    <swc_common::Span as VisitMutWith<V>>::visit_mut_with(span, visitor)
64046                };
64047                {
64048                    <Option<Box<Expr>> as VisitMutWith<V>>::visit_mut_with(arg, visitor)
64049                };
64050            }
64051        }
64052    }
64053}
64054impl<V: ?Sized + VisitMut> VisitMutWith<V> for swc_atoms::Atom {
64055    #[doc = "Calls [VisitMut`::visit_mut_atom`] with `self`. (Extra impl)"]
64056    #[inline]
64057    fn visit_mut_with(&mut self, visitor: &mut V) {
64058        <V as VisitMut>::visit_mut_atom(visitor, self)
64059    }
64060
64061    #[inline]
64062    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64063        {}
64064    }
64065}
64066impl<V: ?Sized + VisitMut> VisitMutWith<V> for BigIntValue {
64067    #[doc = "Calls [VisitMut`::visit_mut_big_int_value`] with `self`. (Extra impl)"]
64068    #[inline]
64069    fn visit_mut_with(&mut self, visitor: &mut V) {
64070        <V as VisitMut>::visit_mut_big_int_value(visitor, self)
64071    }
64072
64073    #[inline]
64074    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64075        {}
64076    }
64077}
64078impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ClassMember> {
64079    #[doc = "Calls [VisitMut`::visit_mut_class_members`] with `self`. (Extra impl)"]
64080    #[inline]
64081    fn visit_mut_with(&mut self, visitor: &mut V) {
64082        <V as VisitMut>::visit_mut_class_members(visitor, self)
64083    }
64084
64085    #[inline]
64086    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64087        self.iter_mut()
64088            .for_each(|item| <ClassMember as VisitMutWith<V>>::visit_mut_with(item, visitor))
64089    }
64090}
64091impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Decorator> {
64092    #[doc = "Calls [VisitMut`::visit_mut_decorators`] with `self`. (Extra impl)"]
64093    #[inline]
64094    fn visit_mut_with(&mut self, visitor: &mut V) {
64095        <V as VisitMut>::visit_mut_decorators(visitor, self)
64096    }
64097
64098    #[inline]
64099    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64100        self.iter_mut()
64101            .for_each(|item| <Decorator as VisitMutWith<V>>::visit_mut_with(item, visitor))
64102    }
64103}
64104impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ExportSpecifier> {
64105    #[doc = "Calls [VisitMut`::visit_mut_export_specifiers`] with `self`. (Extra impl)"]
64106    #[inline]
64107    fn visit_mut_with(&mut self, visitor: &mut V) {
64108        <V as VisitMut>::visit_mut_export_specifiers(visitor, self)
64109    }
64110
64111    #[inline]
64112    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64113        self.iter_mut()
64114            .for_each(|item| <ExportSpecifier as VisitMutWith<V>>::visit_mut_with(item, visitor))
64115    }
64116}
64117impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ExprOrSpread> {
64118    #[doc = "Calls [VisitMut`::visit_mut_expr_or_spreads`] with `self`. (Extra impl)"]
64119    #[inline]
64120    fn visit_mut_with(&mut self, visitor: &mut V) {
64121        <V as VisitMut>::visit_mut_expr_or_spreads(visitor, self)
64122    }
64123
64124    #[inline]
64125    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64126        self.iter_mut()
64127            .for_each(|item| <ExprOrSpread as VisitMutWith<V>>::visit_mut_with(item, visitor))
64128    }
64129}
64130impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Box<Expr>> {
64131    #[doc = "Calls [VisitMut`::visit_mut_exprs`] with `self`. (Extra impl)"]
64132    #[inline]
64133    fn visit_mut_with(&mut self, visitor: &mut V) {
64134        <V as VisitMut>::visit_mut_exprs(visitor, self)
64135    }
64136
64137    #[inline]
64138    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64139        self.iter_mut()
64140            .for_each(|item| <Box<Expr> as VisitMutWith<V>>::visit_mut_with(item, visitor))
64141    }
64142}
64143impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ImportSpecifier> {
64144    #[doc = "Calls [VisitMut`::visit_mut_import_specifiers`] with `self`. (Extra impl)"]
64145    #[inline]
64146    fn visit_mut_with(&mut self, visitor: &mut V) {
64147        <V as VisitMut>::visit_mut_import_specifiers(visitor, self)
64148    }
64149
64150    #[inline]
64151    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64152        self.iter_mut()
64153            .for_each(|item| <ImportSpecifier as VisitMutWith<V>>::visit_mut_with(item, visitor))
64154    }
64155}
64156impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ImportWithItem> {
64157    #[doc = "Calls [VisitMut`::visit_mut_import_with_items`] with `self`. (Extra impl)"]
64158    #[inline]
64159    fn visit_mut_with(&mut self, visitor: &mut V) {
64160        <V as VisitMut>::visit_mut_import_with_items(visitor, self)
64161    }
64162
64163    #[inline]
64164    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64165        self.iter_mut()
64166            .for_each(|item| <ImportWithItem as VisitMutWith<V>>::visit_mut_with(item, visitor))
64167    }
64168}
64169impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<JSXAttrOrSpread> {
64170    #[doc = "Calls [VisitMut`::visit_mut_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
64171    #[inline]
64172    fn visit_mut_with(&mut self, visitor: &mut V) {
64173        <V as VisitMut>::visit_mut_jsx_attr_or_spreads(visitor, self)
64174    }
64175
64176    #[inline]
64177    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64178        self.iter_mut()
64179            .for_each(|item| <JSXAttrOrSpread as VisitMutWith<V>>::visit_mut_with(item, visitor))
64180    }
64181}
64182impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<JSXElementChild> {
64183    #[doc = "Calls [VisitMut`::visit_mut_jsx_element_childs`] with `self`. (Extra impl)"]
64184    #[inline]
64185    fn visit_mut_with(&mut self, visitor: &mut V) {
64186        <V as VisitMut>::visit_mut_jsx_element_childs(visitor, self)
64187    }
64188
64189    #[inline]
64190    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64191        self.iter_mut()
64192            .for_each(|item| <JSXElementChild as VisitMutWith<V>>::visit_mut_with(item, visitor))
64193    }
64194}
64195impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ModuleItem> {
64196    #[doc = "Calls [VisitMut`::visit_mut_module_items`] with `self`. (Extra impl)"]
64197    #[inline]
64198    fn visit_mut_with(&mut self, visitor: &mut V) {
64199        <V as VisitMut>::visit_mut_module_items(visitor, self)
64200    }
64201
64202    #[inline]
64203    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64204        self.iter_mut()
64205            .for_each(|item| <ModuleItem as VisitMutWith<V>>::visit_mut_with(item, visitor))
64206    }
64207}
64208impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ObjectPatProp> {
64209    #[doc = "Calls [VisitMut`::visit_mut_object_pat_props`] with `self`. (Extra impl)"]
64210    #[inline]
64211    fn visit_mut_with(&mut self, visitor: &mut V) {
64212        <V as VisitMut>::visit_mut_object_pat_props(visitor, self)
64213    }
64214
64215    #[inline]
64216    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64217        self.iter_mut()
64218            .for_each(|item| <ObjectPatProp as VisitMutWith<V>>::visit_mut_with(item, visitor))
64219    }
64220}
64221impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Accessibility> {
64222    #[doc = "Calls [VisitMut`::visit_mut_opt_accessibility`] with `self`. (Extra impl)"]
64223    #[inline]
64224    fn visit_mut_with(&mut self, visitor: &mut V) {
64225        <V as VisitMut>::visit_mut_opt_accessibility(visitor, self)
64226    }
64227
64228    #[inline]
64229    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64230        match self {
64231            Some(inner) => <Accessibility as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64232            None => {}
64233        }
64234    }
64235}
64236impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<swc_atoms::Atom> {
64237    #[doc = "Calls [VisitMut`::visit_mut_opt_atom`] with `self`. (Extra impl)"]
64238    #[inline]
64239    fn visit_mut_with(&mut self, visitor: &mut V) {
64240        <V as VisitMut>::visit_mut_opt_atom(visitor, self)
64241    }
64242
64243    #[inline]
64244    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64245        match self {
64246            Some(inner) => <swc_atoms::Atom as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64247            None => {}
64248        }
64249    }
64250}
64251impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<BlockStmt> {
64252    #[doc = "Calls [VisitMut`::visit_mut_opt_block_stmt`] with `self`. (Extra impl)"]
64253    #[inline]
64254    fn visit_mut_with(&mut self, visitor: &mut V) {
64255        <V as VisitMut>::visit_mut_opt_block_stmt(visitor, self)
64256    }
64257
64258    #[inline]
64259    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64260        match self {
64261            Some(inner) => <BlockStmt as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64262            None => {}
64263        }
64264    }
64265}
64266impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<CatchClause> {
64267    #[doc = "Calls [VisitMut`::visit_mut_opt_catch_clause`] with `self`. (Extra impl)"]
64268    #[inline]
64269    fn visit_mut_with(&mut self, visitor: &mut V) {
64270        <V as VisitMut>::visit_mut_opt_catch_clause(visitor, self)
64271    }
64272
64273    #[inline]
64274    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64275        match self {
64276            Some(inner) => <CatchClause as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64277            None => {}
64278        }
64279    }
64280}
64281impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<Expr>> {
64282    #[doc = "Calls [VisitMut`::visit_mut_opt_expr`] with `self`. (Extra impl)"]
64283    #[inline]
64284    fn visit_mut_with(&mut self, visitor: &mut V) {
64285        <V as VisitMut>::visit_mut_opt_expr(visitor, self)
64286    }
64287
64288    #[inline]
64289    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64290        match self {
64291            Some(inner) => <Box<Expr> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64292            None => {}
64293        }
64294    }
64295}
64296impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<ExprOrSpread> {
64297    #[doc = "Calls [VisitMut`::visit_mut_opt_expr_or_spread`] with `self`. (Extra impl)"]
64298    #[inline]
64299    fn visit_mut_with(&mut self, visitor: &mut V) {
64300        <V as VisitMut>::visit_mut_opt_expr_or_spread(visitor, self)
64301    }
64302
64303    #[inline]
64304    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64305        match self {
64306            Some(inner) => <ExprOrSpread as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64307            None => {}
64308        }
64309    }
64310}
64311impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Vec<ExprOrSpread>> {
64312    #[doc = "Calls [VisitMut`::visit_mut_opt_expr_or_spreads`] with `self`. (Extra impl)"]
64313    #[inline]
64314    fn visit_mut_with(&mut self, visitor: &mut V) {
64315        <V as VisitMut>::visit_mut_opt_expr_or_spreads(visitor, self)
64316    }
64317
64318    #[inline]
64319    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64320        match self {
64321            Some(inner) => <Vec<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64322            None => {}
64323        }
64324    }
64325}
64326impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Ident> {
64327    #[doc = "Calls [VisitMut`::visit_mut_opt_ident`] with `self`. (Extra impl)"]
64328    #[inline]
64329    fn visit_mut_with(&mut self, visitor: &mut V) {
64330        <V as VisitMut>::visit_mut_opt_ident(visitor, self)
64331    }
64332
64333    #[inline]
64334    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64335        match self {
64336            Some(inner) => <Ident as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64337            None => {}
64338        }
64339    }
64340}
64341impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<JSXAttrValue> {
64342    #[doc = "Calls [VisitMut`::visit_mut_opt_jsx_attr_value`] with `self`. (Extra impl)"]
64343    #[inline]
64344    fn visit_mut_with(&mut self, visitor: &mut V) {
64345        <V as VisitMut>::visit_mut_opt_jsx_attr_value(visitor, self)
64346    }
64347
64348    #[inline]
64349    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64350        match self {
64351            Some(inner) => <JSXAttrValue as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64352            None => {}
64353        }
64354    }
64355}
64356impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<JSXClosingElement> {
64357    #[doc = "Calls [VisitMut`::visit_mut_opt_jsx_closing_element`] with `self`. (Extra impl)"]
64358    #[inline]
64359    fn visit_mut_with(&mut self, visitor: &mut V) {
64360        <V as VisitMut>::visit_mut_opt_jsx_closing_element(visitor, self)
64361    }
64362
64363    #[inline]
64364    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64365        match self {
64366            Some(inner) => <JSXClosingElement as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64367            None => {}
64368        }
64369    }
64370}
64371impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<ModuleExportName> {
64372    #[doc = "Calls [VisitMut`::visit_mut_opt_module_export_name`] with `self`. (Extra impl)"]
64373    #[inline]
64374    fn visit_mut_with(&mut self, visitor: &mut V) {
64375        <V as VisitMut>::visit_mut_opt_module_export_name(visitor, self)
64376    }
64377
64378    #[inline]
64379    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64380        match self {
64381            Some(inner) => <ModuleExportName as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64382            None => {}
64383        }
64384    }
64385}
64386impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<ObjectLit>> {
64387    #[doc = "Calls [VisitMut`::visit_mut_opt_object_lit`] with `self`. (Extra impl)"]
64388    #[inline]
64389    fn visit_mut_with(&mut self, visitor: &mut V) {
64390        <V as VisitMut>::visit_mut_opt_object_lit(visitor, self)
64391    }
64392
64393    #[inline]
64394    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64395        match self {
64396            Some(inner) => <Box<ObjectLit> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64397            None => {}
64398        }
64399    }
64400}
64401impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Pat> {
64402    #[doc = "Calls [VisitMut`::visit_mut_opt_pat`] with `self`. (Extra impl)"]
64403    #[inline]
64404    fn visit_mut_with(&mut self, visitor: &mut V) {
64405        <V as VisitMut>::visit_mut_opt_pat(visitor, self)
64406    }
64407
64408    #[inline]
64409    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64410        match self {
64411            Some(inner) => <Pat as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64412            None => {}
64413        }
64414    }
64415}
64416impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<swc_common::Span> {
64417    #[doc = "Calls [VisitMut`::visit_mut_opt_span`] with `self`. (Extra impl)"]
64418    #[inline]
64419    fn visit_mut_with(&mut self, visitor: &mut V) {
64420        <V as VisitMut>::visit_mut_opt_span(visitor, self)
64421    }
64422
64423    #[inline]
64424    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64425        match self {
64426            Some(inner) => <swc_common::Span as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64427            None => {}
64428        }
64429    }
64430}
64431impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<Stmt>> {
64432    #[doc = "Calls [VisitMut`::visit_mut_opt_stmt`] with `self`. (Extra impl)"]
64433    #[inline]
64434    fn visit_mut_with(&mut self, visitor: &mut V) {
64435        <V as VisitMut>::visit_mut_opt_stmt(visitor, self)
64436    }
64437
64438    #[inline]
64439    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64440        match self {
64441            Some(inner) => <Box<Stmt> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64442            None => {}
64443        }
64444    }
64445}
64446impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<Str>> {
64447    #[doc = "Calls [VisitMut`::visit_mut_opt_str`] with `self`. (Extra impl)"]
64448    #[inline]
64449    fn visit_mut_with(&mut self, visitor: &mut V) {
64450        <V as VisitMut>::visit_mut_opt_str(visitor, self)
64451    }
64452
64453    #[inline]
64454    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64455        match self {
64456            Some(inner) => <Box<Str> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64457            None => {}
64458        }
64459    }
64460}
64461impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TruePlusMinus> {
64462    #[doc = "Calls [VisitMut`::visit_mut_opt_true_plus_minus`] with `self`. (Extra impl)"]
64463    #[inline]
64464    fn visit_mut_with(&mut self, visitor: &mut V) {
64465        <V as VisitMut>::visit_mut_opt_true_plus_minus(visitor, self)
64466    }
64467
64468    #[inline]
64469    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64470        match self {
64471            Some(inner) => <TruePlusMinus as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64472            None => {}
64473        }
64474    }
64475}
64476impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TsEntityName> {
64477    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_entity_name`] with `self`. (Extra impl)"]
64478    #[inline]
64479    fn visit_mut_with(&mut self, visitor: &mut V) {
64480        <V as VisitMut>::visit_mut_opt_ts_entity_name(visitor, self)
64481    }
64482
64483    #[inline]
64484    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64485        match self {
64486            Some(inner) => <TsEntityName as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64487            None => {}
64488        }
64489    }
64490}
64491impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<TsNamespaceBody> {
64492    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_namespace_body`] with `self`. (Extra impl)"]
64493    #[inline]
64494    fn visit_mut_with(&mut self, visitor: &mut V) {
64495        <V as VisitMut>::visit_mut_opt_ts_namespace_body(visitor, self)
64496    }
64497
64498    #[inline]
64499    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64500        match self {
64501            Some(inner) => <TsNamespaceBody as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64502            None => {}
64503        }
64504    }
64505}
64506impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsType>> {
64507    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type`] with `self`. (Extra impl)"]
64508    #[inline]
64509    fn visit_mut_with(&mut self, visitor: &mut V) {
64510        <V as VisitMut>::visit_mut_opt_ts_type(visitor, self)
64511    }
64512
64513    #[inline]
64514    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64515        match self {
64516            Some(inner) => <Box<TsType> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64517            None => {}
64518        }
64519    }
64520}
64521impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsTypeAnn>> {
64522    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type_ann`] with `self`. (Extra impl)"]
64523    #[inline]
64524    fn visit_mut_with(&mut self, visitor: &mut V) {
64525        <V as VisitMut>::visit_mut_opt_ts_type_ann(visitor, self)
64526    }
64527
64528    #[inline]
64529    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64530        match self {
64531            Some(inner) => <Box<TsTypeAnn> as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64532            None => {}
64533        }
64534    }
64535}
64536impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsTypeParamDecl>> {
64537    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
64538    #[inline]
64539    fn visit_mut_with(&mut self, visitor: &mut V) {
64540        <V as VisitMut>::visit_mut_opt_ts_type_param_decl(visitor, self)
64541    }
64542
64543    #[inline]
64544    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64545        match self {
64546            Some(inner) => {
64547                <Box<TsTypeParamDecl> as VisitMutWith<V>>::visit_mut_with(inner, visitor)
64548            }
64549            None => {}
64550        }
64551    }
64552}
64553impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<Box<TsTypeParamInstantiation>> {
64554    #[doc = "Calls [VisitMut`::visit_mut_opt_ts_type_param_instantiation`] with `self`. (Extra \
64555             impl)"]
64556    #[inline]
64557    fn visit_mut_with(&mut self, visitor: &mut V) {
64558        <V as VisitMut>::visit_mut_opt_ts_type_param_instantiation(visitor, self)
64559    }
64560
64561    #[inline]
64562    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64563        match self {
64564            Some(inner) => {
64565                <Box<TsTypeParamInstantiation> as VisitMutWith<V>>::visit_mut_with(inner, visitor)
64566            }
64567            None => {}
64568        }
64569    }
64570}
64571impl<V: ?Sized + VisitMut> VisitMutWith<V> for Option<VarDeclOrExpr> {
64572    #[doc = "Calls [VisitMut`::visit_mut_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
64573    #[inline]
64574    fn visit_mut_with(&mut self, visitor: &mut V) {
64575        <V as VisitMut>::visit_mut_opt_var_decl_or_expr(visitor, self)
64576    }
64577
64578    #[inline]
64579    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64580        match self {
64581            Some(inner) => <VarDeclOrExpr as VisitMutWith<V>>::visit_mut_with(inner, visitor),
64582            None => {}
64583        }
64584    }
64585}
64586impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Option<ExprOrSpread>> {
64587    #[doc = "Calls [VisitMut`::visit_mut_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
64588    #[inline]
64589    fn visit_mut_with(&mut self, visitor: &mut V) {
64590        <V as VisitMut>::visit_mut_opt_vec_expr_or_spreads(visitor, self)
64591    }
64592
64593    #[inline]
64594    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64595        self.iter_mut().for_each(|item| {
64596            <Option<ExprOrSpread> as VisitMutWith<V>>::visit_mut_with(item, visitor)
64597        })
64598    }
64599}
64600impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Option<Pat>> {
64601    #[doc = "Calls [VisitMut`::visit_mut_opt_vec_pats`] with `self`. (Extra impl)"]
64602    #[inline]
64603    fn visit_mut_with(&mut self, visitor: &mut V) {
64604        <V as VisitMut>::visit_mut_opt_vec_pats(visitor, self)
64605    }
64606
64607    #[inline]
64608    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64609        self.iter_mut()
64610            .for_each(|item| <Option<Pat> as VisitMutWith<V>>::visit_mut_with(item, visitor))
64611    }
64612}
64613impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<ParamOrTsParamProp> {
64614    #[doc = "Calls [VisitMut`::visit_mut_param_or_ts_param_props`] with `self`. (Extra impl)"]
64615    #[inline]
64616    fn visit_mut_with(&mut self, visitor: &mut V) {
64617        <V as VisitMut>::visit_mut_param_or_ts_param_props(visitor, self)
64618    }
64619
64620    #[inline]
64621    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64622        self.iter_mut()
64623            .for_each(|item| <ParamOrTsParamProp as VisitMutWith<V>>::visit_mut_with(item, visitor))
64624    }
64625}
64626impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Param> {
64627    #[doc = "Calls [VisitMut`::visit_mut_params`] with `self`. (Extra impl)"]
64628    #[inline]
64629    fn visit_mut_with(&mut self, visitor: &mut V) {
64630        <V as VisitMut>::visit_mut_params(visitor, self)
64631    }
64632
64633    #[inline]
64634    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64635        self.iter_mut()
64636            .for_each(|item| <Param as VisitMutWith<V>>::visit_mut_with(item, visitor))
64637    }
64638}
64639impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Pat> {
64640    #[doc = "Calls [VisitMut`::visit_mut_pats`] with `self`. (Extra impl)"]
64641    #[inline]
64642    fn visit_mut_with(&mut self, visitor: &mut V) {
64643        <V as VisitMut>::visit_mut_pats(visitor, self)
64644    }
64645
64646    #[inline]
64647    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64648        self.iter_mut()
64649            .for_each(|item| <Pat as VisitMutWith<V>>::visit_mut_with(item, visitor))
64650    }
64651}
64652impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<PropOrSpread> {
64653    #[doc = "Calls [VisitMut`::visit_mut_prop_or_spreads`] with `self`. (Extra impl)"]
64654    #[inline]
64655    fn visit_mut_with(&mut self, visitor: &mut V) {
64656        <V as VisitMut>::visit_mut_prop_or_spreads(visitor, self)
64657    }
64658
64659    #[inline]
64660    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64661        self.iter_mut()
64662            .for_each(|item| <PropOrSpread as VisitMutWith<V>>::visit_mut_with(item, visitor))
64663    }
64664}
64665impl<V: ?Sized + VisitMut> VisitMutWith<V> for swc_common::Span {
64666    #[doc = "Calls [VisitMut`::visit_mut_span`] with `self`. (Extra impl)"]
64667    #[inline]
64668    fn visit_mut_with(&mut self, visitor: &mut V) {
64669        <V as VisitMut>::visit_mut_span(visitor, self)
64670    }
64671
64672    #[inline]
64673    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64674        {}
64675    }
64676}
64677impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Stmt> {
64678    #[doc = "Calls [VisitMut`::visit_mut_stmts`] with `self`. (Extra impl)"]
64679    #[inline]
64680    fn visit_mut_with(&mut self, visitor: &mut V) {
64681        <V as VisitMut>::visit_mut_stmts(visitor, self)
64682    }
64683
64684    #[inline]
64685    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64686        self.iter_mut()
64687            .for_each(|item| <Stmt as VisitMutWith<V>>::visit_mut_with(item, visitor))
64688    }
64689}
64690impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<SwitchCase> {
64691    #[doc = "Calls [VisitMut`::visit_mut_switch_cases`] with `self`. (Extra impl)"]
64692    #[inline]
64693    fn visit_mut_with(&mut self, visitor: &mut V) {
64694        <V as VisitMut>::visit_mut_switch_cases(visitor, self)
64695    }
64696
64697    #[inline]
64698    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64699        self.iter_mut()
64700            .for_each(|item| <SwitchCase as VisitMutWith<V>>::visit_mut_with(item, visitor))
64701    }
64702}
64703impl<V: ?Sized + VisitMut> VisitMutWith<V> for swc_common::SyntaxContext {
64704    #[doc = "Calls [VisitMut`::visit_mut_syntax_context`] with `self`. (Extra impl)"]
64705    #[inline]
64706    fn visit_mut_with(&mut self, visitor: &mut V) {
64707        <V as VisitMut>::visit_mut_syntax_context(visitor, self)
64708    }
64709
64710    #[inline]
64711    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64712        {}
64713    }
64714}
64715impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TplElement> {
64716    #[doc = "Calls [VisitMut`::visit_mut_tpl_elements`] with `self`. (Extra impl)"]
64717    #[inline]
64718    fn visit_mut_with(&mut self, visitor: &mut V) {
64719        <V as VisitMut>::visit_mut_tpl_elements(visitor, self)
64720    }
64721
64722    #[inline]
64723    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64724        self.iter_mut()
64725            .for_each(|item| <TplElement as VisitMutWith<V>>::visit_mut_with(item, visitor))
64726    }
64727}
64728impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsEnumMember> {
64729    #[doc = "Calls [VisitMut`::visit_mut_ts_enum_members`] with `self`. (Extra impl)"]
64730    #[inline]
64731    fn visit_mut_with(&mut self, visitor: &mut V) {
64732        <V as VisitMut>::visit_mut_ts_enum_members(visitor, self)
64733    }
64734
64735    #[inline]
64736    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64737        self.iter_mut()
64738            .for_each(|item| <TsEnumMember as VisitMutWith<V>>::visit_mut_with(item, visitor))
64739    }
64740}
64741impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsExprWithTypeArgs> {
64742    #[doc = "Calls [VisitMut`::visit_mut_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
64743    #[inline]
64744    fn visit_mut_with(&mut self, visitor: &mut V) {
64745        <V as VisitMut>::visit_mut_ts_expr_with_type_argss(visitor, self)
64746    }
64747
64748    #[inline]
64749    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64750        self.iter_mut()
64751            .for_each(|item| <TsExprWithTypeArgs as VisitMutWith<V>>::visit_mut_with(item, visitor))
64752    }
64753}
64754impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsFnParam> {
64755    #[doc = "Calls [VisitMut`::visit_mut_ts_fn_params`] with `self`. (Extra impl)"]
64756    #[inline]
64757    fn visit_mut_with(&mut self, visitor: &mut V) {
64758        <V as VisitMut>::visit_mut_ts_fn_params(visitor, self)
64759    }
64760
64761    #[inline]
64762    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64763        self.iter_mut()
64764            .for_each(|item| <TsFnParam as VisitMutWith<V>>::visit_mut_with(item, visitor))
64765    }
64766}
64767impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsTupleElement> {
64768    #[doc = "Calls [VisitMut`::visit_mut_ts_tuple_elements`] with `self`. (Extra impl)"]
64769    #[inline]
64770    fn visit_mut_with(&mut self, visitor: &mut V) {
64771        <V as VisitMut>::visit_mut_ts_tuple_elements(visitor, self)
64772    }
64773
64774    #[inline]
64775    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64776        self.iter_mut()
64777            .for_each(|item| <TsTupleElement as VisitMutWith<V>>::visit_mut_with(item, visitor))
64778    }
64779}
64780impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsTypeElement> {
64781    #[doc = "Calls [VisitMut`::visit_mut_ts_type_elements`] with `self`. (Extra impl)"]
64782    #[inline]
64783    fn visit_mut_with(&mut self, visitor: &mut V) {
64784        <V as VisitMut>::visit_mut_ts_type_elements(visitor, self)
64785    }
64786
64787    #[inline]
64788    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64789        self.iter_mut()
64790            .for_each(|item| <TsTypeElement as VisitMutWith<V>>::visit_mut_with(item, visitor))
64791    }
64792}
64793impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<TsTypeParam> {
64794    #[doc = "Calls [VisitMut`::visit_mut_ts_type_params`] with `self`. (Extra impl)"]
64795    #[inline]
64796    fn visit_mut_with(&mut self, visitor: &mut V) {
64797        <V as VisitMut>::visit_mut_ts_type_params(visitor, self)
64798    }
64799
64800    #[inline]
64801    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64802        self.iter_mut()
64803            .for_each(|item| <TsTypeParam as VisitMutWith<V>>::visit_mut_with(item, visitor))
64804    }
64805}
64806impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<Box<TsType>> {
64807    #[doc = "Calls [VisitMut`::visit_mut_ts_types`] with `self`. (Extra impl)"]
64808    #[inline]
64809    fn visit_mut_with(&mut self, visitor: &mut V) {
64810        <V as VisitMut>::visit_mut_ts_types(visitor, self)
64811    }
64812
64813    #[inline]
64814    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64815        self.iter_mut()
64816            .for_each(|item| <Box<TsType> as VisitMutWith<V>>::visit_mut_with(item, visitor))
64817    }
64818}
64819impl<V: ?Sized + VisitMut> VisitMutWith<V> for Vec<VarDeclarator> {
64820    #[doc = "Calls [VisitMut`::visit_mut_var_declarators`] with `self`. (Extra impl)"]
64821    #[inline]
64822    fn visit_mut_with(&mut self, visitor: &mut V) {
64823        <V as VisitMut>::visit_mut_var_declarators(visitor, self)
64824    }
64825
64826    #[inline]
64827    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64828        self.iter_mut()
64829            .for_each(|item| <VarDeclarator as VisitMutWith<V>>::visit_mut_with(item, visitor))
64830    }
64831}
64832impl<V, T> VisitMutWith<V> for std::boxed::Box<T>
64833where
64834    V: ?Sized + VisitMut,
64835    T: VisitMutWith<V>,
64836{
64837    #[inline]
64838    fn visit_mut_with(&mut self, visitor: &mut V) {
64839        let v = <T as VisitMutWith<V>>::visit_mut_with(&mut **self, visitor);
64840        v
64841    }
64842
64843    #[inline]
64844    fn visit_mut_children_with(&mut self, visitor: &mut V) {
64845        let v = <T as VisitMutWith<V>>::visit_mut_children_with(&mut **self, visitor);
64846        v
64847    }
64848}
64849#[doc = r" A visitor trait for traversing the AST."]
64850#[cfg(any(docsrs, feature = "path"))]
64851#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
64852pub trait VisitMutAstPath {
64853    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
64854             [`Accessibility::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
64855             to call it manually."]
64856    #[inline]
64857    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
64858        <Accessibility as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64859            node, self, __ast_path,
64860        )
64861    }
64862    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
64863             [`ArrayLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64864             call it manually."]
64865    #[inline]
64866    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
64867        <ArrayLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64868            node, self, __ast_path,
64869        )
64870    }
64871    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
64872             [`ArrayPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64873             call it manually."]
64874    #[inline]
64875    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
64876        <ArrayPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64877            node, self, __ast_path,
64878        )
64879    }
64880    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
64881             [`ArrowExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64882             call it manually."]
64883    #[inline]
64884    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
64885        <ArrowExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64886            node, self, __ast_path,
64887        )
64888    }
64889    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
64890             [`AssignExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64891             call it manually."]
64892    #[inline]
64893    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
64894        <AssignExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64895            node, self, __ast_path,
64896        )
64897    }
64898    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
64899             [`AssignOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64900             call it manually."]
64901    #[inline]
64902    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
64903        <AssignOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64904            node, self, __ast_path,
64905        )
64906    }
64907    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
64908             [`AssignPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64909             call it manually."]
64910    #[inline]
64911    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
64912        <AssignPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64913            node, self, __ast_path,
64914        )
64915    }
64916    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
64917             [`AssignPatProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
64918             to call it manually."]
64919    #[inline]
64920    fn visit_mut_assign_pat_prop(
64921        &mut self,
64922        node: &mut AssignPatProp,
64923        __ast_path: &mut AstKindPath,
64924    ) {
64925        <AssignPatProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64926            node, self, __ast_path,
64927        )
64928    }
64929    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
64930             [`AssignProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64931             call it manually."]
64932    #[inline]
64933    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
64934        <AssignProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64935            node, self, __ast_path,
64936        )
64937    }
64938    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
64939             [`AssignTarget::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
64940             to call it manually."]
64941    #[inline]
64942    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
64943        <AssignTarget as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64944            node, self, __ast_path,
64945        )
64946    }
64947    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
64948             [`AssignTargetPat::visit_mut_children_with_ast_path`]. If you want to recurse, you \
64949             need to call it manually."]
64950    #[inline]
64951    fn visit_mut_assign_target_pat(
64952        &mut self,
64953        node: &mut AssignTargetPat,
64954        __ast_path: &mut AstKindPath,
64955    ) {
64956        <AssignTargetPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64957            node, self, __ast_path,
64958        )
64959    }
64960    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
64961             [`swc_atoms :: Atom::visit_mut_children_with_ast_path`]. If you want to recurse, you \
64962             need to call it manually."]
64963    #[inline]
64964    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
64965        <swc_atoms::Atom as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64966            node, self, __ast_path,
64967        )
64968    }
64969    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
64970             [`AutoAccessor::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
64971             to call it manually."]
64972    #[inline]
64973    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
64974        <AutoAccessor as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64975            node, self, __ast_path,
64976        )
64977    }
64978    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
64979             [`AwaitExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64980             call it manually."]
64981    #[inline]
64982    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
64983        <AwaitExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64984            node, self, __ast_path,
64985        )
64986    }
64987    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
64988             [`BigInt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
64989             call it manually."]
64990    #[inline]
64991    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
64992        <BigInt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
64993            node, self, __ast_path,
64994        )
64995    }
64996    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
64997             [`BigIntValue::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
64998             to call it manually."]
64999    #[inline]
65000    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
65001        <BigIntValue as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65002            node, self, __ast_path,
65003        )
65004    }
65005    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
65006             [`BinExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65007             call it manually."]
65008    #[inline]
65009    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
65010        <BinExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65011            node, self, __ast_path,
65012        )
65013    }
65014    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
65015             [`BinaryOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65016             call it manually."]
65017    #[inline]
65018    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
65019        <BinaryOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65020            node, self, __ast_path,
65021        )
65022    }
65023    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
65024             [`BindingIdent::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65025             to call it manually."]
65026    #[inline]
65027    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
65028        <BindingIdent as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65029            node, self, __ast_path,
65030        )
65031    }
65032    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
65033             [`BlockStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65034             call it manually."]
65035    #[inline]
65036    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
65037        <BlockStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65038            node, self, __ast_path,
65039        )
65040    }
65041    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
65042             [`BlockStmtOrExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65043             need to call it manually."]
65044    #[inline]
65045    fn visit_mut_block_stmt_or_expr(
65046        &mut self,
65047        node: &mut BlockStmtOrExpr,
65048        __ast_path: &mut AstKindPath,
65049    ) {
65050        <BlockStmtOrExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65051            node, self, __ast_path,
65052        )
65053    }
65054    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
65055             [`Bool::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65056             it manually."]
65057    #[inline]
65058    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
65059        <Bool as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65060            node, self, __ast_path,
65061        )
65062    }
65063    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
65064             [`BreakStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65065             call it manually."]
65066    #[inline]
65067    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
65068        <BreakStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65069            node, self, __ast_path,
65070        )
65071    }
65072    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
65073             [`CallExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65074             call it manually."]
65075    #[inline]
65076    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
65077        <CallExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65078            node, self, __ast_path,
65079        )
65080    }
65081    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
65082             [`Callee::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65083             call it manually."]
65084    #[inline]
65085    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
65086        <Callee as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65087            node, self, __ast_path,
65088        )
65089    }
65090    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
65091             [`CatchClause::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65092             to call it manually."]
65093    #[inline]
65094    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
65095        <CatchClause as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65096            node, self, __ast_path,
65097        )
65098    }
65099    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
65100             [`Class::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65101             it manually."]
65102    #[inline]
65103    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
65104        <Class as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65105            node, self, __ast_path,
65106        )
65107    }
65108    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
65109             [`ClassDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65110             call it manually."]
65111    #[inline]
65112    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
65113        <ClassDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65114            node, self, __ast_path,
65115        )
65116    }
65117    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
65118             [`ClassExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65119             call it manually."]
65120    #[inline]
65121    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
65122        <ClassExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65123            node, self, __ast_path,
65124        )
65125    }
65126    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
65127             [`ClassMember::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65128             to call it manually."]
65129    #[inline]
65130    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
65131        <ClassMember as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65132            node, self, __ast_path,
65133        )
65134    }
65135    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
65136             ClassMember >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65137             to call it manually."]
65138    #[inline]
65139    fn visit_mut_class_members(
65140        &mut self,
65141        node: &mut Vec<ClassMember>,
65142        __ast_path: &mut AstKindPath,
65143    ) {
65144        <Vec<ClassMember> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65145            node, self, __ast_path,
65146        )
65147    }
65148    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
65149             [`ClassMethod::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65150             to call it manually."]
65151    #[inline]
65152    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
65153        <ClassMethod as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65154            node, self, __ast_path,
65155        )
65156    }
65157    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
65158             [`ClassProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65159             call it manually."]
65160    #[inline]
65161    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
65162        <ClassProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65163            node, self, __ast_path,
65164        )
65165    }
65166    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
65167             [`ComputedPropName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65168             need to call it manually."]
65169    #[inline]
65170    fn visit_mut_computed_prop_name(
65171        &mut self,
65172        node: &mut ComputedPropName,
65173        __ast_path: &mut AstKindPath,
65174    ) {
65175        <ComputedPropName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65176            node, self, __ast_path,
65177        )
65178    }
65179    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
65180             [`CondExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65181             call it manually."]
65182    #[inline]
65183    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
65184        <CondExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65185            node, self, __ast_path,
65186        )
65187    }
65188    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
65189             [`Constructor::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65190             to call it manually."]
65191    #[inline]
65192    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
65193        <Constructor as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65194            node, self, __ast_path,
65195        )
65196    }
65197    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
65198             [`ContinueStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65199             to call it manually."]
65200    #[inline]
65201    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
65202        <ContinueStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65203            node, self, __ast_path,
65204        )
65205    }
65206    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
65207             [`DebuggerStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65208             to call it manually."]
65209    #[inline]
65210    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
65211        <DebuggerStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65212            node, self, __ast_path,
65213        )
65214    }
65215    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
65216             [`Decl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65217             it manually."]
65218    #[inline]
65219    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
65220        <Decl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65221            node, self, __ast_path,
65222        )
65223    }
65224    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
65225             [`Decorator::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65226             call it manually."]
65227    #[inline]
65228    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
65229        <Decorator as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65230            node, self, __ast_path,
65231        )
65232    }
65233    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
65234             Decorator >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65235             call it manually."]
65236    #[inline]
65237    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
65238        <Vec<Decorator> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65239            node, self, __ast_path,
65240        )
65241    }
65242    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
65243             [`DefaultDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65244             to call it manually."]
65245    #[inline]
65246    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
65247        <DefaultDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65248            node, self, __ast_path,
65249        )
65250    }
65251    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
65252             [`DoWhileStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65253             to call it manually."]
65254    #[inline]
65255    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
65256        <DoWhileStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65257            node, self, __ast_path,
65258        )
65259    }
65260    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
65261             [`EmptyStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65262             call it manually."]
65263    #[inline]
65264    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
65265        <EmptyStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65266            node, self, __ast_path,
65267        )
65268    }
65269    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
65270             [`ExportAll::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65271             call it manually."]
65272    #[inline]
65273    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
65274        <ExportAll as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65275            node, self, __ast_path,
65276        )
65277    }
65278    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
65279             [`ExportDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65280             call it manually."]
65281    #[inline]
65282    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
65283        <ExportDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65284            node, self, __ast_path,
65285        )
65286    }
65287    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
65288             [`ExportDefaultDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65289             need to call it manually."]
65290    #[inline]
65291    fn visit_mut_export_default_decl(
65292        &mut self,
65293        node: &mut ExportDefaultDecl,
65294        __ast_path: &mut AstKindPath,
65295    ) {
65296        <ExportDefaultDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65297            node, self, __ast_path,
65298        )
65299    }
65300    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
65301             [`ExportDefaultExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65302             need to call it manually."]
65303    #[inline]
65304    fn visit_mut_export_default_expr(
65305        &mut self,
65306        node: &mut ExportDefaultExpr,
65307        __ast_path: &mut AstKindPath,
65308    ) {
65309        <ExportDefaultExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65310            node, self, __ast_path,
65311        )
65312    }
65313    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
65314             [`ExportDefaultSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65315             you need to call it manually."]
65316    #[inline]
65317    fn visit_mut_export_default_specifier(
65318        &mut self,
65319        node: &mut ExportDefaultSpecifier,
65320        __ast_path: &mut AstKindPath,
65321    ) {
65322        <ExportDefaultSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65323            node, self, __ast_path,
65324        )
65325    }
65326    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
65327             [`ExportNamedSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65328             you need to call it manually."]
65329    #[inline]
65330    fn visit_mut_export_named_specifier(
65331        &mut self,
65332        node: &mut ExportNamedSpecifier,
65333        __ast_path: &mut AstKindPath,
65334    ) {
65335        <ExportNamedSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65336            node, self, __ast_path,
65337        )
65338    }
65339    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
65340             [`ExportNamespaceSpecifier::visit_mut_children_with_ast_path`]. If you want to \
65341             recurse, you need to call it manually."]
65342    #[inline]
65343    fn visit_mut_export_namespace_specifier(
65344        &mut self,
65345        node: &mut ExportNamespaceSpecifier,
65346        __ast_path: &mut AstKindPath,
65347    ) {
65348        <ExportNamespaceSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65349            node, self, __ast_path,
65350        )
65351    }
65352    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
65353             [`ExportSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65354             need to call it manually."]
65355    #[inline]
65356    fn visit_mut_export_specifier(
65357        &mut self,
65358        node: &mut ExportSpecifier,
65359        __ast_path: &mut AstKindPath,
65360    ) {
65361        <ExportSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65362            node, self, __ast_path,
65363        )
65364    }
65365    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
65366             [`Vec < ExportSpecifier >::visit_mut_children_with_ast_path`]. If you want to \
65367             recurse, you need to call it manually."]
65368    #[inline]
65369    fn visit_mut_export_specifiers(
65370        &mut self,
65371        node: &mut Vec<ExportSpecifier>,
65372        __ast_path: &mut AstKindPath,
65373    ) {
65374        <Vec<ExportSpecifier> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65375            node, self, __ast_path,
65376        )
65377    }
65378    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
65379             [`Expr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65380             it manually."]
65381    #[inline]
65382    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
65383        <Expr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65384            node, self, __ast_path,
65385        )
65386    }
65387    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
65388             [`ExprOrSpread::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65389             to call it manually."]
65390    #[inline]
65391    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
65392        <ExprOrSpread as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65393            node, self, __ast_path,
65394        )
65395    }
65396    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
65397             ExprOrSpread >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65398             to call it manually."]
65399    #[inline]
65400    fn visit_mut_expr_or_spreads(
65401        &mut self,
65402        node: &mut Vec<ExprOrSpread>,
65403        __ast_path: &mut AstKindPath,
65404    ) {
65405        <Vec<ExprOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65406            node, self, __ast_path,
65407        )
65408    }
65409    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
65410             [`ExprStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65411             call it manually."]
65412    #[inline]
65413    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
65414        <ExprStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65415            node, self, __ast_path,
65416        )
65417    }
65418    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
65419             Box < Expr > >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65420             to call it manually."]
65421    #[inline]
65422    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
65423        <Vec<Box<Expr>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65424            node, self, __ast_path,
65425        )
65426    }
65427    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
65428             [`FnDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65429             call it manually."]
65430    #[inline]
65431    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
65432        <FnDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65433            node, self, __ast_path,
65434        )
65435    }
65436    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
65437             [`FnExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65438             call it manually."]
65439    #[inline]
65440    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
65441        <FnExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65442            node, self, __ast_path,
65443        )
65444    }
65445    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
65446             [`ForHead::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65447             call it manually."]
65448    #[inline]
65449    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
65450        <ForHead as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65451            node, self, __ast_path,
65452        )
65453    }
65454    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
65455             [`ForInStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65456             call it manually."]
65457    #[inline]
65458    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
65459        <ForInStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65460            node, self, __ast_path,
65461        )
65462    }
65463    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
65464             [`ForOfStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65465             call it manually."]
65466    #[inline]
65467    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
65468        <ForOfStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65469            node, self, __ast_path,
65470        )
65471    }
65472    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
65473             [`ForStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65474             call it manually."]
65475    #[inline]
65476    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
65477        <ForStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65478            node, self, __ast_path,
65479        )
65480    }
65481    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
65482             [`Function::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65483             call it manually."]
65484    #[inline]
65485    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
65486        <Function as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65487            node, self, __ast_path,
65488        )
65489    }
65490    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
65491             [`GetterProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65492             call it manually."]
65493    #[inline]
65494    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
65495        <GetterProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65496            node, self, __ast_path,
65497        )
65498    }
65499    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
65500             [`Ident::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65501             it manually."]
65502    #[inline]
65503    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
65504        <Ident as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65505            node, self, __ast_path,
65506        )
65507    }
65508    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
65509             [`IdentName::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65510             call it manually."]
65511    #[inline]
65512    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
65513        <IdentName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65514            node, self, __ast_path,
65515        )
65516    }
65517    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
65518             [`IfStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65519             call it manually."]
65520    #[inline]
65521    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
65522        <IfStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65523            node, self, __ast_path,
65524        )
65525    }
65526    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
65527             [`Import::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65528             call it manually."]
65529    #[inline]
65530    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
65531        <Import as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65532            node, self, __ast_path,
65533        )
65534    }
65535    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
65536             [`ImportDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65537             call it manually."]
65538    #[inline]
65539    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
65540        <ImportDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65541            node, self, __ast_path,
65542        )
65543    }
65544    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
65545             [`ImportDefaultSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65546             you need to call it manually."]
65547    #[inline]
65548    fn visit_mut_import_default_specifier(
65549        &mut self,
65550        node: &mut ImportDefaultSpecifier,
65551        __ast_path: &mut AstKindPath,
65552    ) {
65553        <ImportDefaultSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65554            node, self, __ast_path,
65555        )
65556    }
65557    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
65558             [`ImportNamedSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65559             you need to call it manually."]
65560    #[inline]
65561    fn visit_mut_import_named_specifier(
65562        &mut self,
65563        node: &mut ImportNamedSpecifier,
65564        __ast_path: &mut AstKindPath,
65565    ) {
65566        <ImportNamedSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65567            node, self, __ast_path,
65568        )
65569    }
65570    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
65571             [`ImportPhase::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65572             to call it manually."]
65573    #[inline]
65574    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
65575        <ImportPhase as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65576            node, self, __ast_path,
65577        )
65578    }
65579    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
65580             [`ImportSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65581             need to call it manually."]
65582    #[inline]
65583    fn visit_mut_import_specifier(
65584        &mut self,
65585        node: &mut ImportSpecifier,
65586        __ast_path: &mut AstKindPath,
65587    ) {
65588        <ImportSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65589            node, self, __ast_path,
65590        )
65591    }
65592    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
65593             [`Vec < ImportSpecifier >::visit_mut_children_with_ast_path`]. If you want to \
65594             recurse, you need to call it manually."]
65595    #[inline]
65596    fn visit_mut_import_specifiers(
65597        &mut self,
65598        node: &mut Vec<ImportSpecifier>,
65599        __ast_path: &mut AstKindPath,
65600    ) {
65601        <Vec<ImportSpecifier> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65602            node, self, __ast_path,
65603        )
65604    }
65605    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
65606             [`ImportStarAsSpecifier::visit_mut_children_with_ast_path`]. If you want to recurse, \
65607             you need to call it manually."]
65608    #[inline]
65609    fn visit_mut_import_star_as_specifier(
65610        &mut self,
65611        node: &mut ImportStarAsSpecifier,
65612        __ast_path: &mut AstKindPath,
65613    ) {
65614        <ImportStarAsSpecifier as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65615            node, self, __ast_path,
65616        )
65617    }
65618    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
65619             [`ImportWith::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65620             call it manually."]
65621    #[inline]
65622    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
65623        <ImportWith as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65624            node, self, __ast_path,
65625        )
65626    }
65627    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
65628             [`ImportWithItem::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65629             need to call it manually."]
65630    #[inline]
65631    fn visit_mut_import_with_item(
65632        &mut self,
65633        node: &mut ImportWithItem,
65634        __ast_path: &mut AstKindPath,
65635    ) {
65636        <ImportWithItem as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65637            node, self, __ast_path,
65638        )
65639    }
65640    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
65641             < ImportWithItem >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65642             need to call it manually."]
65643    #[inline]
65644    fn visit_mut_import_with_items(
65645        &mut self,
65646        node: &mut Vec<ImportWithItem>,
65647        __ast_path: &mut AstKindPath,
65648    ) {
65649        <Vec<ImportWithItem> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65650            node, self, __ast_path,
65651        )
65652    }
65653    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
65654             [`Invalid::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65655             call it manually."]
65656    #[inline]
65657    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
65658        <Invalid as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65659            node, self, __ast_path,
65660        )
65661    }
65662    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
65663             [`JSXAttr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65664             call it manually."]
65665    #[inline]
65666    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
65667        <JSXAttr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65668            node, self, __ast_path,
65669        )
65670    }
65671    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
65672             [`JSXAttrName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65673             to call it manually."]
65674    #[inline]
65675    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
65676        <JSXAttrName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65677            node, self, __ast_path,
65678        )
65679    }
65680    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
65681             [`JSXAttrOrSpread::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65682             need to call it manually."]
65683    #[inline]
65684    fn visit_mut_jsx_attr_or_spread(
65685        &mut self,
65686        node: &mut JSXAttrOrSpread,
65687        __ast_path: &mut AstKindPath,
65688    ) {
65689        <JSXAttrOrSpread as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65690            node, self, __ast_path,
65691        )
65692    }
65693    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
65694             [`Vec < JSXAttrOrSpread >::visit_mut_children_with_ast_path`]. If you want to \
65695             recurse, you need to call it manually."]
65696    #[inline]
65697    fn visit_mut_jsx_attr_or_spreads(
65698        &mut self,
65699        node: &mut Vec<JSXAttrOrSpread>,
65700        __ast_path: &mut AstKindPath,
65701    ) {
65702        <Vec<JSXAttrOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65703            node, self, __ast_path,
65704        )
65705    }
65706    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
65707             [`JSXAttrValue::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65708             to call it manually."]
65709    #[inline]
65710    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
65711        <JSXAttrValue as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65712            node, self, __ast_path,
65713        )
65714    }
65715    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
65716             [`JSXClosingElement::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65717             need to call it manually."]
65718    #[inline]
65719    fn visit_mut_jsx_closing_element(
65720        &mut self,
65721        node: &mut JSXClosingElement,
65722        __ast_path: &mut AstKindPath,
65723    ) {
65724        <JSXClosingElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65725            node, self, __ast_path,
65726        )
65727    }
65728    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
65729             [`JSXClosingFragment::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65730             need to call it manually."]
65731    #[inline]
65732    fn visit_mut_jsx_closing_fragment(
65733        &mut self,
65734        node: &mut JSXClosingFragment,
65735        __ast_path: &mut AstKindPath,
65736    ) {
65737        <JSXClosingFragment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65738            node, self, __ast_path,
65739        )
65740    }
65741    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
65742             [`JSXElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65743             call it manually."]
65744    #[inline]
65745    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
65746        <JSXElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65747            node, self, __ast_path,
65748        )
65749    }
65750    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
65751             [`JSXElementChild::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65752             need to call it manually."]
65753    #[inline]
65754    fn visit_mut_jsx_element_child(
65755        &mut self,
65756        node: &mut JSXElementChild,
65757        __ast_path: &mut AstKindPath,
65758    ) {
65759        <JSXElementChild as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65760            node, self, __ast_path,
65761        )
65762    }
65763    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
65764             [`Vec < JSXElementChild >::visit_mut_children_with_ast_path`]. If you want to \
65765             recurse, you need to call it manually."]
65766    #[inline]
65767    fn visit_mut_jsx_element_childs(
65768        &mut self,
65769        node: &mut Vec<JSXElementChild>,
65770        __ast_path: &mut AstKindPath,
65771    ) {
65772        <Vec<JSXElementChild> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65773            node, self, __ast_path,
65774        )
65775    }
65776    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
65777             [`JSXElementName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65778             need to call it manually."]
65779    #[inline]
65780    fn visit_mut_jsx_element_name(
65781        &mut self,
65782        node: &mut JSXElementName,
65783        __ast_path: &mut AstKindPath,
65784    ) {
65785        <JSXElementName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65786            node, self, __ast_path,
65787        )
65788    }
65789    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
65790             [`JSXEmptyExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65791             to call it manually."]
65792    #[inline]
65793    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
65794        <JSXEmptyExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65795            node, self, __ast_path,
65796        )
65797    }
65798    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
65799             [`JSXExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65800             call it manually."]
65801    #[inline]
65802    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
65803        <JSXExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65804            node, self, __ast_path,
65805        )
65806    }
65807    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
65808             [`JSXExprContainer::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65809             need to call it manually."]
65810    #[inline]
65811    fn visit_mut_jsx_expr_container(
65812        &mut self,
65813        node: &mut JSXExprContainer,
65814        __ast_path: &mut AstKindPath,
65815    ) {
65816        <JSXExprContainer as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65817            node, self, __ast_path,
65818        )
65819    }
65820    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
65821             [`JSXFragment::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65822             to call it manually."]
65823    #[inline]
65824    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
65825        <JSXFragment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65826            node, self, __ast_path,
65827        )
65828    }
65829    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
65830             [`JSXMemberExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65831             to call it manually."]
65832    #[inline]
65833    fn visit_mut_jsx_member_expr(
65834        &mut self,
65835        node: &mut JSXMemberExpr,
65836        __ast_path: &mut AstKindPath,
65837    ) {
65838        <JSXMemberExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65839            node, self, __ast_path,
65840        )
65841    }
65842    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
65843             [`JSXNamespacedName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65844             need to call it manually."]
65845    #[inline]
65846    fn visit_mut_jsx_namespaced_name(
65847        &mut self,
65848        node: &mut JSXNamespacedName,
65849        __ast_path: &mut AstKindPath,
65850    ) {
65851        <JSXNamespacedName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65852            node, self, __ast_path,
65853        )
65854    }
65855    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
65856             [`JSXObject::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65857             call it manually."]
65858    #[inline]
65859    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
65860        <JSXObject as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65861            node, self, __ast_path,
65862        )
65863    }
65864    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
65865             [`JSXOpeningElement::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65866             need to call it manually."]
65867    #[inline]
65868    fn visit_mut_jsx_opening_element(
65869        &mut self,
65870        node: &mut JSXOpeningElement,
65871        __ast_path: &mut AstKindPath,
65872    ) {
65873        <JSXOpeningElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65874            node, self, __ast_path,
65875        )
65876    }
65877    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
65878             [`JSXOpeningFragment::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65879             need to call it manually."]
65880    #[inline]
65881    fn visit_mut_jsx_opening_fragment(
65882        &mut self,
65883        node: &mut JSXOpeningFragment,
65884        __ast_path: &mut AstKindPath,
65885    ) {
65886        <JSXOpeningFragment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65887            node, self, __ast_path,
65888        )
65889    }
65890    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
65891             [`JSXSpreadChild::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65892             need to call it manually."]
65893    #[inline]
65894    fn visit_mut_jsx_spread_child(
65895        &mut self,
65896        node: &mut JSXSpreadChild,
65897        __ast_path: &mut AstKindPath,
65898    ) {
65899        <JSXSpreadChild as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65900            node, self, __ast_path,
65901        )
65902    }
65903    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
65904             [`JSXText::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65905             call it manually."]
65906    #[inline]
65907    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
65908        <JSXText as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65909            node, self, __ast_path,
65910        )
65911    }
65912    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
65913             [`Key::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65914             it manually."]
65915    #[inline]
65916    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
65917        <Key as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
65918    }
65919    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
65920             [`KeyValuePatProp::visit_mut_children_with_ast_path`]. If you want to recurse, you \
65921             need to call it manually."]
65922    #[inline]
65923    fn visit_mut_key_value_pat_prop(
65924        &mut self,
65925        node: &mut KeyValuePatProp,
65926        __ast_path: &mut AstKindPath,
65927    ) {
65928        <KeyValuePatProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65929            node, self, __ast_path,
65930        )
65931    }
65932    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
65933             [`KeyValueProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65934             to call it manually."]
65935    #[inline]
65936    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
65937        <KeyValueProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65938            node, self, __ast_path,
65939        )
65940    }
65941    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
65942             [`LabeledStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65943             to call it manually."]
65944    #[inline]
65945    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
65946        <LabeledStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65947            node, self, __ast_path,
65948        )
65949    }
65950    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
65951             [`Lit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
65952             it manually."]
65953    #[inline]
65954    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
65955        <Lit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
65956    }
65957    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
65958             [`MemberExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65959             call it manually."]
65960    #[inline]
65961    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
65962        <MemberExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65963            node, self, __ast_path,
65964        )
65965    }
65966    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
65967             [`MemberProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65968             call it manually."]
65969    #[inline]
65970    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
65971        <MemberProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65972            node, self, __ast_path,
65973        )
65974    }
65975    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
65976             [`MetaPropExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65977             to call it manually."]
65978    #[inline]
65979    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
65980        <MetaPropExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65981            node, self, __ast_path,
65982        )
65983    }
65984    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
65985             [`MetaPropKind::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
65986             to call it manually."]
65987    #[inline]
65988    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
65989        <MetaPropKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65990            node, self, __ast_path,
65991        )
65992    }
65993    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
65994             [`MethodKind::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
65995             call it manually."]
65996    #[inline]
65997    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
65998        <MethodKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
65999            node, self, __ast_path,
66000        )
66001    }
66002    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
66003             [`MethodProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66004             call it manually."]
66005    #[inline]
66006    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
66007        <MethodProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66008            node, self, __ast_path,
66009        )
66010    }
66011    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
66012             [`Module::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66013             call it manually."]
66014    #[inline]
66015    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
66016        <Module as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66017            node, self, __ast_path,
66018        )
66019    }
66020    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
66021             [`ModuleDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66022             call it manually."]
66023    #[inline]
66024    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
66025        <ModuleDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66026            node, self, __ast_path,
66027        )
66028    }
66029    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
66030             [`ModuleExportName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66031             need to call it manually."]
66032    #[inline]
66033    fn visit_mut_module_export_name(
66034        &mut self,
66035        node: &mut ModuleExportName,
66036        __ast_path: &mut AstKindPath,
66037    ) {
66038        <ModuleExportName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66039            node, self, __ast_path,
66040        )
66041    }
66042    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
66043             [`ModuleItem::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66044             call it manually."]
66045    #[inline]
66046    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
66047        <ModuleItem as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66048            node, self, __ast_path,
66049        )
66050    }
66051    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
66052             ModuleItem >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66053             call it manually."]
66054    #[inline]
66055    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
66056        <Vec<ModuleItem> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66057            node, self, __ast_path,
66058        )
66059    }
66060    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
66061             [`NamedExport::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66062             to call it manually."]
66063    #[inline]
66064    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
66065        <NamedExport as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66066            node, self, __ast_path,
66067        )
66068    }
66069    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
66070             [`NewExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66071             call it manually."]
66072    #[inline]
66073    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
66074        <NewExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66075            node, self, __ast_path,
66076        )
66077    }
66078    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
66079             [`Null::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66080             it manually."]
66081    #[inline]
66082    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
66083        <Null as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66084            node, self, __ast_path,
66085        )
66086    }
66087    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
66088             [`Number::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66089             call it manually."]
66090    #[inline]
66091    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
66092        <Number as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66093            node, self, __ast_path,
66094        )
66095    }
66096    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
66097             [`ObjectLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66098             call it manually."]
66099    #[inline]
66100    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
66101        <ObjectLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66102            node, self, __ast_path,
66103        )
66104    }
66105    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
66106             [`ObjectPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66107             call it manually."]
66108    #[inline]
66109    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
66110        <ObjectPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66111            node, self, __ast_path,
66112        )
66113    }
66114    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
66115             [`ObjectPatProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66116             to call it manually."]
66117    #[inline]
66118    fn visit_mut_object_pat_prop(
66119        &mut self,
66120        node: &mut ObjectPatProp,
66121        __ast_path: &mut AstKindPath,
66122    ) {
66123        <ObjectPatProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66124            node, self, __ast_path,
66125        )
66126    }
66127    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
66128             < ObjectPatProp >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66129             need to call it manually."]
66130    #[inline]
66131    fn visit_mut_object_pat_props(
66132        &mut self,
66133        node: &mut Vec<ObjectPatProp>,
66134        __ast_path: &mut AstKindPath,
66135    ) {
66136        <Vec<ObjectPatProp> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66137            node, self, __ast_path,
66138        )
66139    }
66140    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
66141             [`Option < Accessibility >::visit_mut_children_with_ast_path`]. If you want to \
66142             recurse, you need to call it manually."]
66143    #[inline]
66144    fn visit_mut_opt_accessibility(
66145        &mut self,
66146        node: &mut Option<Accessibility>,
66147        __ast_path: &mut AstKindPath,
66148    ) {
66149        <Option<Accessibility> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66150            node, self, __ast_path,
66151        )
66152    }
66153    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
66154             [`Option < swc_atoms :: Atom >::visit_mut_children_with_ast_path`]. If you want to \
66155             recurse, you need to call it manually."]
66156    #[inline]
66157    fn visit_mut_opt_atom(
66158        &mut self,
66159        node: &mut Option<swc_atoms::Atom>,
66160        __ast_path: &mut AstKindPath,
66161    ) {
66162        <Option<swc_atoms::Atom> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66163            node, self, __ast_path,
66164        )
66165    }
66166    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
66167             [`Option < BlockStmt >::visit_mut_children_with_ast_path`]. If you want to recurse, \
66168             you need to call it manually."]
66169    #[inline]
66170    fn visit_mut_opt_block_stmt(
66171        &mut self,
66172        node: &mut Option<BlockStmt>,
66173        __ast_path: &mut AstKindPath,
66174    ) {
66175        <Option<BlockStmt> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66176            node, self, __ast_path,
66177        )
66178    }
66179    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
66180             [`OptCall::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66181             call it manually."]
66182    #[inline]
66183    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
66184        <OptCall as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66185            node, self, __ast_path,
66186        )
66187    }
66188    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
66189             [`Option < CatchClause >::visit_mut_children_with_ast_path`]. If you want to recurse, \
66190             you need to call it manually."]
66191    #[inline]
66192    fn visit_mut_opt_catch_clause(
66193        &mut self,
66194        node: &mut Option<CatchClause>,
66195        __ast_path: &mut AstKindPath,
66196    ) {
66197        <Option<CatchClause> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66198            node, self, __ast_path,
66199        )
66200    }
66201    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
66202             [`OptChainBase::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66203             to call it manually."]
66204    #[inline]
66205    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
66206        <OptChainBase as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66207            node, self, __ast_path,
66208        )
66209    }
66210    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
66211             [`OptChainExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66212             to call it manually."]
66213    #[inline]
66214    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
66215        <OptChainExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66216            node, self, __ast_path,
66217        )
66218    }
66219    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
66220             [`Option < Box < Expr > >::visit_mut_children_with_ast_path`]. If you want to \
66221             recurse, you need to call it manually."]
66222    #[inline]
66223    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
66224        <Option<Box<Expr>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66225            node, self, __ast_path,
66226        )
66227    }
66228    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
66229             [`Option < ExprOrSpread >::visit_mut_children_with_ast_path`]. If you want to \
66230             recurse, you need to call it manually."]
66231    #[inline]
66232    fn visit_mut_opt_expr_or_spread(
66233        &mut self,
66234        node: &mut Option<ExprOrSpread>,
66235        __ast_path: &mut AstKindPath,
66236    ) {
66237        <Option<ExprOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66238            node, self, __ast_path,
66239        )
66240    }
66241    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
66242             calls [`Option < Vec < ExprOrSpread > >::visit_mut_children_with_ast_path`]. If you \
66243             want to recurse, you need to call it manually."]
66244    #[inline]
66245    fn visit_mut_opt_expr_or_spreads(
66246        &mut self,
66247        node: &mut Option<Vec<ExprOrSpread>>,
66248        __ast_path: &mut AstKindPath,
66249    ) {
66250        <Option<Vec<ExprOrSpread>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66251            node, self, __ast_path,
66252        )
66253    }
66254    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
66255             Ident >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66256             it manually."]
66257    #[inline]
66258    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
66259        <Option<Ident> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66260            node, self, __ast_path,
66261        )
66262    }
66263    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
66264             [`Option < JSXAttrValue >::visit_mut_children_with_ast_path`]. If you want to \
66265             recurse, you need to call it manually."]
66266    #[inline]
66267    fn visit_mut_opt_jsx_attr_value(
66268        &mut self,
66269        node: &mut Option<JSXAttrValue>,
66270        __ast_path: &mut AstKindPath,
66271    ) {
66272        <Option<JSXAttrValue> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66273            node, self, __ast_path,
66274        )
66275    }
66276    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
66277             [`Option < JSXClosingElement >::visit_mut_children_with_ast_path`]. If you want to \
66278             recurse, you need to call it manually."]
66279    #[inline]
66280    fn visit_mut_opt_jsx_closing_element(
66281        &mut self,
66282        node: &mut Option<JSXClosingElement>,
66283        __ast_path: &mut AstKindPath,
66284    ) {
66285        <Option<JSXClosingElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66286            node, self, __ast_path,
66287        )
66288    }
66289    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
66290             [`Option < ModuleExportName >::visit_mut_children_with_ast_path`]. If you want to \
66291             recurse, you need to call it manually."]
66292    #[inline]
66293    fn visit_mut_opt_module_export_name(
66294        &mut self,
66295        node: &mut Option<ModuleExportName>,
66296        __ast_path: &mut AstKindPath,
66297    ) {
66298        <Option<ModuleExportName> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66299            node, self, __ast_path,
66300        )
66301    }
66302    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
66303             [`Option < Box < ObjectLit > >::visit_mut_children_with_ast_path`]. If you want to \
66304             recurse, you need to call it manually."]
66305    #[inline]
66306    fn visit_mut_opt_object_lit(
66307        &mut self,
66308        node: &mut Option<Box<ObjectLit>>,
66309        __ast_path: &mut AstKindPath,
66310    ) {
66311        <Option<Box<ObjectLit>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66312            node, self, __ast_path,
66313        )
66314    }
66315    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
66316             Pat >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66317             it manually."]
66318    #[inline]
66319    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
66320        <Option<Pat> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66321            node, self, __ast_path,
66322        )
66323    }
66324    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
66325             calls [`Option < swc_common :: Span >::visit_mut_children_with_ast_path`]. If you \
66326             want to recurse, you need to call it manually."]
66327    #[inline]
66328    fn visit_mut_opt_span(
66329        &mut self,
66330        node: &mut Option<swc_common::Span>,
66331        __ast_path: &mut AstKindPath,
66332    ) {
66333        <Option<swc_common::Span> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66334            node, self, __ast_path,
66335        )
66336    }
66337    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
66338             [`Option < Box < Stmt > >::visit_mut_children_with_ast_path`]. If you want to \
66339             recurse, you need to call it manually."]
66340    #[inline]
66341    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
66342        <Option<Box<Stmt>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66343            node, self, __ast_path,
66344        )
66345    }
66346    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
66347             [`Option < Box < Str > >::visit_mut_children_with_ast_path`]. If you want to recurse, \
66348             you need to call it manually."]
66349    #[inline]
66350    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
66351        <Option<Box<Str>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66352            node, self, __ast_path,
66353        )
66354    }
66355    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
66356             [`Option < TruePlusMinus >::visit_mut_children_with_ast_path`]. If you want to \
66357             recurse, you need to call it manually."]
66358    #[inline]
66359    fn visit_mut_opt_true_plus_minus(
66360        &mut self,
66361        node: &mut Option<TruePlusMinus>,
66362        __ast_path: &mut AstKindPath,
66363    ) {
66364        <Option<TruePlusMinus> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66365            node, self, __ast_path,
66366        )
66367    }
66368    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
66369             [`Option < TsEntityName >::visit_mut_children_with_ast_path`]. If you want to \
66370             recurse, you need to call it manually."]
66371    #[inline]
66372    fn visit_mut_opt_ts_entity_name(
66373        &mut self,
66374        node: &mut Option<TsEntityName>,
66375        __ast_path: &mut AstKindPath,
66376    ) {
66377        <Option<TsEntityName> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66378            node, self, __ast_path,
66379        )
66380    }
66381    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
66382             [`Option < TsNamespaceBody >::visit_mut_children_with_ast_path`]. If you want to \
66383             recurse, you need to call it manually."]
66384    #[inline]
66385    fn visit_mut_opt_ts_namespace_body(
66386        &mut self,
66387        node: &mut Option<TsNamespaceBody>,
66388        __ast_path: &mut AstKindPath,
66389    ) {
66390        <Option<TsNamespaceBody> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66391            node, self, __ast_path,
66392        )
66393    }
66394    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
66395             [`Option < Box < TsType > >::visit_mut_children_with_ast_path`]. If you want to \
66396             recurse, you need to call it manually."]
66397    #[inline]
66398    fn visit_mut_opt_ts_type(
66399        &mut self,
66400        node: &mut Option<Box<TsType>>,
66401        __ast_path: &mut AstKindPath,
66402    ) {
66403        <Option<Box<TsType>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66404            node, self, __ast_path,
66405        )
66406    }
66407    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
66408             [`Option < Box < TsTypeAnn > >::visit_mut_children_with_ast_path`]. If you want to \
66409             recurse, you need to call it manually."]
66410    #[inline]
66411    fn visit_mut_opt_ts_type_ann(
66412        &mut self,
66413        node: &mut Option<Box<TsTypeAnn>>,
66414        __ast_path: &mut AstKindPath,
66415    ) {
66416        <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66417            node, self, __ast_path,
66418        )
66419    }
66420    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
66421             calls [`Option < Box < TsTypeParamDecl > >::visit_mut_children_with_ast_path`]. If \
66422             you want to recurse, you need to call it manually."]
66423    #[inline]
66424    fn visit_mut_opt_ts_type_param_decl(
66425        &mut self,
66426        node: &mut Option<Box<TsTypeParamDecl>>,
66427        __ast_path: &mut AstKindPath,
66428    ) {
66429        < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < Self > > :: visit_mut_children_with_ast_path (node , self , __ast_path)
66430    }
66431    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
66432             this method calls [`Option < Box < TsTypeParamInstantiation > \
66433             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66434             manually."]
66435    #[inline]
66436    fn visit_mut_opt_ts_type_param_instantiation(
66437        &mut self,
66438        node: &mut Option<Box<TsTypeParamInstantiation>>,
66439        __ast_path: &mut AstKindPath,
66440    ) {
66441        < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < Self > > :: visit_mut_children_with_ast_path (node , self , __ast_path)
66442    }
66443    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
66444             [`Option < VarDeclOrExpr >::visit_mut_children_with_ast_path`]. If you want to \
66445             recurse, you need to call it manually."]
66446    #[inline]
66447    fn visit_mut_opt_var_decl_or_expr(
66448        &mut self,
66449        node: &mut Option<VarDeclOrExpr>,
66450        __ast_path: &mut AstKindPath,
66451    ) {
66452        <Option<VarDeclOrExpr> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66453            node, self, __ast_path,
66454        )
66455    }
66456    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
66457             calls [`Vec < Option < ExprOrSpread > >::visit_mut_children_with_ast_path`]. If you \
66458             want to recurse, you need to call it manually."]
66459    #[inline]
66460    fn visit_mut_opt_vec_expr_or_spreads(
66461        &mut self,
66462        node: &mut Vec<Option<ExprOrSpread>>,
66463        __ast_path: &mut AstKindPath,
66464    ) {
66465        <Vec<Option<ExprOrSpread>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66466            node, self, __ast_path,
66467        )
66468    }
66469    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
66470             < Option < Pat > >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66471             need to call it manually."]
66472    #[inline]
66473    fn visit_mut_opt_vec_pats(
66474        &mut self,
66475        node: &mut Vec<Option<Pat>>,
66476        __ast_path: &mut AstKindPath,
66477    ) {
66478        <Vec<Option<Pat>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66479            node, self, __ast_path,
66480        )
66481    }
66482    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
66483             [`Param::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66484             it manually."]
66485    #[inline]
66486    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
66487        <Param as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66488            node, self, __ast_path,
66489        )
66490    }
66491    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
66492             [`ParamOrTsParamProp::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66493             need to call it manually."]
66494    #[inline]
66495    fn visit_mut_param_or_ts_param_prop(
66496        &mut self,
66497        node: &mut ParamOrTsParamProp,
66498        __ast_path: &mut AstKindPath,
66499    ) {
66500        <ParamOrTsParamProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66501            node, self, __ast_path,
66502        )
66503    }
66504    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
66505             [`Vec < ParamOrTsParamProp >::visit_mut_children_with_ast_path`]. If you want to \
66506             recurse, you need to call it manually."]
66507    #[inline]
66508    fn visit_mut_param_or_ts_param_props(
66509        &mut self,
66510        node: &mut Vec<ParamOrTsParamProp>,
66511        __ast_path: &mut AstKindPath,
66512    ) {
66513        <Vec<ParamOrTsParamProp> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66514            node, self, __ast_path,
66515        )
66516    }
66517    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
66518             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66519             manually."]
66520    #[inline]
66521    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
66522        <Vec<Param> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66523            node, self, __ast_path,
66524        )
66525    }
66526    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
66527             [`ParenExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66528             call it manually."]
66529    #[inline]
66530    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
66531        <ParenExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66532            node, self, __ast_path,
66533        )
66534    }
66535    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
66536             [`Pat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66537             it manually."]
66538    #[inline]
66539    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
66540        <Pat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
66541    }
66542    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
66543             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66544             manually."]
66545    #[inline]
66546    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
66547        <Vec<Pat> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66548            node, self, __ast_path,
66549        )
66550    }
66551    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
66552             [`PrivateMethod::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66553             to call it manually."]
66554    #[inline]
66555    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
66556        <PrivateMethod as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66557            node, self, __ast_path,
66558        )
66559    }
66560    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
66561             [`PrivateName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66562             to call it manually."]
66563    #[inline]
66564    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
66565        <PrivateName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66566            node, self, __ast_path,
66567        )
66568    }
66569    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
66570             [`PrivateProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66571             to call it manually."]
66572    #[inline]
66573    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
66574        <PrivateProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66575            node, self, __ast_path,
66576        )
66577    }
66578    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
66579             [`Program::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66580             call it manually."]
66581    #[inline]
66582    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
66583        <Program as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66584            node, self, __ast_path,
66585        )
66586    }
66587    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
66588             [`Prop::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66589             it manually."]
66590    #[inline]
66591    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
66592        <Prop as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66593            node, self, __ast_path,
66594        )
66595    }
66596    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
66597             [`PropName::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66598             call it manually."]
66599    #[inline]
66600    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
66601        <PropName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66602            node, self, __ast_path,
66603        )
66604    }
66605    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
66606             [`PropOrSpread::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66607             to call it manually."]
66608    #[inline]
66609    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
66610        <PropOrSpread as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66611            node, self, __ast_path,
66612        )
66613    }
66614    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
66615             PropOrSpread >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66616             to call it manually."]
66617    #[inline]
66618    fn visit_mut_prop_or_spreads(
66619        &mut self,
66620        node: &mut Vec<PropOrSpread>,
66621        __ast_path: &mut AstKindPath,
66622    ) {
66623        <Vec<PropOrSpread> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66624            node, self, __ast_path,
66625        )
66626    }
66627    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
66628             [`Regex::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66629             it manually."]
66630    #[inline]
66631    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
66632        <Regex as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66633            node, self, __ast_path,
66634        )
66635    }
66636    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
66637             [`RestPat::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66638             call it manually."]
66639    #[inline]
66640    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
66641        <RestPat as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66642            node, self, __ast_path,
66643        )
66644    }
66645    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
66646             [`ReturnStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66647             call it manually."]
66648    #[inline]
66649    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
66650        <ReturnStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66651            node, self, __ast_path,
66652        )
66653    }
66654    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
66655             [`Script::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66656             call it manually."]
66657    #[inline]
66658    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
66659        <Script as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66660            node, self, __ast_path,
66661        )
66662    }
66663    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
66664             [`SeqExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66665             call it manually."]
66666    #[inline]
66667    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
66668        <SeqExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66669            node, self, __ast_path,
66670        )
66671    }
66672    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
66673             [`SetterProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66674             call it manually."]
66675    #[inline]
66676    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
66677        <SetterProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66678            node, self, __ast_path,
66679        )
66680    }
66681    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
66682             [`SimpleAssignTarget::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66683             need to call it manually."]
66684    #[inline]
66685    fn visit_mut_simple_assign_target(
66686        &mut self,
66687        node: &mut SimpleAssignTarget,
66688        __ast_path: &mut AstKindPath,
66689    ) {
66690        <SimpleAssignTarget as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66691            node, self, __ast_path,
66692        )
66693    }
66694    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
66695             [`swc_common :: Span::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66696             need to call it manually."]
66697    #[inline]
66698    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
66699        <swc_common::Span as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66700            node, self, __ast_path,
66701        )
66702    }
66703    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
66704             [`SpreadElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66705             to call it manually."]
66706    #[inline]
66707    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
66708        <SpreadElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66709            node, self, __ast_path,
66710        )
66711    }
66712    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
66713             [`StaticBlock::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66714             to call it manually."]
66715    #[inline]
66716    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
66717        <StaticBlock as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66718            node, self, __ast_path,
66719        )
66720    }
66721    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
66722             [`Stmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66723             it manually."]
66724    #[inline]
66725    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
66726        <Stmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66727            node, self, __ast_path,
66728        )
66729    }
66730    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
66731             >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call it \
66732             manually."]
66733    #[inline]
66734    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
66735        <Vec<Stmt> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66736            node, self, __ast_path,
66737        )
66738    }
66739    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
66740             [`Str::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66741             it manually."]
66742    #[inline]
66743    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
66744        <Str as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
66745    }
66746    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
66747             [`Super::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66748             it manually."]
66749    #[inline]
66750    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
66751        <Super as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66752            node, self, __ast_path,
66753        )
66754    }
66755    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
66756             [`SuperProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66757             call it manually."]
66758    #[inline]
66759    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
66760        <SuperProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66761            node, self, __ast_path,
66762        )
66763    }
66764    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
66765             [`SuperPropExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66766             to call it manually."]
66767    #[inline]
66768    fn visit_mut_super_prop_expr(
66769        &mut self,
66770        node: &mut SuperPropExpr,
66771        __ast_path: &mut AstKindPath,
66772    ) {
66773        <SuperPropExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66774            node, self, __ast_path,
66775        )
66776    }
66777    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
66778             [`SwitchCase::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66779             call it manually."]
66780    #[inline]
66781    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
66782        <SwitchCase as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66783            node, self, __ast_path,
66784        )
66785    }
66786    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
66787             SwitchCase >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66788             call it manually."]
66789    #[inline]
66790    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
66791        <Vec<SwitchCase> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66792            node, self, __ast_path,
66793        )
66794    }
66795    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
66796             [`SwitchStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66797             call it manually."]
66798    #[inline]
66799    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
66800        <SwitchStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66801            node, self, __ast_path,
66802        )
66803    }
66804    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
66805             [`swc_common :: SyntaxContext::visit_mut_children_with_ast_path`]. If you want to \
66806             recurse, you need to call it manually."]
66807    #[inline]
66808    fn visit_mut_syntax_context(
66809        &mut self,
66810        node: &mut swc_common::SyntaxContext,
66811        __ast_path: &mut AstKindPath,
66812    ) {
66813        <swc_common::SyntaxContext as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66814            node, self, __ast_path,
66815        )
66816    }
66817    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
66818             [`TaggedTpl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66819             call it manually."]
66820    #[inline]
66821    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
66822        <TaggedTpl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66823            node, self, __ast_path,
66824        )
66825    }
66826    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
66827             [`ThisExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66828             call it manually."]
66829    #[inline]
66830    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
66831        <ThisExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66832            node, self, __ast_path,
66833        )
66834    }
66835    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
66836             [`ThrowStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66837             call it manually."]
66838    #[inline]
66839    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
66840        <ThrowStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66841            node, self, __ast_path,
66842        )
66843    }
66844    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
66845             [`Tpl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
66846             it manually."]
66847    #[inline]
66848    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
66849        <Tpl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(node, self, __ast_path)
66850    }
66851    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
66852             [`TplElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66853             call it manually."]
66854    #[inline]
66855    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
66856        <TplElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66857            node, self, __ast_path,
66858        )
66859    }
66860    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
66861             TplElement >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66862             call it manually."]
66863    #[inline]
66864    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
66865        <Vec<TplElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66866            node, self, __ast_path,
66867        )
66868    }
66869    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
66870             [`TruePlusMinus::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66871             to call it manually."]
66872    #[inline]
66873    fn visit_mut_true_plus_minus(
66874        &mut self,
66875        node: &mut TruePlusMinus,
66876        __ast_path: &mut AstKindPath,
66877    ) {
66878        <TruePlusMinus as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66879            node, self, __ast_path,
66880        )
66881    }
66882    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
66883             [`TryStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66884             call it manually."]
66885    #[inline]
66886    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
66887        <TryStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66888            node, self, __ast_path,
66889        )
66890    }
66891    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
66892             [`TsArrayType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66893             to call it manually."]
66894    #[inline]
66895    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
66896        <TsArrayType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66897            node, self, __ast_path,
66898        )
66899    }
66900    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
66901             [`TsAsExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66902             call it manually."]
66903    #[inline]
66904    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
66905        <TsAsExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66906            node, self, __ast_path,
66907        )
66908    }
66909    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
66910             [`TsCallSignatureDecl::visit_mut_children_with_ast_path`]. If you want to recurse, \
66911             you need to call it manually."]
66912    #[inline]
66913    fn visit_mut_ts_call_signature_decl(
66914        &mut self,
66915        node: &mut TsCallSignatureDecl,
66916        __ast_path: &mut AstKindPath,
66917    ) {
66918        <TsCallSignatureDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66919            node, self, __ast_path,
66920        )
66921    }
66922    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
66923             [`TsConditionalType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66924             need to call it manually."]
66925    #[inline]
66926    fn visit_mut_ts_conditional_type(
66927        &mut self,
66928        node: &mut TsConditionalType,
66929        __ast_path: &mut AstKindPath,
66930    ) {
66931        <TsConditionalType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66932            node, self, __ast_path,
66933        )
66934    }
66935    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
66936             [`TsConstAssertion::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66937             need to call it manually."]
66938    #[inline]
66939    fn visit_mut_ts_const_assertion(
66940        &mut self,
66941        node: &mut TsConstAssertion,
66942        __ast_path: &mut AstKindPath,
66943    ) {
66944        <TsConstAssertion as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66945            node, self, __ast_path,
66946        )
66947    }
66948    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
66949             [`TsConstructSignatureDecl::visit_mut_children_with_ast_path`]. If you want to \
66950             recurse, you need to call it manually."]
66951    #[inline]
66952    fn visit_mut_ts_construct_signature_decl(
66953        &mut self,
66954        node: &mut TsConstructSignatureDecl,
66955        __ast_path: &mut AstKindPath,
66956    ) {
66957        <TsConstructSignatureDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66958            node, self, __ast_path,
66959        )
66960    }
66961    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
66962             [`TsConstructorType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
66963             need to call it manually."]
66964    #[inline]
66965    fn visit_mut_ts_constructor_type(
66966        &mut self,
66967        node: &mut TsConstructorType,
66968        __ast_path: &mut AstKindPath,
66969    ) {
66970        <TsConstructorType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66971            node, self, __ast_path,
66972        )
66973    }
66974    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
66975             [`TsEntityName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66976             to call it manually."]
66977    #[inline]
66978    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
66979        <TsEntityName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66980            node, self, __ast_path,
66981        )
66982    }
66983    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
66984             [`TsEnumDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
66985             call it manually."]
66986    #[inline]
66987    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
66988        <TsEnumDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66989            node, self, __ast_path,
66990        )
66991    }
66992    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
66993             [`TsEnumMember::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
66994             to call it manually."]
66995    #[inline]
66996    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
66997        <TsEnumMember as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
66998            node, self, __ast_path,
66999        )
67000    }
67001    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
67002             [`TsEnumMemberId::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67003             need to call it manually."]
67004    #[inline]
67005    fn visit_mut_ts_enum_member_id(
67006        &mut self,
67007        node: &mut TsEnumMemberId,
67008        __ast_path: &mut AstKindPath,
67009    ) {
67010        <TsEnumMemberId as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67011            node, self, __ast_path,
67012        )
67013    }
67014    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
67015             TsEnumMember >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67016             to call it manually."]
67017    #[inline]
67018    fn visit_mut_ts_enum_members(
67019        &mut self,
67020        node: &mut Vec<TsEnumMember>,
67021        __ast_path: &mut AstKindPath,
67022    ) {
67023        <Vec<TsEnumMember> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67024            node, self, __ast_path,
67025        )
67026    }
67027    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
67028             [`TsExportAssignment::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67029             need to call it manually."]
67030    #[inline]
67031    fn visit_mut_ts_export_assignment(
67032        &mut self,
67033        node: &mut TsExportAssignment,
67034        __ast_path: &mut AstKindPath,
67035    ) {
67036        <TsExportAssignment as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67037            node, self, __ast_path,
67038        )
67039    }
67040    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
67041             [`TsExprWithTypeArgs::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67042             need to call it manually."]
67043    #[inline]
67044    fn visit_mut_ts_expr_with_type_args(
67045        &mut self,
67046        node: &mut TsExprWithTypeArgs,
67047        __ast_path: &mut AstKindPath,
67048    ) {
67049        <TsExprWithTypeArgs as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67050            node, self, __ast_path,
67051        )
67052    }
67053    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
67054             [`Vec < TsExprWithTypeArgs >::visit_mut_children_with_ast_path`]. If you want to \
67055             recurse, you need to call it manually."]
67056    #[inline]
67057    fn visit_mut_ts_expr_with_type_argss(
67058        &mut self,
67059        node: &mut Vec<TsExprWithTypeArgs>,
67060        __ast_path: &mut AstKindPath,
67061    ) {
67062        <Vec<TsExprWithTypeArgs> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67063            node, self, __ast_path,
67064        )
67065    }
67066    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
67067             [`TsExternalModuleRef::visit_mut_children_with_ast_path`]. If you want to recurse, \
67068             you need to call it manually."]
67069    #[inline]
67070    fn visit_mut_ts_external_module_ref(
67071        &mut self,
67072        node: &mut TsExternalModuleRef,
67073        __ast_path: &mut AstKindPath,
67074    ) {
67075        <TsExternalModuleRef as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67076            node, self, __ast_path,
67077        )
67078    }
67079    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
67080             [`TsFnOrConstructorType::visit_mut_children_with_ast_path`]. If you want to recurse, \
67081             you need to call it manually."]
67082    #[inline]
67083    fn visit_mut_ts_fn_or_constructor_type(
67084        &mut self,
67085        node: &mut TsFnOrConstructorType,
67086        __ast_path: &mut AstKindPath,
67087    ) {
67088        <TsFnOrConstructorType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67089            node, self, __ast_path,
67090        )
67091    }
67092    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
67093             [`TsFnParam::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67094             call it manually."]
67095    #[inline]
67096    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
67097        <TsFnParam as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67098            node, self, __ast_path,
67099        )
67100    }
67101    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
67102             TsFnParam >::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67103             call it manually."]
67104    #[inline]
67105    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
67106        <Vec<TsFnParam> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67107            node, self, __ast_path,
67108        )
67109    }
67110    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
67111             [`TsFnType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67112             call it manually."]
67113    #[inline]
67114    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
67115        <TsFnType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67116            node, self, __ast_path,
67117        )
67118    }
67119    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
67120             [`TsGetterSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67121             need to call it manually."]
67122    #[inline]
67123    fn visit_mut_ts_getter_signature(
67124        &mut self,
67125        node: &mut TsGetterSignature,
67126        __ast_path: &mut AstKindPath,
67127    ) {
67128        <TsGetterSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67129            node, self, __ast_path,
67130        )
67131    }
67132    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
67133             [`TsImportEqualsDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67134             need to call it manually."]
67135    #[inline]
67136    fn visit_mut_ts_import_equals_decl(
67137        &mut self,
67138        node: &mut TsImportEqualsDecl,
67139        __ast_path: &mut AstKindPath,
67140    ) {
67141        <TsImportEqualsDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67142            node, self, __ast_path,
67143        )
67144    }
67145    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
67146             [`TsImportType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67147             to call it manually."]
67148    #[inline]
67149    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
67150        <TsImportType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67151            node, self, __ast_path,
67152        )
67153    }
67154    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
67155             [`TsIndexSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67156             need to call it manually."]
67157    #[inline]
67158    fn visit_mut_ts_index_signature(
67159        &mut self,
67160        node: &mut TsIndexSignature,
67161        __ast_path: &mut AstKindPath,
67162    ) {
67163        <TsIndexSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67164            node, self, __ast_path,
67165        )
67166    }
67167    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
67168             [`TsIndexedAccessType::visit_mut_children_with_ast_path`]. If you want to recurse, \
67169             you need to call it manually."]
67170    #[inline]
67171    fn visit_mut_ts_indexed_access_type(
67172        &mut self,
67173        node: &mut TsIndexedAccessType,
67174        __ast_path: &mut AstKindPath,
67175    ) {
67176        <TsIndexedAccessType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67177            node, self, __ast_path,
67178        )
67179    }
67180    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
67181             [`TsInferType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67182             to call it manually."]
67183    #[inline]
67184    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
67185        <TsInferType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67186            node, self, __ast_path,
67187        )
67188    }
67189    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
67190             [`TsInstantiation::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67191             need to call it manually."]
67192    #[inline]
67193    fn visit_mut_ts_instantiation(
67194        &mut self,
67195        node: &mut TsInstantiation,
67196        __ast_path: &mut AstKindPath,
67197    ) {
67198        <TsInstantiation as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67199            node, self, __ast_path,
67200        )
67201    }
67202    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
67203             [`TsInterfaceBody::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67204             need to call it manually."]
67205    #[inline]
67206    fn visit_mut_ts_interface_body(
67207        &mut self,
67208        node: &mut TsInterfaceBody,
67209        __ast_path: &mut AstKindPath,
67210    ) {
67211        <TsInterfaceBody as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67212            node, self, __ast_path,
67213        )
67214    }
67215    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
67216             [`TsInterfaceDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67217             need to call it manually."]
67218    #[inline]
67219    fn visit_mut_ts_interface_decl(
67220        &mut self,
67221        node: &mut TsInterfaceDecl,
67222        __ast_path: &mut AstKindPath,
67223    ) {
67224        <TsInterfaceDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67225            node, self, __ast_path,
67226        )
67227    }
67228    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
67229             [`TsIntersectionType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67230             need to call it manually."]
67231    #[inline]
67232    fn visit_mut_ts_intersection_type(
67233        &mut self,
67234        node: &mut TsIntersectionType,
67235        __ast_path: &mut AstKindPath,
67236    ) {
67237        <TsIntersectionType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67238            node, self, __ast_path,
67239        )
67240    }
67241    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
67242             [`TsKeywordType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67243             to call it manually."]
67244    #[inline]
67245    fn visit_mut_ts_keyword_type(
67246        &mut self,
67247        node: &mut TsKeywordType,
67248        __ast_path: &mut AstKindPath,
67249    ) {
67250        <TsKeywordType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67251            node, self, __ast_path,
67252        )
67253    }
67254    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
67255             [`TsKeywordTypeKind::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67256             need to call it manually."]
67257    #[inline]
67258    fn visit_mut_ts_keyword_type_kind(
67259        &mut self,
67260        node: &mut TsKeywordTypeKind,
67261        __ast_path: &mut AstKindPath,
67262    ) {
67263        <TsKeywordTypeKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67264            node, self, __ast_path,
67265        )
67266    }
67267    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
67268             [`TsLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to call \
67269             it manually."]
67270    #[inline]
67271    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
67272        <TsLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67273            node, self, __ast_path,
67274        )
67275    }
67276    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
67277             [`TsLitType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67278             call it manually."]
67279    #[inline]
67280    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
67281        <TsLitType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67282            node, self, __ast_path,
67283        )
67284    }
67285    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
67286             [`TsMappedType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67287             to call it manually."]
67288    #[inline]
67289    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
67290        <TsMappedType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67291            node, self, __ast_path,
67292        )
67293    }
67294    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
67295             [`TsMethodSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67296             need to call it manually."]
67297    #[inline]
67298    fn visit_mut_ts_method_signature(
67299        &mut self,
67300        node: &mut TsMethodSignature,
67301        __ast_path: &mut AstKindPath,
67302    ) {
67303        <TsMethodSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67304            node, self, __ast_path,
67305        )
67306    }
67307    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
67308             [`TsModuleBlock::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67309             to call it manually."]
67310    #[inline]
67311    fn visit_mut_ts_module_block(
67312        &mut self,
67313        node: &mut TsModuleBlock,
67314        __ast_path: &mut AstKindPath,
67315    ) {
67316        <TsModuleBlock as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67317            node, self, __ast_path,
67318        )
67319    }
67320    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
67321             [`TsModuleDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67322             to call it manually."]
67323    #[inline]
67324    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
67325        <TsModuleDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67326            node, self, __ast_path,
67327        )
67328    }
67329    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
67330             [`TsModuleName::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67331             to call it manually."]
67332    #[inline]
67333    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
67334        <TsModuleName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67335            node, self, __ast_path,
67336        )
67337    }
67338    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
67339             [`TsModuleRef::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67340             to call it manually."]
67341    #[inline]
67342    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
67343        <TsModuleRef as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67344            node, self, __ast_path,
67345        )
67346    }
67347    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
67348             [`TsNamespaceBody::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67349             need to call it manually."]
67350    #[inline]
67351    fn visit_mut_ts_namespace_body(
67352        &mut self,
67353        node: &mut TsNamespaceBody,
67354        __ast_path: &mut AstKindPath,
67355    ) {
67356        <TsNamespaceBody as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67357            node, self, __ast_path,
67358        )
67359    }
67360    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
67361             [`TsNamespaceDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67362             need to call it manually."]
67363    #[inline]
67364    fn visit_mut_ts_namespace_decl(
67365        &mut self,
67366        node: &mut TsNamespaceDecl,
67367        __ast_path: &mut AstKindPath,
67368    ) {
67369        <TsNamespaceDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67370            node, self, __ast_path,
67371        )
67372    }
67373    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
67374             [`TsNamespaceExportDecl::visit_mut_children_with_ast_path`]. If you want to recurse, \
67375             you need to call it manually."]
67376    #[inline]
67377    fn visit_mut_ts_namespace_export_decl(
67378        &mut self,
67379        node: &mut TsNamespaceExportDecl,
67380        __ast_path: &mut AstKindPath,
67381    ) {
67382        <TsNamespaceExportDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67383            node, self, __ast_path,
67384        )
67385    }
67386    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
67387             [`TsNonNullExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67388             to call it manually."]
67389    #[inline]
67390    fn visit_mut_ts_non_null_expr(
67391        &mut self,
67392        node: &mut TsNonNullExpr,
67393        __ast_path: &mut AstKindPath,
67394    ) {
67395        <TsNonNullExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67396            node, self, __ast_path,
67397        )
67398    }
67399    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
67400             [`TsOptionalType::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67401             need to call it manually."]
67402    #[inline]
67403    fn visit_mut_ts_optional_type(
67404        &mut self,
67405        node: &mut TsOptionalType,
67406        __ast_path: &mut AstKindPath,
67407    ) {
67408        <TsOptionalType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67409            node, self, __ast_path,
67410        )
67411    }
67412    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
67413             [`TsParamProp::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67414             to call it manually."]
67415    #[inline]
67416    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
67417        <TsParamProp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67418            node, self, __ast_path,
67419        )
67420    }
67421    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
67422             [`TsParamPropParam::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67423             need to call it manually."]
67424    #[inline]
67425    fn visit_mut_ts_param_prop_param(
67426        &mut self,
67427        node: &mut TsParamPropParam,
67428        __ast_path: &mut AstKindPath,
67429    ) {
67430        <TsParamPropParam as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67431            node, self, __ast_path,
67432        )
67433    }
67434    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
67435             [`TsParenthesizedType::visit_mut_children_with_ast_path`]. If you want to recurse, \
67436             you need to call it manually."]
67437    #[inline]
67438    fn visit_mut_ts_parenthesized_type(
67439        &mut self,
67440        node: &mut TsParenthesizedType,
67441        __ast_path: &mut AstKindPath,
67442    ) {
67443        <TsParenthesizedType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67444            node, self, __ast_path,
67445        )
67446    }
67447    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
67448             [`TsPropertySignature::visit_mut_children_with_ast_path`]. If you want to recurse, \
67449             you need to call it manually."]
67450    #[inline]
67451    fn visit_mut_ts_property_signature(
67452        &mut self,
67453        node: &mut TsPropertySignature,
67454        __ast_path: &mut AstKindPath,
67455    ) {
67456        <TsPropertySignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67457            node, self, __ast_path,
67458        )
67459    }
67460    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
67461             [`TsQualifiedName::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67462             need to call it manually."]
67463    #[inline]
67464    fn visit_mut_ts_qualified_name(
67465        &mut self,
67466        node: &mut TsQualifiedName,
67467        __ast_path: &mut AstKindPath,
67468    ) {
67469        <TsQualifiedName as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67470            node, self, __ast_path,
67471        )
67472    }
67473    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
67474             [`TsRestType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67475             call it manually."]
67476    #[inline]
67477    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
67478        <TsRestType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67479            node, self, __ast_path,
67480        )
67481    }
67482    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
67483             [`TsSatisfiesExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67484             need to call it manually."]
67485    #[inline]
67486    fn visit_mut_ts_satisfies_expr(
67487        &mut self,
67488        node: &mut TsSatisfiesExpr,
67489        __ast_path: &mut AstKindPath,
67490    ) {
67491        <TsSatisfiesExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67492            node, self, __ast_path,
67493        )
67494    }
67495    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
67496             [`TsSetterSignature::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67497             need to call it manually."]
67498    #[inline]
67499    fn visit_mut_ts_setter_signature(
67500        &mut self,
67501        node: &mut TsSetterSignature,
67502        __ast_path: &mut AstKindPath,
67503    ) {
67504        <TsSetterSignature as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67505            node, self, __ast_path,
67506        )
67507    }
67508    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
67509             [`TsThisType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67510             call it manually."]
67511    #[inline]
67512    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
67513        <TsThisType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67514            node, self, __ast_path,
67515        )
67516    }
67517    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
67518             [`TsThisTypeOrIdent::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67519             need to call it manually."]
67520    #[inline]
67521    fn visit_mut_ts_this_type_or_ident(
67522        &mut self,
67523        node: &mut TsThisTypeOrIdent,
67524        __ast_path: &mut AstKindPath,
67525    ) {
67526        <TsThisTypeOrIdent as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67527            node, self, __ast_path,
67528        )
67529    }
67530    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
67531             [`TsTplLitType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67532             to call it manually."]
67533    #[inline]
67534    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
67535        <TsTplLitType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67536            node, self, __ast_path,
67537        )
67538    }
67539    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
67540             [`TsTupleElement::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67541             need to call it manually."]
67542    #[inline]
67543    fn visit_mut_ts_tuple_element(
67544        &mut self,
67545        node: &mut TsTupleElement,
67546        __ast_path: &mut AstKindPath,
67547    ) {
67548        <TsTupleElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67549            node, self, __ast_path,
67550        )
67551    }
67552    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
67553             < TsTupleElement >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67554             need to call it manually."]
67555    #[inline]
67556    fn visit_mut_ts_tuple_elements(
67557        &mut self,
67558        node: &mut Vec<TsTupleElement>,
67559        __ast_path: &mut AstKindPath,
67560    ) {
67561        <Vec<TsTupleElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67562            node, self, __ast_path,
67563        )
67564    }
67565    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
67566             [`TsTupleType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67567             to call it manually."]
67568    #[inline]
67569    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
67570        <TsTupleType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67571            node, self, __ast_path,
67572        )
67573    }
67574    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
67575             [`TsType::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67576             call it manually."]
67577    #[inline]
67578    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
67579        <TsType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67580            node, self, __ast_path,
67581        )
67582    }
67583    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
67584             [`TsTypeAliasDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67585             need to call it manually."]
67586    #[inline]
67587    fn visit_mut_ts_type_alias_decl(
67588        &mut self,
67589        node: &mut TsTypeAliasDecl,
67590        __ast_path: &mut AstKindPath,
67591    ) {
67592        <TsTypeAliasDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67593            node, self, __ast_path,
67594        )
67595    }
67596    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
67597             [`TsTypeAnn::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67598             call it manually."]
67599    #[inline]
67600    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
67601        <TsTypeAnn as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67602            node, self, __ast_path,
67603        )
67604    }
67605    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
67606             [`TsTypeAssertion::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67607             need to call it manually."]
67608    #[inline]
67609    fn visit_mut_ts_type_assertion(
67610        &mut self,
67611        node: &mut TsTypeAssertion,
67612        __ast_path: &mut AstKindPath,
67613    ) {
67614        <TsTypeAssertion as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67615            node, self, __ast_path,
67616        )
67617    }
67618    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
67619             [`TsTypeElement::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67620             to call it manually."]
67621    #[inline]
67622    fn visit_mut_ts_type_element(
67623        &mut self,
67624        node: &mut TsTypeElement,
67625        __ast_path: &mut AstKindPath,
67626    ) {
67627        <TsTypeElement as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67628            node, self, __ast_path,
67629        )
67630    }
67631    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
67632             < TsTypeElement >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67633             need to call it manually."]
67634    #[inline]
67635    fn visit_mut_ts_type_elements(
67636        &mut self,
67637        node: &mut Vec<TsTypeElement>,
67638        __ast_path: &mut AstKindPath,
67639    ) {
67640        <Vec<TsTypeElement> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67641            node, self, __ast_path,
67642        )
67643    }
67644    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
67645             [`TsTypeLit::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67646             call it manually."]
67647    #[inline]
67648    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
67649        <TsTypeLit as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67650            node, self, __ast_path,
67651        )
67652    }
67653    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
67654             [`TsTypeOperator::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67655             need to call it manually."]
67656    #[inline]
67657    fn visit_mut_ts_type_operator(
67658        &mut self,
67659        node: &mut TsTypeOperator,
67660        __ast_path: &mut AstKindPath,
67661    ) {
67662        <TsTypeOperator as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67663            node, self, __ast_path,
67664        )
67665    }
67666    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
67667             [`TsTypeOperatorOp::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67668             need to call it manually."]
67669    #[inline]
67670    fn visit_mut_ts_type_operator_op(
67671        &mut self,
67672        node: &mut TsTypeOperatorOp,
67673        __ast_path: &mut AstKindPath,
67674    ) {
67675        <TsTypeOperatorOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67676            node, self, __ast_path,
67677        )
67678    }
67679    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
67680             [`TsTypeParam::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67681             to call it manually."]
67682    #[inline]
67683    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
67684        <TsTypeParam as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67685            node, self, __ast_path,
67686        )
67687    }
67688    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
67689             [`TsTypeParamDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67690             need to call it manually."]
67691    #[inline]
67692    fn visit_mut_ts_type_param_decl(
67693        &mut self,
67694        node: &mut TsTypeParamDecl,
67695        __ast_path: &mut AstKindPath,
67696    ) {
67697        <TsTypeParamDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67698            node, self, __ast_path,
67699        )
67700    }
67701    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
67702             [`TsTypeParamInstantiation::visit_mut_children_with_ast_path`]. If you want to \
67703             recurse, you need to call it manually."]
67704    #[inline]
67705    fn visit_mut_ts_type_param_instantiation(
67706        &mut self,
67707        node: &mut TsTypeParamInstantiation,
67708        __ast_path: &mut AstKindPath,
67709    ) {
67710        <TsTypeParamInstantiation as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67711            node, self, __ast_path,
67712        )
67713    }
67714    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
67715             TsTypeParam >::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67716             to call it manually."]
67717    #[inline]
67718    fn visit_mut_ts_type_params(
67719        &mut self,
67720        node: &mut Vec<TsTypeParam>,
67721        __ast_path: &mut AstKindPath,
67722    ) {
67723        <Vec<TsTypeParam> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67724            node, self, __ast_path,
67725        )
67726    }
67727    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
67728             [`TsTypePredicate::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67729             need to call it manually."]
67730    #[inline]
67731    fn visit_mut_ts_type_predicate(
67732        &mut self,
67733        node: &mut TsTypePredicate,
67734        __ast_path: &mut AstKindPath,
67735    ) {
67736        <TsTypePredicate as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67737            node, self, __ast_path,
67738        )
67739    }
67740    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
67741             [`TsTypeQuery::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67742             to call it manually."]
67743    #[inline]
67744    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
67745        <TsTypeQuery as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67746            node, self, __ast_path,
67747        )
67748    }
67749    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
67750             [`TsTypeQueryExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67751             need to call it manually."]
67752    #[inline]
67753    fn visit_mut_ts_type_query_expr(
67754        &mut self,
67755        node: &mut TsTypeQueryExpr,
67756        __ast_path: &mut AstKindPath,
67757    ) {
67758        <TsTypeQueryExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67759            node, self, __ast_path,
67760        )
67761    }
67762    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
67763             [`TsTypeRef::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67764             call it manually."]
67765    #[inline]
67766    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
67767        <TsTypeRef as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67768            node, self, __ast_path,
67769        )
67770    }
67771    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
67772             < Box < TsType > >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67773             need to call it manually."]
67774    #[inline]
67775    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
67776        <Vec<Box<TsType>> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67777            node, self, __ast_path,
67778        )
67779    }
67780    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
67781             [`TsUnionOrIntersectionType::visit_mut_children_with_ast_path`]. If you want to \
67782             recurse, you need to call it manually."]
67783    #[inline]
67784    fn visit_mut_ts_union_or_intersection_type(
67785        &mut self,
67786        node: &mut TsUnionOrIntersectionType,
67787        __ast_path: &mut AstKindPath,
67788    ) {
67789        <TsUnionOrIntersectionType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67790            node, self, __ast_path,
67791        )
67792    }
67793    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
67794             [`TsUnionType::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67795             to call it manually."]
67796    #[inline]
67797    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
67798        <TsUnionType as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67799            node, self, __ast_path,
67800        )
67801    }
67802    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
67803             [`UnaryExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67804             call it manually."]
67805    #[inline]
67806    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
67807        <UnaryExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67808            node, self, __ast_path,
67809        )
67810    }
67811    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
67812             [`UnaryOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67813             call it manually."]
67814    #[inline]
67815    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
67816        <UnaryOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67817            node, self, __ast_path,
67818        )
67819    }
67820    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
67821             [`UpdateExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67822             call it manually."]
67823    #[inline]
67824    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
67825        <UpdateExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67826            node, self, __ast_path,
67827        )
67828    }
67829    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
67830             [`UpdateOp::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67831             call it manually."]
67832    #[inline]
67833    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
67834        <UpdateOp as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67835            node, self, __ast_path,
67836        )
67837    }
67838    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
67839             [`UsingDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67840             call it manually."]
67841    #[inline]
67842    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
67843        <UsingDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67844            node, self, __ast_path,
67845        )
67846    }
67847    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
67848             [`VarDecl::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67849             call it manually."]
67850    #[inline]
67851    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
67852        <VarDecl as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67853            node, self, __ast_path,
67854        )
67855    }
67856    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
67857             [`VarDeclKind::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67858             to call it manually."]
67859    #[inline]
67860    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
67861        <VarDeclKind as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67862            node, self, __ast_path,
67863        )
67864    }
67865    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
67866             [`VarDeclOrExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67867             to call it manually."]
67868    #[inline]
67869    fn visit_mut_var_decl_or_expr(
67870        &mut self,
67871        node: &mut VarDeclOrExpr,
67872        __ast_path: &mut AstKindPath,
67873    ) {
67874        <VarDeclOrExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67875            node, self, __ast_path,
67876        )
67877    }
67878    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
67879             [`VarDeclarator::visit_mut_children_with_ast_path`]. If you want to recurse, you need \
67880             to call it manually."]
67881    #[inline]
67882    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
67883        <VarDeclarator as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67884            node, self, __ast_path,
67885        )
67886    }
67887    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
67888             < VarDeclarator >::visit_mut_children_with_ast_path`]. If you want to recurse, you \
67889             need to call it manually."]
67890    #[inline]
67891    fn visit_mut_var_declarators(
67892        &mut self,
67893        node: &mut Vec<VarDeclarator>,
67894        __ast_path: &mut AstKindPath,
67895    ) {
67896        <Vec<VarDeclarator> as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67897            node, self, __ast_path,
67898        )
67899    }
67900    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
67901             [`WhileStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67902             call it manually."]
67903    #[inline]
67904    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
67905        <WhileStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67906            node, self, __ast_path,
67907        )
67908    }
67909    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
67910             [`WithStmt::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67911             call it manually."]
67912    #[inline]
67913    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
67914        <WithStmt as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67915            node, self, __ast_path,
67916        )
67917    }
67918    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
67919             [`YieldExpr::visit_mut_children_with_ast_path`]. If you want to recurse, you need to \
67920             call it manually."]
67921    #[inline]
67922    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
67923        <YieldExpr as VisitMutWithAstPath<Self>>::visit_mut_children_with_ast_path(
67924            node, self, __ast_path,
67925        )
67926    }
67927}
67928#[cfg(any(docsrs, feature = "path"))]
67929#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
67930impl<V> VisitMutAstPath for &mut V
67931where
67932    V: ?Sized + VisitMutAstPath,
67933{
67934    #[inline]
67935    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
67936        <V as VisitMutAstPath>::visit_mut_accessibility(&mut **self, node, __ast_path)
67937    }
67938
67939    #[inline]
67940    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
67941        <V as VisitMutAstPath>::visit_mut_array_lit(&mut **self, node, __ast_path)
67942    }
67943
67944    #[inline]
67945    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
67946        <V as VisitMutAstPath>::visit_mut_array_pat(&mut **self, node, __ast_path)
67947    }
67948
67949    #[inline]
67950    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
67951        <V as VisitMutAstPath>::visit_mut_arrow_expr(&mut **self, node, __ast_path)
67952    }
67953
67954    #[inline]
67955    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
67956        <V as VisitMutAstPath>::visit_mut_assign_expr(&mut **self, node, __ast_path)
67957    }
67958
67959    #[inline]
67960    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
67961        <V as VisitMutAstPath>::visit_mut_assign_op(&mut **self, node, __ast_path)
67962    }
67963
67964    #[inline]
67965    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
67966        <V as VisitMutAstPath>::visit_mut_assign_pat(&mut **self, node, __ast_path)
67967    }
67968
67969    #[inline]
67970    fn visit_mut_assign_pat_prop(
67971        &mut self,
67972        node: &mut AssignPatProp,
67973        __ast_path: &mut AstKindPath,
67974    ) {
67975        <V as VisitMutAstPath>::visit_mut_assign_pat_prop(&mut **self, node, __ast_path)
67976    }
67977
67978    #[inline]
67979    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
67980        <V as VisitMutAstPath>::visit_mut_assign_prop(&mut **self, node, __ast_path)
67981    }
67982
67983    #[inline]
67984    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
67985        <V as VisitMutAstPath>::visit_mut_assign_target(&mut **self, node, __ast_path)
67986    }
67987
67988    #[inline]
67989    fn visit_mut_assign_target_pat(
67990        &mut self,
67991        node: &mut AssignTargetPat,
67992        __ast_path: &mut AstKindPath,
67993    ) {
67994        <V as VisitMutAstPath>::visit_mut_assign_target_pat(&mut **self, node, __ast_path)
67995    }
67996
67997    #[inline]
67998    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
67999        <V as VisitMutAstPath>::visit_mut_atom(&mut **self, node, __ast_path)
68000    }
68001
68002    #[inline]
68003    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
68004        <V as VisitMutAstPath>::visit_mut_auto_accessor(&mut **self, node, __ast_path)
68005    }
68006
68007    #[inline]
68008    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
68009        <V as VisitMutAstPath>::visit_mut_await_expr(&mut **self, node, __ast_path)
68010    }
68011
68012    #[inline]
68013    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
68014        <V as VisitMutAstPath>::visit_mut_big_int(&mut **self, node, __ast_path)
68015    }
68016
68017    #[inline]
68018    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
68019        <V as VisitMutAstPath>::visit_mut_big_int_value(&mut **self, node, __ast_path)
68020    }
68021
68022    #[inline]
68023    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
68024        <V as VisitMutAstPath>::visit_mut_bin_expr(&mut **self, node, __ast_path)
68025    }
68026
68027    #[inline]
68028    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
68029        <V as VisitMutAstPath>::visit_mut_binary_op(&mut **self, node, __ast_path)
68030    }
68031
68032    #[inline]
68033    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
68034        <V as VisitMutAstPath>::visit_mut_binding_ident(&mut **self, node, __ast_path)
68035    }
68036
68037    #[inline]
68038    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
68039        <V as VisitMutAstPath>::visit_mut_block_stmt(&mut **self, node, __ast_path)
68040    }
68041
68042    #[inline]
68043    fn visit_mut_block_stmt_or_expr(
68044        &mut self,
68045        node: &mut BlockStmtOrExpr,
68046        __ast_path: &mut AstKindPath,
68047    ) {
68048        <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(&mut **self, node, __ast_path)
68049    }
68050
68051    #[inline]
68052    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
68053        <V as VisitMutAstPath>::visit_mut_bool(&mut **self, node, __ast_path)
68054    }
68055
68056    #[inline]
68057    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
68058        <V as VisitMutAstPath>::visit_mut_break_stmt(&mut **self, node, __ast_path)
68059    }
68060
68061    #[inline]
68062    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
68063        <V as VisitMutAstPath>::visit_mut_call_expr(&mut **self, node, __ast_path)
68064    }
68065
68066    #[inline]
68067    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
68068        <V as VisitMutAstPath>::visit_mut_callee(&mut **self, node, __ast_path)
68069    }
68070
68071    #[inline]
68072    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
68073        <V as VisitMutAstPath>::visit_mut_catch_clause(&mut **self, node, __ast_path)
68074    }
68075
68076    #[inline]
68077    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
68078        <V as VisitMutAstPath>::visit_mut_class(&mut **self, node, __ast_path)
68079    }
68080
68081    #[inline]
68082    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
68083        <V as VisitMutAstPath>::visit_mut_class_decl(&mut **self, node, __ast_path)
68084    }
68085
68086    #[inline]
68087    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
68088        <V as VisitMutAstPath>::visit_mut_class_expr(&mut **self, node, __ast_path)
68089    }
68090
68091    #[inline]
68092    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
68093        <V as VisitMutAstPath>::visit_mut_class_member(&mut **self, node, __ast_path)
68094    }
68095
68096    #[inline]
68097    fn visit_mut_class_members(
68098        &mut self,
68099        node: &mut Vec<ClassMember>,
68100        __ast_path: &mut AstKindPath,
68101    ) {
68102        <V as VisitMutAstPath>::visit_mut_class_members(&mut **self, node, __ast_path)
68103    }
68104
68105    #[inline]
68106    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
68107        <V as VisitMutAstPath>::visit_mut_class_method(&mut **self, node, __ast_path)
68108    }
68109
68110    #[inline]
68111    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
68112        <V as VisitMutAstPath>::visit_mut_class_prop(&mut **self, node, __ast_path)
68113    }
68114
68115    #[inline]
68116    fn visit_mut_computed_prop_name(
68117        &mut self,
68118        node: &mut ComputedPropName,
68119        __ast_path: &mut AstKindPath,
68120    ) {
68121        <V as VisitMutAstPath>::visit_mut_computed_prop_name(&mut **self, node, __ast_path)
68122    }
68123
68124    #[inline]
68125    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
68126        <V as VisitMutAstPath>::visit_mut_cond_expr(&mut **self, node, __ast_path)
68127    }
68128
68129    #[inline]
68130    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
68131        <V as VisitMutAstPath>::visit_mut_constructor(&mut **self, node, __ast_path)
68132    }
68133
68134    #[inline]
68135    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
68136        <V as VisitMutAstPath>::visit_mut_continue_stmt(&mut **self, node, __ast_path)
68137    }
68138
68139    #[inline]
68140    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
68141        <V as VisitMutAstPath>::visit_mut_debugger_stmt(&mut **self, node, __ast_path)
68142    }
68143
68144    #[inline]
68145    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
68146        <V as VisitMutAstPath>::visit_mut_decl(&mut **self, node, __ast_path)
68147    }
68148
68149    #[inline]
68150    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
68151        <V as VisitMutAstPath>::visit_mut_decorator(&mut **self, node, __ast_path)
68152    }
68153
68154    #[inline]
68155    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
68156        <V as VisitMutAstPath>::visit_mut_decorators(&mut **self, node, __ast_path)
68157    }
68158
68159    #[inline]
68160    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
68161        <V as VisitMutAstPath>::visit_mut_default_decl(&mut **self, node, __ast_path)
68162    }
68163
68164    #[inline]
68165    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
68166        <V as VisitMutAstPath>::visit_mut_do_while_stmt(&mut **self, node, __ast_path)
68167    }
68168
68169    #[inline]
68170    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
68171        <V as VisitMutAstPath>::visit_mut_empty_stmt(&mut **self, node, __ast_path)
68172    }
68173
68174    #[inline]
68175    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
68176        <V as VisitMutAstPath>::visit_mut_export_all(&mut **self, node, __ast_path)
68177    }
68178
68179    #[inline]
68180    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
68181        <V as VisitMutAstPath>::visit_mut_export_decl(&mut **self, node, __ast_path)
68182    }
68183
68184    #[inline]
68185    fn visit_mut_export_default_decl(
68186        &mut self,
68187        node: &mut ExportDefaultDecl,
68188        __ast_path: &mut AstKindPath,
68189    ) {
68190        <V as VisitMutAstPath>::visit_mut_export_default_decl(&mut **self, node, __ast_path)
68191    }
68192
68193    #[inline]
68194    fn visit_mut_export_default_expr(
68195        &mut self,
68196        node: &mut ExportDefaultExpr,
68197        __ast_path: &mut AstKindPath,
68198    ) {
68199        <V as VisitMutAstPath>::visit_mut_export_default_expr(&mut **self, node, __ast_path)
68200    }
68201
68202    #[inline]
68203    fn visit_mut_export_default_specifier(
68204        &mut self,
68205        node: &mut ExportDefaultSpecifier,
68206        __ast_path: &mut AstKindPath,
68207    ) {
68208        <V as VisitMutAstPath>::visit_mut_export_default_specifier(&mut **self, node, __ast_path)
68209    }
68210
68211    #[inline]
68212    fn visit_mut_export_named_specifier(
68213        &mut self,
68214        node: &mut ExportNamedSpecifier,
68215        __ast_path: &mut AstKindPath,
68216    ) {
68217        <V as VisitMutAstPath>::visit_mut_export_named_specifier(&mut **self, node, __ast_path)
68218    }
68219
68220    #[inline]
68221    fn visit_mut_export_namespace_specifier(
68222        &mut self,
68223        node: &mut ExportNamespaceSpecifier,
68224        __ast_path: &mut AstKindPath,
68225    ) {
68226        <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(&mut **self, node, __ast_path)
68227    }
68228
68229    #[inline]
68230    fn visit_mut_export_specifier(
68231        &mut self,
68232        node: &mut ExportSpecifier,
68233        __ast_path: &mut AstKindPath,
68234    ) {
68235        <V as VisitMutAstPath>::visit_mut_export_specifier(&mut **self, node, __ast_path)
68236    }
68237
68238    #[inline]
68239    fn visit_mut_export_specifiers(
68240        &mut self,
68241        node: &mut Vec<ExportSpecifier>,
68242        __ast_path: &mut AstKindPath,
68243    ) {
68244        <V as VisitMutAstPath>::visit_mut_export_specifiers(&mut **self, node, __ast_path)
68245    }
68246
68247    #[inline]
68248    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
68249        <V as VisitMutAstPath>::visit_mut_expr(&mut **self, node, __ast_path)
68250    }
68251
68252    #[inline]
68253    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
68254        <V as VisitMutAstPath>::visit_mut_expr_or_spread(&mut **self, node, __ast_path)
68255    }
68256
68257    #[inline]
68258    fn visit_mut_expr_or_spreads(
68259        &mut self,
68260        node: &mut Vec<ExprOrSpread>,
68261        __ast_path: &mut AstKindPath,
68262    ) {
68263        <V as VisitMutAstPath>::visit_mut_expr_or_spreads(&mut **self, node, __ast_path)
68264    }
68265
68266    #[inline]
68267    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
68268        <V as VisitMutAstPath>::visit_mut_expr_stmt(&mut **self, node, __ast_path)
68269    }
68270
68271    #[inline]
68272    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
68273        <V as VisitMutAstPath>::visit_mut_exprs(&mut **self, node, __ast_path)
68274    }
68275
68276    #[inline]
68277    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
68278        <V as VisitMutAstPath>::visit_mut_fn_decl(&mut **self, node, __ast_path)
68279    }
68280
68281    #[inline]
68282    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
68283        <V as VisitMutAstPath>::visit_mut_fn_expr(&mut **self, node, __ast_path)
68284    }
68285
68286    #[inline]
68287    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
68288        <V as VisitMutAstPath>::visit_mut_for_head(&mut **self, node, __ast_path)
68289    }
68290
68291    #[inline]
68292    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
68293        <V as VisitMutAstPath>::visit_mut_for_in_stmt(&mut **self, node, __ast_path)
68294    }
68295
68296    #[inline]
68297    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
68298        <V as VisitMutAstPath>::visit_mut_for_of_stmt(&mut **self, node, __ast_path)
68299    }
68300
68301    #[inline]
68302    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
68303        <V as VisitMutAstPath>::visit_mut_for_stmt(&mut **self, node, __ast_path)
68304    }
68305
68306    #[inline]
68307    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
68308        <V as VisitMutAstPath>::visit_mut_function(&mut **self, node, __ast_path)
68309    }
68310
68311    #[inline]
68312    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
68313        <V as VisitMutAstPath>::visit_mut_getter_prop(&mut **self, node, __ast_path)
68314    }
68315
68316    #[inline]
68317    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
68318        <V as VisitMutAstPath>::visit_mut_ident(&mut **self, node, __ast_path)
68319    }
68320
68321    #[inline]
68322    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
68323        <V as VisitMutAstPath>::visit_mut_ident_name(&mut **self, node, __ast_path)
68324    }
68325
68326    #[inline]
68327    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
68328        <V as VisitMutAstPath>::visit_mut_if_stmt(&mut **self, node, __ast_path)
68329    }
68330
68331    #[inline]
68332    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
68333        <V as VisitMutAstPath>::visit_mut_import(&mut **self, node, __ast_path)
68334    }
68335
68336    #[inline]
68337    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
68338        <V as VisitMutAstPath>::visit_mut_import_decl(&mut **self, node, __ast_path)
68339    }
68340
68341    #[inline]
68342    fn visit_mut_import_default_specifier(
68343        &mut self,
68344        node: &mut ImportDefaultSpecifier,
68345        __ast_path: &mut AstKindPath,
68346    ) {
68347        <V as VisitMutAstPath>::visit_mut_import_default_specifier(&mut **self, node, __ast_path)
68348    }
68349
68350    #[inline]
68351    fn visit_mut_import_named_specifier(
68352        &mut self,
68353        node: &mut ImportNamedSpecifier,
68354        __ast_path: &mut AstKindPath,
68355    ) {
68356        <V as VisitMutAstPath>::visit_mut_import_named_specifier(&mut **self, node, __ast_path)
68357    }
68358
68359    #[inline]
68360    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
68361        <V as VisitMutAstPath>::visit_mut_import_phase(&mut **self, node, __ast_path)
68362    }
68363
68364    #[inline]
68365    fn visit_mut_import_specifier(
68366        &mut self,
68367        node: &mut ImportSpecifier,
68368        __ast_path: &mut AstKindPath,
68369    ) {
68370        <V as VisitMutAstPath>::visit_mut_import_specifier(&mut **self, node, __ast_path)
68371    }
68372
68373    #[inline]
68374    fn visit_mut_import_specifiers(
68375        &mut self,
68376        node: &mut Vec<ImportSpecifier>,
68377        __ast_path: &mut AstKindPath,
68378    ) {
68379        <V as VisitMutAstPath>::visit_mut_import_specifiers(&mut **self, node, __ast_path)
68380    }
68381
68382    #[inline]
68383    fn visit_mut_import_star_as_specifier(
68384        &mut self,
68385        node: &mut ImportStarAsSpecifier,
68386        __ast_path: &mut AstKindPath,
68387    ) {
68388        <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(&mut **self, node, __ast_path)
68389    }
68390
68391    #[inline]
68392    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
68393        <V as VisitMutAstPath>::visit_mut_import_with(&mut **self, node, __ast_path)
68394    }
68395
68396    #[inline]
68397    fn visit_mut_import_with_item(
68398        &mut self,
68399        node: &mut ImportWithItem,
68400        __ast_path: &mut AstKindPath,
68401    ) {
68402        <V as VisitMutAstPath>::visit_mut_import_with_item(&mut **self, node, __ast_path)
68403    }
68404
68405    #[inline]
68406    fn visit_mut_import_with_items(
68407        &mut self,
68408        node: &mut Vec<ImportWithItem>,
68409        __ast_path: &mut AstKindPath,
68410    ) {
68411        <V as VisitMutAstPath>::visit_mut_import_with_items(&mut **self, node, __ast_path)
68412    }
68413
68414    #[inline]
68415    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
68416        <V as VisitMutAstPath>::visit_mut_invalid(&mut **self, node, __ast_path)
68417    }
68418
68419    #[inline]
68420    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
68421        <V as VisitMutAstPath>::visit_mut_jsx_attr(&mut **self, node, __ast_path)
68422    }
68423
68424    #[inline]
68425    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
68426        <V as VisitMutAstPath>::visit_mut_jsx_attr_name(&mut **self, node, __ast_path)
68427    }
68428
68429    #[inline]
68430    fn visit_mut_jsx_attr_or_spread(
68431        &mut self,
68432        node: &mut JSXAttrOrSpread,
68433        __ast_path: &mut AstKindPath,
68434    ) {
68435        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(&mut **self, node, __ast_path)
68436    }
68437
68438    #[inline]
68439    fn visit_mut_jsx_attr_or_spreads(
68440        &mut self,
68441        node: &mut Vec<JSXAttrOrSpread>,
68442        __ast_path: &mut AstKindPath,
68443    ) {
68444        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(&mut **self, node, __ast_path)
68445    }
68446
68447    #[inline]
68448    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
68449        <V as VisitMutAstPath>::visit_mut_jsx_attr_value(&mut **self, node, __ast_path)
68450    }
68451
68452    #[inline]
68453    fn visit_mut_jsx_closing_element(
68454        &mut self,
68455        node: &mut JSXClosingElement,
68456        __ast_path: &mut AstKindPath,
68457    ) {
68458        <V as VisitMutAstPath>::visit_mut_jsx_closing_element(&mut **self, node, __ast_path)
68459    }
68460
68461    #[inline]
68462    fn visit_mut_jsx_closing_fragment(
68463        &mut self,
68464        node: &mut JSXClosingFragment,
68465        __ast_path: &mut AstKindPath,
68466    ) {
68467        <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(&mut **self, node, __ast_path)
68468    }
68469
68470    #[inline]
68471    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
68472        <V as VisitMutAstPath>::visit_mut_jsx_element(&mut **self, node, __ast_path)
68473    }
68474
68475    #[inline]
68476    fn visit_mut_jsx_element_child(
68477        &mut self,
68478        node: &mut JSXElementChild,
68479        __ast_path: &mut AstKindPath,
68480    ) {
68481        <V as VisitMutAstPath>::visit_mut_jsx_element_child(&mut **self, node, __ast_path)
68482    }
68483
68484    #[inline]
68485    fn visit_mut_jsx_element_childs(
68486        &mut self,
68487        node: &mut Vec<JSXElementChild>,
68488        __ast_path: &mut AstKindPath,
68489    ) {
68490        <V as VisitMutAstPath>::visit_mut_jsx_element_childs(&mut **self, node, __ast_path)
68491    }
68492
68493    #[inline]
68494    fn visit_mut_jsx_element_name(
68495        &mut self,
68496        node: &mut JSXElementName,
68497        __ast_path: &mut AstKindPath,
68498    ) {
68499        <V as VisitMutAstPath>::visit_mut_jsx_element_name(&mut **self, node, __ast_path)
68500    }
68501
68502    #[inline]
68503    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
68504        <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(&mut **self, node, __ast_path)
68505    }
68506
68507    #[inline]
68508    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
68509        <V as VisitMutAstPath>::visit_mut_jsx_expr(&mut **self, node, __ast_path)
68510    }
68511
68512    #[inline]
68513    fn visit_mut_jsx_expr_container(
68514        &mut self,
68515        node: &mut JSXExprContainer,
68516        __ast_path: &mut AstKindPath,
68517    ) {
68518        <V as VisitMutAstPath>::visit_mut_jsx_expr_container(&mut **self, node, __ast_path)
68519    }
68520
68521    #[inline]
68522    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
68523        <V as VisitMutAstPath>::visit_mut_jsx_fragment(&mut **self, node, __ast_path)
68524    }
68525
68526    #[inline]
68527    fn visit_mut_jsx_member_expr(
68528        &mut self,
68529        node: &mut JSXMemberExpr,
68530        __ast_path: &mut AstKindPath,
68531    ) {
68532        <V as VisitMutAstPath>::visit_mut_jsx_member_expr(&mut **self, node, __ast_path)
68533    }
68534
68535    #[inline]
68536    fn visit_mut_jsx_namespaced_name(
68537        &mut self,
68538        node: &mut JSXNamespacedName,
68539        __ast_path: &mut AstKindPath,
68540    ) {
68541        <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(&mut **self, node, __ast_path)
68542    }
68543
68544    #[inline]
68545    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
68546        <V as VisitMutAstPath>::visit_mut_jsx_object(&mut **self, node, __ast_path)
68547    }
68548
68549    #[inline]
68550    fn visit_mut_jsx_opening_element(
68551        &mut self,
68552        node: &mut JSXOpeningElement,
68553        __ast_path: &mut AstKindPath,
68554    ) {
68555        <V as VisitMutAstPath>::visit_mut_jsx_opening_element(&mut **self, node, __ast_path)
68556    }
68557
68558    #[inline]
68559    fn visit_mut_jsx_opening_fragment(
68560        &mut self,
68561        node: &mut JSXOpeningFragment,
68562        __ast_path: &mut AstKindPath,
68563    ) {
68564        <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(&mut **self, node, __ast_path)
68565    }
68566
68567    #[inline]
68568    fn visit_mut_jsx_spread_child(
68569        &mut self,
68570        node: &mut JSXSpreadChild,
68571        __ast_path: &mut AstKindPath,
68572    ) {
68573        <V as VisitMutAstPath>::visit_mut_jsx_spread_child(&mut **self, node, __ast_path)
68574    }
68575
68576    #[inline]
68577    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
68578        <V as VisitMutAstPath>::visit_mut_jsx_text(&mut **self, node, __ast_path)
68579    }
68580
68581    #[inline]
68582    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
68583        <V as VisitMutAstPath>::visit_mut_key(&mut **self, node, __ast_path)
68584    }
68585
68586    #[inline]
68587    fn visit_mut_key_value_pat_prop(
68588        &mut self,
68589        node: &mut KeyValuePatProp,
68590        __ast_path: &mut AstKindPath,
68591    ) {
68592        <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(&mut **self, node, __ast_path)
68593    }
68594
68595    #[inline]
68596    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
68597        <V as VisitMutAstPath>::visit_mut_key_value_prop(&mut **self, node, __ast_path)
68598    }
68599
68600    #[inline]
68601    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
68602        <V as VisitMutAstPath>::visit_mut_labeled_stmt(&mut **self, node, __ast_path)
68603    }
68604
68605    #[inline]
68606    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
68607        <V as VisitMutAstPath>::visit_mut_lit(&mut **self, node, __ast_path)
68608    }
68609
68610    #[inline]
68611    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
68612        <V as VisitMutAstPath>::visit_mut_member_expr(&mut **self, node, __ast_path)
68613    }
68614
68615    #[inline]
68616    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
68617        <V as VisitMutAstPath>::visit_mut_member_prop(&mut **self, node, __ast_path)
68618    }
68619
68620    #[inline]
68621    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
68622        <V as VisitMutAstPath>::visit_mut_meta_prop_expr(&mut **self, node, __ast_path)
68623    }
68624
68625    #[inline]
68626    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
68627        <V as VisitMutAstPath>::visit_mut_meta_prop_kind(&mut **self, node, __ast_path)
68628    }
68629
68630    #[inline]
68631    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
68632        <V as VisitMutAstPath>::visit_mut_method_kind(&mut **self, node, __ast_path)
68633    }
68634
68635    #[inline]
68636    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
68637        <V as VisitMutAstPath>::visit_mut_method_prop(&mut **self, node, __ast_path)
68638    }
68639
68640    #[inline]
68641    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
68642        <V as VisitMutAstPath>::visit_mut_module(&mut **self, node, __ast_path)
68643    }
68644
68645    #[inline]
68646    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
68647        <V as VisitMutAstPath>::visit_mut_module_decl(&mut **self, node, __ast_path)
68648    }
68649
68650    #[inline]
68651    fn visit_mut_module_export_name(
68652        &mut self,
68653        node: &mut ModuleExportName,
68654        __ast_path: &mut AstKindPath,
68655    ) {
68656        <V as VisitMutAstPath>::visit_mut_module_export_name(&mut **self, node, __ast_path)
68657    }
68658
68659    #[inline]
68660    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
68661        <V as VisitMutAstPath>::visit_mut_module_item(&mut **self, node, __ast_path)
68662    }
68663
68664    #[inline]
68665    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
68666        <V as VisitMutAstPath>::visit_mut_module_items(&mut **self, node, __ast_path)
68667    }
68668
68669    #[inline]
68670    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
68671        <V as VisitMutAstPath>::visit_mut_named_export(&mut **self, node, __ast_path)
68672    }
68673
68674    #[inline]
68675    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
68676        <V as VisitMutAstPath>::visit_mut_new_expr(&mut **self, node, __ast_path)
68677    }
68678
68679    #[inline]
68680    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
68681        <V as VisitMutAstPath>::visit_mut_null(&mut **self, node, __ast_path)
68682    }
68683
68684    #[inline]
68685    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
68686        <V as VisitMutAstPath>::visit_mut_number(&mut **self, node, __ast_path)
68687    }
68688
68689    #[inline]
68690    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
68691        <V as VisitMutAstPath>::visit_mut_object_lit(&mut **self, node, __ast_path)
68692    }
68693
68694    #[inline]
68695    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
68696        <V as VisitMutAstPath>::visit_mut_object_pat(&mut **self, node, __ast_path)
68697    }
68698
68699    #[inline]
68700    fn visit_mut_object_pat_prop(
68701        &mut self,
68702        node: &mut ObjectPatProp,
68703        __ast_path: &mut AstKindPath,
68704    ) {
68705        <V as VisitMutAstPath>::visit_mut_object_pat_prop(&mut **self, node, __ast_path)
68706    }
68707
68708    #[inline]
68709    fn visit_mut_object_pat_props(
68710        &mut self,
68711        node: &mut Vec<ObjectPatProp>,
68712        __ast_path: &mut AstKindPath,
68713    ) {
68714        <V as VisitMutAstPath>::visit_mut_object_pat_props(&mut **self, node, __ast_path)
68715    }
68716
68717    #[inline]
68718    fn visit_mut_opt_accessibility(
68719        &mut self,
68720        node: &mut Option<Accessibility>,
68721        __ast_path: &mut AstKindPath,
68722    ) {
68723        <V as VisitMutAstPath>::visit_mut_opt_accessibility(&mut **self, node, __ast_path)
68724    }
68725
68726    #[inline]
68727    fn visit_mut_opt_atom(
68728        &mut self,
68729        node: &mut Option<swc_atoms::Atom>,
68730        __ast_path: &mut AstKindPath,
68731    ) {
68732        <V as VisitMutAstPath>::visit_mut_opt_atom(&mut **self, node, __ast_path)
68733    }
68734
68735    #[inline]
68736    fn visit_mut_opt_block_stmt(
68737        &mut self,
68738        node: &mut Option<BlockStmt>,
68739        __ast_path: &mut AstKindPath,
68740    ) {
68741        <V as VisitMutAstPath>::visit_mut_opt_block_stmt(&mut **self, node, __ast_path)
68742    }
68743
68744    #[inline]
68745    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
68746        <V as VisitMutAstPath>::visit_mut_opt_call(&mut **self, node, __ast_path)
68747    }
68748
68749    #[inline]
68750    fn visit_mut_opt_catch_clause(
68751        &mut self,
68752        node: &mut Option<CatchClause>,
68753        __ast_path: &mut AstKindPath,
68754    ) {
68755        <V as VisitMutAstPath>::visit_mut_opt_catch_clause(&mut **self, node, __ast_path)
68756    }
68757
68758    #[inline]
68759    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
68760        <V as VisitMutAstPath>::visit_mut_opt_chain_base(&mut **self, node, __ast_path)
68761    }
68762
68763    #[inline]
68764    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
68765        <V as VisitMutAstPath>::visit_mut_opt_chain_expr(&mut **self, node, __ast_path)
68766    }
68767
68768    #[inline]
68769    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
68770        <V as VisitMutAstPath>::visit_mut_opt_expr(&mut **self, node, __ast_path)
68771    }
68772
68773    #[inline]
68774    fn visit_mut_opt_expr_or_spread(
68775        &mut self,
68776        node: &mut Option<ExprOrSpread>,
68777        __ast_path: &mut AstKindPath,
68778    ) {
68779        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(&mut **self, node, __ast_path)
68780    }
68781
68782    #[inline]
68783    fn visit_mut_opt_expr_or_spreads(
68784        &mut self,
68785        node: &mut Option<Vec<ExprOrSpread>>,
68786        __ast_path: &mut AstKindPath,
68787    ) {
68788        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(&mut **self, node, __ast_path)
68789    }
68790
68791    #[inline]
68792    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
68793        <V as VisitMutAstPath>::visit_mut_opt_ident(&mut **self, node, __ast_path)
68794    }
68795
68796    #[inline]
68797    fn visit_mut_opt_jsx_attr_value(
68798        &mut self,
68799        node: &mut Option<JSXAttrValue>,
68800        __ast_path: &mut AstKindPath,
68801    ) {
68802        <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(&mut **self, node, __ast_path)
68803    }
68804
68805    #[inline]
68806    fn visit_mut_opt_jsx_closing_element(
68807        &mut self,
68808        node: &mut Option<JSXClosingElement>,
68809        __ast_path: &mut AstKindPath,
68810    ) {
68811        <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(&mut **self, node, __ast_path)
68812    }
68813
68814    #[inline]
68815    fn visit_mut_opt_module_export_name(
68816        &mut self,
68817        node: &mut Option<ModuleExportName>,
68818        __ast_path: &mut AstKindPath,
68819    ) {
68820        <V as VisitMutAstPath>::visit_mut_opt_module_export_name(&mut **self, node, __ast_path)
68821    }
68822
68823    #[inline]
68824    fn visit_mut_opt_object_lit(
68825        &mut self,
68826        node: &mut Option<Box<ObjectLit>>,
68827        __ast_path: &mut AstKindPath,
68828    ) {
68829        <V as VisitMutAstPath>::visit_mut_opt_object_lit(&mut **self, node, __ast_path)
68830    }
68831
68832    #[inline]
68833    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
68834        <V as VisitMutAstPath>::visit_mut_opt_pat(&mut **self, node, __ast_path)
68835    }
68836
68837    #[inline]
68838    fn visit_mut_opt_span(
68839        &mut self,
68840        node: &mut Option<swc_common::Span>,
68841        __ast_path: &mut AstKindPath,
68842    ) {
68843        <V as VisitMutAstPath>::visit_mut_opt_span(&mut **self, node, __ast_path)
68844    }
68845
68846    #[inline]
68847    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
68848        <V as VisitMutAstPath>::visit_mut_opt_stmt(&mut **self, node, __ast_path)
68849    }
68850
68851    #[inline]
68852    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
68853        <V as VisitMutAstPath>::visit_mut_opt_str(&mut **self, node, __ast_path)
68854    }
68855
68856    #[inline]
68857    fn visit_mut_opt_true_plus_minus(
68858        &mut self,
68859        node: &mut Option<TruePlusMinus>,
68860        __ast_path: &mut AstKindPath,
68861    ) {
68862        <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(&mut **self, node, __ast_path)
68863    }
68864
68865    #[inline]
68866    fn visit_mut_opt_ts_entity_name(
68867        &mut self,
68868        node: &mut Option<TsEntityName>,
68869        __ast_path: &mut AstKindPath,
68870    ) {
68871        <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(&mut **self, node, __ast_path)
68872    }
68873
68874    #[inline]
68875    fn visit_mut_opt_ts_namespace_body(
68876        &mut self,
68877        node: &mut Option<TsNamespaceBody>,
68878        __ast_path: &mut AstKindPath,
68879    ) {
68880        <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(&mut **self, node, __ast_path)
68881    }
68882
68883    #[inline]
68884    fn visit_mut_opt_ts_type(
68885        &mut self,
68886        node: &mut Option<Box<TsType>>,
68887        __ast_path: &mut AstKindPath,
68888    ) {
68889        <V as VisitMutAstPath>::visit_mut_opt_ts_type(&mut **self, node, __ast_path)
68890    }
68891
68892    #[inline]
68893    fn visit_mut_opt_ts_type_ann(
68894        &mut self,
68895        node: &mut Option<Box<TsTypeAnn>>,
68896        __ast_path: &mut AstKindPath,
68897    ) {
68898        <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(&mut **self, node, __ast_path)
68899    }
68900
68901    #[inline]
68902    fn visit_mut_opt_ts_type_param_decl(
68903        &mut self,
68904        node: &mut Option<Box<TsTypeParamDecl>>,
68905        __ast_path: &mut AstKindPath,
68906    ) {
68907        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(&mut **self, node, __ast_path)
68908    }
68909
68910    #[inline]
68911    fn visit_mut_opt_ts_type_param_instantiation(
68912        &mut self,
68913        node: &mut Option<Box<TsTypeParamInstantiation>>,
68914        __ast_path: &mut AstKindPath,
68915    ) {
68916        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(
68917            &mut **self,
68918            node,
68919            __ast_path,
68920        )
68921    }
68922
68923    #[inline]
68924    fn visit_mut_opt_var_decl_or_expr(
68925        &mut self,
68926        node: &mut Option<VarDeclOrExpr>,
68927        __ast_path: &mut AstKindPath,
68928    ) {
68929        <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(&mut **self, node, __ast_path)
68930    }
68931
68932    #[inline]
68933    fn visit_mut_opt_vec_expr_or_spreads(
68934        &mut self,
68935        node: &mut Vec<Option<ExprOrSpread>>,
68936        __ast_path: &mut AstKindPath,
68937    ) {
68938        <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
68939    }
68940
68941    #[inline]
68942    fn visit_mut_opt_vec_pats(
68943        &mut self,
68944        node: &mut Vec<Option<Pat>>,
68945        __ast_path: &mut AstKindPath,
68946    ) {
68947        <V as VisitMutAstPath>::visit_mut_opt_vec_pats(&mut **self, node, __ast_path)
68948    }
68949
68950    #[inline]
68951    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
68952        <V as VisitMutAstPath>::visit_mut_param(&mut **self, node, __ast_path)
68953    }
68954
68955    #[inline]
68956    fn visit_mut_param_or_ts_param_prop(
68957        &mut self,
68958        node: &mut ParamOrTsParamProp,
68959        __ast_path: &mut AstKindPath,
68960    ) {
68961        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(&mut **self, node, __ast_path)
68962    }
68963
68964    #[inline]
68965    fn visit_mut_param_or_ts_param_props(
68966        &mut self,
68967        node: &mut Vec<ParamOrTsParamProp>,
68968        __ast_path: &mut AstKindPath,
68969    ) {
68970        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(&mut **self, node, __ast_path)
68971    }
68972
68973    #[inline]
68974    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
68975        <V as VisitMutAstPath>::visit_mut_params(&mut **self, node, __ast_path)
68976    }
68977
68978    #[inline]
68979    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
68980        <V as VisitMutAstPath>::visit_mut_paren_expr(&mut **self, node, __ast_path)
68981    }
68982
68983    #[inline]
68984    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
68985        <V as VisitMutAstPath>::visit_mut_pat(&mut **self, node, __ast_path)
68986    }
68987
68988    #[inline]
68989    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
68990        <V as VisitMutAstPath>::visit_mut_pats(&mut **self, node, __ast_path)
68991    }
68992
68993    #[inline]
68994    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
68995        <V as VisitMutAstPath>::visit_mut_private_method(&mut **self, node, __ast_path)
68996    }
68997
68998    #[inline]
68999    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
69000        <V as VisitMutAstPath>::visit_mut_private_name(&mut **self, node, __ast_path)
69001    }
69002
69003    #[inline]
69004    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
69005        <V as VisitMutAstPath>::visit_mut_private_prop(&mut **self, node, __ast_path)
69006    }
69007
69008    #[inline]
69009    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
69010        <V as VisitMutAstPath>::visit_mut_program(&mut **self, node, __ast_path)
69011    }
69012
69013    #[inline]
69014    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
69015        <V as VisitMutAstPath>::visit_mut_prop(&mut **self, node, __ast_path)
69016    }
69017
69018    #[inline]
69019    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
69020        <V as VisitMutAstPath>::visit_mut_prop_name(&mut **self, node, __ast_path)
69021    }
69022
69023    #[inline]
69024    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
69025        <V as VisitMutAstPath>::visit_mut_prop_or_spread(&mut **self, node, __ast_path)
69026    }
69027
69028    #[inline]
69029    fn visit_mut_prop_or_spreads(
69030        &mut self,
69031        node: &mut Vec<PropOrSpread>,
69032        __ast_path: &mut AstKindPath,
69033    ) {
69034        <V as VisitMutAstPath>::visit_mut_prop_or_spreads(&mut **self, node, __ast_path)
69035    }
69036
69037    #[inline]
69038    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
69039        <V as VisitMutAstPath>::visit_mut_regex(&mut **self, node, __ast_path)
69040    }
69041
69042    #[inline]
69043    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
69044        <V as VisitMutAstPath>::visit_mut_rest_pat(&mut **self, node, __ast_path)
69045    }
69046
69047    #[inline]
69048    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
69049        <V as VisitMutAstPath>::visit_mut_return_stmt(&mut **self, node, __ast_path)
69050    }
69051
69052    #[inline]
69053    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
69054        <V as VisitMutAstPath>::visit_mut_script(&mut **self, node, __ast_path)
69055    }
69056
69057    #[inline]
69058    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
69059        <V as VisitMutAstPath>::visit_mut_seq_expr(&mut **self, node, __ast_path)
69060    }
69061
69062    #[inline]
69063    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
69064        <V as VisitMutAstPath>::visit_mut_setter_prop(&mut **self, node, __ast_path)
69065    }
69066
69067    #[inline]
69068    fn visit_mut_simple_assign_target(
69069        &mut self,
69070        node: &mut SimpleAssignTarget,
69071        __ast_path: &mut AstKindPath,
69072    ) {
69073        <V as VisitMutAstPath>::visit_mut_simple_assign_target(&mut **self, node, __ast_path)
69074    }
69075
69076    #[inline]
69077    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
69078        <V as VisitMutAstPath>::visit_mut_span(&mut **self, node, __ast_path)
69079    }
69080
69081    #[inline]
69082    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
69083        <V as VisitMutAstPath>::visit_mut_spread_element(&mut **self, node, __ast_path)
69084    }
69085
69086    #[inline]
69087    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
69088        <V as VisitMutAstPath>::visit_mut_static_block(&mut **self, node, __ast_path)
69089    }
69090
69091    #[inline]
69092    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
69093        <V as VisitMutAstPath>::visit_mut_stmt(&mut **self, node, __ast_path)
69094    }
69095
69096    #[inline]
69097    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
69098        <V as VisitMutAstPath>::visit_mut_stmts(&mut **self, node, __ast_path)
69099    }
69100
69101    #[inline]
69102    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
69103        <V as VisitMutAstPath>::visit_mut_str(&mut **self, node, __ast_path)
69104    }
69105
69106    #[inline]
69107    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
69108        <V as VisitMutAstPath>::visit_mut_super(&mut **self, node, __ast_path)
69109    }
69110
69111    #[inline]
69112    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
69113        <V as VisitMutAstPath>::visit_mut_super_prop(&mut **self, node, __ast_path)
69114    }
69115
69116    #[inline]
69117    fn visit_mut_super_prop_expr(
69118        &mut self,
69119        node: &mut SuperPropExpr,
69120        __ast_path: &mut AstKindPath,
69121    ) {
69122        <V as VisitMutAstPath>::visit_mut_super_prop_expr(&mut **self, node, __ast_path)
69123    }
69124
69125    #[inline]
69126    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
69127        <V as VisitMutAstPath>::visit_mut_switch_case(&mut **self, node, __ast_path)
69128    }
69129
69130    #[inline]
69131    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
69132        <V as VisitMutAstPath>::visit_mut_switch_cases(&mut **self, node, __ast_path)
69133    }
69134
69135    #[inline]
69136    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
69137        <V as VisitMutAstPath>::visit_mut_switch_stmt(&mut **self, node, __ast_path)
69138    }
69139
69140    #[inline]
69141    fn visit_mut_syntax_context(
69142        &mut self,
69143        node: &mut swc_common::SyntaxContext,
69144        __ast_path: &mut AstKindPath,
69145    ) {
69146        <V as VisitMutAstPath>::visit_mut_syntax_context(&mut **self, node, __ast_path)
69147    }
69148
69149    #[inline]
69150    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
69151        <V as VisitMutAstPath>::visit_mut_tagged_tpl(&mut **self, node, __ast_path)
69152    }
69153
69154    #[inline]
69155    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
69156        <V as VisitMutAstPath>::visit_mut_this_expr(&mut **self, node, __ast_path)
69157    }
69158
69159    #[inline]
69160    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
69161        <V as VisitMutAstPath>::visit_mut_throw_stmt(&mut **self, node, __ast_path)
69162    }
69163
69164    #[inline]
69165    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
69166        <V as VisitMutAstPath>::visit_mut_tpl(&mut **self, node, __ast_path)
69167    }
69168
69169    #[inline]
69170    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
69171        <V as VisitMutAstPath>::visit_mut_tpl_element(&mut **self, node, __ast_path)
69172    }
69173
69174    #[inline]
69175    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
69176        <V as VisitMutAstPath>::visit_mut_tpl_elements(&mut **self, node, __ast_path)
69177    }
69178
69179    #[inline]
69180    fn visit_mut_true_plus_minus(
69181        &mut self,
69182        node: &mut TruePlusMinus,
69183        __ast_path: &mut AstKindPath,
69184    ) {
69185        <V as VisitMutAstPath>::visit_mut_true_plus_minus(&mut **self, node, __ast_path)
69186    }
69187
69188    #[inline]
69189    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
69190        <V as VisitMutAstPath>::visit_mut_try_stmt(&mut **self, node, __ast_path)
69191    }
69192
69193    #[inline]
69194    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
69195        <V as VisitMutAstPath>::visit_mut_ts_array_type(&mut **self, node, __ast_path)
69196    }
69197
69198    #[inline]
69199    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
69200        <V as VisitMutAstPath>::visit_mut_ts_as_expr(&mut **self, node, __ast_path)
69201    }
69202
69203    #[inline]
69204    fn visit_mut_ts_call_signature_decl(
69205        &mut self,
69206        node: &mut TsCallSignatureDecl,
69207        __ast_path: &mut AstKindPath,
69208    ) {
69209        <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(&mut **self, node, __ast_path)
69210    }
69211
69212    #[inline]
69213    fn visit_mut_ts_conditional_type(
69214        &mut self,
69215        node: &mut TsConditionalType,
69216        __ast_path: &mut AstKindPath,
69217    ) {
69218        <V as VisitMutAstPath>::visit_mut_ts_conditional_type(&mut **self, node, __ast_path)
69219    }
69220
69221    #[inline]
69222    fn visit_mut_ts_const_assertion(
69223        &mut self,
69224        node: &mut TsConstAssertion,
69225        __ast_path: &mut AstKindPath,
69226    ) {
69227        <V as VisitMutAstPath>::visit_mut_ts_const_assertion(&mut **self, node, __ast_path)
69228    }
69229
69230    #[inline]
69231    fn visit_mut_ts_construct_signature_decl(
69232        &mut self,
69233        node: &mut TsConstructSignatureDecl,
69234        __ast_path: &mut AstKindPath,
69235    ) {
69236        <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(&mut **self, node, __ast_path)
69237    }
69238
69239    #[inline]
69240    fn visit_mut_ts_constructor_type(
69241        &mut self,
69242        node: &mut TsConstructorType,
69243        __ast_path: &mut AstKindPath,
69244    ) {
69245        <V as VisitMutAstPath>::visit_mut_ts_constructor_type(&mut **self, node, __ast_path)
69246    }
69247
69248    #[inline]
69249    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
69250        <V as VisitMutAstPath>::visit_mut_ts_entity_name(&mut **self, node, __ast_path)
69251    }
69252
69253    #[inline]
69254    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
69255        <V as VisitMutAstPath>::visit_mut_ts_enum_decl(&mut **self, node, __ast_path)
69256    }
69257
69258    #[inline]
69259    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
69260        <V as VisitMutAstPath>::visit_mut_ts_enum_member(&mut **self, node, __ast_path)
69261    }
69262
69263    #[inline]
69264    fn visit_mut_ts_enum_member_id(
69265        &mut self,
69266        node: &mut TsEnumMemberId,
69267        __ast_path: &mut AstKindPath,
69268    ) {
69269        <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(&mut **self, node, __ast_path)
69270    }
69271
69272    #[inline]
69273    fn visit_mut_ts_enum_members(
69274        &mut self,
69275        node: &mut Vec<TsEnumMember>,
69276        __ast_path: &mut AstKindPath,
69277    ) {
69278        <V as VisitMutAstPath>::visit_mut_ts_enum_members(&mut **self, node, __ast_path)
69279    }
69280
69281    #[inline]
69282    fn visit_mut_ts_export_assignment(
69283        &mut self,
69284        node: &mut TsExportAssignment,
69285        __ast_path: &mut AstKindPath,
69286    ) {
69287        <V as VisitMutAstPath>::visit_mut_ts_export_assignment(&mut **self, node, __ast_path)
69288    }
69289
69290    #[inline]
69291    fn visit_mut_ts_expr_with_type_args(
69292        &mut self,
69293        node: &mut TsExprWithTypeArgs,
69294        __ast_path: &mut AstKindPath,
69295    ) {
69296        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(&mut **self, node, __ast_path)
69297    }
69298
69299    #[inline]
69300    fn visit_mut_ts_expr_with_type_argss(
69301        &mut self,
69302        node: &mut Vec<TsExprWithTypeArgs>,
69303        __ast_path: &mut AstKindPath,
69304    ) {
69305        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(&mut **self, node, __ast_path)
69306    }
69307
69308    #[inline]
69309    fn visit_mut_ts_external_module_ref(
69310        &mut self,
69311        node: &mut TsExternalModuleRef,
69312        __ast_path: &mut AstKindPath,
69313    ) {
69314        <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(&mut **self, node, __ast_path)
69315    }
69316
69317    #[inline]
69318    fn visit_mut_ts_fn_or_constructor_type(
69319        &mut self,
69320        node: &mut TsFnOrConstructorType,
69321        __ast_path: &mut AstKindPath,
69322    ) {
69323        <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
69324    }
69325
69326    #[inline]
69327    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
69328        <V as VisitMutAstPath>::visit_mut_ts_fn_param(&mut **self, node, __ast_path)
69329    }
69330
69331    #[inline]
69332    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
69333        <V as VisitMutAstPath>::visit_mut_ts_fn_params(&mut **self, node, __ast_path)
69334    }
69335
69336    #[inline]
69337    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
69338        <V as VisitMutAstPath>::visit_mut_ts_fn_type(&mut **self, node, __ast_path)
69339    }
69340
69341    #[inline]
69342    fn visit_mut_ts_getter_signature(
69343        &mut self,
69344        node: &mut TsGetterSignature,
69345        __ast_path: &mut AstKindPath,
69346    ) {
69347        <V as VisitMutAstPath>::visit_mut_ts_getter_signature(&mut **self, node, __ast_path)
69348    }
69349
69350    #[inline]
69351    fn visit_mut_ts_import_equals_decl(
69352        &mut self,
69353        node: &mut TsImportEqualsDecl,
69354        __ast_path: &mut AstKindPath,
69355    ) {
69356        <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(&mut **self, node, __ast_path)
69357    }
69358
69359    #[inline]
69360    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
69361        <V as VisitMutAstPath>::visit_mut_ts_import_type(&mut **self, node, __ast_path)
69362    }
69363
69364    #[inline]
69365    fn visit_mut_ts_index_signature(
69366        &mut self,
69367        node: &mut TsIndexSignature,
69368        __ast_path: &mut AstKindPath,
69369    ) {
69370        <V as VisitMutAstPath>::visit_mut_ts_index_signature(&mut **self, node, __ast_path)
69371    }
69372
69373    #[inline]
69374    fn visit_mut_ts_indexed_access_type(
69375        &mut self,
69376        node: &mut TsIndexedAccessType,
69377        __ast_path: &mut AstKindPath,
69378    ) {
69379        <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(&mut **self, node, __ast_path)
69380    }
69381
69382    #[inline]
69383    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
69384        <V as VisitMutAstPath>::visit_mut_ts_infer_type(&mut **self, node, __ast_path)
69385    }
69386
69387    #[inline]
69388    fn visit_mut_ts_instantiation(
69389        &mut self,
69390        node: &mut TsInstantiation,
69391        __ast_path: &mut AstKindPath,
69392    ) {
69393        <V as VisitMutAstPath>::visit_mut_ts_instantiation(&mut **self, node, __ast_path)
69394    }
69395
69396    #[inline]
69397    fn visit_mut_ts_interface_body(
69398        &mut self,
69399        node: &mut TsInterfaceBody,
69400        __ast_path: &mut AstKindPath,
69401    ) {
69402        <V as VisitMutAstPath>::visit_mut_ts_interface_body(&mut **self, node, __ast_path)
69403    }
69404
69405    #[inline]
69406    fn visit_mut_ts_interface_decl(
69407        &mut self,
69408        node: &mut TsInterfaceDecl,
69409        __ast_path: &mut AstKindPath,
69410    ) {
69411        <V as VisitMutAstPath>::visit_mut_ts_interface_decl(&mut **self, node, __ast_path)
69412    }
69413
69414    #[inline]
69415    fn visit_mut_ts_intersection_type(
69416        &mut self,
69417        node: &mut TsIntersectionType,
69418        __ast_path: &mut AstKindPath,
69419    ) {
69420        <V as VisitMutAstPath>::visit_mut_ts_intersection_type(&mut **self, node, __ast_path)
69421    }
69422
69423    #[inline]
69424    fn visit_mut_ts_keyword_type(
69425        &mut self,
69426        node: &mut TsKeywordType,
69427        __ast_path: &mut AstKindPath,
69428    ) {
69429        <V as VisitMutAstPath>::visit_mut_ts_keyword_type(&mut **self, node, __ast_path)
69430    }
69431
69432    #[inline]
69433    fn visit_mut_ts_keyword_type_kind(
69434        &mut self,
69435        node: &mut TsKeywordTypeKind,
69436        __ast_path: &mut AstKindPath,
69437    ) {
69438        <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(&mut **self, node, __ast_path)
69439    }
69440
69441    #[inline]
69442    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
69443        <V as VisitMutAstPath>::visit_mut_ts_lit(&mut **self, node, __ast_path)
69444    }
69445
69446    #[inline]
69447    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
69448        <V as VisitMutAstPath>::visit_mut_ts_lit_type(&mut **self, node, __ast_path)
69449    }
69450
69451    #[inline]
69452    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
69453        <V as VisitMutAstPath>::visit_mut_ts_mapped_type(&mut **self, node, __ast_path)
69454    }
69455
69456    #[inline]
69457    fn visit_mut_ts_method_signature(
69458        &mut self,
69459        node: &mut TsMethodSignature,
69460        __ast_path: &mut AstKindPath,
69461    ) {
69462        <V as VisitMutAstPath>::visit_mut_ts_method_signature(&mut **self, node, __ast_path)
69463    }
69464
69465    #[inline]
69466    fn visit_mut_ts_module_block(
69467        &mut self,
69468        node: &mut TsModuleBlock,
69469        __ast_path: &mut AstKindPath,
69470    ) {
69471        <V as VisitMutAstPath>::visit_mut_ts_module_block(&mut **self, node, __ast_path)
69472    }
69473
69474    #[inline]
69475    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
69476        <V as VisitMutAstPath>::visit_mut_ts_module_decl(&mut **self, node, __ast_path)
69477    }
69478
69479    #[inline]
69480    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
69481        <V as VisitMutAstPath>::visit_mut_ts_module_name(&mut **self, node, __ast_path)
69482    }
69483
69484    #[inline]
69485    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
69486        <V as VisitMutAstPath>::visit_mut_ts_module_ref(&mut **self, node, __ast_path)
69487    }
69488
69489    #[inline]
69490    fn visit_mut_ts_namespace_body(
69491        &mut self,
69492        node: &mut TsNamespaceBody,
69493        __ast_path: &mut AstKindPath,
69494    ) {
69495        <V as VisitMutAstPath>::visit_mut_ts_namespace_body(&mut **self, node, __ast_path)
69496    }
69497
69498    #[inline]
69499    fn visit_mut_ts_namespace_decl(
69500        &mut self,
69501        node: &mut TsNamespaceDecl,
69502        __ast_path: &mut AstKindPath,
69503    ) {
69504        <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(&mut **self, node, __ast_path)
69505    }
69506
69507    #[inline]
69508    fn visit_mut_ts_namespace_export_decl(
69509        &mut self,
69510        node: &mut TsNamespaceExportDecl,
69511        __ast_path: &mut AstKindPath,
69512    ) {
69513        <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(&mut **self, node, __ast_path)
69514    }
69515
69516    #[inline]
69517    fn visit_mut_ts_non_null_expr(
69518        &mut self,
69519        node: &mut TsNonNullExpr,
69520        __ast_path: &mut AstKindPath,
69521    ) {
69522        <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(&mut **self, node, __ast_path)
69523    }
69524
69525    #[inline]
69526    fn visit_mut_ts_optional_type(
69527        &mut self,
69528        node: &mut TsOptionalType,
69529        __ast_path: &mut AstKindPath,
69530    ) {
69531        <V as VisitMutAstPath>::visit_mut_ts_optional_type(&mut **self, node, __ast_path)
69532    }
69533
69534    #[inline]
69535    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
69536        <V as VisitMutAstPath>::visit_mut_ts_param_prop(&mut **self, node, __ast_path)
69537    }
69538
69539    #[inline]
69540    fn visit_mut_ts_param_prop_param(
69541        &mut self,
69542        node: &mut TsParamPropParam,
69543        __ast_path: &mut AstKindPath,
69544    ) {
69545        <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(&mut **self, node, __ast_path)
69546    }
69547
69548    #[inline]
69549    fn visit_mut_ts_parenthesized_type(
69550        &mut self,
69551        node: &mut TsParenthesizedType,
69552        __ast_path: &mut AstKindPath,
69553    ) {
69554        <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(&mut **self, node, __ast_path)
69555    }
69556
69557    #[inline]
69558    fn visit_mut_ts_property_signature(
69559        &mut self,
69560        node: &mut TsPropertySignature,
69561        __ast_path: &mut AstKindPath,
69562    ) {
69563        <V as VisitMutAstPath>::visit_mut_ts_property_signature(&mut **self, node, __ast_path)
69564    }
69565
69566    #[inline]
69567    fn visit_mut_ts_qualified_name(
69568        &mut self,
69569        node: &mut TsQualifiedName,
69570        __ast_path: &mut AstKindPath,
69571    ) {
69572        <V as VisitMutAstPath>::visit_mut_ts_qualified_name(&mut **self, node, __ast_path)
69573    }
69574
69575    #[inline]
69576    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
69577        <V as VisitMutAstPath>::visit_mut_ts_rest_type(&mut **self, node, __ast_path)
69578    }
69579
69580    #[inline]
69581    fn visit_mut_ts_satisfies_expr(
69582        &mut self,
69583        node: &mut TsSatisfiesExpr,
69584        __ast_path: &mut AstKindPath,
69585    ) {
69586        <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(&mut **self, node, __ast_path)
69587    }
69588
69589    #[inline]
69590    fn visit_mut_ts_setter_signature(
69591        &mut self,
69592        node: &mut TsSetterSignature,
69593        __ast_path: &mut AstKindPath,
69594    ) {
69595        <V as VisitMutAstPath>::visit_mut_ts_setter_signature(&mut **self, node, __ast_path)
69596    }
69597
69598    #[inline]
69599    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
69600        <V as VisitMutAstPath>::visit_mut_ts_this_type(&mut **self, node, __ast_path)
69601    }
69602
69603    #[inline]
69604    fn visit_mut_ts_this_type_or_ident(
69605        &mut self,
69606        node: &mut TsThisTypeOrIdent,
69607        __ast_path: &mut AstKindPath,
69608    ) {
69609        <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(&mut **self, node, __ast_path)
69610    }
69611
69612    #[inline]
69613    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
69614        <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(&mut **self, node, __ast_path)
69615    }
69616
69617    #[inline]
69618    fn visit_mut_ts_tuple_element(
69619        &mut self,
69620        node: &mut TsTupleElement,
69621        __ast_path: &mut AstKindPath,
69622    ) {
69623        <V as VisitMutAstPath>::visit_mut_ts_tuple_element(&mut **self, node, __ast_path)
69624    }
69625
69626    #[inline]
69627    fn visit_mut_ts_tuple_elements(
69628        &mut self,
69629        node: &mut Vec<TsTupleElement>,
69630        __ast_path: &mut AstKindPath,
69631    ) {
69632        <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(&mut **self, node, __ast_path)
69633    }
69634
69635    #[inline]
69636    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
69637        <V as VisitMutAstPath>::visit_mut_ts_tuple_type(&mut **self, node, __ast_path)
69638    }
69639
69640    #[inline]
69641    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
69642        <V as VisitMutAstPath>::visit_mut_ts_type(&mut **self, node, __ast_path)
69643    }
69644
69645    #[inline]
69646    fn visit_mut_ts_type_alias_decl(
69647        &mut self,
69648        node: &mut TsTypeAliasDecl,
69649        __ast_path: &mut AstKindPath,
69650    ) {
69651        <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(&mut **self, node, __ast_path)
69652    }
69653
69654    #[inline]
69655    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
69656        <V as VisitMutAstPath>::visit_mut_ts_type_ann(&mut **self, node, __ast_path)
69657    }
69658
69659    #[inline]
69660    fn visit_mut_ts_type_assertion(
69661        &mut self,
69662        node: &mut TsTypeAssertion,
69663        __ast_path: &mut AstKindPath,
69664    ) {
69665        <V as VisitMutAstPath>::visit_mut_ts_type_assertion(&mut **self, node, __ast_path)
69666    }
69667
69668    #[inline]
69669    fn visit_mut_ts_type_element(
69670        &mut self,
69671        node: &mut TsTypeElement,
69672        __ast_path: &mut AstKindPath,
69673    ) {
69674        <V as VisitMutAstPath>::visit_mut_ts_type_element(&mut **self, node, __ast_path)
69675    }
69676
69677    #[inline]
69678    fn visit_mut_ts_type_elements(
69679        &mut self,
69680        node: &mut Vec<TsTypeElement>,
69681        __ast_path: &mut AstKindPath,
69682    ) {
69683        <V as VisitMutAstPath>::visit_mut_ts_type_elements(&mut **self, node, __ast_path)
69684    }
69685
69686    #[inline]
69687    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
69688        <V as VisitMutAstPath>::visit_mut_ts_type_lit(&mut **self, node, __ast_path)
69689    }
69690
69691    #[inline]
69692    fn visit_mut_ts_type_operator(
69693        &mut self,
69694        node: &mut TsTypeOperator,
69695        __ast_path: &mut AstKindPath,
69696    ) {
69697        <V as VisitMutAstPath>::visit_mut_ts_type_operator(&mut **self, node, __ast_path)
69698    }
69699
69700    #[inline]
69701    fn visit_mut_ts_type_operator_op(
69702        &mut self,
69703        node: &mut TsTypeOperatorOp,
69704        __ast_path: &mut AstKindPath,
69705    ) {
69706        <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(&mut **self, node, __ast_path)
69707    }
69708
69709    #[inline]
69710    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
69711        <V as VisitMutAstPath>::visit_mut_ts_type_param(&mut **self, node, __ast_path)
69712    }
69713
69714    #[inline]
69715    fn visit_mut_ts_type_param_decl(
69716        &mut self,
69717        node: &mut TsTypeParamDecl,
69718        __ast_path: &mut AstKindPath,
69719    ) {
69720        <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(&mut **self, node, __ast_path)
69721    }
69722
69723    #[inline]
69724    fn visit_mut_ts_type_param_instantiation(
69725        &mut self,
69726        node: &mut TsTypeParamInstantiation,
69727        __ast_path: &mut AstKindPath,
69728    ) {
69729        <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(&mut **self, node, __ast_path)
69730    }
69731
69732    #[inline]
69733    fn visit_mut_ts_type_params(
69734        &mut self,
69735        node: &mut Vec<TsTypeParam>,
69736        __ast_path: &mut AstKindPath,
69737    ) {
69738        <V as VisitMutAstPath>::visit_mut_ts_type_params(&mut **self, node, __ast_path)
69739    }
69740
69741    #[inline]
69742    fn visit_mut_ts_type_predicate(
69743        &mut self,
69744        node: &mut TsTypePredicate,
69745        __ast_path: &mut AstKindPath,
69746    ) {
69747        <V as VisitMutAstPath>::visit_mut_ts_type_predicate(&mut **self, node, __ast_path)
69748    }
69749
69750    #[inline]
69751    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
69752        <V as VisitMutAstPath>::visit_mut_ts_type_query(&mut **self, node, __ast_path)
69753    }
69754
69755    #[inline]
69756    fn visit_mut_ts_type_query_expr(
69757        &mut self,
69758        node: &mut TsTypeQueryExpr,
69759        __ast_path: &mut AstKindPath,
69760    ) {
69761        <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(&mut **self, node, __ast_path)
69762    }
69763
69764    #[inline]
69765    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
69766        <V as VisitMutAstPath>::visit_mut_ts_type_ref(&mut **self, node, __ast_path)
69767    }
69768
69769    #[inline]
69770    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
69771        <V as VisitMutAstPath>::visit_mut_ts_types(&mut **self, node, __ast_path)
69772    }
69773
69774    #[inline]
69775    fn visit_mut_ts_union_or_intersection_type(
69776        &mut self,
69777        node: &mut TsUnionOrIntersectionType,
69778        __ast_path: &mut AstKindPath,
69779    ) {
69780        <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(
69781            &mut **self,
69782            node,
69783            __ast_path,
69784        )
69785    }
69786
69787    #[inline]
69788    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
69789        <V as VisitMutAstPath>::visit_mut_ts_union_type(&mut **self, node, __ast_path)
69790    }
69791
69792    #[inline]
69793    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
69794        <V as VisitMutAstPath>::visit_mut_unary_expr(&mut **self, node, __ast_path)
69795    }
69796
69797    #[inline]
69798    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
69799        <V as VisitMutAstPath>::visit_mut_unary_op(&mut **self, node, __ast_path)
69800    }
69801
69802    #[inline]
69803    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
69804        <V as VisitMutAstPath>::visit_mut_update_expr(&mut **self, node, __ast_path)
69805    }
69806
69807    #[inline]
69808    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
69809        <V as VisitMutAstPath>::visit_mut_update_op(&mut **self, node, __ast_path)
69810    }
69811
69812    #[inline]
69813    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
69814        <V as VisitMutAstPath>::visit_mut_using_decl(&mut **self, node, __ast_path)
69815    }
69816
69817    #[inline]
69818    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
69819        <V as VisitMutAstPath>::visit_mut_var_decl(&mut **self, node, __ast_path)
69820    }
69821
69822    #[inline]
69823    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
69824        <V as VisitMutAstPath>::visit_mut_var_decl_kind(&mut **self, node, __ast_path)
69825    }
69826
69827    #[inline]
69828    fn visit_mut_var_decl_or_expr(
69829        &mut self,
69830        node: &mut VarDeclOrExpr,
69831        __ast_path: &mut AstKindPath,
69832    ) {
69833        <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(&mut **self, node, __ast_path)
69834    }
69835
69836    #[inline]
69837    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
69838        <V as VisitMutAstPath>::visit_mut_var_declarator(&mut **self, node, __ast_path)
69839    }
69840
69841    #[inline]
69842    fn visit_mut_var_declarators(
69843        &mut self,
69844        node: &mut Vec<VarDeclarator>,
69845        __ast_path: &mut AstKindPath,
69846    ) {
69847        <V as VisitMutAstPath>::visit_mut_var_declarators(&mut **self, node, __ast_path)
69848    }
69849
69850    #[inline]
69851    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
69852        <V as VisitMutAstPath>::visit_mut_while_stmt(&mut **self, node, __ast_path)
69853    }
69854
69855    #[inline]
69856    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
69857        <V as VisitMutAstPath>::visit_mut_with_stmt(&mut **self, node, __ast_path)
69858    }
69859
69860    #[inline]
69861    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
69862        <V as VisitMutAstPath>::visit_mut_yield_expr(&mut **self, node, __ast_path)
69863    }
69864}
69865#[cfg(any(docsrs, feature = "path"))]
69866#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
69867impl<V> VisitMutAstPath for Box<V>
69868where
69869    V: ?Sized + VisitMutAstPath,
69870{
69871    #[inline]
69872    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
69873        <V as VisitMutAstPath>::visit_mut_accessibility(&mut **self, node, __ast_path)
69874    }
69875
69876    #[inline]
69877    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
69878        <V as VisitMutAstPath>::visit_mut_array_lit(&mut **self, node, __ast_path)
69879    }
69880
69881    #[inline]
69882    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
69883        <V as VisitMutAstPath>::visit_mut_array_pat(&mut **self, node, __ast_path)
69884    }
69885
69886    #[inline]
69887    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
69888        <V as VisitMutAstPath>::visit_mut_arrow_expr(&mut **self, node, __ast_path)
69889    }
69890
69891    #[inline]
69892    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
69893        <V as VisitMutAstPath>::visit_mut_assign_expr(&mut **self, node, __ast_path)
69894    }
69895
69896    #[inline]
69897    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
69898        <V as VisitMutAstPath>::visit_mut_assign_op(&mut **self, node, __ast_path)
69899    }
69900
69901    #[inline]
69902    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
69903        <V as VisitMutAstPath>::visit_mut_assign_pat(&mut **self, node, __ast_path)
69904    }
69905
69906    #[inline]
69907    fn visit_mut_assign_pat_prop(
69908        &mut self,
69909        node: &mut AssignPatProp,
69910        __ast_path: &mut AstKindPath,
69911    ) {
69912        <V as VisitMutAstPath>::visit_mut_assign_pat_prop(&mut **self, node, __ast_path)
69913    }
69914
69915    #[inline]
69916    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
69917        <V as VisitMutAstPath>::visit_mut_assign_prop(&mut **self, node, __ast_path)
69918    }
69919
69920    #[inline]
69921    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
69922        <V as VisitMutAstPath>::visit_mut_assign_target(&mut **self, node, __ast_path)
69923    }
69924
69925    #[inline]
69926    fn visit_mut_assign_target_pat(
69927        &mut self,
69928        node: &mut AssignTargetPat,
69929        __ast_path: &mut AstKindPath,
69930    ) {
69931        <V as VisitMutAstPath>::visit_mut_assign_target_pat(&mut **self, node, __ast_path)
69932    }
69933
69934    #[inline]
69935    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
69936        <V as VisitMutAstPath>::visit_mut_atom(&mut **self, node, __ast_path)
69937    }
69938
69939    #[inline]
69940    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
69941        <V as VisitMutAstPath>::visit_mut_auto_accessor(&mut **self, node, __ast_path)
69942    }
69943
69944    #[inline]
69945    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
69946        <V as VisitMutAstPath>::visit_mut_await_expr(&mut **self, node, __ast_path)
69947    }
69948
69949    #[inline]
69950    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
69951        <V as VisitMutAstPath>::visit_mut_big_int(&mut **self, node, __ast_path)
69952    }
69953
69954    #[inline]
69955    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
69956        <V as VisitMutAstPath>::visit_mut_big_int_value(&mut **self, node, __ast_path)
69957    }
69958
69959    #[inline]
69960    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
69961        <V as VisitMutAstPath>::visit_mut_bin_expr(&mut **self, node, __ast_path)
69962    }
69963
69964    #[inline]
69965    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
69966        <V as VisitMutAstPath>::visit_mut_binary_op(&mut **self, node, __ast_path)
69967    }
69968
69969    #[inline]
69970    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
69971        <V as VisitMutAstPath>::visit_mut_binding_ident(&mut **self, node, __ast_path)
69972    }
69973
69974    #[inline]
69975    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
69976        <V as VisitMutAstPath>::visit_mut_block_stmt(&mut **self, node, __ast_path)
69977    }
69978
69979    #[inline]
69980    fn visit_mut_block_stmt_or_expr(
69981        &mut self,
69982        node: &mut BlockStmtOrExpr,
69983        __ast_path: &mut AstKindPath,
69984    ) {
69985        <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(&mut **self, node, __ast_path)
69986    }
69987
69988    #[inline]
69989    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
69990        <V as VisitMutAstPath>::visit_mut_bool(&mut **self, node, __ast_path)
69991    }
69992
69993    #[inline]
69994    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
69995        <V as VisitMutAstPath>::visit_mut_break_stmt(&mut **self, node, __ast_path)
69996    }
69997
69998    #[inline]
69999    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
70000        <V as VisitMutAstPath>::visit_mut_call_expr(&mut **self, node, __ast_path)
70001    }
70002
70003    #[inline]
70004    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
70005        <V as VisitMutAstPath>::visit_mut_callee(&mut **self, node, __ast_path)
70006    }
70007
70008    #[inline]
70009    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
70010        <V as VisitMutAstPath>::visit_mut_catch_clause(&mut **self, node, __ast_path)
70011    }
70012
70013    #[inline]
70014    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
70015        <V as VisitMutAstPath>::visit_mut_class(&mut **self, node, __ast_path)
70016    }
70017
70018    #[inline]
70019    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
70020        <V as VisitMutAstPath>::visit_mut_class_decl(&mut **self, node, __ast_path)
70021    }
70022
70023    #[inline]
70024    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
70025        <V as VisitMutAstPath>::visit_mut_class_expr(&mut **self, node, __ast_path)
70026    }
70027
70028    #[inline]
70029    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
70030        <V as VisitMutAstPath>::visit_mut_class_member(&mut **self, node, __ast_path)
70031    }
70032
70033    #[inline]
70034    fn visit_mut_class_members(
70035        &mut self,
70036        node: &mut Vec<ClassMember>,
70037        __ast_path: &mut AstKindPath,
70038    ) {
70039        <V as VisitMutAstPath>::visit_mut_class_members(&mut **self, node, __ast_path)
70040    }
70041
70042    #[inline]
70043    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
70044        <V as VisitMutAstPath>::visit_mut_class_method(&mut **self, node, __ast_path)
70045    }
70046
70047    #[inline]
70048    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
70049        <V as VisitMutAstPath>::visit_mut_class_prop(&mut **self, node, __ast_path)
70050    }
70051
70052    #[inline]
70053    fn visit_mut_computed_prop_name(
70054        &mut self,
70055        node: &mut ComputedPropName,
70056        __ast_path: &mut AstKindPath,
70057    ) {
70058        <V as VisitMutAstPath>::visit_mut_computed_prop_name(&mut **self, node, __ast_path)
70059    }
70060
70061    #[inline]
70062    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
70063        <V as VisitMutAstPath>::visit_mut_cond_expr(&mut **self, node, __ast_path)
70064    }
70065
70066    #[inline]
70067    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
70068        <V as VisitMutAstPath>::visit_mut_constructor(&mut **self, node, __ast_path)
70069    }
70070
70071    #[inline]
70072    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
70073        <V as VisitMutAstPath>::visit_mut_continue_stmt(&mut **self, node, __ast_path)
70074    }
70075
70076    #[inline]
70077    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
70078        <V as VisitMutAstPath>::visit_mut_debugger_stmt(&mut **self, node, __ast_path)
70079    }
70080
70081    #[inline]
70082    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
70083        <V as VisitMutAstPath>::visit_mut_decl(&mut **self, node, __ast_path)
70084    }
70085
70086    #[inline]
70087    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
70088        <V as VisitMutAstPath>::visit_mut_decorator(&mut **self, node, __ast_path)
70089    }
70090
70091    #[inline]
70092    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
70093        <V as VisitMutAstPath>::visit_mut_decorators(&mut **self, node, __ast_path)
70094    }
70095
70096    #[inline]
70097    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
70098        <V as VisitMutAstPath>::visit_mut_default_decl(&mut **self, node, __ast_path)
70099    }
70100
70101    #[inline]
70102    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
70103        <V as VisitMutAstPath>::visit_mut_do_while_stmt(&mut **self, node, __ast_path)
70104    }
70105
70106    #[inline]
70107    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
70108        <V as VisitMutAstPath>::visit_mut_empty_stmt(&mut **self, node, __ast_path)
70109    }
70110
70111    #[inline]
70112    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
70113        <V as VisitMutAstPath>::visit_mut_export_all(&mut **self, node, __ast_path)
70114    }
70115
70116    #[inline]
70117    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
70118        <V as VisitMutAstPath>::visit_mut_export_decl(&mut **self, node, __ast_path)
70119    }
70120
70121    #[inline]
70122    fn visit_mut_export_default_decl(
70123        &mut self,
70124        node: &mut ExportDefaultDecl,
70125        __ast_path: &mut AstKindPath,
70126    ) {
70127        <V as VisitMutAstPath>::visit_mut_export_default_decl(&mut **self, node, __ast_path)
70128    }
70129
70130    #[inline]
70131    fn visit_mut_export_default_expr(
70132        &mut self,
70133        node: &mut ExportDefaultExpr,
70134        __ast_path: &mut AstKindPath,
70135    ) {
70136        <V as VisitMutAstPath>::visit_mut_export_default_expr(&mut **self, node, __ast_path)
70137    }
70138
70139    #[inline]
70140    fn visit_mut_export_default_specifier(
70141        &mut self,
70142        node: &mut ExportDefaultSpecifier,
70143        __ast_path: &mut AstKindPath,
70144    ) {
70145        <V as VisitMutAstPath>::visit_mut_export_default_specifier(&mut **self, node, __ast_path)
70146    }
70147
70148    #[inline]
70149    fn visit_mut_export_named_specifier(
70150        &mut self,
70151        node: &mut ExportNamedSpecifier,
70152        __ast_path: &mut AstKindPath,
70153    ) {
70154        <V as VisitMutAstPath>::visit_mut_export_named_specifier(&mut **self, node, __ast_path)
70155    }
70156
70157    #[inline]
70158    fn visit_mut_export_namespace_specifier(
70159        &mut self,
70160        node: &mut ExportNamespaceSpecifier,
70161        __ast_path: &mut AstKindPath,
70162    ) {
70163        <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(&mut **self, node, __ast_path)
70164    }
70165
70166    #[inline]
70167    fn visit_mut_export_specifier(
70168        &mut self,
70169        node: &mut ExportSpecifier,
70170        __ast_path: &mut AstKindPath,
70171    ) {
70172        <V as VisitMutAstPath>::visit_mut_export_specifier(&mut **self, node, __ast_path)
70173    }
70174
70175    #[inline]
70176    fn visit_mut_export_specifiers(
70177        &mut self,
70178        node: &mut Vec<ExportSpecifier>,
70179        __ast_path: &mut AstKindPath,
70180    ) {
70181        <V as VisitMutAstPath>::visit_mut_export_specifiers(&mut **self, node, __ast_path)
70182    }
70183
70184    #[inline]
70185    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
70186        <V as VisitMutAstPath>::visit_mut_expr(&mut **self, node, __ast_path)
70187    }
70188
70189    #[inline]
70190    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
70191        <V as VisitMutAstPath>::visit_mut_expr_or_spread(&mut **self, node, __ast_path)
70192    }
70193
70194    #[inline]
70195    fn visit_mut_expr_or_spreads(
70196        &mut self,
70197        node: &mut Vec<ExprOrSpread>,
70198        __ast_path: &mut AstKindPath,
70199    ) {
70200        <V as VisitMutAstPath>::visit_mut_expr_or_spreads(&mut **self, node, __ast_path)
70201    }
70202
70203    #[inline]
70204    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
70205        <V as VisitMutAstPath>::visit_mut_expr_stmt(&mut **self, node, __ast_path)
70206    }
70207
70208    #[inline]
70209    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
70210        <V as VisitMutAstPath>::visit_mut_exprs(&mut **self, node, __ast_path)
70211    }
70212
70213    #[inline]
70214    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
70215        <V as VisitMutAstPath>::visit_mut_fn_decl(&mut **self, node, __ast_path)
70216    }
70217
70218    #[inline]
70219    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
70220        <V as VisitMutAstPath>::visit_mut_fn_expr(&mut **self, node, __ast_path)
70221    }
70222
70223    #[inline]
70224    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
70225        <V as VisitMutAstPath>::visit_mut_for_head(&mut **self, node, __ast_path)
70226    }
70227
70228    #[inline]
70229    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
70230        <V as VisitMutAstPath>::visit_mut_for_in_stmt(&mut **self, node, __ast_path)
70231    }
70232
70233    #[inline]
70234    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
70235        <V as VisitMutAstPath>::visit_mut_for_of_stmt(&mut **self, node, __ast_path)
70236    }
70237
70238    #[inline]
70239    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
70240        <V as VisitMutAstPath>::visit_mut_for_stmt(&mut **self, node, __ast_path)
70241    }
70242
70243    #[inline]
70244    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
70245        <V as VisitMutAstPath>::visit_mut_function(&mut **self, node, __ast_path)
70246    }
70247
70248    #[inline]
70249    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
70250        <V as VisitMutAstPath>::visit_mut_getter_prop(&mut **self, node, __ast_path)
70251    }
70252
70253    #[inline]
70254    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
70255        <V as VisitMutAstPath>::visit_mut_ident(&mut **self, node, __ast_path)
70256    }
70257
70258    #[inline]
70259    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
70260        <V as VisitMutAstPath>::visit_mut_ident_name(&mut **self, node, __ast_path)
70261    }
70262
70263    #[inline]
70264    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
70265        <V as VisitMutAstPath>::visit_mut_if_stmt(&mut **self, node, __ast_path)
70266    }
70267
70268    #[inline]
70269    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
70270        <V as VisitMutAstPath>::visit_mut_import(&mut **self, node, __ast_path)
70271    }
70272
70273    #[inline]
70274    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
70275        <V as VisitMutAstPath>::visit_mut_import_decl(&mut **self, node, __ast_path)
70276    }
70277
70278    #[inline]
70279    fn visit_mut_import_default_specifier(
70280        &mut self,
70281        node: &mut ImportDefaultSpecifier,
70282        __ast_path: &mut AstKindPath,
70283    ) {
70284        <V as VisitMutAstPath>::visit_mut_import_default_specifier(&mut **self, node, __ast_path)
70285    }
70286
70287    #[inline]
70288    fn visit_mut_import_named_specifier(
70289        &mut self,
70290        node: &mut ImportNamedSpecifier,
70291        __ast_path: &mut AstKindPath,
70292    ) {
70293        <V as VisitMutAstPath>::visit_mut_import_named_specifier(&mut **self, node, __ast_path)
70294    }
70295
70296    #[inline]
70297    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
70298        <V as VisitMutAstPath>::visit_mut_import_phase(&mut **self, node, __ast_path)
70299    }
70300
70301    #[inline]
70302    fn visit_mut_import_specifier(
70303        &mut self,
70304        node: &mut ImportSpecifier,
70305        __ast_path: &mut AstKindPath,
70306    ) {
70307        <V as VisitMutAstPath>::visit_mut_import_specifier(&mut **self, node, __ast_path)
70308    }
70309
70310    #[inline]
70311    fn visit_mut_import_specifiers(
70312        &mut self,
70313        node: &mut Vec<ImportSpecifier>,
70314        __ast_path: &mut AstKindPath,
70315    ) {
70316        <V as VisitMutAstPath>::visit_mut_import_specifiers(&mut **self, node, __ast_path)
70317    }
70318
70319    #[inline]
70320    fn visit_mut_import_star_as_specifier(
70321        &mut self,
70322        node: &mut ImportStarAsSpecifier,
70323        __ast_path: &mut AstKindPath,
70324    ) {
70325        <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(&mut **self, node, __ast_path)
70326    }
70327
70328    #[inline]
70329    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
70330        <V as VisitMutAstPath>::visit_mut_import_with(&mut **self, node, __ast_path)
70331    }
70332
70333    #[inline]
70334    fn visit_mut_import_with_item(
70335        &mut self,
70336        node: &mut ImportWithItem,
70337        __ast_path: &mut AstKindPath,
70338    ) {
70339        <V as VisitMutAstPath>::visit_mut_import_with_item(&mut **self, node, __ast_path)
70340    }
70341
70342    #[inline]
70343    fn visit_mut_import_with_items(
70344        &mut self,
70345        node: &mut Vec<ImportWithItem>,
70346        __ast_path: &mut AstKindPath,
70347    ) {
70348        <V as VisitMutAstPath>::visit_mut_import_with_items(&mut **self, node, __ast_path)
70349    }
70350
70351    #[inline]
70352    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
70353        <V as VisitMutAstPath>::visit_mut_invalid(&mut **self, node, __ast_path)
70354    }
70355
70356    #[inline]
70357    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
70358        <V as VisitMutAstPath>::visit_mut_jsx_attr(&mut **self, node, __ast_path)
70359    }
70360
70361    #[inline]
70362    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
70363        <V as VisitMutAstPath>::visit_mut_jsx_attr_name(&mut **self, node, __ast_path)
70364    }
70365
70366    #[inline]
70367    fn visit_mut_jsx_attr_or_spread(
70368        &mut self,
70369        node: &mut JSXAttrOrSpread,
70370        __ast_path: &mut AstKindPath,
70371    ) {
70372        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(&mut **self, node, __ast_path)
70373    }
70374
70375    #[inline]
70376    fn visit_mut_jsx_attr_or_spreads(
70377        &mut self,
70378        node: &mut Vec<JSXAttrOrSpread>,
70379        __ast_path: &mut AstKindPath,
70380    ) {
70381        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(&mut **self, node, __ast_path)
70382    }
70383
70384    #[inline]
70385    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
70386        <V as VisitMutAstPath>::visit_mut_jsx_attr_value(&mut **self, node, __ast_path)
70387    }
70388
70389    #[inline]
70390    fn visit_mut_jsx_closing_element(
70391        &mut self,
70392        node: &mut JSXClosingElement,
70393        __ast_path: &mut AstKindPath,
70394    ) {
70395        <V as VisitMutAstPath>::visit_mut_jsx_closing_element(&mut **self, node, __ast_path)
70396    }
70397
70398    #[inline]
70399    fn visit_mut_jsx_closing_fragment(
70400        &mut self,
70401        node: &mut JSXClosingFragment,
70402        __ast_path: &mut AstKindPath,
70403    ) {
70404        <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(&mut **self, node, __ast_path)
70405    }
70406
70407    #[inline]
70408    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
70409        <V as VisitMutAstPath>::visit_mut_jsx_element(&mut **self, node, __ast_path)
70410    }
70411
70412    #[inline]
70413    fn visit_mut_jsx_element_child(
70414        &mut self,
70415        node: &mut JSXElementChild,
70416        __ast_path: &mut AstKindPath,
70417    ) {
70418        <V as VisitMutAstPath>::visit_mut_jsx_element_child(&mut **self, node, __ast_path)
70419    }
70420
70421    #[inline]
70422    fn visit_mut_jsx_element_childs(
70423        &mut self,
70424        node: &mut Vec<JSXElementChild>,
70425        __ast_path: &mut AstKindPath,
70426    ) {
70427        <V as VisitMutAstPath>::visit_mut_jsx_element_childs(&mut **self, node, __ast_path)
70428    }
70429
70430    #[inline]
70431    fn visit_mut_jsx_element_name(
70432        &mut self,
70433        node: &mut JSXElementName,
70434        __ast_path: &mut AstKindPath,
70435    ) {
70436        <V as VisitMutAstPath>::visit_mut_jsx_element_name(&mut **self, node, __ast_path)
70437    }
70438
70439    #[inline]
70440    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
70441        <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(&mut **self, node, __ast_path)
70442    }
70443
70444    #[inline]
70445    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
70446        <V as VisitMutAstPath>::visit_mut_jsx_expr(&mut **self, node, __ast_path)
70447    }
70448
70449    #[inline]
70450    fn visit_mut_jsx_expr_container(
70451        &mut self,
70452        node: &mut JSXExprContainer,
70453        __ast_path: &mut AstKindPath,
70454    ) {
70455        <V as VisitMutAstPath>::visit_mut_jsx_expr_container(&mut **self, node, __ast_path)
70456    }
70457
70458    #[inline]
70459    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
70460        <V as VisitMutAstPath>::visit_mut_jsx_fragment(&mut **self, node, __ast_path)
70461    }
70462
70463    #[inline]
70464    fn visit_mut_jsx_member_expr(
70465        &mut self,
70466        node: &mut JSXMemberExpr,
70467        __ast_path: &mut AstKindPath,
70468    ) {
70469        <V as VisitMutAstPath>::visit_mut_jsx_member_expr(&mut **self, node, __ast_path)
70470    }
70471
70472    #[inline]
70473    fn visit_mut_jsx_namespaced_name(
70474        &mut self,
70475        node: &mut JSXNamespacedName,
70476        __ast_path: &mut AstKindPath,
70477    ) {
70478        <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(&mut **self, node, __ast_path)
70479    }
70480
70481    #[inline]
70482    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
70483        <V as VisitMutAstPath>::visit_mut_jsx_object(&mut **self, node, __ast_path)
70484    }
70485
70486    #[inline]
70487    fn visit_mut_jsx_opening_element(
70488        &mut self,
70489        node: &mut JSXOpeningElement,
70490        __ast_path: &mut AstKindPath,
70491    ) {
70492        <V as VisitMutAstPath>::visit_mut_jsx_opening_element(&mut **self, node, __ast_path)
70493    }
70494
70495    #[inline]
70496    fn visit_mut_jsx_opening_fragment(
70497        &mut self,
70498        node: &mut JSXOpeningFragment,
70499        __ast_path: &mut AstKindPath,
70500    ) {
70501        <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(&mut **self, node, __ast_path)
70502    }
70503
70504    #[inline]
70505    fn visit_mut_jsx_spread_child(
70506        &mut self,
70507        node: &mut JSXSpreadChild,
70508        __ast_path: &mut AstKindPath,
70509    ) {
70510        <V as VisitMutAstPath>::visit_mut_jsx_spread_child(&mut **self, node, __ast_path)
70511    }
70512
70513    #[inline]
70514    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
70515        <V as VisitMutAstPath>::visit_mut_jsx_text(&mut **self, node, __ast_path)
70516    }
70517
70518    #[inline]
70519    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
70520        <V as VisitMutAstPath>::visit_mut_key(&mut **self, node, __ast_path)
70521    }
70522
70523    #[inline]
70524    fn visit_mut_key_value_pat_prop(
70525        &mut self,
70526        node: &mut KeyValuePatProp,
70527        __ast_path: &mut AstKindPath,
70528    ) {
70529        <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(&mut **self, node, __ast_path)
70530    }
70531
70532    #[inline]
70533    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
70534        <V as VisitMutAstPath>::visit_mut_key_value_prop(&mut **self, node, __ast_path)
70535    }
70536
70537    #[inline]
70538    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
70539        <V as VisitMutAstPath>::visit_mut_labeled_stmt(&mut **self, node, __ast_path)
70540    }
70541
70542    #[inline]
70543    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
70544        <V as VisitMutAstPath>::visit_mut_lit(&mut **self, node, __ast_path)
70545    }
70546
70547    #[inline]
70548    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
70549        <V as VisitMutAstPath>::visit_mut_member_expr(&mut **self, node, __ast_path)
70550    }
70551
70552    #[inline]
70553    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
70554        <V as VisitMutAstPath>::visit_mut_member_prop(&mut **self, node, __ast_path)
70555    }
70556
70557    #[inline]
70558    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
70559        <V as VisitMutAstPath>::visit_mut_meta_prop_expr(&mut **self, node, __ast_path)
70560    }
70561
70562    #[inline]
70563    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
70564        <V as VisitMutAstPath>::visit_mut_meta_prop_kind(&mut **self, node, __ast_path)
70565    }
70566
70567    #[inline]
70568    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
70569        <V as VisitMutAstPath>::visit_mut_method_kind(&mut **self, node, __ast_path)
70570    }
70571
70572    #[inline]
70573    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
70574        <V as VisitMutAstPath>::visit_mut_method_prop(&mut **self, node, __ast_path)
70575    }
70576
70577    #[inline]
70578    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
70579        <V as VisitMutAstPath>::visit_mut_module(&mut **self, node, __ast_path)
70580    }
70581
70582    #[inline]
70583    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
70584        <V as VisitMutAstPath>::visit_mut_module_decl(&mut **self, node, __ast_path)
70585    }
70586
70587    #[inline]
70588    fn visit_mut_module_export_name(
70589        &mut self,
70590        node: &mut ModuleExportName,
70591        __ast_path: &mut AstKindPath,
70592    ) {
70593        <V as VisitMutAstPath>::visit_mut_module_export_name(&mut **self, node, __ast_path)
70594    }
70595
70596    #[inline]
70597    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
70598        <V as VisitMutAstPath>::visit_mut_module_item(&mut **self, node, __ast_path)
70599    }
70600
70601    #[inline]
70602    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
70603        <V as VisitMutAstPath>::visit_mut_module_items(&mut **self, node, __ast_path)
70604    }
70605
70606    #[inline]
70607    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
70608        <V as VisitMutAstPath>::visit_mut_named_export(&mut **self, node, __ast_path)
70609    }
70610
70611    #[inline]
70612    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
70613        <V as VisitMutAstPath>::visit_mut_new_expr(&mut **self, node, __ast_path)
70614    }
70615
70616    #[inline]
70617    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
70618        <V as VisitMutAstPath>::visit_mut_null(&mut **self, node, __ast_path)
70619    }
70620
70621    #[inline]
70622    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
70623        <V as VisitMutAstPath>::visit_mut_number(&mut **self, node, __ast_path)
70624    }
70625
70626    #[inline]
70627    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
70628        <V as VisitMutAstPath>::visit_mut_object_lit(&mut **self, node, __ast_path)
70629    }
70630
70631    #[inline]
70632    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
70633        <V as VisitMutAstPath>::visit_mut_object_pat(&mut **self, node, __ast_path)
70634    }
70635
70636    #[inline]
70637    fn visit_mut_object_pat_prop(
70638        &mut self,
70639        node: &mut ObjectPatProp,
70640        __ast_path: &mut AstKindPath,
70641    ) {
70642        <V as VisitMutAstPath>::visit_mut_object_pat_prop(&mut **self, node, __ast_path)
70643    }
70644
70645    #[inline]
70646    fn visit_mut_object_pat_props(
70647        &mut self,
70648        node: &mut Vec<ObjectPatProp>,
70649        __ast_path: &mut AstKindPath,
70650    ) {
70651        <V as VisitMutAstPath>::visit_mut_object_pat_props(&mut **self, node, __ast_path)
70652    }
70653
70654    #[inline]
70655    fn visit_mut_opt_accessibility(
70656        &mut self,
70657        node: &mut Option<Accessibility>,
70658        __ast_path: &mut AstKindPath,
70659    ) {
70660        <V as VisitMutAstPath>::visit_mut_opt_accessibility(&mut **self, node, __ast_path)
70661    }
70662
70663    #[inline]
70664    fn visit_mut_opt_atom(
70665        &mut self,
70666        node: &mut Option<swc_atoms::Atom>,
70667        __ast_path: &mut AstKindPath,
70668    ) {
70669        <V as VisitMutAstPath>::visit_mut_opt_atom(&mut **self, node, __ast_path)
70670    }
70671
70672    #[inline]
70673    fn visit_mut_opt_block_stmt(
70674        &mut self,
70675        node: &mut Option<BlockStmt>,
70676        __ast_path: &mut AstKindPath,
70677    ) {
70678        <V as VisitMutAstPath>::visit_mut_opt_block_stmt(&mut **self, node, __ast_path)
70679    }
70680
70681    #[inline]
70682    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
70683        <V as VisitMutAstPath>::visit_mut_opt_call(&mut **self, node, __ast_path)
70684    }
70685
70686    #[inline]
70687    fn visit_mut_opt_catch_clause(
70688        &mut self,
70689        node: &mut Option<CatchClause>,
70690        __ast_path: &mut AstKindPath,
70691    ) {
70692        <V as VisitMutAstPath>::visit_mut_opt_catch_clause(&mut **self, node, __ast_path)
70693    }
70694
70695    #[inline]
70696    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
70697        <V as VisitMutAstPath>::visit_mut_opt_chain_base(&mut **self, node, __ast_path)
70698    }
70699
70700    #[inline]
70701    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
70702        <V as VisitMutAstPath>::visit_mut_opt_chain_expr(&mut **self, node, __ast_path)
70703    }
70704
70705    #[inline]
70706    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
70707        <V as VisitMutAstPath>::visit_mut_opt_expr(&mut **self, node, __ast_path)
70708    }
70709
70710    #[inline]
70711    fn visit_mut_opt_expr_or_spread(
70712        &mut self,
70713        node: &mut Option<ExprOrSpread>,
70714        __ast_path: &mut AstKindPath,
70715    ) {
70716        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(&mut **self, node, __ast_path)
70717    }
70718
70719    #[inline]
70720    fn visit_mut_opt_expr_or_spreads(
70721        &mut self,
70722        node: &mut Option<Vec<ExprOrSpread>>,
70723        __ast_path: &mut AstKindPath,
70724    ) {
70725        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(&mut **self, node, __ast_path)
70726    }
70727
70728    #[inline]
70729    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
70730        <V as VisitMutAstPath>::visit_mut_opt_ident(&mut **self, node, __ast_path)
70731    }
70732
70733    #[inline]
70734    fn visit_mut_opt_jsx_attr_value(
70735        &mut self,
70736        node: &mut Option<JSXAttrValue>,
70737        __ast_path: &mut AstKindPath,
70738    ) {
70739        <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(&mut **self, node, __ast_path)
70740    }
70741
70742    #[inline]
70743    fn visit_mut_opt_jsx_closing_element(
70744        &mut self,
70745        node: &mut Option<JSXClosingElement>,
70746        __ast_path: &mut AstKindPath,
70747    ) {
70748        <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(&mut **self, node, __ast_path)
70749    }
70750
70751    #[inline]
70752    fn visit_mut_opt_module_export_name(
70753        &mut self,
70754        node: &mut Option<ModuleExportName>,
70755        __ast_path: &mut AstKindPath,
70756    ) {
70757        <V as VisitMutAstPath>::visit_mut_opt_module_export_name(&mut **self, node, __ast_path)
70758    }
70759
70760    #[inline]
70761    fn visit_mut_opt_object_lit(
70762        &mut self,
70763        node: &mut Option<Box<ObjectLit>>,
70764        __ast_path: &mut AstKindPath,
70765    ) {
70766        <V as VisitMutAstPath>::visit_mut_opt_object_lit(&mut **self, node, __ast_path)
70767    }
70768
70769    #[inline]
70770    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
70771        <V as VisitMutAstPath>::visit_mut_opt_pat(&mut **self, node, __ast_path)
70772    }
70773
70774    #[inline]
70775    fn visit_mut_opt_span(
70776        &mut self,
70777        node: &mut Option<swc_common::Span>,
70778        __ast_path: &mut AstKindPath,
70779    ) {
70780        <V as VisitMutAstPath>::visit_mut_opt_span(&mut **self, node, __ast_path)
70781    }
70782
70783    #[inline]
70784    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
70785        <V as VisitMutAstPath>::visit_mut_opt_stmt(&mut **self, node, __ast_path)
70786    }
70787
70788    #[inline]
70789    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
70790        <V as VisitMutAstPath>::visit_mut_opt_str(&mut **self, node, __ast_path)
70791    }
70792
70793    #[inline]
70794    fn visit_mut_opt_true_plus_minus(
70795        &mut self,
70796        node: &mut Option<TruePlusMinus>,
70797        __ast_path: &mut AstKindPath,
70798    ) {
70799        <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(&mut **self, node, __ast_path)
70800    }
70801
70802    #[inline]
70803    fn visit_mut_opt_ts_entity_name(
70804        &mut self,
70805        node: &mut Option<TsEntityName>,
70806        __ast_path: &mut AstKindPath,
70807    ) {
70808        <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(&mut **self, node, __ast_path)
70809    }
70810
70811    #[inline]
70812    fn visit_mut_opt_ts_namespace_body(
70813        &mut self,
70814        node: &mut Option<TsNamespaceBody>,
70815        __ast_path: &mut AstKindPath,
70816    ) {
70817        <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(&mut **self, node, __ast_path)
70818    }
70819
70820    #[inline]
70821    fn visit_mut_opt_ts_type(
70822        &mut self,
70823        node: &mut Option<Box<TsType>>,
70824        __ast_path: &mut AstKindPath,
70825    ) {
70826        <V as VisitMutAstPath>::visit_mut_opt_ts_type(&mut **self, node, __ast_path)
70827    }
70828
70829    #[inline]
70830    fn visit_mut_opt_ts_type_ann(
70831        &mut self,
70832        node: &mut Option<Box<TsTypeAnn>>,
70833        __ast_path: &mut AstKindPath,
70834    ) {
70835        <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(&mut **self, node, __ast_path)
70836    }
70837
70838    #[inline]
70839    fn visit_mut_opt_ts_type_param_decl(
70840        &mut self,
70841        node: &mut Option<Box<TsTypeParamDecl>>,
70842        __ast_path: &mut AstKindPath,
70843    ) {
70844        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(&mut **self, node, __ast_path)
70845    }
70846
70847    #[inline]
70848    fn visit_mut_opt_ts_type_param_instantiation(
70849        &mut self,
70850        node: &mut Option<Box<TsTypeParamInstantiation>>,
70851        __ast_path: &mut AstKindPath,
70852    ) {
70853        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(
70854            &mut **self,
70855            node,
70856            __ast_path,
70857        )
70858    }
70859
70860    #[inline]
70861    fn visit_mut_opt_var_decl_or_expr(
70862        &mut self,
70863        node: &mut Option<VarDeclOrExpr>,
70864        __ast_path: &mut AstKindPath,
70865    ) {
70866        <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(&mut **self, node, __ast_path)
70867    }
70868
70869    #[inline]
70870    fn visit_mut_opt_vec_expr_or_spreads(
70871        &mut self,
70872        node: &mut Vec<Option<ExprOrSpread>>,
70873        __ast_path: &mut AstKindPath,
70874    ) {
70875        <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
70876    }
70877
70878    #[inline]
70879    fn visit_mut_opt_vec_pats(
70880        &mut self,
70881        node: &mut Vec<Option<Pat>>,
70882        __ast_path: &mut AstKindPath,
70883    ) {
70884        <V as VisitMutAstPath>::visit_mut_opt_vec_pats(&mut **self, node, __ast_path)
70885    }
70886
70887    #[inline]
70888    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
70889        <V as VisitMutAstPath>::visit_mut_param(&mut **self, node, __ast_path)
70890    }
70891
70892    #[inline]
70893    fn visit_mut_param_or_ts_param_prop(
70894        &mut self,
70895        node: &mut ParamOrTsParamProp,
70896        __ast_path: &mut AstKindPath,
70897    ) {
70898        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(&mut **self, node, __ast_path)
70899    }
70900
70901    #[inline]
70902    fn visit_mut_param_or_ts_param_props(
70903        &mut self,
70904        node: &mut Vec<ParamOrTsParamProp>,
70905        __ast_path: &mut AstKindPath,
70906    ) {
70907        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(&mut **self, node, __ast_path)
70908    }
70909
70910    #[inline]
70911    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
70912        <V as VisitMutAstPath>::visit_mut_params(&mut **self, node, __ast_path)
70913    }
70914
70915    #[inline]
70916    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
70917        <V as VisitMutAstPath>::visit_mut_paren_expr(&mut **self, node, __ast_path)
70918    }
70919
70920    #[inline]
70921    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
70922        <V as VisitMutAstPath>::visit_mut_pat(&mut **self, node, __ast_path)
70923    }
70924
70925    #[inline]
70926    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
70927        <V as VisitMutAstPath>::visit_mut_pats(&mut **self, node, __ast_path)
70928    }
70929
70930    #[inline]
70931    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
70932        <V as VisitMutAstPath>::visit_mut_private_method(&mut **self, node, __ast_path)
70933    }
70934
70935    #[inline]
70936    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
70937        <V as VisitMutAstPath>::visit_mut_private_name(&mut **self, node, __ast_path)
70938    }
70939
70940    #[inline]
70941    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
70942        <V as VisitMutAstPath>::visit_mut_private_prop(&mut **self, node, __ast_path)
70943    }
70944
70945    #[inline]
70946    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
70947        <V as VisitMutAstPath>::visit_mut_program(&mut **self, node, __ast_path)
70948    }
70949
70950    #[inline]
70951    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
70952        <V as VisitMutAstPath>::visit_mut_prop(&mut **self, node, __ast_path)
70953    }
70954
70955    #[inline]
70956    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
70957        <V as VisitMutAstPath>::visit_mut_prop_name(&mut **self, node, __ast_path)
70958    }
70959
70960    #[inline]
70961    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
70962        <V as VisitMutAstPath>::visit_mut_prop_or_spread(&mut **self, node, __ast_path)
70963    }
70964
70965    #[inline]
70966    fn visit_mut_prop_or_spreads(
70967        &mut self,
70968        node: &mut Vec<PropOrSpread>,
70969        __ast_path: &mut AstKindPath,
70970    ) {
70971        <V as VisitMutAstPath>::visit_mut_prop_or_spreads(&mut **self, node, __ast_path)
70972    }
70973
70974    #[inline]
70975    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
70976        <V as VisitMutAstPath>::visit_mut_regex(&mut **self, node, __ast_path)
70977    }
70978
70979    #[inline]
70980    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
70981        <V as VisitMutAstPath>::visit_mut_rest_pat(&mut **self, node, __ast_path)
70982    }
70983
70984    #[inline]
70985    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
70986        <V as VisitMutAstPath>::visit_mut_return_stmt(&mut **self, node, __ast_path)
70987    }
70988
70989    #[inline]
70990    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
70991        <V as VisitMutAstPath>::visit_mut_script(&mut **self, node, __ast_path)
70992    }
70993
70994    #[inline]
70995    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
70996        <V as VisitMutAstPath>::visit_mut_seq_expr(&mut **self, node, __ast_path)
70997    }
70998
70999    #[inline]
71000    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
71001        <V as VisitMutAstPath>::visit_mut_setter_prop(&mut **self, node, __ast_path)
71002    }
71003
71004    #[inline]
71005    fn visit_mut_simple_assign_target(
71006        &mut self,
71007        node: &mut SimpleAssignTarget,
71008        __ast_path: &mut AstKindPath,
71009    ) {
71010        <V as VisitMutAstPath>::visit_mut_simple_assign_target(&mut **self, node, __ast_path)
71011    }
71012
71013    #[inline]
71014    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
71015        <V as VisitMutAstPath>::visit_mut_span(&mut **self, node, __ast_path)
71016    }
71017
71018    #[inline]
71019    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
71020        <V as VisitMutAstPath>::visit_mut_spread_element(&mut **self, node, __ast_path)
71021    }
71022
71023    #[inline]
71024    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
71025        <V as VisitMutAstPath>::visit_mut_static_block(&mut **self, node, __ast_path)
71026    }
71027
71028    #[inline]
71029    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
71030        <V as VisitMutAstPath>::visit_mut_stmt(&mut **self, node, __ast_path)
71031    }
71032
71033    #[inline]
71034    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
71035        <V as VisitMutAstPath>::visit_mut_stmts(&mut **self, node, __ast_path)
71036    }
71037
71038    #[inline]
71039    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
71040        <V as VisitMutAstPath>::visit_mut_str(&mut **self, node, __ast_path)
71041    }
71042
71043    #[inline]
71044    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
71045        <V as VisitMutAstPath>::visit_mut_super(&mut **self, node, __ast_path)
71046    }
71047
71048    #[inline]
71049    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
71050        <V as VisitMutAstPath>::visit_mut_super_prop(&mut **self, node, __ast_path)
71051    }
71052
71053    #[inline]
71054    fn visit_mut_super_prop_expr(
71055        &mut self,
71056        node: &mut SuperPropExpr,
71057        __ast_path: &mut AstKindPath,
71058    ) {
71059        <V as VisitMutAstPath>::visit_mut_super_prop_expr(&mut **self, node, __ast_path)
71060    }
71061
71062    #[inline]
71063    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
71064        <V as VisitMutAstPath>::visit_mut_switch_case(&mut **self, node, __ast_path)
71065    }
71066
71067    #[inline]
71068    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
71069        <V as VisitMutAstPath>::visit_mut_switch_cases(&mut **self, node, __ast_path)
71070    }
71071
71072    #[inline]
71073    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
71074        <V as VisitMutAstPath>::visit_mut_switch_stmt(&mut **self, node, __ast_path)
71075    }
71076
71077    #[inline]
71078    fn visit_mut_syntax_context(
71079        &mut self,
71080        node: &mut swc_common::SyntaxContext,
71081        __ast_path: &mut AstKindPath,
71082    ) {
71083        <V as VisitMutAstPath>::visit_mut_syntax_context(&mut **self, node, __ast_path)
71084    }
71085
71086    #[inline]
71087    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
71088        <V as VisitMutAstPath>::visit_mut_tagged_tpl(&mut **self, node, __ast_path)
71089    }
71090
71091    #[inline]
71092    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
71093        <V as VisitMutAstPath>::visit_mut_this_expr(&mut **self, node, __ast_path)
71094    }
71095
71096    #[inline]
71097    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
71098        <V as VisitMutAstPath>::visit_mut_throw_stmt(&mut **self, node, __ast_path)
71099    }
71100
71101    #[inline]
71102    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
71103        <V as VisitMutAstPath>::visit_mut_tpl(&mut **self, node, __ast_path)
71104    }
71105
71106    #[inline]
71107    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
71108        <V as VisitMutAstPath>::visit_mut_tpl_element(&mut **self, node, __ast_path)
71109    }
71110
71111    #[inline]
71112    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
71113        <V as VisitMutAstPath>::visit_mut_tpl_elements(&mut **self, node, __ast_path)
71114    }
71115
71116    #[inline]
71117    fn visit_mut_true_plus_minus(
71118        &mut self,
71119        node: &mut TruePlusMinus,
71120        __ast_path: &mut AstKindPath,
71121    ) {
71122        <V as VisitMutAstPath>::visit_mut_true_plus_minus(&mut **self, node, __ast_path)
71123    }
71124
71125    #[inline]
71126    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
71127        <V as VisitMutAstPath>::visit_mut_try_stmt(&mut **self, node, __ast_path)
71128    }
71129
71130    #[inline]
71131    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
71132        <V as VisitMutAstPath>::visit_mut_ts_array_type(&mut **self, node, __ast_path)
71133    }
71134
71135    #[inline]
71136    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
71137        <V as VisitMutAstPath>::visit_mut_ts_as_expr(&mut **self, node, __ast_path)
71138    }
71139
71140    #[inline]
71141    fn visit_mut_ts_call_signature_decl(
71142        &mut self,
71143        node: &mut TsCallSignatureDecl,
71144        __ast_path: &mut AstKindPath,
71145    ) {
71146        <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(&mut **self, node, __ast_path)
71147    }
71148
71149    #[inline]
71150    fn visit_mut_ts_conditional_type(
71151        &mut self,
71152        node: &mut TsConditionalType,
71153        __ast_path: &mut AstKindPath,
71154    ) {
71155        <V as VisitMutAstPath>::visit_mut_ts_conditional_type(&mut **self, node, __ast_path)
71156    }
71157
71158    #[inline]
71159    fn visit_mut_ts_const_assertion(
71160        &mut self,
71161        node: &mut TsConstAssertion,
71162        __ast_path: &mut AstKindPath,
71163    ) {
71164        <V as VisitMutAstPath>::visit_mut_ts_const_assertion(&mut **self, node, __ast_path)
71165    }
71166
71167    #[inline]
71168    fn visit_mut_ts_construct_signature_decl(
71169        &mut self,
71170        node: &mut TsConstructSignatureDecl,
71171        __ast_path: &mut AstKindPath,
71172    ) {
71173        <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(&mut **self, node, __ast_path)
71174    }
71175
71176    #[inline]
71177    fn visit_mut_ts_constructor_type(
71178        &mut self,
71179        node: &mut TsConstructorType,
71180        __ast_path: &mut AstKindPath,
71181    ) {
71182        <V as VisitMutAstPath>::visit_mut_ts_constructor_type(&mut **self, node, __ast_path)
71183    }
71184
71185    #[inline]
71186    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
71187        <V as VisitMutAstPath>::visit_mut_ts_entity_name(&mut **self, node, __ast_path)
71188    }
71189
71190    #[inline]
71191    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
71192        <V as VisitMutAstPath>::visit_mut_ts_enum_decl(&mut **self, node, __ast_path)
71193    }
71194
71195    #[inline]
71196    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
71197        <V as VisitMutAstPath>::visit_mut_ts_enum_member(&mut **self, node, __ast_path)
71198    }
71199
71200    #[inline]
71201    fn visit_mut_ts_enum_member_id(
71202        &mut self,
71203        node: &mut TsEnumMemberId,
71204        __ast_path: &mut AstKindPath,
71205    ) {
71206        <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(&mut **self, node, __ast_path)
71207    }
71208
71209    #[inline]
71210    fn visit_mut_ts_enum_members(
71211        &mut self,
71212        node: &mut Vec<TsEnumMember>,
71213        __ast_path: &mut AstKindPath,
71214    ) {
71215        <V as VisitMutAstPath>::visit_mut_ts_enum_members(&mut **self, node, __ast_path)
71216    }
71217
71218    #[inline]
71219    fn visit_mut_ts_export_assignment(
71220        &mut self,
71221        node: &mut TsExportAssignment,
71222        __ast_path: &mut AstKindPath,
71223    ) {
71224        <V as VisitMutAstPath>::visit_mut_ts_export_assignment(&mut **self, node, __ast_path)
71225    }
71226
71227    #[inline]
71228    fn visit_mut_ts_expr_with_type_args(
71229        &mut self,
71230        node: &mut TsExprWithTypeArgs,
71231        __ast_path: &mut AstKindPath,
71232    ) {
71233        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(&mut **self, node, __ast_path)
71234    }
71235
71236    #[inline]
71237    fn visit_mut_ts_expr_with_type_argss(
71238        &mut self,
71239        node: &mut Vec<TsExprWithTypeArgs>,
71240        __ast_path: &mut AstKindPath,
71241    ) {
71242        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(&mut **self, node, __ast_path)
71243    }
71244
71245    #[inline]
71246    fn visit_mut_ts_external_module_ref(
71247        &mut self,
71248        node: &mut TsExternalModuleRef,
71249        __ast_path: &mut AstKindPath,
71250    ) {
71251        <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(&mut **self, node, __ast_path)
71252    }
71253
71254    #[inline]
71255    fn visit_mut_ts_fn_or_constructor_type(
71256        &mut self,
71257        node: &mut TsFnOrConstructorType,
71258        __ast_path: &mut AstKindPath,
71259    ) {
71260        <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
71261    }
71262
71263    #[inline]
71264    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
71265        <V as VisitMutAstPath>::visit_mut_ts_fn_param(&mut **self, node, __ast_path)
71266    }
71267
71268    #[inline]
71269    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
71270        <V as VisitMutAstPath>::visit_mut_ts_fn_params(&mut **self, node, __ast_path)
71271    }
71272
71273    #[inline]
71274    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
71275        <V as VisitMutAstPath>::visit_mut_ts_fn_type(&mut **self, node, __ast_path)
71276    }
71277
71278    #[inline]
71279    fn visit_mut_ts_getter_signature(
71280        &mut self,
71281        node: &mut TsGetterSignature,
71282        __ast_path: &mut AstKindPath,
71283    ) {
71284        <V as VisitMutAstPath>::visit_mut_ts_getter_signature(&mut **self, node, __ast_path)
71285    }
71286
71287    #[inline]
71288    fn visit_mut_ts_import_equals_decl(
71289        &mut self,
71290        node: &mut TsImportEqualsDecl,
71291        __ast_path: &mut AstKindPath,
71292    ) {
71293        <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(&mut **self, node, __ast_path)
71294    }
71295
71296    #[inline]
71297    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
71298        <V as VisitMutAstPath>::visit_mut_ts_import_type(&mut **self, node, __ast_path)
71299    }
71300
71301    #[inline]
71302    fn visit_mut_ts_index_signature(
71303        &mut self,
71304        node: &mut TsIndexSignature,
71305        __ast_path: &mut AstKindPath,
71306    ) {
71307        <V as VisitMutAstPath>::visit_mut_ts_index_signature(&mut **self, node, __ast_path)
71308    }
71309
71310    #[inline]
71311    fn visit_mut_ts_indexed_access_type(
71312        &mut self,
71313        node: &mut TsIndexedAccessType,
71314        __ast_path: &mut AstKindPath,
71315    ) {
71316        <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(&mut **self, node, __ast_path)
71317    }
71318
71319    #[inline]
71320    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
71321        <V as VisitMutAstPath>::visit_mut_ts_infer_type(&mut **self, node, __ast_path)
71322    }
71323
71324    #[inline]
71325    fn visit_mut_ts_instantiation(
71326        &mut self,
71327        node: &mut TsInstantiation,
71328        __ast_path: &mut AstKindPath,
71329    ) {
71330        <V as VisitMutAstPath>::visit_mut_ts_instantiation(&mut **self, node, __ast_path)
71331    }
71332
71333    #[inline]
71334    fn visit_mut_ts_interface_body(
71335        &mut self,
71336        node: &mut TsInterfaceBody,
71337        __ast_path: &mut AstKindPath,
71338    ) {
71339        <V as VisitMutAstPath>::visit_mut_ts_interface_body(&mut **self, node, __ast_path)
71340    }
71341
71342    #[inline]
71343    fn visit_mut_ts_interface_decl(
71344        &mut self,
71345        node: &mut TsInterfaceDecl,
71346        __ast_path: &mut AstKindPath,
71347    ) {
71348        <V as VisitMutAstPath>::visit_mut_ts_interface_decl(&mut **self, node, __ast_path)
71349    }
71350
71351    #[inline]
71352    fn visit_mut_ts_intersection_type(
71353        &mut self,
71354        node: &mut TsIntersectionType,
71355        __ast_path: &mut AstKindPath,
71356    ) {
71357        <V as VisitMutAstPath>::visit_mut_ts_intersection_type(&mut **self, node, __ast_path)
71358    }
71359
71360    #[inline]
71361    fn visit_mut_ts_keyword_type(
71362        &mut self,
71363        node: &mut TsKeywordType,
71364        __ast_path: &mut AstKindPath,
71365    ) {
71366        <V as VisitMutAstPath>::visit_mut_ts_keyword_type(&mut **self, node, __ast_path)
71367    }
71368
71369    #[inline]
71370    fn visit_mut_ts_keyword_type_kind(
71371        &mut self,
71372        node: &mut TsKeywordTypeKind,
71373        __ast_path: &mut AstKindPath,
71374    ) {
71375        <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(&mut **self, node, __ast_path)
71376    }
71377
71378    #[inline]
71379    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
71380        <V as VisitMutAstPath>::visit_mut_ts_lit(&mut **self, node, __ast_path)
71381    }
71382
71383    #[inline]
71384    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
71385        <V as VisitMutAstPath>::visit_mut_ts_lit_type(&mut **self, node, __ast_path)
71386    }
71387
71388    #[inline]
71389    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
71390        <V as VisitMutAstPath>::visit_mut_ts_mapped_type(&mut **self, node, __ast_path)
71391    }
71392
71393    #[inline]
71394    fn visit_mut_ts_method_signature(
71395        &mut self,
71396        node: &mut TsMethodSignature,
71397        __ast_path: &mut AstKindPath,
71398    ) {
71399        <V as VisitMutAstPath>::visit_mut_ts_method_signature(&mut **self, node, __ast_path)
71400    }
71401
71402    #[inline]
71403    fn visit_mut_ts_module_block(
71404        &mut self,
71405        node: &mut TsModuleBlock,
71406        __ast_path: &mut AstKindPath,
71407    ) {
71408        <V as VisitMutAstPath>::visit_mut_ts_module_block(&mut **self, node, __ast_path)
71409    }
71410
71411    #[inline]
71412    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
71413        <V as VisitMutAstPath>::visit_mut_ts_module_decl(&mut **self, node, __ast_path)
71414    }
71415
71416    #[inline]
71417    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
71418        <V as VisitMutAstPath>::visit_mut_ts_module_name(&mut **self, node, __ast_path)
71419    }
71420
71421    #[inline]
71422    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
71423        <V as VisitMutAstPath>::visit_mut_ts_module_ref(&mut **self, node, __ast_path)
71424    }
71425
71426    #[inline]
71427    fn visit_mut_ts_namespace_body(
71428        &mut self,
71429        node: &mut TsNamespaceBody,
71430        __ast_path: &mut AstKindPath,
71431    ) {
71432        <V as VisitMutAstPath>::visit_mut_ts_namespace_body(&mut **self, node, __ast_path)
71433    }
71434
71435    #[inline]
71436    fn visit_mut_ts_namespace_decl(
71437        &mut self,
71438        node: &mut TsNamespaceDecl,
71439        __ast_path: &mut AstKindPath,
71440    ) {
71441        <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(&mut **self, node, __ast_path)
71442    }
71443
71444    #[inline]
71445    fn visit_mut_ts_namespace_export_decl(
71446        &mut self,
71447        node: &mut TsNamespaceExportDecl,
71448        __ast_path: &mut AstKindPath,
71449    ) {
71450        <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(&mut **self, node, __ast_path)
71451    }
71452
71453    #[inline]
71454    fn visit_mut_ts_non_null_expr(
71455        &mut self,
71456        node: &mut TsNonNullExpr,
71457        __ast_path: &mut AstKindPath,
71458    ) {
71459        <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(&mut **self, node, __ast_path)
71460    }
71461
71462    #[inline]
71463    fn visit_mut_ts_optional_type(
71464        &mut self,
71465        node: &mut TsOptionalType,
71466        __ast_path: &mut AstKindPath,
71467    ) {
71468        <V as VisitMutAstPath>::visit_mut_ts_optional_type(&mut **self, node, __ast_path)
71469    }
71470
71471    #[inline]
71472    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
71473        <V as VisitMutAstPath>::visit_mut_ts_param_prop(&mut **self, node, __ast_path)
71474    }
71475
71476    #[inline]
71477    fn visit_mut_ts_param_prop_param(
71478        &mut self,
71479        node: &mut TsParamPropParam,
71480        __ast_path: &mut AstKindPath,
71481    ) {
71482        <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(&mut **self, node, __ast_path)
71483    }
71484
71485    #[inline]
71486    fn visit_mut_ts_parenthesized_type(
71487        &mut self,
71488        node: &mut TsParenthesizedType,
71489        __ast_path: &mut AstKindPath,
71490    ) {
71491        <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(&mut **self, node, __ast_path)
71492    }
71493
71494    #[inline]
71495    fn visit_mut_ts_property_signature(
71496        &mut self,
71497        node: &mut TsPropertySignature,
71498        __ast_path: &mut AstKindPath,
71499    ) {
71500        <V as VisitMutAstPath>::visit_mut_ts_property_signature(&mut **self, node, __ast_path)
71501    }
71502
71503    #[inline]
71504    fn visit_mut_ts_qualified_name(
71505        &mut self,
71506        node: &mut TsQualifiedName,
71507        __ast_path: &mut AstKindPath,
71508    ) {
71509        <V as VisitMutAstPath>::visit_mut_ts_qualified_name(&mut **self, node, __ast_path)
71510    }
71511
71512    #[inline]
71513    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
71514        <V as VisitMutAstPath>::visit_mut_ts_rest_type(&mut **self, node, __ast_path)
71515    }
71516
71517    #[inline]
71518    fn visit_mut_ts_satisfies_expr(
71519        &mut self,
71520        node: &mut TsSatisfiesExpr,
71521        __ast_path: &mut AstKindPath,
71522    ) {
71523        <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(&mut **self, node, __ast_path)
71524    }
71525
71526    #[inline]
71527    fn visit_mut_ts_setter_signature(
71528        &mut self,
71529        node: &mut TsSetterSignature,
71530        __ast_path: &mut AstKindPath,
71531    ) {
71532        <V as VisitMutAstPath>::visit_mut_ts_setter_signature(&mut **self, node, __ast_path)
71533    }
71534
71535    #[inline]
71536    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
71537        <V as VisitMutAstPath>::visit_mut_ts_this_type(&mut **self, node, __ast_path)
71538    }
71539
71540    #[inline]
71541    fn visit_mut_ts_this_type_or_ident(
71542        &mut self,
71543        node: &mut TsThisTypeOrIdent,
71544        __ast_path: &mut AstKindPath,
71545    ) {
71546        <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(&mut **self, node, __ast_path)
71547    }
71548
71549    #[inline]
71550    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
71551        <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(&mut **self, node, __ast_path)
71552    }
71553
71554    #[inline]
71555    fn visit_mut_ts_tuple_element(
71556        &mut self,
71557        node: &mut TsTupleElement,
71558        __ast_path: &mut AstKindPath,
71559    ) {
71560        <V as VisitMutAstPath>::visit_mut_ts_tuple_element(&mut **self, node, __ast_path)
71561    }
71562
71563    #[inline]
71564    fn visit_mut_ts_tuple_elements(
71565        &mut self,
71566        node: &mut Vec<TsTupleElement>,
71567        __ast_path: &mut AstKindPath,
71568    ) {
71569        <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(&mut **self, node, __ast_path)
71570    }
71571
71572    #[inline]
71573    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
71574        <V as VisitMutAstPath>::visit_mut_ts_tuple_type(&mut **self, node, __ast_path)
71575    }
71576
71577    #[inline]
71578    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
71579        <V as VisitMutAstPath>::visit_mut_ts_type(&mut **self, node, __ast_path)
71580    }
71581
71582    #[inline]
71583    fn visit_mut_ts_type_alias_decl(
71584        &mut self,
71585        node: &mut TsTypeAliasDecl,
71586        __ast_path: &mut AstKindPath,
71587    ) {
71588        <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(&mut **self, node, __ast_path)
71589    }
71590
71591    #[inline]
71592    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
71593        <V as VisitMutAstPath>::visit_mut_ts_type_ann(&mut **self, node, __ast_path)
71594    }
71595
71596    #[inline]
71597    fn visit_mut_ts_type_assertion(
71598        &mut self,
71599        node: &mut TsTypeAssertion,
71600        __ast_path: &mut AstKindPath,
71601    ) {
71602        <V as VisitMutAstPath>::visit_mut_ts_type_assertion(&mut **self, node, __ast_path)
71603    }
71604
71605    #[inline]
71606    fn visit_mut_ts_type_element(
71607        &mut self,
71608        node: &mut TsTypeElement,
71609        __ast_path: &mut AstKindPath,
71610    ) {
71611        <V as VisitMutAstPath>::visit_mut_ts_type_element(&mut **self, node, __ast_path)
71612    }
71613
71614    #[inline]
71615    fn visit_mut_ts_type_elements(
71616        &mut self,
71617        node: &mut Vec<TsTypeElement>,
71618        __ast_path: &mut AstKindPath,
71619    ) {
71620        <V as VisitMutAstPath>::visit_mut_ts_type_elements(&mut **self, node, __ast_path)
71621    }
71622
71623    #[inline]
71624    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
71625        <V as VisitMutAstPath>::visit_mut_ts_type_lit(&mut **self, node, __ast_path)
71626    }
71627
71628    #[inline]
71629    fn visit_mut_ts_type_operator(
71630        &mut self,
71631        node: &mut TsTypeOperator,
71632        __ast_path: &mut AstKindPath,
71633    ) {
71634        <V as VisitMutAstPath>::visit_mut_ts_type_operator(&mut **self, node, __ast_path)
71635    }
71636
71637    #[inline]
71638    fn visit_mut_ts_type_operator_op(
71639        &mut self,
71640        node: &mut TsTypeOperatorOp,
71641        __ast_path: &mut AstKindPath,
71642    ) {
71643        <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(&mut **self, node, __ast_path)
71644    }
71645
71646    #[inline]
71647    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
71648        <V as VisitMutAstPath>::visit_mut_ts_type_param(&mut **self, node, __ast_path)
71649    }
71650
71651    #[inline]
71652    fn visit_mut_ts_type_param_decl(
71653        &mut self,
71654        node: &mut TsTypeParamDecl,
71655        __ast_path: &mut AstKindPath,
71656    ) {
71657        <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(&mut **self, node, __ast_path)
71658    }
71659
71660    #[inline]
71661    fn visit_mut_ts_type_param_instantiation(
71662        &mut self,
71663        node: &mut TsTypeParamInstantiation,
71664        __ast_path: &mut AstKindPath,
71665    ) {
71666        <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(&mut **self, node, __ast_path)
71667    }
71668
71669    #[inline]
71670    fn visit_mut_ts_type_params(
71671        &mut self,
71672        node: &mut Vec<TsTypeParam>,
71673        __ast_path: &mut AstKindPath,
71674    ) {
71675        <V as VisitMutAstPath>::visit_mut_ts_type_params(&mut **self, node, __ast_path)
71676    }
71677
71678    #[inline]
71679    fn visit_mut_ts_type_predicate(
71680        &mut self,
71681        node: &mut TsTypePredicate,
71682        __ast_path: &mut AstKindPath,
71683    ) {
71684        <V as VisitMutAstPath>::visit_mut_ts_type_predicate(&mut **self, node, __ast_path)
71685    }
71686
71687    #[inline]
71688    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
71689        <V as VisitMutAstPath>::visit_mut_ts_type_query(&mut **self, node, __ast_path)
71690    }
71691
71692    #[inline]
71693    fn visit_mut_ts_type_query_expr(
71694        &mut self,
71695        node: &mut TsTypeQueryExpr,
71696        __ast_path: &mut AstKindPath,
71697    ) {
71698        <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(&mut **self, node, __ast_path)
71699    }
71700
71701    #[inline]
71702    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
71703        <V as VisitMutAstPath>::visit_mut_ts_type_ref(&mut **self, node, __ast_path)
71704    }
71705
71706    #[inline]
71707    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
71708        <V as VisitMutAstPath>::visit_mut_ts_types(&mut **self, node, __ast_path)
71709    }
71710
71711    #[inline]
71712    fn visit_mut_ts_union_or_intersection_type(
71713        &mut self,
71714        node: &mut TsUnionOrIntersectionType,
71715        __ast_path: &mut AstKindPath,
71716    ) {
71717        <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(
71718            &mut **self,
71719            node,
71720            __ast_path,
71721        )
71722    }
71723
71724    #[inline]
71725    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
71726        <V as VisitMutAstPath>::visit_mut_ts_union_type(&mut **self, node, __ast_path)
71727    }
71728
71729    #[inline]
71730    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
71731        <V as VisitMutAstPath>::visit_mut_unary_expr(&mut **self, node, __ast_path)
71732    }
71733
71734    #[inline]
71735    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
71736        <V as VisitMutAstPath>::visit_mut_unary_op(&mut **self, node, __ast_path)
71737    }
71738
71739    #[inline]
71740    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
71741        <V as VisitMutAstPath>::visit_mut_update_expr(&mut **self, node, __ast_path)
71742    }
71743
71744    #[inline]
71745    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
71746        <V as VisitMutAstPath>::visit_mut_update_op(&mut **self, node, __ast_path)
71747    }
71748
71749    #[inline]
71750    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
71751        <V as VisitMutAstPath>::visit_mut_using_decl(&mut **self, node, __ast_path)
71752    }
71753
71754    #[inline]
71755    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
71756        <V as VisitMutAstPath>::visit_mut_var_decl(&mut **self, node, __ast_path)
71757    }
71758
71759    #[inline]
71760    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
71761        <V as VisitMutAstPath>::visit_mut_var_decl_kind(&mut **self, node, __ast_path)
71762    }
71763
71764    #[inline]
71765    fn visit_mut_var_decl_or_expr(
71766        &mut self,
71767        node: &mut VarDeclOrExpr,
71768        __ast_path: &mut AstKindPath,
71769    ) {
71770        <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(&mut **self, node, __ast_path)
71771    }
71772
71773    #[inline]
71774    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
71775        <V as VisitMutAstPath>::visit_mut_var_declarator(&mut **self, node, __ast_path)
71776    }
71777
71778    #[inline]
71779    fn visit_mut_var_declarators(
71780        &mut self,
71781        node: &mut Vec<VarDeclarator>,
71782        __ast_path: &mut AstKindPath,
71783    ) {
71784        <V as VisitMutAstPath>::visit_mut_var_declarators(&mut **self, node, __ast_path)
71785    }
71786
71787    #[inline]
71788    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
71789        <V as VisitMutAstPath>::visit_mut_while_stmt(&mut **self, node, __ast_path)
71790    }
71791
71792    #[inline]
71793    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
71794        <V as VisitMutAstPath>::visit_mut_with_stmt(&mut **self, node, __ast_path)
71795    }
71796
71797    #[inline]
71798    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
71799        <V as VisitMutAstPath>::visit_mut_yield_expr(&mut **self, node, __ast_path)
71800    }
71801}
71802#[cfg(any(docsrs, feature = "path"))]
71803#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
71804impl<A, B> VisitMutAstPath for ::swc_visit::Either<A, B>
71805where
71806    A: VisitMutAstPath,
71807    B: VisitMutAstPath,
71808{
71809    #[inline]
71810    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
71811        match self {
71812            swc_visit::Either::Left(visitor) => {
71813                VisitMutAstPath::visit_mut_accessibility(visitor, node, __ast_path)
71814            }
71815            swc_visit::Either::Right(visitor) => {
71816                VisitMutAstPath::visit_mut_accessibility(visitor, node, __ast_path)
71817            }
71818        }
71819    }
71820
71821    #[inline]
71822    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
71823        match self {
71824            swc_visit::Either::Left(visitor) => {
71825                VisitMutAstPath::visit_mut_array_lit(visitor, node, __ast_path)
71826            }
71827            swc_visit::Either::Right(visitor) => {
71828                VisitMutAstPath::visit_mut_array_lit(visitor, node, __ast_path)
71829            }
71830        }
71831    }
71832
71833    #[inline]
71834    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
71835        match self {
71836            swc_visit::Either::Left(visitor) => {
71837                VisitMutAstPath::visit_mut_array_pat(visitor, node, __ast_path)
71838            }
71839            swc_visit::Either::Right(visitor) => {
71840                VisitMutAstPath::visit_mut_array_pat(visitor, node, __ast_path)
71841            }
71842        }
71843    }
71844
71845    #[inline]
71846    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
71847        match self {
71848            swc_visit::Either::Left(visitor) => {
71849                VisitMutAstPath::visit_mut_arrow_expr(visitor, node, __ast_path)
71850            }
71851            swc_visit::Either::Right(visitor) => {
71852                VisitMutAstPath::visit_mut_arrow_expr(visitor, node, __ast_path)
71853            }
71854        }
71855    }
71856
71857    #[inline]
71858    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
71859        match self {
71860            swc_visit::Either::Left(visitor) => {
71861                VisitMutAstPath::visit_mut_assign_expr(visitor, node, __ast_path)
71862            }
71863            swc_visit::Either::Right(visitor) => {
71864                VisitMutAstPath::visit_mut_assign_expr(visitor, node, __ast_path)
71865            }
71866        }
71867    }
71868
71869    #[inline]
71870    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
71871        match self {
71872            swc_visit::Either::Left(visitor) => {
71873                VisitMutAstPath::visit_mut_assign_op(visitor, node, __ast_path)
71874            }
71875            swc_visit::Either::Right(visitor) => {
71876                VisitMutAstPath::visit_mut_assign_op(visitor, node, __ast_path)
71877            }
71878        }
71879    }
71880
71881    #[inline]
71882    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
71883        match self {
71884            swc_visit::Either::Left(visitor) => {
71885                VisitMutAstPath::visit_mut_assign_pat(visitor, node, __ast_path)
71886            }
71887            swc_visit::Either::Right(visitor) => {
71888                VisitMutAstPath::visit_mut_assign_pat(visitor, node, __ast_path)
71889            }
71890        }
71891    }
71892
71893    #[inline]
71894    fn visit_mut_assign_pat_prop(
71895        &mut self,
71896        node: &mut AssignPatProp,
71897        __ast_path: &mut AstKindPath,
71898    ) {
71899        match self {
71900            swc_visit::Either::Left(visitor) => {
71901                VisitMutAstPath::visit_mut_assign_pat_prop(visitor, node, __ast_path)
71902            }
71903            swc_visit::Either::Right(visitor) => {
71904                VisitMutAstPath::visit_mut_assign_pat_prop(visitor, node, __ast_path)
71905            }
71906        }
71907    }
71908
71909    #[inline]
71910    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
71911        match self {
71912            swc_visit::Either::Left(visitor) => {
71913                VisitMutAstPath::visit_mut_assign_prop(visitor, node, __ast_path)
71914            }
71915            swc_visit::Either::Right(visitor) => {
71916                VisitMutAstPath::visit_mut_assign_prop(visitor, node, __ast_path)
71917            }
71918        }
71919    }
71920
71921    #[inline]
71922    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
71923        match self {
71924            swc_visit::Either::Left(visitor) => {
71925                VisitMutAstPath::visit_mut_assign_target(visitor, node, __ast_path)
71926            }
71927            swc_visit::Either::Right(visitor) => {
71928                VisitMutAstPath::visit_mut_assign_target(visitor, node, __ast_path)
71929            }
71930        }
71931    }
71932
71933    #[inline]
71934    fn visit_mut_assign_target_pat(
71935        &mut self,
71936        node: &mut AssignTargetPat,
71937        __ast_path: &mut AstKindPath,
71938    ) {
71939        match self {
71940            swc_visit::Either::Left(visitor) => {
71941                VisitMutAstPath::visit_mut_assign_target_pat(visitor, node, __ast_path)
71942            }
71943            swc_visit::Either::Right(visitor) => {
71944                VisitMutAstPath::visit_mut_assign_target_pat(visitor, node, __ast_path)
71945            }
71946        }
71947    }
71948
71949    #[inline]
71950    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
71951        match self {
71952            swc_visit::Either::Left(visitor) => {
71953                VisitMutAstPath::visit_mut_atom(visitor, node, __ast_path)
71954            }
71955            swc_visit::Either::Right(visitor) => {
71956                VisitMutAstPath::visit_mut_atom(visitor, node, __ast_path)
71957            }
71958        }
71959    }
71960
71961    #[inline]
71962    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
71963        match self {
71964            swc_visit::Either::Left(visitor) => {
71965                VisitMutAstPath::visit_mut_auto_accessor(visitor, node, __ast_path)
71966            }
71967            swc_visit::Either::Right(visitor) => {
71968                VisitMutAstPath::visit_mut_auto_accessor(visitor, node, __ast_path)
71969            }
71970        }
71971    }
71972
71973    #[inline]
71974    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
71975        match self {
71976            swc_visit::Either::Left(visitor) => {
71977                VisitMutAstPath::visit_mut_await_expr(visitor, node, __ast_path)
71978            }
71979            swc_visit::Either::Right(visitor) => {
71980                VisitMutAstPath::visit_mut_await_expr(visitor, node, __ast_path)
71981            }
71982        }
71983    }
71984
71985    #[inline]
71986    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
71987        match self {
71988            swc_visit::Either::Left(visitor) => {
71989                VisitMutAstPath::visit_mut_big_int(visitor, node, __ast_path)
71990            }
71991            swc_visit::Either::Right(visitor) => {
71992                VisitMutAstPath::visit_mut_big_int(visitor, node, __ast_path)
71993            }
71994        }
71995    }
71996
71997    #[inline]
71998    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
71999        match self {
72000            swc_visit::Either::Left(visitor) => {
72001                VisitMutAstPath::visit_mut_big_int_value(visitor, node, __ast_path)
72002            }
72003            swc_visit::Either::Right(visitor) => {
72004                VisitMutAstPath::visit_mut_big_int_value(visitor, node, __ast_path)
72005            }
72006        }
72007    }
72008
72009    #[inline]
72010    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
72011        match self {
72012            swc_visit::Either::Left(visitor) => {
72013                VisitMutAstPath::visit_mut_bin_expr(visitor, node, __ast_path)
72014            }
72015            swc_visit::Either::Right(visitor) => {
72016                VisitMutAstPath::visit_mut_bin_expr(visitor, node, __ast_path)
72017            }
72018        }
72019    }
72020
72021    #[inline]
72022    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
72023        match self {
72024            swc_visit::Either::Left(visitor) => {
72025                VisitMutAstPath::visit_mut_binary_op(visitor, node, __ast_path)
72026            }
72027            swc_visit::Either::Right(visitor) => {
72028                VisitMutAstPath::visit_mut_binary_op(visitor, node, __ast_path)
72029            }
72030        }
72031    }
72032
72033    #[inline]
72034    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
72035        match self {
72036            swc_visit::Either::Left(visitor) => {
72037                VisitMutAstPath::visit_mut_binding_ident(visitor, node, __ast_path)
72038            }
72039            swc_visit::Either::Right(visitor) => {
72040                VisitMutAstPath::visit_mut_binding_ident(visitor, node, __ast_path)
72041            }
72042        }
72043    }
72044
72045    #[inline]
72046    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
72047        match self {
72048            swc_visit::Either::Left(visitor) => {
72049                VisitMutAstPath::visit_mut_block_stmt(visitor, node, __ast_path)
72050            }
72051            swc_visit::Either::Right(visitor) => {
72052                VisitMutAstPath::visit_mut_block_stmt(visitor, node, __ast_path)
72053            }
72054        }
72055    }
72056
72057    #[inline]
72058    fn visit_mut_block_stmt_or_expr(
72059        &mut self,
72060        node: &mut BlockStmtOrExpr,
72061        __ast_path: &mut AstKindPath,
72062    ) {
72063        match self {
72064            swc_visit::Either::Left(visitor) => {
72065                VisitMutAstPath::visit_mut_block_stmt_or_expr(visitor, node, __ast_path)
72066            }
72067            swc_visit::Either::Right(visitor) => {
72068                VisitMutAstPath::visit_mut_block_stmt_or_expr(visitor, node, __ast_path)
72069            }
72070        }
72071    }
72072
72073    #[inline]
72074    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
72075        match self {
72076            swc_visit::Either::Left(visitor) => {
72077                VisitMutAstPath::visit_mut_bool(visitor, node, __ast_path)
72078            }
72079            swc_visit::Either::Right(visitor) => {
72080                VisitMutAstPath::visit_mut_bool(visitor, node, __ast_path)
72081            }
72082        }
72083    }
72084
72085    #[inline]
72086    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
72087        match self {
72088            swc_visit::Either::Left(visitor) => {
72089                VisitMutAstPath::visit_mut_break_stmt(visitor, node, __ast_path)
72090            }
72091            swc_visit::Either::Right(visitor) => {
72092                VisitMutAstPath::visit_mut_break_stmt(visitor, node, __ast_path)
72093            }
72094        }
72095    }
72096
72097    #[inline]
72098    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
72099        match self {
72100            swc_visit::Either::Left(visitor) => {
72101                VisitMutAstPath::visit_mut_call_expr(visitor, node, __ast_path)
72102            }
72103            swc_visit::Either::Right(visitor) => {
72104                VisitMutAstPath::visit_mut_call_expr(visitor, node, __ast_path)
72105            }
72106        }
72107    }
72108
72109    #[inline]
72110    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
72111        match self {
72112            swc_visit::Either::Left(visitor) => {
72113                VisitMutAstPath::visit_mut_callee(visitor, node, __ast_path)
72114            }
72115            swc_visit::Either::Right(visitor) => {
72116                VisitMutAstPath::visit_mut_callee(visitor, node, __ast_path)
72117            }
72118        }
72119    }
72120
72121    #[inline]
72122    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
72123        match self {
72124            swc_visit::Either::Left(visitor) => {
72125                VisitMutAstPath::visit_mut_catch_clause(visitor, node, __ast_path)
72126            }
72127            swc_visit::Either::Right(visitor) => {
72128                VisitMutAstPath::visit_mut_catch_clause(visitor, node, __ast_path)
72129            }
72130        }
72131    }
72132
72133    #[inline]
72134    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
72135        match self {
72136            swc_visit::Either::Left(visitor) => {
72137                VisitMutAstPath::visit_mut_class(visitor, node, __ast_path)
72138            }
72139            swc_visit::Either::Right(visitor) => {
72140                VisitMutAstPath::visit_mut_class(visitor, node, __ast_path)
72141            }
72142        }
72143    }
72144
72145    #[inline]
72146    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
72147        match self {
72148            swc_visit::Either::Left(visitor) => {
72149                VisitMutAstPath::visit_mut_class_decl(visitor, node, __ast_path)
72150            }
72151            swc_visit::Either::Right(visitor) => {
72152                VisitMutAstPath::visit_mut_class_decl(visitor, node, __ast_path)
72153            }
72154        }
72155    }
72156
72157    #[inline]
72158    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
72159        match self {
72160            swc_visit::Either::Left(visitor) => {
72161                VisitMutAstPath::visit_mut_class_expr(visitor, node, __ast_path)
72162            }
72163            swc_visit::Either::Right(visitor) => {
72164                VisitMutAstPath::visit_mut_class_expr(visitor, node, __ast_path)
72165            }
72166        }
72167    }
72168
72169    #[inline]
72170    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
72171        match self {
72172            swc_visit::Either::Left(visitor) => {
72173                VisitMutAstPath::visit_mut_class_member(visitor, node, __ast_path)
72174            }
72175            swc_visit::Either::Right(visitor) => {
72176                VisitMutAstPath::visit_mut_class_member(visitor, node, __ast_path)
72177            }
72178        }
72179    }
72180
72181    #[inline]
72182    fn visit_mut_class_members(
72183        &mut self,
72184        node: &mut Vec<ClassMember>,
72185        __ast_path: &mut AstKindPath,
72186    ) {
72187        match self {
72188            swc_visit::Either::Left(visitor) => {
72189                VisitMutAstPath::visit_mut_class_members(visitor, node, __ast_path)
72190            }
72191            swc_visit::Either::Right(visitor) => {
72192                VisitMutAstPath::visit_mut_class_members(visitor, node, __ast_path)
72193            }
72194        }
72195    }
72196
72197    #[inline]
72198    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
72199        match self {
72200            swc_visit::Either::Left(visitor) => {
72201                VisitMutAstPath::visit_mut_class_method(visitor, node, __ast_path)
72202            }
72203            swc_visit::Either::Right(visitor) => {
72204                VisitMutAstPath::visit_mut_class_method(visitor, node, __ast_path)
72205            }
72206        }
72207    }
72208
72209    #[inline]
72210    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
72211        match self {
72212            swc_visit::Either::Left(visitor) => {
72213                VisitMutAstPath::visit_mut_class_prop(visitor, node, __ast_path)
72214            }
72215            swc_visit::Either::Right(visitor) => {
72216                VisitMutAstPath::visit_mut_class_prop(visitor, node, __ast_path)
72217            }
72218        }
72219    }
72220
72221    #[inline]
72222    fn visit_mut_computed_prop_name(
72223        &mut self,
72224        node: &mut ComputedPropName,
72225        __ast_path: &mut AstKindPath,
72226    ) {
72227        match self {
72228            swc_visit::Either::Left(visitor) => {
72229                VisitMutAstPath::visit_mut_computed_prop_name(visitor, node, __ast_path)
72230            }
72231            swc_visit::Either::Right(visitor) => {
72232                VisitMutAstPath::visit_mut_computed_prop_name(visitor, node, __ast_path)
72233            }
72234        }
72235    }
72236
72237    #[inline]
72238    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
72239        match self {
72240            swc_visit::Either::Left(visitor) => {
72241                VisitMutAstPath::visit_mut_cond_expr(visitor, node, __ast_path)
72242            }
72243            swc_visit::Either::Right(visitor) => {
72244                VisitMutAstPath::visit_mut_cond_expr(visitor, node, __ast_path)
72245            }
72246        }
72247    }
72248
72249    #[inline]
72250    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
72251        match self {
72252            swc_visit::Either::Left(visitor) => {
72253                VisitMutAstPath::visit_mut_constructor(visitor, node, __ast_path)
72254            }
72255            swc_visit::Either::Right(visitor) => {
72256                VisitMutAstPath::visit_mut_constructor(visitor, node, __ast_path)
72257            }
72258        }
72259    }
72260
72261    #[inline]
72262    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
72263        match self {
72264            swc_visit::Either::Left(visitor) => {
72265                VisitMutAstPath::visit_mut_continue_stmt(visitor, node, __ast_path)
72266            }
72267            swc_visit::Either::Right(visitor) => {
72268                VisitMutAstPath::visit_mut_continue_stmt(visitor, node, __ast_path)
72269            }
72270        }
72271    }
72272
72273    #[inline]
72274    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
72275        match self {
72276            swc_visit::Either::Left(visitor) => {
72277                VisitMutAstPath::visit_mut_debugger_stmt(visitor, node, __ast_path)
72278            }
72279            swc_visit::Either::Right(visitor) => {
72280                VisitMutAstPath::visit_mut_debugger_stmt(visitor, node, __ast_path)
72281            }
72282        }
72283    }
72284
72285    #[inline]
72286    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
72287        match self {
72288            swc_visit::Either::Left(visitor) => {
72289                VisitMutAstPath::visit_mut_decl(visitor, node, __ast_path)
72290            }
72291            swc_visit::Either::Right(visitor) => {
72292                VisitMutAstPath::visit_mut_decl(visitor, node, __ast_path)
72293            }
72294        }
72295    }
72296
72297    #[inline]
72298    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
72299        match self {
72300            swc_visit::Either::Left(visitor) => {
72301                VisitMutAstPath::visit_mut_decorator(visitor, node, __ast_path)
72302            }
72303            swc_visit::Either::Right(visitor) => {
72304                VisitMutAstPath::visit_mut_decorator(visitor, node, __ast_path)
72305            }
72306        }
72307    }
72308
72309    #[inline]
72310    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
72311        match self {
72312            swc_visit::Either::Left(visitor) => {
72313                VisitMutAstPath::visit_mut_decorators(visitor, node, __ast_path)
72314            }
72315            swc_visit::Either::Right(visitor) => {
72316                VisitMutAstPath::visit_mut_decorators(visitor, node, __ast_path)
72317            }
72318        }
72319    }
72320
72321    #[inline]
72322    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
72323        match self {
72324            swc_visit::Either::Left(visitor) => {
72325                VisitMutAstPath::visit_mut_default_decl(visitor, node, __ast_path)
72326            }
72327            swc_visit::Either::Right(visitor) => {
72328                VisitMutAstPath::visit_mut_default_decl(visitor, node, __ast_path)
72329            }
72330        }
72331    }
72332
72333    #[inline]
72334    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
72335        match self {
72336            swc_visit::Either::Left(visitor) => {
72337                VisitMutAstPath::visit_mut_do_while_stmt(visitor, node, __ast_path)
72338            }
72339            swc_visit::Either::Right(visitor) => {
72340                VisitMutAstPath::visit_mut_do_while_stmt(visitor, node, __ast_path)
72341            }
72342        }
72343    }
72344
72345    #[inline]
72346    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
72347        match self {
72348            swc_visit::Either::Left(visitor) => {
72349                VisitMutAstPath::visit_mut_empty_stmt(visitor, node, __ast_path)
72350            }
72351            swc_visit::Either::Right(visitor) => {
72352                VisitMutAstPath::visit_mut_empty_stmt(visitor, node, __ast_path)
72353            }
72354        }
72355    }
72356
72357    #[inline]
72358    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
72359        match self {
72360            swc_visit::Either::Left(visitor) => {
72361                VisitMutAstPath::visit_mut_export_all(visitor, node, __ast_path)
72362            }
72363            swc_visit::Either::Right(visitor) => {
72364                VisitMutAstPath::visit_mut_export_all(visitor, node, __ast_path)
72365            }
72366        }
72367    }
72368
72369    #[inline]
72370    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
72371        match self {
72372            swc_visit::Either::Left(visitor) => {
72373                VisitMutAstPath::visit_mut_export_decl(visitor, node, __ast_path)
72374            }
72375            swc_visit::Either::Right(visitor) => {
72376                VisitMutAstPath::visit_mut_export_decl(visitor, node, __ast_path)
72377            }
72378        }
72379    }
72380
72381    #[inline]
72382    fn visit_mut_export_default_decl(
72383        &mut self,
72384        node: &mut ExportDefaultDecl,
72385        __ast_path: &mut AstKindPath,
72386    ) {
72387        match self {
72388            swc_visit::Either::Left(visitor) => {
72389                VisitMutAstPath::visit_mut_export_default_decl(visitor, node, __ast_path)
72390            }
72391            swc_visit::Either::Right(visitor) => {
72392                VisitMutAstPath::visit_mut_export_default_decl(visitor, node, __ast_path)
72393            }
72394        }
72395    }
72396
72397    #[inline]
72398    fn visit_mut_export_default_expr(
72399        &mut self,
72400        node: &mut ExportDefaultExpr,
72401        __ast_path: &mut AstKindPath,
72402    ) {
72403        match self {
72404            swc_visit::Either::Left(visitor) => {
72405                VisitMutAstPath::visit_mut_export_default_expr(visitor, node, __ast_path)
72406            }
72407            swc_visit::Either::Right(visitor) => {
72408                VisitMutAstPath::visit_mut_export_default_expr(visitor, node, __ast_path)
72409            }
72410        }
72411    }
72412
72413    #[inline]
72414    fn visit_mut_export_default_specifier(
72415        &mut self,
72416        node: &mut ExportDefaultSpecifier,
72417        __ast_path: &mut AstKindPath,
72418    ) {
72419        match self {
72420            swc_visit::Either::Left(visitor) => {
72421                VisitMutAstPath::visit_mut_export_default_specifier(visitor, node, __ast_path)
72422            }
72423            swc_visit::Either::Right(visitor) => {
72424                VisitMutAstPath::visit_mut_export_default_specifier(visitor, node, __ast_path)
72425            }
72426        }
72427    }
72428
72429    #[inline]
72430    fn visit_mut_export_named_specifier(
72431        &mut self,
72432        node: &mut ExportNamedSpecifier,
72433        __ast_path: &mut AstKindPath,
72434    ) {
72435        match self {
72436            swc_visit::Either::Left(visitor) => {
72437                VisitMutAstPath::visit_mut_export_named_specifier(visitor, node, __ast_path)
72438            }
72439            swc_visit::Either::Right(visitor) => {
72440                VisitMutAstPath::visit_mut_export_named_specifier(visitor, node, __ast_path)
72441            }
72442        }
72443    }
72444
72445    #[inline]
72446    fn visit_mut_export_namespace_specifier(
72447        &mut self,
72448        node: &mut ExportNamespaceSpecifier,
72449        __ast_path: &mut AstKindPath,
72450    ) {
72451        match self {
72452            swc_visit::Either::Left(visitor) => {
72453                VisitMutAstPath::visit_mut_export_namespace_specifier(visitor, node, __ast_path)
72454            }
72455            swc_visit::Either::Right(visitor) => {
72456                VisitMutAstPath::visit_mut_export_namespace_specifier(visitor, node, __ast_path)
72457            }
72458        }
72459    }
72460
72461    #[inline]
72462    fn visit_mut_export_specifier(
72463        &mut self,
72464        node: &mut ExportSpecifier,
72465        __ast_path: &mut AstKindPath,
72466    ) {
72467        match self {
72468            swc_visit::Either::Left(visitor) => {
72469                VisitMutAstPath::visit_mut_export_specifier(visitor, node, __ast_path)
72470            }
72471            swc_visit::Either::Right(visitor) => {
72472                VisitMutAstPath::visit_mut_export_specifier(visitor, node, __ast_path)
72473            }
72474        }
72475    }
72476
72477    #[inline]
72478    fn visit_mut_export_specifiers(
72479        &mut self,
72480        node: &mut Vec<ExportSpecifier>,
72481        __ast_path: &mut AstKindPath,
72482    ) {
72483        match self {
72484            swc_visit::Either::Left(visitor) => {
72485                VisitMutAstPath::visit_mut_export_specifiers(visitor, node, __ast_path)
72486            }
72487            swc_visit::Either::Right(visitor) => {
72488                VisitMutAstPath::visit_mut_export_specifiers(visitor, node, __ast_path)
72489            }
72490        }
72491    }
72492
72493    #[inline]
72494    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
72495        match self {
72496            swc_visit::Either::Left(visitor) => {
72497                VisitMutAstPath::visit_mut_expr(visitor, node, __ast_path)
72498            }
72499            swc_visit::Either::Right(visitor) => {
72500                VisitMutAstPath::visit_mut_expr(visitor, node, __ast_path)
72501            }
72502        }
72503    }
72504
72505    #[inline]
72506    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
72507        match self {
72508            swc_visit::Either::Left(visitor) => {
72509                VisitMutAstPath::visit_mut_expr_or_spread(visitor, node, __ast_path)
72510            }
72511            swc_visit::Either::Right(visitor) => {
72512                VisitMutAstPath::visit_mut_expr_or_spread(visitor, node, __ast_path)
72513            }
72514        }
72515    }
72516
72517    #[inline]
72518    fn visit_mut_expr_or_spreads(
72519        &mut self,
72520        node: &mut Vec<ExprOrSpread>,
72521        __ast_path: &mut AstKindPath,
72522    ) {
72523        match self {
72524            swc_visit::Either::Left(visitor) => {
72525                VisitMutAstPath::visit_mut_expr_or_spreads(visitor, node, __ast_path)
72526            }
72527            swc_visit::Either::Right(visitor) => {
72528                VisitMutAstPath::visit_mut_expr_or_spreads(visitor, node, __ast_path)
72529            }
72530        }
72531    }
72532
72533    #[inline]
72534    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
72535        match self {
72536            swc_visit::Either::Left(visitor) => {
72537                VisitMutAstPath::visit_mut_expr_stmt(visitor, node, __ast_path)
72538            }
72539            swc_visit::Either::Right(visitor) => {
72540                VisitMutAstPath::visit_mut_expr_stmt(visitor, node, __ast_path)
72541            }
72542        }
72543    }
72544
72545    #[inline]
72546    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
72547        match self {
72548            swc_visit::Either::Left(visitor) => {
72549                VisitMutAstPath::visit_mut_exprs(visitor, node, __ast_path)
72550            }
72551            swc_visit::Either::Right(visitor) => {
72552                VisitMutAstPath::visit_mut_exprs(visitor, node, __ast_path)
72553            }
72554        }
72555    }
72556
72557    #[inline]
72558    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
72559        match self {
72560            swc_visit::Either::Left(visitor) => {
72561                VisitMutAstPath::visit_mut_fn_decl(visitor, node, __ast_path)
72562            }
72563            swc_visit::Either::Right(visitor) => {
72564                VisitMutAstPath::visit_mut_fn_decl(visitor, node, __ast_path)
72565            }
72566        }
72567    }
72568
72569    #[inline]
72570    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
72571        match self {
72572            swc_visit::Either::Left(visitor) => {
72573                VisitMutAstPath::visit_mut_fn_expr(visitor, node, __ast_path)
72574            }
72575            swc_visit::Either::Right(visitor) => {
72576                VisitMutAstPath::visit_mut_fn_expr(visitor, node, __ast_path)
72577            }
72578        }
72579    }
72580
72581    #[inline]
72582    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
72583        match self {
72584            swc_visit::Either::Left(visitor) => {
72585                VisitMutAstPath::visit_mut_for_head(visitor, node, __ast_path)
72586            }
72587            swc_visit::Either::Right(visitor) => {
72588                VisitMutAstPath::visit_mut_for_head(visitor, node, __ast_path)
72589            }
72590        }
72591    }
72592
72593    #[inline]
72594    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
72595        match self {
72596            swc_visit::Either::Left(visitor) => {
72597                VisitMutAstPath::visit_mut_for_in_stmt(visitor, node, __ast_path)
72598            }
72599            swc_visit::Either::Right(visitor) => {
72600                VisitMutAstPath::visit_mut_for_in_stmt(visitor, node, __ast_path)
72601            }
72602        }
72603    }
72604
72605    #[inline]
72606    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
72607        match self {
72608            swc_visit::Either::Left(visitor) => {
72609                VisitMutAstPath::visit_mut_for_of_stmt(visitor, node, __ast_path)
72610            }
72611            swc_visit::Either::Right(visitor) => {
72612                VisitMutAstPath::visit_mut_for_of_stmt(visitor, node, __ast_path)
72613            }
72614        }
72615    }
72616
72617    #[inline]
72618    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
72619        match self {
72620            swc_visit::Either::Left(visitor) => {
72621                VisitMutAstPath::visit_mut_for_stmt(visitor, node, __ast_path)
72622            }
72623            swc_visit::Either::Right(visitor) => {
72624                VisitMutAstPath::visit_mut_for_stmt(visitor, node, __ast_path)
72625            }
72626        }
72627    }
72628
72629    #[inline]
72630    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
72631        match self {
72632            swc_visit::Either::Left(visitor) => {
72633                VisitMutAstPath::visit_mut_function(visitor, node, __ast_path)
72634            }
72635            swc_visit::Either::Right(visitor) => {
72636                VisitMutAstPath::visit_mut_function(visitor, node, __ast_path)
72637            }
72638        }
72639    }
72640
72641    #[inline]
72642    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
72643        match self {
72644            swc_visit::Either::Left(visitor) => {
72645                VisitMutAstPath::visit_mut_getter_prop(visitor, node, __ast_path)
72646            }
72647            swc_visit::Either::Right(visitor) => {
72648                VisitMutAstPath::visit_mut_getter_prop(visitor, node, __ast_path)
72649            }
72650        }
72651    }
72652
72653    #[inline]
72654    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
72655        match self {
72656            swc_visit::Either::Left(visitor) => {
72657                VisitMutAstPath::visit_mut_ident(visitor, node, __ast_path)
72658            }
72659            swc_visit::Either::Right(visitor) => {
72660                VisitMutAstPath::visit_mut_ident(visitor, node, __ast_path)
72661            }
72662        }
72663    }
72664
72665    #[inline]
72666    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
72667        match self {
72668            swc_visit::Either::Left(visitor) => {
72669                VisitMutAstPath::visit_mut_ident_name(visitor, node, __ast_path)
72670            }
72671            swc_visit::Either::Right(visitor) => {
72672                VisitMutAstPath::visit_mut_ident_name(visitor, node, __ast_path)
72673            }
72674        }
72675    }
72676
72677    #[inline]
72678    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
72679        match self {
72680            swc_visit::Either::Left(visitor) => {
72681                VisitMutAstPath::visit_mut_if_stmt(visitor, node, __ast_path)
72682            }
72683            swc_visit::Either::Right(visitor) => {
72684                VisitMutAstPath::visit_mut_if_stmt(visitor, node, __ast_path)
72685            }
72686        }
72687    }
72688
72689    #[inline]
72690    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
72691        match self {
72692            swc_visit::Either::Left(visitor) => {
72693                VisitMutAstPath::visit_mut_import(visitor, node, __ast_path)
72694            }
72695            swc_visit::Either::Right(visitor) => {
72696                VisitMutAstPath::visit_mut_import(visitor, node, __ast_path)
72697            }
72698        }
72699    }
72700
72701    #[inline]
72702    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
72703        match self {
72704            swc_visit::Either::Left(visitor) => {
72705                VisitMutAstPath::visit_mut_import_decl(visitor, node, __ast_path)
72706            }
72707            swc_visit::Either::Right(visitor) => {
72708                VisitMutAstPath::visit_mut_import_decl(visitor, node, __ast_path)
72709            }
72710        }
72711    }
72712
72713    #[inline]
72714    fn visit_mut_import_default_specifier(
72715        &mut self,
72716        node: &mut ImportDefaultSpecifier,
72717        __ast_path: &mut AstKindPath,
72718    ) {
72719        match self {
72720            swc_visit::Either::Left(visitor) => {
72721                VisitMutAstPath::visit_mut_import_default_specifier(visitor, node, __ast_path)
72722            }
72723            swc_visit::Either::Right(visitor) => {
72724                VisitMutAstPath::visit_mut_import_default_specifier(visitor, node, __ast_path)
72725            }
72726        }
72727    }
72728
72729    #[inline]
72730    fn visit_mut_import_named_specifier(
72731        &mut self,
72732        node: &mut ImportNamedSpecifier,
72733        __ast_path: &mut AstKindPath,
72734    ) {
72735        match self {
72736            swc_visit::Either::Left(visitor) => {
72737                VisitMutAstPath::visit_mut_import_named_specifier(visitor, node, __ast_path)
72738            }
72739            swc_visit::Either::Right(visitor) => {
72740                VisitMutAstPath::visit_mut_import_named_specifier(visitor, node, __ast_path)
72741            }
72742        }
72743    }
72744
72745    #[inline]
72746    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
72747        match self {
72748            swc_visit::Either::Left(visitor) => {
72749                VisitMutAstPath::visit_mut_import_phase(visitor, node, __ast_path)
72750            }
72751            swc_visit::Either::Right(visitor) => {
72752                VisitMutAstPath::visit_mut_import_phase(visitor, node, __ast_path)
72753            }
72754        }
72755    }
72756
72757    #[inline]
72758    fn visit_mut_import_specifier(
72759        &mut self,
72760        node: &mut ImportSpecifier,
72761        __ast_path: &mut AstKindPath,
72762    ) {
72763        match self {
72764            swc_visit::Either::Left(visitor) => {
72765                VisitMutAstPath::visit_mut_import_specifier(visitor, node, __ast_path)
72766            }
72767            swc_visit::Either::Right(visitor) => {
72768                VisitMutAstPath::visit_mut_import_specifier(visitor, node, __ast_path)
72769            }
72770        }
72771    }
72772
72773    #[inline]
72774    fn visit_mut_import_specifiers(
72775        &mut self,
72776        node: &mut Vec<ImportSpecifier>,
72777        __ast_path: &mut AstKindPath,
72778    ) {
72779        match self {
72780            swc_visit::Either::Left(visitor) => {
72781                VisitMutAstPath::visit_mut_import_specifiers(visitor, node, __ast_path)
72782            }
72783            swc_visit::Either::Right(visitor) => {
72784                VisitMutAstPath::visit_mut_import_specifiers(visitor, node, __ast_path)
72785            }
72786        }
72787    }
72788
72789    #[inline]
72790    fn visit_mut_import_star_as_specifier(
72791        &mut self,
72792        node: &mut ImportStarAsSpecifier,
72793        __ast_path: &mut AstKindPath,
72794    ) {
72795        match self {
72796            swc_visit::Either::Left(visitor) => {
72797                VisitMutAstPath::visit_mut_import_star_as_specifier(visitor, node, __ast_path)
72798            }
72799            swc_visit::Either::Right(visitor) => {
72800                VisitMutAstPath::visit_mut_import_star_as_specifier(visitor, node, __ast_path)
72801            }
72802        }
72803    }
72804
72805    #[inline]
72806    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
72807        match self {
72808            swc_visit::Either::Left(visitor) => {
72809                VisitMutAstPath::visit_mut_import_with(visitor, node, __ast_path)
72810            }
72811            swc_visit::Either::Right(visitor) => {
72812                VisitMutAstPath::visit_mut_import_with(visitor, node, __ast_path)
72813            }
72814        }
72815    }
72816
72817    #[inline]
72818    fn visit_mut_import_with_item(
72819        &mut self,
72820        node: &mut ImportWithItem,
72821        __ast_path: &mut AstKindPath,
72822    ) {
72823        match self {
72824            swc_visit::Either::Left(visitor) => {
72825                VisitMutAstPath::visit_mut_import_with_item(visitor, node, __ast_path)
72826            }
72827            swc_visit::Either::Right(visitor) => {
72828                VisitMutAstPath::visit_mut_import_with_item(visitor, node, __ast_path)
72829            }
72830        }
72831    }
72832
72833    #[inline]
72834    fn visit_mut_import_with_items(
72835        &mut self,
72836        node: &mut Vec<ImportWithItem>,
72837        __ast_path: &mut AstKindPath,
72838    ) {
72839        match self {
72840            swc_visit::Either::Left(visitor) => {
72841                VisitMutAstPath::visit_mut_import_with_items(visitor, node, __ast_path)
72842            }
72843            swc_visit::Either::Right(visitor) => {
72844                VisitMutAstPath::visit_mut_import_with_items(visitor, node, __ast_path)
72845            }
72846        }
72847    }
72848
72849    #[inline]
72850    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
72851        match self {
72852            swc_visit::Either::Left(visitor) => {
72853                VisitMutAstPath::visit_mut_invalid(visitor, node, __ast_path)
72854            }
72855            swc_visit::Either::Right(visitor) => {
72856                VisitMutAstPath::visit_mut_invalid(visitor, node, __ast_path)
72857            }
72858        }
72859    }
72860
72861    #[inline]
72862    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
72863        match self {
72864            swc_visit::Either::Left(visitor) => {
72865                VisitMutAstPath::visit_mut_jsx_attr(visitor, node, __ast_path)
72866            }
72867            swc_visit::Either::Right(visitor) => {
72868                VisitMutAstPath::visit_mut_jsx_attr(visitor, node, __ast_path)
72869            }
72870        }
72871    }
72872
72873    #[inline]
72874    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
72875        match self {
72876            swc_visit::Either::Left(visitor) => {
72877                VisitMutAstPath::visit_mut_jsx_attr_name(visitor, node, __ast_path)
72878            }
72879            swc_visit::Either::Right(visitor) => {
72880                VisitMutAstPath::visit_mut_jsx_attr_name(visitor, node, __ast_path)
72881            }
72882        }
72883    }
72884
72885    #[inline]
72886    fn visit_mut_jsx_attr_or_spread(
72887        &mut self,
72888        node: &mut JSXAttrOrSpread,
72889        __ast_path: &mut AstKindPath,
72890    ) {
72891        match self {
72892            swc_visit::Either::Left(visitor) => {
72893                VisitMutAstPath::visit_mut_jsx_attr_or_spread(visitor, node, __ast_path)
72894            }
72895            swc_visit::Either::Right(visitor) => {
72896                VisitMutAstPath::visit_mut_jsx_attr_or_spread(visitor, node, __ast_path)
72897            }
72898        }
72899    }
72900
72901    #[inline]
72902    fn visit_mut_jsx_attr_or_spreads(
72903        &mut self,
72904        node: &mut Vec<JSXAttrOrSpread>,
72905        __ast_path: &mut AstKindPath,
72906    ) {
72907        match self {
72908            swc_visit::Either::Left(visitor) => {
72909                VisitMutAstPath::visit_mut_jsx_attr_or_spreads(visitor, node, __ast_path)
72910            }
72911            swc_visit::Either::Right(visitor) => {
72912                VisitMutAstPath::visit_mut_jsx_attr_or_spreads(visitor, node, __ast_path)
72913            }
72914        }
72915    }
72916
72917    #[inline]
72918    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
72919        match self {
72920            swc_visit::Either::Left(visitor) => {
72921                VisitMutAstPath::visit_mut_jsx_attr_value(visitor, node, __ast_path)
72922            }
72923            swc_visit::Either::Right(visitor) => {
72924                VisitMutAstPath::visit_mut_jsx_attr_value(visitor, node, __ast_path)
72925            }
72926        }
72927    }
72928
72929    #[inline]
72930    fn visit_mut_jsx_closing_element(
72931        &mut self,
72932        node: &mut JSXClosingElement,
72933        __ast_path: &mut AstKindPath,
72934    ) {
72935        match self {
72936            swc_visit::Either::Left(visitor) => {
72937                VisitMutAstPath::visit_mut_jsx_closing_element(visitor, node, __ast_path)
72938            }
72939            swc_visit::Either::Right(visitor) => {
72940                VisitMutAstPath::visit_mut_jsx_closing_element(visitor, node, __ast_path)
72941            }
72942        }
72943    }
72944
72945    #[inline]
72946    fn visit_mut_jsx_closing_fragment(
72947        &mut self,
72948        node: &mut JSXClosingFragment,
72949        __ast_path: &mut AstKindPath,
72950    ) {
72951        match self {
72952            swc_visit::Either::Left(visitor) => {
72953                VisitMutAstPath::visit_mut_jsx_closing_fragment(visitor, node, __ast_path)
72954            }
72955            swc_visit::Either::Right(visitor) => {
72956                VisitMutAstPath::visit_mut_jsx_closing_fragment(visitor, node, __ast_path)
72957            }
72958        }
72959    }
72960
72961    #[inline]
72962    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
72963        match self {
72964            swc_visit::Either::Left(visitor) => {
72965                VisitMutAstPath::visit_mut_jsx_element(visitor, node, __ast_path)
72966            }
72967            swc_visit::Either::Right(visitor) => {
72968                VisitMutAstPath::visit_mut_jsx_element(visitor, node, __ast_path)
72969            }
72970        }
72971    }
72972
72973    #[inline]
72974    fn visit_mut_jsx_element_child(
72975        &mut self,
72976        node: &mut JSXElementChild,
72977        __ast_path: &mut AstKindPath,
72978    ) {
72979        match self {
72980            swc_visit::Either::Left(visitor) => {
72981                VisitMutAstPath::visit_mut_jsx_element_child(visitor, node, __ast_path)
72982            }
72983            swc_visit::Either::Right(visitor) => {
72984                VisitMutAstPath::visit_mut_jsx_element_child(visitor, node, __ast_path)
72985            }
72986        }
72987    }
72988
72989    #[inline]
72990    fn visit_mut_jsx_element_childs(
72991        &mut self,
72992        node: &mut Vec<JSXElementChild>,
72993        __ast_path: &mut AstKindPath,
72994    ) {
72995        match self {
72996            swc_visit::Either::Left(visitor) => {
72997                VisitMutAstPath::visit_mut_jsx_element_childs(visitor, node, __ast_path)
72998            }
72999            swc_visit::Either::Right(visitor) => {
73000                VisitMutAstPath::visit_mut_jsx_element_childs(visitor, node, __ast_path)
73001            }
73002        }
73003    }
73004
73005    #[inline]
73006    fn visit_mut_jsx_element_name(
73007        &mut self,
73008        node: &mut JSXElementName,
73009        __ast_path: &mut AstKindPath,
73010    ) {
73011        match self {
73012            swc_visit::Either::Left(visitor) => {
73013                VisitMutAstPath::visit_mut_jsx_element_name(visitor, node, __ast_path)
73014            }
73015            swc_visit::Either::Right(visitor) => {
73016                VisitMutAstPath::visit_mut_jsx_element_name(visitor, node, __ast_path)
73017            }
73018        }
73019    }
73020
73021    #[inline]
73022    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
73023        match self {
73024            swc_visit::Either::Left(visitor) => {
73025                VisitMutAstPath::visit_mut_jsx_empty_expr(visitor, node, __ast_path)
73026            }
73027            swc_visit::Either::Right(visitor) => {
73028                VisitMutAstPath::visit_mut_jsx_empty_expr(visitor, node, __ast_path)
73029            }
73030        }
73031    }
73032
73033    #[inline]
73034    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
73035        match self {
73036            swc_visit::Either::Left(visitor) => {
73037                VisitMutAstPath::visit_mut_jsx_expr(visitor, node, __ast_path)
73038            }
73039            swc_visit::Either::Right(visitor) => {
73040                VisitMutAstPath::visit_mut_jsx_expr(visitor, node, __ast_path)
73041            }
73042        }
73043    }
73044
73045    #[inline]
73046    fn visit_mut_jsx_expr_container(
73047        &mut self,
73048        node: &mut JSXExprContainer,
73049        __ast_path: &mut AstKindPath,
73050    ) {
73051        match self {
73052            swc_visit::Either::Left(visitor) => {
73053                VisitMutAstPath::visit_mut_jsx_expr_container(visitor, node, __ast_path)
73054            }
73055            swc_visit::Either::Right(visitor) => {
73056                VisitMutAstPath::visit_mut_jsx_expr_container(visitor, node, __ast_path)
73057            }
73058        }
73059    }
73060
73061    #[inline]
73062    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
73063        match self {
73064            swc_visit::Either::Left(visitor) => {
73065                VisitMutAstPath::visit_mut_jsx_fragment(visitor, node, __ast_path)
73066            }
73067            swc_visit::Either::Right(visitor) => {
73068                VisitMutAstPath::visit_mut_jsx_fragment(visitor, node, __ast_path)
73069            }
73070        }
73071    }
73072
73073    #[inline]
73074    fn visit_mut_jsx_member_expr(
73075        &mut self,
73076        node: &mut JSXMemberExpr,
73077        __ast_path: &mut AstKindPath,
73078    ) {
73079        match self {
73080            swc_visit::Either::Left(visitor) => {
73081                VisitMutAstPath::visit_mut_jsx_member_expr(visitor, node, __ast_path)
73082            }
73083            swc_visit::Either::Right(visitor) => {
73084                VisitMutAstPath::visit_mut_jsx_member_expr(visitor, node, __ast_path)
73085            }
73086        }
73087    }
73088
73089    #[inline]
73090    fn visit_mut_jsx_namespaced_name(
73091        &mut self,
73092        node: &mut JSXNamespacedName,
73093        __ast_path: &mut AstKindPath,
73094    ) {
73095        match self {
73096            swc_visit::Either::Left(visitor) => {
73097                VisitMutAstPath::visit_mut_jsx_namespaced_name(visitor, node, __ast_path)
73098            }
73099            swc_visit::Either::Right(visitor) => {
73100                VisitMutAstPath::visit_mut_jsx_namespaced_name(visitor, node, __ast_path)
73101            }
73102        }
73103    }
73104
73105    #[inline]
73106    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
73107        match self {
73108            swc_visit::Either::Left(visitor) => {
73109                VisitMutAstPath::visit_mut_jsx_object(visitor, node, __ast_path)
73110            }
73111            swc_visit::Either::Right(visitor) => {
73112                VisitMutAstPath::visit_mut_jsx_object(visitor, node, __ast_path)
73113            }
73114        }
73115    }
73116
73117    #[inline]
73118    fn visit_mut_jsx_opening_element(
73119        &mut self,
73120        node: &mut JSXOpeningElement,
73121        __ast_path: &mut AstKindPath,
73122    ) {
73123        match self {
73124            swc_visit::Either::Left(visitor) => {
73125                VisitMutAstPath::visit_mut_jsx_opening_element(visitor, node, __ast_path)
73126            }
73127            swc_visit::Either::Right(visitor) => {
73128                VisitMutAstPath::visit_mut_jsx_opening_element(visitor, node, __ast_path)
73129            }
73130        }
73131    }
73132
73133    #[inline]
73134    fn visit_mut_jsx_opening_fragment(
73135        &mut self,
73136        node: &mut JSXOpeningFragment,
73137        __ast_path: &mut AstKindPath,
73138    ) {
73139        match self {
73140            swc_visit::Either::Left(visitor) => {
73141                VisitMutAstPath::visit_mut_jsx_opening_fragment(visitor, node, __ast_path)
73142            }
73143            swc_visit::Either::Right(visitor) => {
73144                VisitMutAstPath::visit_mut_jsx_opening_fragment(visitor, node, __ast_path)
73145            }
73146        }
73147    }
73148
73149    #[inline]
73150    fn visit_mut_jsx_spread_child(
73151        &mut self,
73152        node: &mut JSXSpreadChild,
73153        __ast_path: &mut AstKindPath,
73154    ) {
73155        match self {
73156            swc_visit::Either::Left(visitor) => {
73157                VisitMutAstPath::visit_mut_jsx_spread_child(visitor, node, __ast_path)
73158            }
73159            swc_visit::Either::Right(visitor) => {
73160                VisitMutAstPath::visit_mut_jsx_spread_child(visitor, node, __ast_path)
73161            }
73162        }
73163    }
73164
73165    #[inline]
73166    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
73167        match self {
73168            swc_visit::Either::Left(visitor) => {
73169                VisitMutAstPath::visit_mut_jsx_text(visitor, node, __ast_path)
73170            }
73171            swc_visit::Either::Right(visitor) => {
73172                VisitMutAstPath::visit_mut_jsx_text(visitor, node, __ast_path)
73173            }
73174        }
73175    }
73176
73177    #[inline]
73178    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
73179        match self {
73180            swc_visit::Either::Left(visitor) => {
73181                VisitMutAstPath::visit_mut_key(visitor, node, __ast_path)
73182            }
73183            swc_visit::Either::Right(visitor) => {
73184                VisitMutAstPath::visit_mut_key(visitor, node, __ast_path)
73185            }
73186        }
73187    }
73188
73189    #[inline]
73190    fn visit_mut_key_value_pat_prop(
73191        &mut self,
73192        node: &mut KeyValuePatProp,
73193        __ast_path: &mut AstKindPath,
73194    ) {
73195        match self {
73196            swc_visit::Either::Left(visitor) => {
73197                VisitMutAstPath::visit_mut_key_value_pat_prop(visitor, node, __ast_path)
73198            }
73199            swc_visit::Either::Right(visitor) => {
73200                VisitMutAstPath::visit_mut_key_value_pat_prop(visitor, node, __ast_path)
73201            }
73202        }
73203    }
73204
73205    #[inline]
73206    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
73207        match self {
73208            swc_visit::Either::Left(visitor) => {
73209                VisitMutAstPath::visit_mut_key_value_prop(visitor, node, __ast_path)
73210            }
73211            swc_visit::Either::Right(visitor) => {
73212                VisitMutAstPath::visit_mut_key_value_prop(visitor, node, __ast_path)
73213            }
73214        }
73215    }
73216
73217    #[inline]
73218    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
73219        match self {
73220            swc_visit::Either::Left(visitor) => {
73221                VisitMutAstPath::visit_mut_labeled_stmt(visitor, node, __ast_path)
73222            }
73223            swc_visit::Either::Right(visitor) => {
73224                VisitMutAstPath::visit_mut_labeled_stmt(visitor, node, __ast_path)
73225            }
73226        }
73227    }
73228
73229    #[inline]
73230    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
73231        match self {
73232            swc_visit::Either::Left(visitor) => {
73233                VisitMutAstPath::visit_mut_lit(visitor, node, __ast_path)
73234            }
73235            swc_visit::Either::Right(visitor) => {
73236                VisitMutAstPath::visit_mut_lit(visitor, node, __ast_path)
73237            }
73238        }
73239    }
73240
73241    #[inline]
73242    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
73243        match self {
73244            swc_visit::Either::Left(visitor) => {
73245                VisitMutAstPath::visit_mut_member_expr(visitor, node, __ast_path)
73246            }
73247            swc_visit::Either::Right(visitor) => {
73248                VisitMutAstPath::visit_mut_member_expr(visitor, node, __ast_path)
73249            }
73250        }
73251    }
73252
73253    #[inline]
73254    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
73255        match self {
73256            swc_visit::Either::Left(visitor) => {
73257                VisitMutAstPath::visit_mut_member_prop(visitor, node, __ast_path)
73258            }
73259            swc_visit::Either::Right(visitor) => {
73260                VisitMutAstPath::visit_mut_member_prop(visitor, node, __ast_path)
73261            }
73262        }
73263    }
73264
73265    #[inline]
73266    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
73267        match self {
73268            swc_visit::Either::Left(visitor) => {
73269                VisitMutAstPath::visit_mut_meta_prop_expr(visitor, node, __ast_path)
73270            }
73271            swc_visit::Either::Right(visitor) => {
73272                VisitMutAstPath::visit_mut_meta_prop_expr(visitor, node, __ast_path)
73273            }
73274        }
73275    }
73276
73277    #[inline]
73278    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
73279        match self {
73280            swc_visit::Either::Left(visitor) => {
73281                VisitMutAstPath::visit_mut_meta_prop_kind(visitor, node, __ast_path)
73282            }
73283            swc_visit::Either::Right(visitor) => {
73284                VisitMutAstPath::visit_mut_meta_prop_kind(visitor, node, __ast_path)
73285            }
73286        }
73287    }
73288
73289    #[inline]
73290    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
73291        match self {
73292            swc_visit::Either::Left(visitor) => {
73293                VisitMutAstPath::visit_mut_method_kind(visitor, node, __ast_path)
73294            }
73295            swc_visit::Either::Right(visitor) => {
73296                VisitMutAstPath::visit_mut_method_kind(visitor, node, __ast_path)
73297            }
73298        }
73299    }
73300
73301    #[inline]
73302    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
73303        match self {
73304            swc_visit::Either::Left(visitor) => {
73305                VisitMutAstPath::visit_mut_method_prop(visitor, node, __ast_path)
73306            }
73307            swc_visit::Either::Right(visitor) => {
73308                VisitMutAstPath::visit_mut_method_prop(visitor, node, __ast_path)
73309            }
73310        }
73311    }
73312
73313    #[inline]
73314    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
73315        match self {
73316            swc_visit::Either::Left(visitor) => {
73317                VisitMutAstPath::visit_mut_module(visitor, node, __ast_path)
73318            }
73319            swc_visit::Either::Right(visitor) => {
73320                VisitMutAstPath::visit_mut_module(visitor, node, __ast_path)
73321            }
73322        }
73323    }
73324
73325    #[inline]
73326    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
73327        match self {
73328            swc_visit::Either::Left(visitor) => {
73329                VisitMutAstPath::visit_mut_module_decl(visitor, node, __ast_path)
73330            }
73331            swc_visit::Either::Right(visitor) => {
73332                VisitMutAstPath::visit_mut_module_decl(visitor, node, __ast_path)
73333            }
73334        }
73335    }
73336
73337    #[inline]
73338    fn visit_mut_module_export_name(
73339        &mut self,
73340        node: &mut ModuleExportName,
73341        __ast_path: &mut AstKindPath,
73342    ) {
73343        match self {
73344            swc_visit::Either::Left(visitor) => {
73345                VisitMutAstPath::visit_mut_module_export_name(visitor, node, __ast_path)
73346            }
73347            swc_visit::Either::Right(visitor) => {
73348                VisitMutAstPath::visit_mut_module_export_name(visitor, node, __ast_path)
73349            }
73350        }
73351    }
73352
73353    #[inline]
73354    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
73355        match self {
73356            swc_visit::Either::Left(visitor) => {
73357                VisitMutAstPath::visit_mut_module_item(visitor, node, __ast_path)
73358            }
73359            swc_visit::Either::Right(visitor) => {
73360                VisitMutAstPath::visit_mut_module_item(visitor, node, __ast_path)
73361            }
73362        }
73363    }
73364
73365    #[inline]
73366    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
73367        match self {
73368            swc_visit::Either::Left(visitor) => {
73369                VisitMutAstPath::visit_mut_module_items(visitor, node, __ast_path)
73370            }
73371            swc_visit::Either::Right(visitor) => {
73372                VisitMutAstPath::visit_mut_module_items(visitor, node, __ast_path)
73373            }
73374        }
73375    }
73376
73377    #[inline]
73378    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
73379        match self {
73380            swc_visit::Either::Left(visitor) => {
73381                VisitMutAstPath::visit_mut_named_export(visitor, node, __ast_path)
73382            }
73383            swc_visit::Either::Right(visitor) => {
73384                VisitMutAstPath::visit_mut_named_export(visitor, node, __ast_path)
73385            }
73386        }
73387    }
73388
73389    #[inline]
73390    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
73391        match self {
73392            swc_visit::Either::Left(visitor) => {
73393                VisitMutAstPath::visit_mut_new_expr(visitor, node, __ast_path)
73394            }
73395            swc_visit::Either::Right(visitor) => {
73396                VisitMutAstPath::visit_mut_new_expr(visitor, node, __ast_path)
73397            }
73398        }
73399    }
73400
73401    #[inline]
73402    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
73403        match self {
73404            swc_visit::Either::Left(visitor) => {
73405                VisitMutAstPath::visit_mut_null(visitor, node, __ast_path)
73406            }
73407            swc_visit::Either::Right(visitor) => {
73408                VisitMutAstPath::visit_mut_null(visitor, node, __ast_path)
73409            }
73410        }
73411    }
73412
73413    #[inline]
73414    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
73415        match self {
73416            swc_visit::Either::Left(visitor) => {
73417                VisitMutAstPath::visit_mut_number(visitor, node, __ast_path)
73418            }
73419            swc_visit::Either::Right(visitor) => {
73420                VisitMutAstPath::visit_mut_number(visitor, node, __ast_path)
73421            }
73422        }
73423    }
73424
73425    #[inline]
73426    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
73427        match self {
73428            swc_visit::Either::Left(visitor) => {
73429                VisitMutAstPath::visit_mut_object_lit(visitor, node, __ast_path)
73430            }
73431            swc_visit::Either::Right(visitor) => {
73432                VisitMutAstPath::visit_mut_object_lit(visitor, node, __ast_path)
73433            }
73434        }
73435    }
73436
73437    #[inline]
73438    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
73439        match self {
73440            swc_visit::Either::Left(visitor) => {
73441                VisitMutAstPath::visit_mut_object_pat(visitor, node, __ast_path)
73442            }
73443            swc_visit::Either::Right(visitor) => {
73444                VisitMutAstPath::visit_mut_object_pat(visitor, node, __ast_path)
73445            }
73446        }
73447    }
73448
73449    #[inline]
73450    fn visit_mut_object_pat_prop(
73451        &mut self,
73452        node: &mut ObjectPatProp,
73453        __ast_path: &mut AstKindPath,
73454    ) {
73455        match self {
73456            swc_visit::Either::Left(visitor) => {
73457                VisitMutAstPath::visit_mut_object_pat_prop(visitor, node, __ast_path)
73458            }
73459            swc_visit::Either::Right(visitor) => {
73460                VisitMutAstPath::visit_mut_object_pat_prop(visitor, node, __ast_path)
73461            }
73462        }
73463    }
73464
73465    #[inline]
73466    fn visit_mut_object_pat_props(
73467        &mut self,
73468        node: &mut Vec<ObjectPatProp>,
73469        __ast_path: &mut AstKindPath,
73470    ) {
73471        match self {
73472            swc_visit::Either::Left(visitor) => {
73473                VisitMutAstPath::visit_mut_object_pat_props(visitor, node, __ast_path)
73474            }
73475            swc_visit::Either::Right(visitor) => {
73476                VisitMutAstPath::visit_mut_object_pat_props(visitor, node, __ast_path)
73477            }
73478        }
73479    }
73480
73481    #[inline]
73482    fn visit_mut_opt_accessibility(
73483        &mut self,
73484        node: &mut Option<Accessibility>,
73485        __ast_path: &mut AstKindPath,
73486    ) {
73487        match self {
73488            swc_visit::Either::Left(visitor) => {
73489                VisitMutAstPath::visit_mut_opt_accessibility(visitor, node, __ast_path)
73490            }
73491            swc_visit::Either::Right(visitor) => {
73492                VisitMutAstPath::visit_mut_opt_accessibility(visitor, node, __ast_path)
73493            }
73494        }
73495    }
73496
73497    #[inline]
73498    fn visit_mut_opt_atom(
73499        &mut self,
73500        node: &mut Option<swc_atoms::Atom>,
73501        __ast_path: &mut AstKindPath,
73502    ) {
73503        match self {
73504            swc_visit::Either::Left(visitor) => {
73505                VisitMutAstPath::visit_mut_opt_atom(visitor, node, __ast_path)
73506            }
73507            swc_visit::Either::Right(visitor) => {
73508                VisitMutAstPath::visit_mut_opt_atom(visitor, node, __ast_path)
73509            }
73510        }
73511    }
73512
73513    #[inline]
73514    fn visit_mut_opt_block_stmt(
73515        &mut self,
73516        node: &mut Option<BlockStmt>,
73517        __ast_path: &mut AstKindPath,
73518    ) {
73519        match self {
73520            swc_visit::Either::Left(visitor) => {
73521                VisitMutAstPath::visit_mut_opt_block_stmt(visitor, node, __ast_path)
73522            }
73523            swc_visit::Either::Right(visitor) => {
73524                VisitMutAstPath::visit_mut_opt_block_stmt(visitor, node, __ast_path)
73525            }
73526        }
73527    }
73528
73529    #[inline]
73530    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
73531        match self {
73532            swc_visit::Either::Left(visitor) => {
73533                VisitMutAstPath::visit_mut_opt_call(visitor, node, __ast_path)
73534            }
73535            swc_visit::Either::Right(visitor) => {
73536                VisitMutAstPath::visit_mut_opt_call(visitor, node, __ast_path)
73537            }
73538        }
73539    }
73540
73541    #[inline]
73542    fn visit_mut_opt_catch_clause(
73543        &mut self,
73544        node: &mut Option<CatchClause>,
73545        __ast_path: &mut AstKindPath,
73546    ) {
73547        match self {
73548            swc_visit::Either::Left(visitor) => {
73549                VisitMutAstPath::visit_mut_opt_catch_clause(visitor, node, __ast_path)
73550            }
73551            swc_visit::Either::Right(visitor) => {
73552                VisitMutAstPath::visit_mut_opt_catch_clause(visitor, node, __ast_path)
73553            }
73554        }
73555    }
73556
73557    #[inline]
73558    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
73559        match self {
73560            swc_visit::Either::Left(visitor) => {
73561                VisitMutAstPath::visit_mut_opt_chain_base(visitor, node, __ast_path)
73562            }
73563            swc_visit::Either::Right(visitor) => {
73564                VisitMutAstPath::visit_mut_opt_chain_base(visitor, node, __ast_path)
73565            }
73566        }
73567    }
73568
73569    #[inline]
73570    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
73571        match self {
73572            swc_visit::Either::Left(visitor) => {
73573                VisitMutAstPath::visit_mut_opt_chain_expr(visitor, node, __ast_path)
73574            }
73575            swc_visit::Either::Right(visitor) => {
73576                VisitMutAstPath::visit_mut_opt_chain_expr(visitor, node, __ast_path)
73577            }
73578        }
73579    }
73580
73581    #[inline]
73582    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
73583        match self {
73584            swc_visit::Either::Left(visitor) => {
73585                VisitMutAstPath::visit_mut_opt_expr(visitor, node, __ast_path)
73586            }
73587            swc_visit::Either::Right(visitor) => {
73588                VisitMutAstPath::visit_mut_opt_expr(visitor, node, __ast_path)
73589            }
73590        }
73591    }
73592
73593    #[inline]
73594    fn visit_mut_opt_expr_or_spread(
73595        &mut self,
73596        node: &mut Option<ExprOrSpread>,
73597        __ast_path: &mut AstKindPath,
73598    ) {
73599        match self {
73600            swc_visit::Either::Left(visitor) => {
73601                VisitMutAstPath::visit_mut_opt_expr_or_spread(visitor, node, __ast_path)
73602            }
73603            swc_visit::Either::Right(visitor) => {
73604                VisitMutAstPath::visit_mut_opt_expr_or_spread(visitor, node, __ast_path)
73605            }
73606        }
73607    }
73608
73609    #[inline]
73610    fn visit_mut_opt_expr_or_spreads(
73611        &mut self,
73612        node: &mut Option<Vec<ExprOrSpread>>,
73613        __ast_path: &mut AstKindPath,
73614    ) {
73615        match self {
73616            swc_visit::Either::Left(visitor) => {
73617                VisitMutAstPath::visit_mut_opt_expr_or_spreads(visitor, node, __ast_path)
73618            }
73619            swc_visit::Either::Right(visitor) => {
73620                VisitMutAstPath::visit_mut_opt_expr_or_spreads(visitor, node, __ast_path)
73621            }
73622        }
73623    }
73624
73625    #[inline]
73626    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
73627        match self {
73628            swc_visit::Either::Left(visitor) => {
73629                VisitMutAstPath::visit_mut_opt_ident(visitor, node, __ast_path)
73630            }
73631            swc_visit::Either::Right(visitor) => {
73632                VisitMutAstPath::visit_mut_opt_ident(visitor, node, __ast_path)
73633            }
73634        }
73635    }
73636
73637    #[inline]
73638    fn visit_mut_opt_jsx_attr_value(
73639        &mut self,
73640        node: &mut Option<JSXAttrValue>,
73641        __ast_path: &mut AstKindPath,
73642    ) {
73643        match self {
73644            swc_visit::Either::Left(visitor) => {
73645                VisitMutAstPath::visit_mut_opt_jsx_attr_value(visitor, node, __ast_path)
73646            }
73647            swc_visit::Either::Right(visitor) => {
73648                VisitMutAstPath::visit_mut_opt_jsx_attr_value(visitor, node, __ast_path)
73649            }
73650        }
73651    }
73652
73653    #[inline]
73654    fn visit_mut_opt_jsx_closing_element(
73655        &mut self,
73656        node: &mut Option<JSXClosingElement>,
73657        __ast_path: &mut AstKindPath,
73658    ) {
73659        match self {
73660            swc_visit::Either::Left(visitor) => {
73661                VisitMutAstPath::visit_mut_opt_jsx_closing_element(visitor, node, __ast_path)
73662            }
73663            swc_visit::Either::Right(visitor) => {
73664                VisitMutAstPath::visit_mut_opt_jsx_closing_element(visitor, node, __ast_path)
73665            }
73666        }
73667    }
73668
73669    #[inline]
73670    fn visit_mut_opt_module_export_name(
73671        &mut self,
73672        node: &mut Option<ModuleExportName>,
73673        __ast_path: &mut AstKindPath,
73674    ) {
73675        match self {
73676            swc_visit::Either::Left(visitor) => {
73677                VisitMutAstPath::visit_mut_opt_module_export_name(visitor, node, __ast_path)
73678            }
73679            swc_visit::Either::Right(visitor) => {
73680                VisitMutAstPath::visit_mut_opt_module_export_name(visitor, node, __ast_path)
73681            }
73682        }
73683    }
73684
73685    #[inline]
73686    fn visit_mut_opt_object_lit(
73687        &mut self,
73688        node: &mut Option<Box<ObjectLit>>,
73689        __ast_path: &mut AstKindPath,
73690    ) {
73691        match self {
73692            swc_visit::Either::Left(visitor) => {
73693                VisitMutAstPath::visit_mut_opt_object_lit(visitor, node, __ast_path)
73694            }
73695            swc_visit::Either::Right(visitor) => {
73696                VisitMutAstPath::visit_mut_opt_object_lit(visitor, node, __ast_path)
73697            }
73698        }
73699    }
73700
73701    #[inline]
73702    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
73703        match self {
73704            swc_visit::Either::Left(visitor) => {
73705                VisitMutAstPath::visit_mut_opt_pat(visitor, node, __ast_path)
73706            }
73707            swc_visit::Either::Right(visitor) => {
73708                VisitMutAstPath::visit_mut_opt_pat(visitor, node, __ast_path)
73709            }
73710        }
73711    }
73712
73713    #[inline]
73714    fn visit_mut_opt_span(
73715        &mut self,
73716        node: &mut Option<swc_common::Span>,
73717        __ast_path: &mut AstKindPath,
73718    ) {
73719        match self {
73720            swc_visit::Either::Left(visitor) => {
73721                VisitMutAstPath::visit_mut_opt_span(visitor, node, __ast_path)
73722            }
73723            swc_visit::Either::Right(visitor) => {
73724                VisitMutAstPath::visit_mut_opt_span(visitor, node, __ast_path)
73725            }
73726        }
73727    }
73728
73729    #[inline]
73730    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
73731        match self {
73732            swc_visit::Either::Left(visitor) => {
73733                VisitMutAstPath::visit_mut_opt_stmt(visitor, node, __ast_path)
73734            }
73735            swc_visit::Either::Right(visitor) => {
73736                VisitMutAstPath::visit_mut_opt_stmt(visitor, node, __ast_path)
73737            }
73738        }
73739    }
73740
73741    #[inline]
73742    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
73743        match self {
73744            swc_visit::Either::Left(visitor) => {
73745                VisitMutAstPath::visit_mut_opt_str(visitor, node, __ast_path)
73746            }
73747            swc_visit::Either::Right(visitor) => {
73748                VisitMutAstPath::visit_mut_opt_str(visitor, node, __ast_path)
73749            }
73750        }
73751    }
73752
73753    #[inline]
73754    fn visit_mut_opt_true_plus_minus(
73755        &mut self,
73756        node: &mut Option<TruePlusMinus>,
73757        __ast_path: &mut AstKindPath,
73758    ) {
73759        match self {
73760            swc_visit::Either::Left(visitor) => {
73761                VisitMutAstPath::visit_mut_opt_true_plus_minus(visitor, node, __ast_path)
73762            }
73763            swc_visit::Either::Right(visitor) => {
73764                VisitMutAstPath::visit_mut_opt_true_plus_minus(visitor, node, __ast_path)
73765            }
73766        }
73767    }
73768
73769    #[inline]
73770    fn visit_mut_opt_ts_entity_name(
73771        &mut self,
73772        node: &mut Option<TsEntityName>,
73773        __ast_path: &mut AstKindPath,
73774    ) {
73775        match self {
73776            swc_visit::Either::Left(visitor) => {
73777                VisitMutAstPath::visit_mut_opt_ts_entity_name(visitor, node, __ast_path)
73778            }
73779            swc_visit::Either::Right(visitor) => {
73780                VisitMutAstPath::visit_mut_opt_ts_entity_name(visitor, node, __ast_path)
73781            }
73782        }
73783    }
73784
73785    #[inline]
73786    fn visit_mut_opt_ts_namespace_body(
73787        &mut self,
73788        node: &mut Option<TsNamespaceBody>,
73789        __ast_path: &mut AstKindPath,
73790    ) {
73791        match self {
73792            swc_visit::Either::Left(visitor) => {
73793                VisitMutAstPath::visit_mut_opt_ts_namespace_body(visitor, node, __ast_path)
73794            }
73795            swc_visit::Either::Right(visitor) => {
73796                VisitMutAstPath::visit_mut_opt_ts_namespace_body(visitor, node, __ast_path)
73797            }
73798        }
73799    }
73800
73801    #[inline]
73802    fn visit_mut_opt_ts_type(
73803        &mut self,
73804        node: &mut Option<Box<TsType>>,
73805        __ast_path: &mut AstKindPath,
73806    ) {
73807        match self {
73808            swc_visit::Either::Left(visitor) => {
73809                VisitMutAstPath::visit_mut_opt_ts_type(visitor, node, __ast_path)
73810            }
73811            swc_visit::Either::Right(visitor) => {
73812                VisitMutAstPath::visit_mut_opt_ts_type(visitor, node, __ast_path)
73813            }
73814        }
73815    }
73816
73817    #[inline]
73818    fn visit_mut_opt_ts_type_ann(
73819        &mut self,
73820        node: &mut Option<Box<TsTypeAnn>>,
73821        __ast_path: &mut AstKindPath,
73822    ) {
73823        match self {
73824            swc_visit::Either::Left(visitor) => {
73825                VisitMutAstPath::visit_mut_opt_ts_type_ann(visitor, node, __ast_path)
73826            }
73827            swc_visit::Either::Right(visitor) => {
73828                VisitMutAstPath::visit_mut_opt_ts_type_ann(visitor, node, __ast_path)
73829            }
73830        }
73831    }
73832
73833    #[inline]
73834    fn visit_mut_opt_ts_type_param_decl(
73835        &mut self,
73836        node: &mut Option<Box<TsTypeParamDecl>>,
73837        __ast_path: &mut AstKindPath,
73838    ) {
73839        match self {
73840            swc_visit::Either::Left(visitor) => {
73841                VisitMutAstPath::visit_mut_opt_ts_type_param_decl(visitor, node, __ast_path)
73842            }
73843            swc_visit::Either::Right(visitor) => {
73844                VisitMutAstPath::visit_mut_opt_ts_type_param_decl(visitor, node, __ast_path)
73845            }
73846        }
73847    }
73848
73849    #[inline]
73850    fn visit_mut_opt_ts_type_param_instantiation(
73851        &mut self,
73852        node: &mut Option<Box<TsTypeParamInstantiation>>,
73853        __ast_path: &mut AstKindPath,
73854    ) {
73855        match self {
73856            swc_visit::Either::Left(visitor) => {
73857                VisitMutAstPath::visit_mut_opt_ts_type_param_instantiation(
73858                    visitor, node, __ast_path,
73859                )
73860            }
73861            swc_visit::Either::Right(visitor) => {
73862                VisitMutAstPath::visit_mut_opt_ts_type_param_instantiation(
73863                    visitor, node, __ast_path,
73864                )
73865            }
73866        }
73867    }
73868
73869    #[inline]
73870    fn visit_mut_opt_var_decl_or_expr(
73871        &mut self,
73872        node: &mut Option<VarDeclOrExpr>,
73873        __ast_path: &mut AstKindPath,
73874    ) {
73875        match self {
73876            swc_visit::Either::Left(visitor) => {
73877                VisitMutAstPath::visit_mut_opt_var_decl_or_expr(visitor, node, __ast_path)
73878            }
73879            swc_visit::Either::Right(visitor) => {
73880                VisitMutAstPath::visit_mut_opt_var_decl_or_expr(visitor, node, __ast_path)
73881            }
73882        }
73883    }
73884
73885    #[inline]
73886    fn visit_mut_opt_vec_expr_or_spreads(
73887        &mut self,
73888        node: &mut Vec<Option<ExprOrSpread>>,
73889        __ast_path: &mut AstKindPath,
73890    ) {
73891        match self {
73892            swc_visit::Either::Left(visitor) => {
73893                VisitMutAstPath::visit_mut_opt_vec_expr_or_spreads(visitor, node, __ast_path)
73894            }
73895            swc_visit::Either::Right(visitor) => {
73896                VisitMutAstPath::visit_mut_opt_vec_expr_or_spreads(visitor, node, __ast_path)
73897            }
73898        }
73899    }
73900
73901    #[inline]
73902    fn visit_mut_opt_vec_pats(
73903        &mut self,
73904        node: &mut Vec<Option<Pat>>,
73905        __ast_path: &mut AstKindPath,
73906    ) {
73907        match self {
73908            swc_visit::Either::Left(visitor) => {
73909                VisitMutAstPath::visit_mut_opt_vec_pats(visitor, node, __ast_path)
73910            }
73911            swc_visit::Either::Right(visitor) => {
73912                VisitMutAstPath::visit_mut_opt_vec_pats(visitor, node, __ast_path)
73913            }
73914        }
73915    }
73916
73917    #[inline]
73918    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
73919        match self {
73920            swc_visit::Either::Left(visitor) => {
73921                VisitMutAstPath::visit_mut_param(visitor, node, __ast_path)
73922            }
73923            swc_visit::Either::Right(visitor) => {
73924                VisitMutAstPath::visit_mut_param(visitor, node, __ast_path)
73925            }
73926        }
73927    }
73928
73929    #[inline]
73930    fn visit_mut_param_or_ts_param_prop(
73931        &mut self,
73932        node: &mut ParamOrTsParamProp,
73933        __ast_path: &mut AstKindPath,
73934    ) {
73935        match self {
73936            swc_visit::Either::Left(visitor) => {
73937                VisitMutAstPath::visit_mut_param_or_ts_param_prop(visitor, node, __ast_path)
73938            }
73939            swc_visit::Either::Right(visitor) => {
73940                VisitMutAstPath::visit_mut_param_or_ts_param_prop(visitor, node, __ast_path)
73941            }
73942        }
73943    }
73944
73945    #[inline]
73946    fn visit_mut_param_or_ts_param_props(
73947        &mut self,
73948        node: &mut Vec<ParamOrTsParamProp>,
73949        __ast_path: &mut AstKindPath,
73950    ) {
73951        match self {
73952            swc_visit::Either::Left(visitor) => {
73953                VisitMutAstPath::visit_mut_param_or_ts_param_props(visitor, node, __ast_path)
73954            }
73955            swc_visit::Either::Right(visitor) => {
73956                VisitMutAstPath::visit_mut_param_or_ts_param_props(visitor, node, __ast_path)
73957            }
73958        }
73959    }
73960
73961    #[inline]
73962    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
73963        match self {
73964            swc_visit::Either::Left(visitor) => {
73965                VisitMutAstPath::visit_mut_params(visitor, node, __ast_path)
73966            }
73967            swc_visit::Either::Right(visitor) => {
73968                VisitMutAstPath::visit_mut_params(visitor, node, __ast_path)
73969            }
73970        }
73971    }
73972
73973    #[inline]
73974    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
73975        match self {
73976            swc_visit::Either::Left(visitor) => {
73977                VisitMutAstPath::visit_mut_paren_expr(visitor, node, __ast_path)
73978            }
73979            swc_visit::Either::Right(visitor) => {
73980                VisitMutAstPath::visit_mut_paren_expr(visitor, node, __ast_path)
73981            }
73982        }
73983    }
73984
73985    #[inline]
73986    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
73987        match self {
73988            swc_visit::Either::Left(visitor) => {
73989                VisitMutAstPath::visit_mut_pat(visitor, node, __ast_path)
73990            }
73991            swc_visit::Either::Right(visitor) => {
73992                VisitMutAstPath::visit_mut_pat(visitor, node, __ast_path)
73993            }
73994        }
73995    }
73996
73997    #[inline]
73998    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
73999        match self {
74000            swc_visit::Either::Left(visitor) => {
74001                VisitMutAstPath::visit_mut_pats(visitor, node, __ast_path)
74002            }
74003            swc_visit::Either::Right(visitor) => {
74004                VisitMutAstPath::visit_mut_pats(visitor, node, __ast_path)
74005            }
74006        }
74007    }
74008
74009    #[inline]
74010    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
74011        match self {
74012            swc_visit::Either::Left(visitor) => {
74013                VisitMutAstPath::visit_mut_private_method(visitor, node, __ast_path)
74014            }
74015            swc_visit::Either::Right(visitor) => {
74016                VisitMutAstPath::visit_mut_private_method(visitor, node, __ast_path)
74017            }
74018        }
74019    }
74020
74021    #[inline]
74022    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
74023        match self {
74024            swc_visit::Either::Left(visitor) => {
74025                VisitMutAstPath::visit_mut_private_name(visitor, node, __ast_path)
74026            }
74027            swc_visit::Either::Right(visitor) => {
74028                VisitMutAstPath::visit_mut_private_name(visitor, node, __ast_path)
74029            }
74030        }
74031    }
74032
74033    #[inline]
74034    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
74035        match self {
74036            swc_visit::Either::Left(visitor) => {
74037                VisitMutAstPath::visit_mut_private_prop(visitor, node, __ast_path)
74038            }
74039            swc_visit::Either::Right(visitor) => {
74040                VisitMutAstPath::visit_mut_private_prop(visitor, node, __ast_path)
74041            }
74042        }
74043    }
74044
74045    #[inline]
74046    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
74047        match self {
74048            swc_visit::Either::Left(visitor) => {
74049                VisitMutAstPath::visit_mut_program(visitor, node, __ast_path)
74050            }
74051            swc_visit::Either::Right(visitor) => {
74052                VisitMutAstPath::visit_mut_program(visitor, node, __ast_path)
74053            }
74054        }
74055    }
74056
74057    #[inline]
74058    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
74059        match self {
74060            swc_visit::Either::Left(visitor) => {
74061                VisitMutAstPath::visit_mut_prop(visitor, node, __ast_path)
74062            }
74063            swc_visit::Either::Right(visitor) => {
74064                VisitMutAstPath::visit_mut_prop(visitor, node, __ast_path)
74065            }
74066        }
74067    }
74068
74069    #[inline]
74070    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
74071        match self {
74072            swc_visit::Either::Left(visitor) => {
74073                VisitMutAstPath::visit_mut_prop_name(visitor, node, __ast_path)
74074            }
74075            swc_visit::Either::Right(visitor) => {
74076                VisitMutAstPath::visit_mut_prop_name(visitor, node, __ast_path)
74077            }
74078        }
74079    }
74080
74081    #[inline]
74082    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
74083        match self {
74084            swc_visit::Either::Left(visitor) => {
74085                VisitMutAstPath::visit_mut_prop_or_spread(visitor, node, __ast_path)
74086            }
74087            swc_visit::Either::Right(visitor) => {
74088                VisitMutAstPath::visit_mut_prop_or_spread(visitor, node, __ast_path)
74089            }
74090        }
74091    }
74092
74093    #[inline]
74094    fn visit_mut_prop_or_spreads(
74095        &mut self,
74096        node: &mut Vec<PropOrSpread>,
74097        __ast_path: &mut AstKindPath,
74098    ) {
74099        match self {
74100            swc_visit::Either::Left(visitor) => {
74101                VisitMutAstPath::visit_mut_prop_or_spreads(visitor, node, __ast_path)
74102            }
74103            swc_visit::Either::Right(visitor) => {
74104                VisitMutAstPath::visit_mut_prop_or_spreads(visitor, node, __ast_path)
74105            }
74106        }
74107    }
74108
74109    #[inline]
74110    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
74111        match self {
74112            swc_visit::Either::Left(visitor) => {
74113                VisitMutAstPath::visit_mut_regex(visitor, node, __ast_path)
74114            }
74115            swc_visit::Either::Right(visitor) => {
74116                VisitMutAstPath::visit_mut_regex(visitor, node, __ast_path)
74117            }
74118        }
74119    }
74120
74121    #[inline]
74122    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
74123        match self {
74124            swc_visit::Either::Left(visitor) => {
74125                VisitMutAstPath::visit_mut_rest_pat(visitor, node, __ast_path)
74126            }
74127            swc_visit::Either::Right(visitor) => {
74128                VisitMutAstPath::visit_mut_rest_pat(visitor, node, __ast_path)
74129            }
74130        }
74131    }
74132
74133    #[inline]
74134    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
74135        match self {
74136            swc_visit::Either::Left(visitor) => {
74137                VisitMutAstPath::visit_mut_return_stmt(visitor, node, __ast_path)
74138            }
74139            swc_visit::Either::Right(visitor) => {
74140                VisitMutAstPath::visit_mut_return_stmt(visitor, node, __ast_path)
74141            }
74142        }
74143    }
74144
74145    #[inline]
74146    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
74147        match self {
74148            swc_visit::Either::Left(visitor) => {
74149                VisitMutAstPath::visit_mut_script(visitor, node, __ast_path)
74150            }
74151            swc_visit::Either::Right(visitor) => {
74152                VisitMutAstPath::visit_mut_script(visitor, node, __ast_path)
74153            }
74154        }
74155    }
74156
74157    #[inline]
74158    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
74159        match self {
74160            swc_visit::Either::Left(visitor) => {
74161                VisitMutAstPath::visit_mut_seq_expr(visitor, node, __ast_path)
74162            }
74163            swc_visit::Either::Right(visitor) => {
74164                VisitMutAstPath::visit_mut_seq_expr(visitor, node, __ast_path)
74165            }
74166        }
74167    }
74168
74169    #[inline]
74170    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
74171        match self {
74172            swc_visit::Either::Left(visitor) => {
74173                VisitMutAstPath::visit_mut_setter_prop(visitor, node, __ast_path)
74174            }
74175            swc_visit::Either::Right(visitor) => {
74176                VisitMutAstPath::visit_mut_setter_prop(visitor, node, __ast_path)
74177            }
74178        }
74179    }
74180
74181    #[inline]
74182    fn visit_mut_simple_assign_target(
74183        &mut self,
74184        node: &mut SimpleAssignTarget,
74185        __ast_path: &mut AstKindPath,
74186    ) {
74187        match self {
74188            swc_visit::Either::Left(visitor) => {
74189                VisitMutAstPath::visit_mut_simple_assign_target(visitor, node, __ast_path)
74190            }
74191            swc_visit::Either::Right(visitor) => {
74192                VisitMutAstPath::visit_mut_simple_assign_target(visitor, node, __ast_path)
74193            }
74194        }
74195    }
74196
74197    #[inline]
74198    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
74199        match self {
74200            swc_visit::Either::Left(visitor) => {
74201                VisitMutAstPath::visit_mut_span(visitor, node, __ast_path)
74202            }
74203            swc_visit::Either::Right(visitor) => {
74204                VisitMutAstPath::visit_mut_span(visitor, node, __ast_path)
74205            }
74206        }
74207    }
74208
74209    #[inline]
74210    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
74211        match self {
74212            swc_visit::Either::Left(visitor) => {
74213                VisitMutAstPath::visit_mut_spread_element(visitor, node, __ast_path)
74214            }
74215            swc_visit::Either::Right(visitor) => {
74216                VisitMutAstPath::visit_mut_spread_element(visitor, node, __ast_path)
74217            }
74218        }
74219    }
74220
74221    #[inline]
74222    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
74223        match self {
74224            swc_visit::Either::Left(visitor) => {
74225                VisitMutAstPath::visit_mut_static_block(visitor, node, __ast_path)
74226            }
74227            swc_visit::Either::Right(visitor) => {
74228                VisitMutAstPath::visit_mut_static_block(visitor, node, __ast_path)
74229            }
74230        }
74231    }
74232
74233    #[inline]
74234    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
74235        match self {
74236            swc_visit::Either::Left(visitor) => {
74237                VisitMutAstPath::visit_mut_stmt(visitor, node, __ast_path)
74238            }
74239            swc_visit::Either::Right(visitor) => {
74240                VisitMutAstPath::visit_mut_stmt(visitor, node, __ast_path)
74241            }
74242        }
74243    }
74244
74245    #[inline]
74246    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
74247        match self {
74248            swc_visit::Either::Left(visitor) => {
74249                VisitMutAstPath::visit_mut_stmts(visitor, node, __ast_path)
74250            }
74251            swc_visit::Either::Right(visitor) => {
74252                VisitMutAstPath::visit_mut_stmts(visitor, node, __ast_path)
74253            }
74254        }
74255    }
74256
74257    #[inline]
74258    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
74259        match self {
74260            swc_visit::Either::Left(visitor) => {
74261                VisitMutAstPath::visit_mut_str(visitor, node, __ast_path)
74262            }
74263            swc_visit::Either::Right(visitor) => {
74264                VisitMutAstPath::visit_mut_str(visitor, node, __ast_path)
74265            }
74266        }
74267    }
74268
74269    #[inline]
74270    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
74271        match self {
74272            swc_visit::Either::Left(visitor) => {
74273                VisitMutAstPath::visit_mut_super(visitor, node, __ast_path)
74274            }
74275            swc_visit::Either::Right(visitor) => {
74276                VisitMutAstPath::visit_mut_super(visitor, node, __ast_path)
74277            }
74278        }
74279    }
74280
74281    #[inline]
74282    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
74283        match self {
74284            swc_visit::Either::Left(visitor) => {
74285                VisitMutAstPath::visit_mut_super_prop(visitor, node, __ast_path)
74286            }
74287            swc_visit::Either::Right(visitor) => {
74288                VisitMutAstPath::visit_mut_super_prop(visitor, node, __ast_path)
74289            }
74290        }
74291    }
74292
74293    #[inline]
74294    fn visit_mut_super_prop_expr(
74295        &mut self,
74296        node: &mut SuperPropExpr,
74297        __ast_path: &mut AstKindPath,
74298    ) {
74299        match self {
74300            swc_visit::Either::Left(visitor) => {
74301                VisitMutAstPath::visit_mut_super_prop_expr(visitor, node, __ast_path)
74302            }
74303            swc_visit::Either::Right(visitor) => {
74304                VisitMutAstPath::visit_mut_super_prop_expr(visitor, node, __ast_path)
74305            }
74306        }
74307    }
74308
74309    #[inline]
74310    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
74311        match self {
74312            swc_visit::Either::Left(visitor) => {
74313                VisitMutAstPath::visit_mut_switch_case(visitor, node, __ast_path)
74314            }
74315            swc_visit::Either::Right(visitor) => {
74316                VisitMutAstPath::visit_mut_switch_case(visitor, node, __ast_path)
74317            }
74318        }
74319    }
74320
74321    #[inline]
74322    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
74323        match self {
74324            swc_visit::Either::Left(visitor) => {
74325                VisitMutAstPath::visit_mut_switch_cases(visitor, node, __ast_path)
74326            }
74327            swc_visit::Either::Right(visitor) => {
74328                VisitMutAstPath::visit_mut_switch_cases(visitor, node, __ast_path)
74329            }
74330        }
74331    }
74332
74333    #[inline]
74334    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
74335        match self {
74336            swc_visit::Either::Left(visitor) => {
74337                VisitMutAstPath::visit_mut_switch_stmt(visitor, node, __ast_path)
74338            }
74339            swc_visit::Either::Right(visitor) => {
74340                VisitMutAstPath::visit_mut_switch_stmt(visitor, node, __ast_path)
74341            }
74342        }
74343    }
74344
74345    #[inline]
74346    fn visit_mut_syntax_context(
74347        &mut self,
74348        node: &mut swc_common::SyntaxContext,
74349        __ast_path: &mut AstKindPath,
74350    ) {
74351        match self {
74352            swc_visit::Either::Left(visitor) => {
74353                VisitMutAstPath::visit_mut_syntax_context(visitor, node, __ast_path)
74354            }
74355            swc_visit::Either::Right(visitor) => {
74356                VisitMutAstPath::visit_mut_syntax_context(visitor, node, __ast_path)
74357            }
74358        }
74359    }
74360
74361    #[inline]
74362    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
74363        match self {
74364            swc_visit::Either::Left(visitor) => {
74365                VisitMutAstPath::visit_mut_tagged_tpl(visitor, node, __ast_path)
74366            }
74367            swc_visit::Either::Right(visitor) => {
74368                VisitMutAstPath::visit_mut_tagged_tpl(visitor, node, __ast_path)
74369            }
74370        }
74371    }
74372
74373    #[inline]
74374    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
74375        match self {
74376            swc_visit::Either::Left(visitor) => {
74377                VisitMutAstPath::visit_mut_this_expr(visitor, node, __ast_path)
74378            }
74379            swc_visit::Either::Right(visitor) => {
74380                VisitMutAstPath::visit_mut_this_expr(visitor, node, __ast_path)
74381            }
74382        }
74383    }
74384
74385    #[inline]
74386    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
74387        match self {
74388            swc_visit::Either::Left(visitor) => {
74389                VisitMutAstPath::visit_mut_throw_stmt(visitor, node, __ast_path)
74390            }
74391            swc_visit::Either::Right(visitor) => {
74392                VisitMutAstPath::visit_mut_throw_stmt(visitor, node, __ast_path)
74393            }
74394        }
74395    }
74396
74397    #[inline]
74398    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
74399        match self {
74400            swc_visit::Either::Left(visitor) => {
74401                VisitMutAstPath::visit_mut_tpl(visitor, node, __ast_path)
74402            }
74403            swc_visit::Either::Right(visitor) => {
74404                VisitMutAstPath::visit_mut_tpl(visitor, node, __ast_path)
74405            }
74406        }
74407    }
74408
74409    #[inline]
74410    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
74411        match self {
74412            swc_visit::Either::Left(visitor) => {
74413                VisitMutAstPath::visit_mut_tpl_element(visitor, node, __ast_path)
74414            }
74415            swc_visit::Either::Right(visitor) => {
74416                VisitMutAstPath::visit_mut_tpl_element(visitor, node, __ast_path)
74417            }
74418        }
74419    }
74420
74421    #[inline]
74422    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
74423        match self {
74424            swc_visit::Either::Left(visitor) => {
74425                VisitMutAstPath::visit_mut_tpl_elements(visitor, node, __ast_path)
74426            }
74427            swc_visit::Either::Right(visitor) => {
74428                VisitMutAstPath::visit_mut_tpl_elements(visitor, node, __ast_path)
74429            }
74430        }
74431    }
74432
74433    #[inline]
74434    fn visit_mut_true_plus_minus(
74435        &mut self,
74436        node: &mut TruePlusMinus,
74437        __ast_path: &mut AstKindPath,
74438    ) {
74439        match self {
74440            swc_visit::Either::Left(visitor) => {
74441                VisitMutAstPath::visit_mut_true_plus_minus(visitor, node, __ast_path)
74442            }
74443            swc_visit::Either::Right(visitor) => {
74444                VisitMutAstPath::visit_mut_true_plus_minus(visitor, node, __ast_path)
74445            }
74446        }
74447    }
74448
74449    #[inline]
74450    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
74451        match self {
74452            swc_visit::Either::Left(visitor) => {
74453                VisitMutAstPath::visit_mut_try_stmt(visitor, node, __ast_path)
74454            }
74455            swc_visit::Either::Right(visitor) => {
74456                VisitMutAstPath::visit_mut_try_stmt(visitor, node, __ast_path)
74457            }
74458        }
74459    }
74460
74461    #[inline]
74462    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
74463        match self {
74464            swc_visit::Either::Left(visitor) => {
74465                VisitMutAstPath::visit_mut_ts_array_type(visitor, node, __ast_path)
74466            }
74467            swc_visit::Either::Right(visitor) => {
74468                VisitMutAstPath::visit_mut_ts_array_type(visitor, node, __ast_path)
74469            }
74470        }
74471    }
74472
74473    #[inline]
74474    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
74475        match self {
74476            swc_visit::Either::Left(visitor) => {
74477                VisitMutAstPath::visit_mut_ts_as_expr(visitor, node, __ast_path)
74478            }
74479            swc_visit::Either::Right(visitor) => {
74480                VisitMutAstPath::visit_mut_ts_as_expr(visitor, node, __ast_path)
74481            }
74482        }
74483    }
74484
74485    #[inline]
74486    fn visit_mut_ts_call_signature_decl(
74487        &mut self,
74488        node: &mut TsCallSignatureDecl,
74489        __ast_path: &mut AstKindPath,
74490    ) {
74491        match self {
74492            swc_visit::Either::Left(visitor) => {
74493                VisitMutAstPath::visit_mut_ts_call_signature_decl(visitor, node, __ast_path)
74494            }
74495            swc_visit::Either::Right(visitor) => {
74496                VisitMutAstPath::visit_mut_ts_call_signature_decl(visitor, node, __ast_path)
74497            }
74498        }
74499    }
74500
74501    #[inline]
74502    fn visit_mut_ts_conditional_type(
74503        &mut self,
74504        node: &mut TsConditionalType,
74505        __ast_path: &mut AstKindPath,
74506    ) {
74507        match self {
74508            swc_visit::Either::Left(visitor) => {
74509                VisitMutAstPath::visit_mut_ts_conditional_type(visitor, node, __ast_path)
74510            }
74511            swc_visit::Either::Right(visitor) => {
74512                VisitMutAstPath::visit_mut_ts_conditional_type(visitor, node, __ast_path)
74513            }
74514        }
74515    }
74516
74517    #[inline]
74518    fn visit_mut_ts_const_assertion(
74519        &mut self,
74520        node: &mut TsConstAssertion,
74521        __ast_path: &mut AstKindPath,
74522    ) {
74523        match self {
74524            swc_visit::Either::Left(visitor) => {
74525                VisitMutAstPath::visit_mut_ts_const_assertion(visitor, node, __ast_path)
74526            }
74527            swc_visit::Either::Right(visitor) => {
74528                VisitMutAstPath::visit_mut_ts_const_assertion(visitor, node, __ast_path)
74529            }
74530        }
74531    }
74532
74533    #[inline]
74534    fn visit_mut_ts_construct_signature_decl(
74535        &mut self,
74536        node: &mut TsConstructSignatureDecl,
74537        __ast_path: &mut AstKindPath,
74538    ) {
74539        match self {
74540            swc_visit::Either::Left(visitor) => {
74541                VisitMutAstPath::visit_mut_ts_construct_signature_decl(visitor, node, __ast_path)
74542            }
74543            swc_visit::Either::Right(visitor) => {
74544                VisitMutAstPath::visit_mut_ts_construct_signature_decl(visitor, node, __ast_path)
74545            }
74546        }
74547    }
74548
74549    #[inline]
74550    fn visit_mut_ts_constructor_type(
74551        &mut self,
74552        node: &mut TsConstructorType,
74553        __ast_path: &mut AstKindPath,
74554    ) {
74555        match self {
74556            swc_visit::Either::Left(visitor) => {
74557                VisitMutAstPath::visit_mut_ts_constructor_type(visitor, node, __ast_path)
74558            }
74559            swc_visit::Either::Right(visitor) => {
74560                VisitMutAstPath::visit_mut_ts_constructor_type(visitor, node, __ast_path)
74561            }
74562        }
74563    }
74564
74565    #[inline]
74566    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
74567        match self {
74568            swc_visit::Either::Left(visitor) => {
74569                VisitMutAstPath::visit_mut_ts_entity_name(visitor, node, __ast_path)
74570            }
74571            swc_visit::Either::Right(visitor) => {
74572                VisitMutAstPath::visit_mut_ts_entity_name(visitor, node, __ast_path)
74573            }
74574        }
74575    }
74576
74577    #[inline]
74578    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
74579        match self {
74580            swc_visit::Either::Left(visitor) => {
74581                VisitMutAstPath::visit_mut_ts_enum_decl(visitor, node, __ast_path)
74582            }
74583            swc_visit::Either::Right(visitor) => {
74584                VisitMutAstPath::visit_mut_ts_enum_decl(visitor, node, __ast_path)
74585            }
74586        }
74587    }
74588
74589    #[inline]
74590    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
74591        match self {
74592            swc_visit::Either::Left(visitor) => {
74593                VisitMutAstPath::visit_mut_ts_enum_member(visitor, node, __ast_path)
74594            }
74595            swc_visit::Either::Right(visitor) => {
74596                VisitMutAstPath::visit_mut_ts_enum_member(visitor, node, __ast_path)
74597            }
74598        }
74599    }
74600
74601    #[inline]
74602    fn visit_mut_ts_enum_member_id(
74603        &mut self,
74604        node: &mut TsEnumMemberId,
74605        __ast_path: &mut AstKindPath,
74606    ) {
74607        match self {
74608            swc_visit::Either::Left(visitor) => {
74609                VisitMutAstPath::visit_mut_ts_enum_member_id(visitor, node, __ast_path)
74610            }
74611            swc_visit::Either::Right(visitor) => {
74612                VisitMutAstPath::visit_mut_ts_enum_member_id(visitor, node, __ast_path)
74613            }
74614        }
74615    }
74616
74617    #[inline]
74618    fn visit_mut_ts_enum_members(
74619        &mut self,
74620        node: &mut Vec<TsEnumMember>,
74621        __ast_path: &mut AstKindPath,
74622    ) {
74623        match self {
74624            swc_visit::Either::Left(visitor) => {
74625                VisitMutAstPath::visit_mut_ts_enum_members(visitor, node, __ast_path)
74626            }
74627            swc_visit::Either::Right(visitor) => {
74628                VisitMutAstPath::visit_mut_ts_enum_members(visitor, node, __ast_path)
74629            }
74630        }
74631    }
74632
74633    #[inline]
74634    fn visit_mut_ts_export_assignment(
74635        &mut self,
74636        node: &mut TsExportAssignment,
74637        __ast_path: &mut AstKindPath,
74638    ) {
74639        match self {
74640            swc_visit::Either::Left(visitor) => {
74641                VisitMutAstPath::visit_mut_ts_export_assignment(visitor, node, __ast_path)
74642            }
74643            swc_visit::Either::Right(visitor) => {
74644                VisitMutAstPath::visit_mut_ts_export_assignment(visitor, node, __ast_path)
74645            }
74646        }
74647    }
74648
74649    #[inline]
74650    fn visit_mut_ts_expr_with_type_args(
74651        &mut self,
74652        node: &mut TsExprWithTypeArgs,
74653        __ast_path: &mut AstKindPath,
74654    ) {
74655        match self {
74656            swc_visit::Either::Left(visitor) => {
74657                VisitMutAstPath::visit_mut_ts_expr_with_type_args(visitor, node, __ast_path)
74658            }
74659            swc_visit::Either::Right(visitor) => {
74660                VisitMutAstPath::visit_mut_ts_expr_with_type_args(visitor, node, __ast_path)
74661            }
74662        }
74663    }
74664
74665    #[inline]
74666    fn visit_mut_ts_expr_with_type_argss(
74667        &mut self,
74668        node: &mut Vec<TsExprWithTypeArgs>,
74669        __ast_path: &mut AstKindPath,
74670    ) {
74671        match self {
74672            swc_visit::Either::Left(visitor) => {
74673                VisitMutAstPath::visit_mut_ts_expr_with_type_argss(visitor, node, __ast_path)
74674            }
74675            swc_visit::Either::Right(visitor) => {
74676                VisitMutAstPath::visit_mut_ts_expr_with_type_argss(visitor, node, __ast_path)
74677            }
74678        }
74679    }
74680
74681    #[inline]
74682    fn visit_mut_ts_external_module_ref(
74683        &mut self,
74684        node: &mut TsExternalModuleRef,
74685        __ast_path: &mut AstKindPath,
74686    ) {
74687        match self {
74688            swc_visit::Either::Left(visitor) => {
74689                VisitMutAstPath::visit_mut_ts_external_module_ref(visitor, node, __ast_path)
74690            }
74691            swc_visit::Either::Right(visitor) => {
74692                VisitMutAstPath::visit_mut_ts_external_module_ref(visitor, node, __ast_path)
74693            }
74694        }
74695    }
74696
74697    #[inline]
74698    fn visit_mut_ts_fn_or_constructor_type(
74699        &mut self,
74700        node: &mut TsFnOrConstructorType,
74701        __ast_path: &mut AstKindPath,
74702    ) {
74703        match self {
74704            swc_visit::Either::Left(visitor) => {
74705                VisitMutAstPath::visit_mut_ts_fn_or_constructor_type(visitor, node, __ast_path)
74706            }
74707            swc_visit::Either::Right(visitor) => {
74708                VisitMutAstPath::visit_mut_ts_fn_or_constructor_type(visitor, node, __ast_path)
74709            }
74710        }
74711    }
74712
74713    #[inline]
74714    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
74715        match self {
74716            swc_visit::Either::Left(visitor) => {
74717                VisitMutAstPath::visit_mut_ts_fn_param(visitor, node, __ast_path)
74718            }
74719            swc_visit::Either::Right(visitor) => {
74720                VisitMutAstPath::visit_mut_ts_fn_param(visitor, node, __ast_path)
74721            }
74722        }
74723    }
74724
74725    #[inline]
74726    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
74727        match self {
74728            swc_visit::Either::Left(visitor) => {
74729                VisitMutAstPath::visit_mut_ts_fn_params(visitor, node, __ast_path)
74730            }
74731            swc_visit::Either::Right(visitor) => {
74732                VisitMutAstPath::visit_mut_ts_fn_params(visitor, node, __ast_path)
74733            }
74734        }
74735    }
74736
74737    #[inline]
74738    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
74739        match self {
74740            swc_visit::Either::Left(visitor) => {
74741                VisitMutAstPath::visit_mut_ts_fn_type(visitor, node, __ast_path)
74742            }
74743            swc_visit::Either::Right(visitor) => {
74744                VisitMutAstPath::visit_mut_ts_fn_type(visitor, node, __ast_path)
74745            }
74746        }
74747    }
74748
74749    #[inline]
74750    fn visit_mut_ts_getter_signature(
74751        &mut self,
74752        node: &mut TsGetterSignature,
74753        __ast_path: &mut AstKindPath,
74754    ) {
74755        match self {
74756            swc_visit::Either::Left(visitor) => {
74757                VisitMutAstPath::visit_mut_ts_getter_signature(visitor, node, __ast_path)
74758            }
74759            swc_visit::Either::Right(visitor) => {
74760                VisitMutAstPath::visit_mut_ts_getter_signature(visitor, node, __ast_path)
74761            }
74762        }
74763    }
74764
74765    #[inline]
74766    fn visit_mut_ts_import_equals_decl(
74767        &mut self,
74768        node: &mut TsImportEqualsDecl,
74769        __ast_path: &mut AstKindPath,
74770    ) {
74771        match self {
74772            swc_visit::Either::Left(visitor) => {
74773                VisitMutAstPath::visit_mut_ts_import_equals_decl(visitor, node, __ast_path)
74774            }
74775            swc_visit::Either::Right(visitor) => {
74776                VisitMutAstPath::visit_mut_ts_import_equals_decl(visitor, node, __ast_path)
74777            }
74778        }
74779    }
74780
74781    #[inline]
74782    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
74783        match self {
74784            swc_visit::Either::Left(visitor) => {
74785                VisitMutAstPath::visit_mut_ts_import_type(visitor, node, __ast_path)
74786            }
74787            swc_visit::Either::Right(visitor) => {
74788                VisitMutAstPath::visit_mut_ts_import_type(visitor, node, __ast_path)
74789            }
74790        }
74791    }
74792
74793    #[inline]
74794    fn visit_mut_ts_index_signature(
74795        &mut self,
74796        node: &mut TsIndexSignature,
74797        __ast_path: &mut AstKindPath,
74798    ) {
74799        match self {
74800            swc_visit::Either::Left(visitor) => {
74801                VisitMutAstPath::visit_mut_ts_index_signature(visitor, node, __ast_path)
74802            }
74803            swc_visit::Either::Right(visitor) => {
74804                VisitMutAstPath::visit_mut_ts_index_signature(visitor, node, __ast_path)
74805            }
74806        }
74807    }
74808
74809    #[inline]
74810    fn visit_mut_ts_indexed_access_type(
74811        &mut self,
74812        node: &mut TsIndexedAccessType,
74813        __ast_path: &mut AstKindPath,
74814    ) {
74815        match self {
74816            swc_visit::Either::Left(visitor) => {
74817                VisitMutAstPath::visit_mut_ts_indexed_access_type(visitor, node, __ast_path)
74818            }
74819            swc_visit::Either::Right(visitor) => {
74820                VisitMutAstPath::visit_mut_ts_indexed_access_type(visitor, node, __ast_path)
74821            }
74822        }
74823    }
74824
74825    #[inline]
74826    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
74827        match self {
74828            swc_visit::Either::Left(visitor) => {
74829                VisitMutAstPath::visit_mut_ts_infer_type(visitor, node, __ast_path)
74830            }
74831            swc_visit::Either::Right(visitor) => {
74832                VisitMutAstPath::visit_mut_ts_infer_type(visitor, node, __ast_path)
74833            }
74834        }
74835    }
74836
74837    #[inline]
74838    fn visit_mut_ts_instantiation(
74839        &mut self,
74840        node: &mut TsInstantiation,
74841        __ast_path: &mut AstKindPath,
74842    ) {
74843        match self {
74844            swc_visit::Either::Left(visitor) => {
74845                VisitMutAstPath::visit_mut_ts_instantiation(visitor, node, __ast_path)
74846            }
74847            swc_visit::Either::Right(visitor) => {
74848                VisitMutAstPath::visit_mut_ts_instantiation(visitor, node, __ast_path)
74849            }
74850        }
74851    }
74852
74853    #[inline]
74854    fn visit_mut_ts_interface_body(
74855        &mut self,
74856        node: &mut TsInterfaceBody,
74857        __ast_path: &mut AstKindPath,
74858    ) {
74859        match self {
74860            swc_visit::Either::Left(visitor) => {
74861                VisitMutAstPath::visit_mut_ts_interface_body(visitor, node, __ast_path)
74862            }
74863            swc_visit::Either::Right(visitor) => {
74864                VisitMutAstPath::visit_mut_ts_interface_body(visitor, node, __ast_path)
74865            }
74866        }
74867    }
74868
74869    #[inline]
74870    fn visit_mut_ts_interface_decl(
74871        &mut self,
74872        node: &mut TsInterfaceDecl,
74873        __ast_path: &mut AstKindPath,
74874    ) {
74875        match self {
74876            swc_visit::Either::Left(visitor) => {
74877                VisitMutAstPath::visit_mut_ts_interface_decl(visitor, node, __ast_path)
74878            }
74879            swc_visit::Either::Right(visitor) => {
74880                VisitMutAstPath::visit_mut_ts_interface_decl(visitor, node, __ast_path)
74881            }
74882        }
74883    }
74884
74885    #[inline]
74886    fn visit_mut_ts_intersection_type(
74887        &mut self,
74888        node: &mut TsIntersectionType,
74889        __ast_path: &mut AstKindPath,
74890    ) {
74891        match self {
74892            swc_visit::Either::Left(visitor) => {
74893                VisitMutAstPath::visit_mut_ts_intersection_type(visitor, node, __ast_path)
74894            }
74895            swc_visit::Either::Right(visitor) => {
74896                VisitMutAstPath::visit_mut_ts_intersection_type(visitor, node, __ast_path)
74897            }
74898        }
74899    }
74900
74901    #[inline]
74902    fn visit_mut_ts_keyword_type(
74903        &mut self,
74904        node: &mut TsKeywordType,
74905        __ast_path: &mut AstKindPath,
74906    ) {
74907        match self {
74908            swc_visit::Either::Left(visitor) => {
74909                VisitMutAstPath::visit_mut_ts_keyword_type(visitor, node, __ast_path)
74910            }
74911            swc_visit::Either::Right(visitor) => {
74912                VisitMutAstPath::visit_mut_ts_keyword_type(visitor, node, __ast_path)
74913            }
74914        }
74915    }
74916
74917    #[inline]
74918    fn visit_mut_ts_keyword_type_kind(
74919        &mut self,
74920        node: &mut TsKeywordTypeKind,
74921        __ast_path: &mut AstKindPath,
74922    ) {
74923        match self {
74924            swc_visit::Either::Left(visitor) => {
74925                VisitMutAstPath::visit_mut_ts_keyword_type_kind(visitor, node, __ast_path)
74926            }
74927            swc_visit::Either::Right(visitor) => {
74928                VisitMutAstPath::visit_mut_ts_keyword_type_kind(visitor, node, __ast_path)
74929            }
74930        }
74931    }
74932
74933    #[inline]
74934    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
74935        match self {
74936            swc_visit::Either::Left(visitor) => {
74937                VisitMutAstPath::visit_mut_ts_lit(visitor, node, __ast_path)
74938            }
74939            swc_visit::Either::Right(visitor) => {
74940                VisitMutAstPath::visit_mut_ts_lit(visitor, node, __ast_path)
74941            }
74942        }
74943    }
74944
74945    #[inline]
74946    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
74947        match self {
74948            swc_visit::Either::Left(visitor) => {
74949                VisitMutAstPath::visit_mut_ts_lit_type(visitor, node, __ast_path)
74950            }
74951            swc_visit::Either::Right(visitor) => {
74952                VisitMutAstPath::visit_mut_ts_lit_type(visitor, node, __ast_path)
74953            }
74954        }
74955    }
74956
74957    #[inline]
74958    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
74959        match self {
74960            swc_visit::Either::Left(visitor) => {
74961                VisitMutAstPath::visit_mut_ts_mapped_type(visitor, node, __ast_path)
74962            }
74963            swc_visit::Either::Right(visitor) => {
74964                VisitMutAstPath::visit_mut_ts_mapped_type(visitor, node, __ast_path)
74965            }
74966        }
74967    }
74968
74969    #[inline]
74970    fn visit_mut_ts_method_signature(
74971        &mut self,
74972        node: &mut TsMethodSignature,
74973        __ast_path: &mut AstKindPath,
74974    ) {
74975        match self {
74976            swc_visit::Either::Left(visitor) => {
74977                VisitMutAstPath::visit_mut_ts_method_signature(visitor, node, __ast_path)
74978            }
74979            swc_visit::Either::Right(visitor) => {
74980                VisitMutAstPath::visit_mut_ts_method_signature(visitor, node, __ast_path)
74981            }
74982        }
74983    }
74984
74985    #[inline]
74986    fn visit_mut_ts_module_block(
74987        &mut self,
74988        node: &mut TsModuleBlock,
74989        __ast_path: &mut AstKindPath,
74990    ) {
74991        match self {
74992            swc_visit::Either::Left(visitor) => {
74993                VisitMutAstPath::visit_mut_ts_module_block(visitor, node, __ast_path)
74994            }
74995            swc_visit::Either::Right(visitor) => {
74996                VisitMutAstPath::visit_mut_ts_module_block(visitor, node, __ast_path)
74997            }
74998        }
74999    }
75000
75001    #[inline]
75002    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
75003        match self {
75004            swc_visit::Either::Left(visitor) => {
75005                VisitMutAstPath::visit_mut_ts_module_decl(visitor, node, __ast_path)
75006            }
75007            swc_visit::Either::Right(visitor) => {
75008                VisitMutAstPath::visit_mut_ts_module_decl(visitor, node, __ast_path)
75009            }
75010        }
75011    }
75012
75013    #[inline]
75014    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
75015        match self {
75016            swc_visit::Either::Left(visitor) => {
75017                VisitMutAstPath::visit_mut_ts_module_name(visitor, node, __ast_path)
75018            }
75019            swc_visit::Either::Right(visitor) => {
75020                VisitMutAstPath::visit_mut_ts_module_name(visitor, node, __ast_path)
75021            }
75022        }
75023    }
75024
75025    #[inline]
75026    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
75027        match self {
75028            swc_visit::Either::Left(visitor) => {
75029                VisitMutAstPath::visit_mut_ts_module_ref(visitor, node, __ast_path)
75030            }
75031            swc_visit::Either::Right(visitor) => {
75032                VisitMutAstPath::visit_mut_ts_module_ref(visitor, node, __ast_path)
75033            }
75034        }
75035    }
75036
75037    #[inline]
75038    fn visit_mut_ts_namespace_body(
75039        &mut self,
75040        node: &mut TsNamespaceBody,
75041        __ast_path: &mut AstKindPath,
75042    ) {
75043        match self {
75044            swc_visit::Either::Left(visitor) => {
75045                VisitMutAstPath::visit_mut_ts_namespace_body(visitor, node, __ast_path)
75046            }
75047            swc_visit::Either::Right(visitor) => {
75048                VisitMutAstPath::visit_mut_ts_namespace_body(visitor, node, __ast_path)
75049            }
75050        }
75051    }
75052
75053    #[inline]
75054    fn visit_mut_ts_namespace_decl(
75055        &mut self,
75056        node: &mut TsNamespaceDecl,
75057        __ast_path: &mut AstKindPath,
75058    ) {
75059        match self {
75060            swc_visit::Either::Left(visitor) => {
75061                VisitMutAstPath::visit_mut_ts_namespace_decl(visitor, node, __ast_path)
75062            }
75063            swc_visit::Either::Right(visitor) => {
75064                VisitMutAstPath::visit_mut_ts_namespace_decl(visitor, node, __ast_path)
75065            }
75066        }
75067    }
75068
75069    #[inline]
75070    fn visit_mut_ts_namespace_export_decl(
75071        &mut self,
75072        node: &mut TsNamespaceExportDecl,
75073        __ast_path: &mut AstKindPath,
75074    ) {
75075        match self {
75076            swc_visit::Either::Left(visitor) => {
75077                VisitMutAstPath::visit_mut_ts_namespace_export_decl(visitor, node, __ast_path)
75078            }
75079            swc_visit::Either::Right(visitor) => {
75080                VisitMutAstPath::visit_mut_ts_namespace_export_decl(visitor, node, __ast_path)
75081            }
75082        }
75083    }
75084
75085    #[inline]
75086    fn visit_mut_ts_non_null_expr(
75087        &mut self,
75088        node: &mut TsNonNullExpr,
75089        __ast_path: &mut AstKindPath,
75090    ) {
75091        match self {
75092            swc_visit::Either::Left(visitor) => {
75093                VisitMutAstPath::visit_mut_ts_non_null_expr(visitor, node, __ast_path)
75094            }
75095            swc_visit::Either::Right(visitor) => {
75096                VisitMutAstPath::visit_mut_ts_non_null_expr(visitor, node, __ast_path)
75097            }
75098        }
75099    }
75100
75101    #[inline]
75102    fn visit_mut_ts_optional_type(
75103        &mut self,
75104        node: &mut TsOptionalType,
75105        __ast_path: &mut AstKindPath,
75106    ) {
75107        match self {
75108            swc_visit::Either::Left(visitor) => {
75109                VisitMutAstPath::visit_mut_ts_optional_type(visitor, node, __ast_path)
75110            }
75111            swc_visit::Either::Right(visitor) => {
75112                VisitMutAstPath::visit_mut_ts_optional_type(visitor, node, __ast_path)
75113            }
75114        }
75115    }
75116
75117    #[inline]
75118    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
75119        match self {
75120            swc_visit::Either::Left(visitor) => {
75121                VisitMutAstPath::visit_mut_ts_param_prop(visitor, node, __ast_path)
75122            }
75123            swc_visit::Either::Right(visitor) => {
75124                VisitMutAstPath::visit_mut_ts_param_prop(visitor, node, __ast_path)
75125            }
75126        }
75127    }
75128
75129    #[inline]
75130    fn visit_mut_ts_param_prop_param(
75131        &mut self,
75132        node: &mut TsParamPropParam,
75133        __ast_path: &mut AstKindPath,
75134    ) {
75135        match self {
75136            swc_visit::Either::Left(visitor) => {
75137                VisitMutAstPath::visit_mut_ts_param_prop_param(visitor, node, __ast_path)
75138            }
75139            swc_visit::Either::Right(visitor) => {
75140                VisitMutAstPath::visit_mut_ts_param_prop_param(visitor, node, __ast_path)
75141            }
75142        }
75143    }
75144
75145    #[inline]
75146    fn visit_mut_ts_parenthesized_type(
75147        &mut self,
75148        node: &mut TsParenthesizedType,
75149        __ast_path: &mut AstKindPath,
75150    ) {
75151        match self {
75152            swc_visit::Either::Left(visitor) => {
75153                VisitMutAstPath::visit_mut_ts_parenthesized_type(visitor, node, __ast_path)
75154            }
75155            swc_visit::Either::Right(visitor) => {
75156                VisitMutAstPath::visit_mut_ts_parenthesized_type(visitor, node, __ast_path)
75157            }
75158        }
75159    }
75160
75161    #[inline]
75162    fn visit_mut_ts_property_signature(
75163        &mut self,
75164        node: &mut TsPropertySignature,
75165        __ast_path: &mut AstKindPath,
75166    ) {
75167        match self {
75168            swc_visit::Either::Left(visitor) => {
75169                VisitMutAstPath::visit_mut_ts_property_signature(visitor, node, __ast_path)
75170            }
75171            swc_visit::Either::Right(visitor) => {
75172                VisitMutAstPath::visit_mut_ts_property_signature(visitor, node, __ast_path)
75173            }
75174        }
75175    }
75176
75177    #[inline]
75178    fn visit_mut_ts_qualified_name(
75179        &mut self,
75180        node: &mut TsQualifiedName,
75181        __ast_path: &mut AstKindPath,
75182    ) {
75183        match self {
75184            swc_visit::Either::Left(visitor) => {
75185                VisitMutAstPath::visit_mut_ts_qualified_name(visitor, node, __ast_path)
75186            }
75187            swc_visit::Either::Right(visitor) => {
75188                VisitMutAstPath::visit_mut_ts_qualified_name(visitor, node, __ast_path)
75189            }
75190        }
75191    }
75192
75193    #[inline]
75194    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
75195        match self {
75196            swc_visit::Either::Left(visitor) => {
75197                VisitMutAstPath::visit_mut_ts_rest_type(visitor, node, __ast_path)
75198            }
75199            swc_visit::Either::Right(visitor) => {
75200                VisitMutAstPath::visit_mut_ts_rest_type(visitor, node, __ast_path)
75201            }
75202        }
75203    }
75204
75205    #[inline]
75206    fn visit_mut_ts_satisfies_expr(
75207        &mut self,
75208        node: &mut TsSatisfiesExpr,
75209        __ast_path: &mut AstKindPath,
75210    ) {
75211        match self {
75212            swc_visit::Either::Left(visitor) => {
75213                VisitMutAstPath::visit_mut_ts_satisfies_expr(visitor, node, __ast_path)
75214            }
75215            swc_visit::Either::Right(visitor) => {
75216                VisitMutAstPath::visit_mut_ts_satisfies_expr(visitor, node, __ast_path)
75217            }
75218        }
75219    }
75220
75221    #[inline]
75222    fn visit_mut_ts_setter_signature(
75223        &mut self,
75224        node: &mut TsSetterSignature,
75225        __ast_path: &mut AstKindPath,
75226    ) {
75227        match self {
75228            swc_visit::Either::Left(visitor) => {
75229                VisitMutAstPath::visit_mut_ts_setter_signature(visitor, node, __ast_path)
75230            }
75231            swc_visit::Either::Right(visitor) => {
75232                VisitMutAstPath::visit_mut_ts_setter_signature(visitor, node, __ast_path)
75233            }
75234        }
75235    }
75236
75237    #[inline]
75238    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
75239        match self {
75240            swc_visit::Either::Left(visitor) => {
75241                VisitMutAstPath::visit_mut_ts_this_type(visitor, node, __ast_path)
75242            }
75243            swc_visit::Either::Right(visitor) => {
75244                VisitMutAstPath::visit_mut_ts_this_type(visitor, node, __ast_path)
75245            }
75246        }
75247    }
75248
75249    #[inline]
75250    fn visit_mut_ts_this_type_or_ident(
75251        &mut self,
75252        node: &mut TsThisTypeOrIdent,
75253        __ast_path: &mut AstKindPath,
75254    ) {
75255        match self {
75256            swc_visit::Either::Left(visitor) => {
75257                VisitMutAstPath::visit_mut_ts_this_type_or_ident(visitor, node, __ast_path)
75258            }
75259            swc_visit::Either::Right(visitor) => {
75260                VisitMutAstPath::visit_mut_ts_this_type_or_ident(visitor, node, __ast_path)
75261            }
75262        }
75263    }
75264
75265    #[inline]
75266    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
75267        match self {
75268            swc_visit::Either::Left(visitor) => {
75269                VisitMutAstPath::visit_mut_ts_tpl_lit_type(visitor, node, __ast_path)
75270            }
75271            swc_visit::Either::Right(visitor) => {
75272                VisitMutAstPath::visit_mut_ts_tpl_lit_type(visitor, node, __ast_path)
75273            }
75274        }
75275    }
75276
75277    #[inline]
75278    fn visit_mut_ts_tuple_element(
75279        &mut self,
75280        node: &mut TsTupleElement,
75281        __ast_path: &mut AstKindPath,
75282    ) {
75283        match self {
75284            swc_visit::Either::Left(visitor) => {
75285                VisitMutAstPath::visit_mut_ts_tuple_element(visitor, node, __ast_path)
75286            }
75287            swc_visit::Either::Right(visitor) => {
75288                VisitMutAstPath::visit_mut_ts_tuple_element(visitor, node, __ast_path)
75289            }
75290        }
75291    }
75292
75293    #[inline]
75294    fn visit_mut_ts_tuple_elements(
75295        &mut self,
75296        node: &mut Vec<TsTupleElement>,
75297        __ast_path: &mut AstKindPath,
75298    ) {
75299        match self {
75300            swc_visit::Either::Left(visitor) => {
75301                VisitMutAstPath::visit_mut_ts_tuple_elements(visitor, node, __ast_path)
75302            }
75303            swc_visit::Either::Right(visitor) => {
75304                VisitMutAstPath::visit_mut_ts_tuple_elements(visitor, node, __ast_path)
75305            }
75306        }
75307    }
75308
75309    #[inline]
75310    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
75311        match self {
75312            swc_visit::Either::Left(visitor) => {
75313                VisitMutAstPath::visit_mut_ts_tuple_type(visitor, node, __ast_path)
75314            }
75315            swc_visit::Either::Right(visitor) => {
75316                VisitMutAstPath::visit_mut_ts_tuple_type(visitor, node, __ast_path)
75317            }
75318        }
75319    }
75320
75321    #[inline]
75322    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
75323        match self {
75324            swc_visit::Either::Left(visitor) => {
75325                VisitMutAstPath::visit_mut_ts_type(visitor, node, __ast_path)
75326            }
75327            swc_visit::Either::Right(visitor) => {
75328                VisitMutAstPath::visit_mut_ts_type(visitor, node, __ast_path)
75329            }
75330        }
75331    }
75332
75333    #[inline]
75334    fn visit_mut_ts_type_alias_decl(
75335        &mut self,
75336        node: &mut TsTypeAliasDecl,
75337        __ast_path: &mut AstKindPath,
75338    ) {
75339        match self {
75340            swc_visit::Either::Left(visitor) => {
75341                VisitMutAstPath::visit_mut_ts_type_alias_decl(visitor, node, __ast_path)
75342            }
75343            swc_visit::Either::Right(visitor) => {
75344                VisitMutAstPath::visit_mut_ts_type_alias_decl(visitor, node, __ast_path)
75345            }
75346        }
75347    }
75348
75349    #[inline]
75350    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
75351        match self {
75352            swc_visit::Either::Left(visitor) => {
75353                VisitMutAstPath::visit_mut_ts_type_ann(visitor, node, __ast_path)
75354            }
75355            swc_visit::Either::Right(visitor) => {
75356                VisitMutAstPath::visit_mut_ts_type_ann(visitor, node, __ast_path)
75357            }
75358        }
75359    }
75360
75361    #[inline]
75362    fn visit_mut_ts_type_assertion(
75363        &mut self,
75364        node: &mut TsTypeAssertion,
75365        __ast_path: &mut AstKindPath,
75366    ) {
75367        match self {
75368            swc_visit::Either::Left(visitor) => {
75369                VisitMutAstPath::visit_mut_ts_type_assertion(visitor, node, __ast_path)
75370            }
75371            swc_visit::Either::Right(visitor) => {
75372                VisitMutAstPath::visit_mut_ts_type_assertion(visitor, node, __ast_path)
75373            }
75374        }
75375    }
75376
75377    #[inline]
75378    fn visit_mut_ts_type_element(
75379        &mut self,
75380        node: &mut TsTypeElement,
75381        __ast_path: &mut AstKindPath,
75382    ) {
75383        match self {
75384            swc_visit::Either::Left(visitor) => {
75385                VisitMutAstPath::visit_mut_ts_type_element(visitor, node, __ast_path)
75386            }
75387            swc_visit::Either::Right(visitor) => {
75388                VisitMutAstPath::visit_mut_ts_type_element(visitor, node, __ast_path)
75389            }
75390        }
75391    }
75392
75393    #[inline]
75394    fn visit_mut_ts_type_elements(
75395        &mut self,
75396        node: &mut Vec<TsTypeElement>,
75397        __ast_path: &mut AstKindPath,
75398    ) {
75399        match self {
75400            swc_visit::Either::Left(visitor) => {
75401                VisitMutAstPath::visit_mut_ts_type_elements(visitor, node, __ast_path)
75402            }
75403            swc_visit::Either::Right(visitor) => {
75404                VisitMutAstPath::visit_mut_ts_type_elements(visitor, node, __ast_path)
75405            }
75406        }
75407    }
75408
75409    #[inline]
75410    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
75411        match self {
75412            swc_visit::Either::Left(visitor) => {
75413                VisitMutAstPath::visit_mut_ts_type_lit(visitor, node, __ast_path)
75414            }
75415            swc_visit::Either::Right(visitor) => {
75416                VisitMutAstPath::visit_mut_ts_type_lit(visitor, node, __ast_path)
75417            }
75418        }
75419    }
75420
75421    #[inline]
75422    fn visit_mut_ts_type_operator(
75423        &mut self,
75424        node: &mut TsTypeOperator,
75425        __ast_path: &mut AstKindPath,
75426    ) {
75427        match self {
75428            swc_visit::Either::Left(visitor) => {
75429                VisitMutAstPath::visit_mut_ts_type_operator(visitor, node, __ast_path)
75430            }
75431            swc_visit::Either::Right(visitor) => {
75432                VisitMutAstPath::visit_mut_ts_type_operator(visitor, node, __ast_path)
75433            }
75434        }
75435    }
75436
75437    #[inline]
75438    fn visit_mut_ts_type_operator_op(
75439        &mut self,
75440        node: &mut TsTypeOperatorOp,
75441        __ast_path: &mut AstKindPath,
75442    ) {
75443        match self {
75444            swc_visit::Either::Left(visitor) => {
75445                VisitMutAstPath::visit_mut_ts_type_operator_op(visitor, node, __ast_path)
75446            }
75447            swc_visit::Either::Right(visitor) => {
75448                VisitMutAstPath::visit_mut_ts_type_operator_op(visitor, node, __ast_path)
75449            }
75450        }
75451    }
75452
75453    #[inline]
75454    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
75455        match self {
75456            swc_visit::Either::Left(visitor) => {
75457                VisitMutAstPath::visit_mut_ts_type_param(visitor, node, __ast_path)
75458            }
75459            swc_visit::Either::Right(visitor) => {
75460                VisitMutAstPath::visit_mut_ts_type_param(visitor, node, __ast_path)
75461            }
75462        }
75463    }
75464
75465    #[inline]
75466    fn visit_mut_ts_type_param_decl(
75467        &mut self,
75468        node: &mut TsTypeParamDecl,
75469        __ast_path: &mut AstKindPath,
75470    ) {
75471        match self {
75472            swc_visit::Either::Left(visitor) => {
75473                VisitMutAstPath::visit_mut_ts_type_param_decl(visitor, node, __ast_path)
75474            }
75475            swc_visit::Either::Right(visitor) => {
75476                VisitMutAstPath::visit_mut_ts_type_param_decl(visitor, node, __ast_path)
75477            }
75478        }
75479    }
75480
75481    #[inline]
75482    fn visit_mut_ts_type_param_instantiation(
75483        &mut self,
75484        node: &mut TsTypeParamInstantiation,
75485        __ast_path: &mut AstKindPath,
75486    ) {
75487        match self {
75488            swc_visit::Either::Left(visitor) => {
75489                VisitMutAstPath::visit_mut_ts_type_param_instantiation(visitor, node, __ast_path)
75490            }
75491            swc_visit::Either::Right(visitor) => {
75492                VisitMutAstPath::visit_mut_ts_type_param_instantiation(visitor, node, __ast_path)
75493            }
75494        }
75495    }
75496
75497    #[inline]
75498    fn visit_mut_ts_type_params(
75499        &mut self,
75500        node: &mut Vec<TsTypeParam>,
75501        __ast_path: &mut AstKindPath,
75502    ) {
75503        match self {
75504            swc_visit::Either::Left(visitor) => {
75505                VisitMutAstPath::visit_mut_ts_type_params(visitor, node, __ast_path)
75506            }
75507            swc_visit::Either::Right(visitor) => {
75508                VisitMutAstPath::visit_mut_ts_type_params(visitor, node, __ast_path)
75509            }
75510        }
75511    }
75512
75513    #[inline]
75514    fn visit_mut_ts_type_predicate(
75515        &mut self,
75516        node: &mut TsTypePredicate,
75517        __ast_path: &mut AstKindPath,
75518    ) {
75519        match self {
75520            swc_visit::Either::Left(visitor) => {
75521                VisitMutAstPath::visit_mut_ts_type_predicate(visitor, node, __ast_path)
75522            }
75523            swc_visit::Either::Right(visitor) => {
75524                VisitMutAstPath::visit_mut_ts_type_predicate(visitor, node, __ast_path)
75525            }
75526        }
75527    }
75528
75529    #[inline]
75530    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
75531        match self {
75532            swc_visit::Either::Left(visitor) => {
75533                VisitMutAstPath::visit_mut_ts_type_query(visitor, node, __ast_path)
75534            }
75535            swc_visit::Either::Right(visitor) => {
75536                VisitMutAstPath::visit_mut_ts_type_query(visitor, node, __ast_path)
75537            }
75538        }
75539    }
75540
75541    #[inline]
75542    fn visit_mut_ts_type_query_expr(
75543        &mut self,
75544        node: &mut TsTypeQueryExpr,
75545        __ast_path: &mut AstKindPath,
75546    ) {
75547        match self {
75548            swc_visit::Either::Left(visitor) => {
75549                VisitMutAstPath::visit_mut_ts_type_query_expr(visitor, node, __ast_path)
75550            }
75551            swc_visit::Either::Right(visitor) => {
75552                VisitMutAstPath::visit_mut_ts_type_query_expr(visitor, node, __ast_path)
75553            }
75554        }
75555    }
75556
75557    #[inline]
75558    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
75559        match self {
75560            swc_visit::Either::Left(visitor) => {
75561                VisitMutAstPath::visit_mut_ts_type_ref(visitor, node, __ast_path)
75562            }
75563            swc_visit::Either::Right(visitor) => {
75564                VisitMutAstPath::visit_mut_ts_type_ref(visitor, node, __ast_path)
75565            }
75566        }
75567    }
75568
75569    #[inline]
75570    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
75571        match self {
75572            swc_visit::Either::Left(visitor) => {
75573                VisitMutAstPath::visit_mut_ts_types(visitor, node, __ast_path)
75574            }
75575            swc_visit::Either::Right(visitor) => {
75576                VisitMutAstPath::visit_mut_ts_types(visitor, node, __ast_path)
75577            }
75578        }
75579    }
75580
75581    #[inline]
75582    fn visit_mut_ts_union_or_intersection_type(
75583        &mut self,
75584        node: &mut TsUnionOrIntersectionType,
75585        __ast_path: &mut AstKindPath,
75586    ) {
75587        match self {
75588            swc_visit::Either::Left(visitor) => {
75589                VisitMutAstPath::visit_mut_ts_union_or_intersection_type(visitor, node, __ast_path)
75590            }
75591            swc_visit::Either::Right(visitor) => {
75592                VisitMutAstPath::visit_mut_ts_union_or_intersection_type(visitor, node, __ast_path)
75593            }
75594        }
75595    }
75596
75597    #[inline]
75598    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
75599        match self {
75600            swc_visit::Either::Left(visitor) => {
75601                VisitMutAstPath::visit_mut_ts_union_type(visitor, node, __ast_path)
75602            }
75603            swc_visit::Either::Right(visitor) => {
75604                VisitMutAstPath::visit_mut_ts_union_type(visitor, node, __ast_path)
75605            }
75606        }
75607    }
75608
75609    #[inline]
75610    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
75611        match self {
75612            swc_visit::Either::Left(visitor) => {
75613                VisitMutAstPath::visit_mut_unary_expr(visitor, node, __ast_path)
75614            }
75615            swc_visit::Either::Right(visitor) => {
75616                VisitMutAstPath::visit_mut_unary_expr(visitor, node, __ast_path)
75617            }
75618        }
75619    }
75620
75621    #[inline]
75622    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
75623        match self {
75624            swc_visit::Either::Left(visitor) => {
75625                VisitMutAstPath::visit_mut_unary_op(visitor, node, __ast_path)
75626            }
75627            swc_visit::Either::Right(visitor) => {
75628                VisitMutAstPath::visit_mut_unary_op(visitor, node, __ast_path)
75629            }
75630        }
75631    }
75632
75633    #[inline]
75634    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
75635        match self {
75636            swc_visit::Either::Left(visitor) => {
75637                VisitMutAstPath::visit_mut_update_expr(visitor, node, __ast_path)
75638            }
75639            swc_visit::Either::Right(visitor) => {
75640                VisitMutAstPath::visit_mut_update_expr(visitor, node, __ast_path)
75641            }
75642        }
75643    }
75644
75645    #[inline]
75646    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
75647        match self {
75648            swc_visit::Either::Left(visitor) => {
75649                VisitMutAstPath::visit_mut_update_op(visitor, node, __ast_path)
75650            }
75651            swc_visit::Either::Right(visitor) => {
75652                VisitMutAstPath::visit_mut_update_op(visitor, node, __ast_path)
75653            }
75654        }
75655    }
75656
75657    #[inline]
75658    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
75659        match self {
75660            swc_visit::Either::Left(visitor) => {
75661                VisitMutAstPath::visit_mut_using_decl(visitor, node, __ast_path)
75662            }
75663            swc_visit::Either::Right(visitor) => {
75664                VisitMutAstPath::visit_mut_using_decl(visitor, node, __ast_path)
75665            }
75666        }
75667    }
75668
75669    #[inline]
75670    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
75671        match self {
75672            swc_visit::Either::Left(visitor) => {
75673                VisitMutAstPath::visit_mut_var_decl(visitor, node, __ast_path)
75674            }
75675            swc_visit::Either::Right(visitor) => {
75676                VisitMutAstPath::visit_mut_var_decl(visitor, node, __ast_path)
75677            }
75678        }
75679    }
75680
75681    #[inline]
75682    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
75683        match self {
75684            swc_visit::Either::Left(visitor) => {
75685                VisitMutAstPath::visit_mut_var_decl_kind(visitor, node, __ast_path)
75686            }
75687            swc_visit::Either::Right(visitor) => {
75688                VisitMutAstPath::visit_mut_var_decl_kind(visitor, node, __ast_path)
75689            }
75690        }
75691    }
75692
75693    #[inline]
75694    fn visit_mut_var_decl_or_expr(
75695        &mut self,
75696        node: &mut VarDeclOrExpr,
75697        __ast_path: &mut AstKindPath,
75698    ) {
75699        match self {
75700            swc_visit::Either::Left(visitor) => {
75701                VisitMutAstPath::visit_mut_var_decl_or_expr(visitor, node, __ast_path)
75702            }
75703            swc_visit::Either::Right(visitor) => {
75704                VisitMutAstPath::visit_mut_var_decl_or_expr(visitor, node, __ast_path)
75705            }
75706        }
75707    }
75708
75709    #[inline]
75710    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
75711        match self {
75712            swc_visit::Either::Left(visitor) => {
75713                VisitMutAstPath::visit_mut_var_declarator(visitor, node, __ast_path)
75714            }
75715            swc_visit::Either::Right(visitor) => {
75716                VisitMutAstPath::visit_mut_var_declarator(visitor, node, __ast_path)
75717            }
75718        }
75719    }
75720
75721    #[inline]
75722    fn visit_mut_var_declarators(
75723        &mut self,
75724        node: &mut Vec<VarDeclarator>,
75725        __ast_path: &mut AstKindPath,
75726    ) {
75727        match self {
75728            swc_visit::Either::Left(visitor) => {
75729                VisitMutAstPath::visit_mut_var_declarators(visitor, node, __ast_path)
75730            }
75731            swc_visit::Either::Right(visitor) => {
75732                VisitMutAstPath::visit_mut_var_declarators(visitor, node, __ast_path)
75733            }
75734        }
75735    }
75736
75737    #[inline]
75738    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
75739        match self {
75740            swc_visit::Either::Left(visitor) => {
75741                VisitMutAstPath::visit_mut_while_stmt(visitor, node, __ast_path)
75742            }
75743            swc_visit::Either::Right(visitor) => {
75744                VisitMutAstPath::visit_mut_while_stmt(visitor, node, __ast_path)
75745            }
75746        }
75747    }
75748
75749    #[inline]
75750    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
75751        match self {
75752            swc_visit::Either::Left(visitor) => {
75753                VisitMutAstPath::visit_mut_with_stmt(visitor, node, __ast_path)
75754            }
75755            swc_visit::Either::Right(visitor) => {
75756                VisitMutAstPath::visit_mut_with_stmt(visitor, node, __ast_path)
75757            }
75758        }
75759    }
75760
75761    #[inline]
75762    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
75763        match self {
75764            swc_visit::Either::Left(visitor) => {
75765                VisitMutAstPath::visit_mut_yield_expr(visitor, node, __ast_path)
75766            }
75767            swc_visit::Either::Right(visitor) => {
75768                VisitMutAstPath::visit_mut_yield_expr(visitor, node, __ast_path)
75769            }
75770        }
75771    }
75772}
75773#[cfg(any(docsrs, feature = "path"))]
75774#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
75775impl<V> VisitMutAstPath for ::swc_visit::Optional<V>
75776where
75777    V: VisitMutAstPath,
75778{
75779    #[inline]
75780    fn visit_mut_accessibility(&mut self, node: &mut Accessibility, __ast_path: &mut AstKindPath) {
75781        if self.enabled {
75782            <V as VisitMutAstPath>::visit_mut_accessibility(&mut self.visitor, node, __ast_path)
75783        } else {
75784        }
75785    }
75786
75787    #[inline]
75788    fn visit_mut_array_lit(&mut self, node: &mut ArrayLit, __ast_path: &mut AstKindPath) {
75789        if self.enabled {
75790            <V as VisitMutAstPath>::visit_mut_array_lit(&mut self.visitor, node, __ast_path)
75791        } else {
75792        }
75793    }
75794
75795    #[inline]
75796    fn visit_mut_array_pat(&mut self, node: &mut ArrayPat, __ast_path: &mut AstKindPath) {
75797        if self.enabled {
75798            <V as VisitMutAstPath>::visit_mut_array_pat(&mut self.visitor, node, __ast_path)
75799        } else {
75800        }
75801    }
75802
75803    #[inline]
75804    fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr, __ast_path: &mut AstKindPath) {
75805        if self.enabled {
75806            <V as VisitMutAstPath>::visit_mut_arrow_expr(&mut self.visitor, node, __ast_path)
75807        } else {
75808        }
75809    }
75810
75811    #[inline]
75812    fn visit_mut_assign_expr(&mut self, node: &mut AssignExpr, __ast_path: &mut AstKindPath) {
75813        if self.enabled {
75814            <V as VisitMutAstPath>::visit_mut_assign_expr(&mut self.visitor, node, __ast_path)
75815        } else {
75816        }
75817    }
75818
75819    #[inline]
75820    fn visit_mut_assign_op(&mut self, node: &mut AssignOp, __ast_path: &mut AstKindPath) {
75821        if self.enabled {
75822            <V as VisitMutAstPath>::visit_mut_assign_op(&mut self.visitor, node, __ast_path)
75823        } else {
75824        }
75825    }
75826
75827    #[inline]
75828    fn visit_mut_assign_pat(&mut self, node: &mut AssignPat, __ast_path: &mut AstKindPath) {
75829        if self.enabled {
75830            <V as VisitMutAstPath>::visit_mut_assign_pat(&mut self.visitor, node, __ast_path)
75831        } else {
75832        }
75833    }
75834
75835    #[inline]
75836    fn visit_mut_assign_pat_prop(
75837        &mut self,
75838        node: &mut AssignPatProp,
75839        __ast_path: &mut AstKindPath,
75840    ) {
75841        if self.enabled {
75842            <V as VisitMutAstPath>::visit_mut_assign_pat_prop(&mut self.visitor, node, __ast_path)
75843        } else {
75844        }
75845    }
75846
75847    #[inline]
75848    fn visit_mut_assign_prop(&mut self, node: &mut AssignProp, __ast_path: &mut AstKindPath) {
75849        if self.enabled {
75850            <V as VisitMutAstPath>::visit_mut_assign_prop(&mut self.visitor, node, __ast_path)
75851        } else {
75852        }
75853    }
75854
75855    #[inline]
75856    fn visit_mut_assign_target(&mut self, node: &mut AssignTarget, __ast_path: &mut AstKindPath) {
75857        if self.enabled {
75858            <V as VisitMutAstPath>::visit_mut_assign_target(&mut self.visitor, node, __ast_path)
75859        } else {
75860        }
75861    }
75862
75863    #[inline]
75864    fn visit_mut_assign_target_pat(
75865        &mut self,
75866        node: &mut AssignTargetPat,
75867        __ast_path: &mut AstKindPath,
75868    ) {
75869        if self.enabled {
75870            <V as VisitMutAstPath>::visit_mut_assign_target_pat(&mut self.visitor, node, __ast_path)
75871        } else {
75872        }
75873    }
75874
75875    #[inline]
75876    fn visit_mut_atom(&mut self, node: &mut swc_atoms::Atom, __ast_path: &mut AstKindPath) {
75877        if self.enabled {
75878            <V as VisitMutAstPath>::visit_mut_atom(&mut self.visitor, node, __ast_path)
75879        } else {
75880        }
75881    }
75882
75883    #[inline]
75884    fn visit_mut_auto_accessor(&mut self, node: &mut AutoAccessor, __ast_path: &mut AstKindPath) {
75885        if self.enabled {
75886            <V as VisitMutAstPath>::visit_mut_auto_accessor(&mut self.visitor, node, __ast_path)
75887        } else {
75888        }
75889    }
75890
75891    #[inline]
75892    fn visit_mut_await_expr(&mut self, node: &mut AwaitExpr, __ast_path: &mut AstKindPath) {
75893        if self.enabled {
75894            <V as VisitMutAstPath>::visit_mut_await_expr(&mut self.visitor, node, __ast_path)
75895        } else {
75896        }
75897    }
75898
75899    #[inline]
75900    fn visit_mut_big_int(&mut self, node: &mut BigInt, __ast_path: &mut AstKindPath) {
75901        if self.enabled {
75902            <V as VisitMutAstPath>::visit_mut_big_int(&mut self.visitor, node, __ast_path)
75903        } else {
75904        }
75905    }
75906
75907    #[inline]
75908    fn visit_mut_big_int_value(&mut self, node: &mut BigIntValue, __ast_path: &mut AstKindPath) {
75909        if self.enabled {
75910            <V as VisitMutAstPath>::visit_mut_big_int_value(&mut self.visitor, node, __ast_path)
75911        } else {
75912        }
75913    }
75914
75915    #[inline]
75916    fn visit_mut_bin_expr(&mut self, node: &mut BinExpr, __ast_path: &mut AstKindPath) {
75917        if self.enabled {
75918            <V as VisitMutAstPath>::visit_mut_bin_expr(&mut self.visitor, node, __ast_path)
75919        } else {
75920        }
75921    }
75922
75923    #[inline]
75924    fn visit_mut_binary_op(&mut self, node: &mut BinaryOp, __ast_path: &mut AstKindPath) {
75925        if self.enabled {
75926            <V as VisitMutAstPath>::visit_mut_binary_op(&mut self.visitor, node, __ast_path)
75927        } else {
75928        }
75929    }
75930
75931    #[inline]
75932    fn visit_mut_binding_ident(&mut self, node: &mut BindingIdent, __ast_path: &mut AstKindPath) {
75933        if self.enabled {
75934            <V as VisitMutAstPath>::visit_mut_binding_ident(&mut self.visitor, node, __ast_path)
75935        } else {
75936        }
75937    }
75938
75939    #[inline]
75940    fn visit_mut_block_stmt(&mut self, node: &mut BlockStmt, __ast_path: &mut AstKindPath) {
75941        if self.enabled {
75942            <V as VisitMutAstPath>::visit_mut_block_stmt(&mut self.visitor, node, __ast_path)
75943        } else {
75944        }
75945    }
75946
75947    #[inline]
75948    fn visit_mut_block_stmt_or_expr(
75949        &mut self,
75950        node: &mut BlockStmtOrExpr,
75951        __ast_path: &mut AstKindPath,
75952    ) {
75953        if self.enabled {
75954            <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(
75955                &mut self.visitor,
75956                node,
75957                __ast_path,
75958            )
75959        } else {
75960        }
75961    }
75962
75963    #[inline]
75964    fn visit_mut_bool(&mut self, node: &mut Bool, __ast_path: &mut AstKindPath) {
75965        if self.enabled {
75966            <V as VisitMutAstPath>::visit_mut_bool(&mut self.visitor, node, __ast_path)
75967        } else {
75968        }
75969    }
75970
75971    #[inline]
75972    fn visit_mut_break_stmt(&mut self, node: &mut BreakStmt, __ast_path: &mut AstKindPath) {
75973        if self.enabled {
75974            <V as VisitMutAstPath>::visit_mut_break_stmt(&mut self.visitor, node, __ast_path)
75975        } else {
75976        }
75977    }
75978
75979    #[inline]
75980    fn visit_mut_call_expr(&mut self, node: &mut CallExpr, __ast_path: &mut AstKindPath) {
75981        if self.enabled {
75982            <V as VisitMutAstPath>::visit_mut_call_expr(&mut self.visitor, node, __ast_path)
75983        } else {
75984        }
75985    }
75986
75987    #[inline]
75988    fn visit_mut_callee(&mut self, node: &mut Callee, __ast_path: &mut AstKindPath) {
75989        if self.enabled {
75990            <V as VisitMutAstPath>::visit_mut_callee(&mut self.visitor, node, __ast_path)
75991        } else {
75992        }
75993    }
75994
75995    #[inline]
75996    fn visit_mut_catch_clause(&mut self, node: &mut CatchClause, __ast_path: &mut AstKindPath) {
75997        if self.enabled {
75998            <V as VisitMutAstPath>::visit_mut_catch_clause(&mut self.visitor, node, __ast_path)
75999        } else {
76000        }
76001    }
76002
76003    #[inline]
76004    fn visit_mut_class(&mut self, node: &mut Class, __ast_path: &mut AstKindPath) {
76005        if self.enabled {
76006            <V as VisitMutAstPath>::visit_mut_class(&mut self.visitor, node, __ast_path)
76007        } else {
76008        }
76009    }
76010
76011    #[inline]
76012    fn visit_mut_class_decl(&mut self, node: &mut ClassDecl, __ast_path: &mut AstKindPath) {
76013        if self.enabled {
76014            <V as VisitMutAstPath>::visit_mut_class_decl(&mut self.visitor, node, __ast_path)
76015        } else {
76016        }
76017    }
76018
76019    #[inline]
76020    fn visit_mut_class_expr(&mut self, node: &mut ClassExpr, __ast_path: &mut AstKindPath) {
76021        if self.enabled {
76022            <V as VisitMutAstPath>::visit_mut_class_expr(&mut self.visitor, node, __ast_path)
76023        } else {
76024        }
76025    }
76026
76027    #[inline]
76028    fn visit_mut_class_member(&mut self, node: &mut ClassMember, __ast_path: &mut AstKindPath) {
76029        if self.enabled {
76030            <V as VisitMutAstPath>::visit_mut_class_member(&mut self.visitor, node, __ast_path)
76031        } else {
76032        }
76033    }
76034
76035    #[inline]
76036    fn visit_mut_class_members(
76037        &mut self,
76038        node: &mut Vec<ClassMember>,
76039        __ast_path: &mut AstKindPath,
76040    ) {
76041        if self.enabled {
76042            <V as VisitMutAstPath>::visit_mut_class_members(&mut self.visitor, node, __ast_path)
76043        } else {
76044        }
76045    }
76046
76047    #[inline]
76048    fn visit_mut_class_method(&mut self, node: &mut ClassMethod, __ast_path: &mut AstKindPath) {
76049        if self.enabled {
76050            <V as VisitMutAstPath>::visit_mut_class_method(&mut self.visitor, node, __ast_path)
76051        } else {
76052        }
76053    }
76054
76055    #[inline]
76056    fn visit_mut_class_prop(&mut self, node: &mut ClassProp, __ast_path: &mut AstKindPath) {
76057        if self.enabled {
76058            <V as VisitMutAstPath>::visit_mut_class_prop(&mut self.visitor, node, __ast_path)
76059        } else {
76060        }
76061    }
76062
76063    #[inline]
76064    fn visit_mut_computed_prop_name(
76065        &mut self,
76066        node: &mut ComputedPropName,
76067        __ast_path: &mut AstKindPath,
76068    ) {
76069        if self.enabled {
76070            <V as VisitMutAstPath>::visit_mut_computed_prop_name(
76071                &mut self.visitor,
76072                node,
76073                __ast_path,
76074            )
76075        } else {
76076        }
76077    }
76078
76079    #[inline]
76080    fn visit_mut_cond_expr(&mut self, node: &mut CondExpr, __ast_path: &mut AstKindPath) {
76081        if self.enabled {
76082            <V as VisitMutAstPath>::visit_mut_cond_expr(&mut self.visitor, node, __ast_path)
76083        } else {
76084        }
76085    }
76086
76087    #[inline]
76088    fn visit_mut_constructor(&mut self, node: &mut Constructor, __ast_path: &mut AstKindPath) {
76089        if self.enabled {
76090            <V as VisitMutAstPath>::visit_mut_constructor(&mut self.visitor, node, __ast_path)
76091        } else {
76092        }
76093    }
76094
76095    #[inline]
76096    fn visit_mut_continue_stmt(&mut self, node: &mut ContinueStmt, __ast_path: &mut AstKindPath) {
76097        if self.enabled {
76098            <V as VisitMutAstPath>::visit_mut_continue_stmt(&mut self.visitor, node, __ast_path)
76099        } else {
76100        }
76101    }
76102
76103    #[inline]
76104    fn visit_mut_debugger_stmt(&mut self, node: &mut DebuggerStmt, __ast_path: &mut AstKindPath) {
76105        if self.enabled {
76106            <V as VisitMutAstPath>::visit_mut_debugger_stmt(&mut self.visitor, node, __ast_path)
76107        } else {
76108        }
76109    }
76110
76111    #[inline]
76112    fn visit_mut_decl(&mut self, node: &mut Decl, __ast_path: &mut AstKindPath) {
76113        if self.enabled {
76114            <V as VisitMutAstPath>::visit_mut_decl(&mut self.visitor, node, __ast_path)
76115        } else {
76116        }
76117    }
76118
76119    #[inline]
76120    fn visit_mut_decorator(&mut self, node: &mut Decorator, __ast_path: &mut AstKindPath) {
76121        if self.enabled {
76122            <V as VisitMutAstPath>::visit_mut_decorator(&mut self.visitor, node, __ast_path)
76123        } else {
76124        }
76125    }
76126
76127    #[inline]
76128    fn visit_mut_decorators(&mut self, node: &mut Vec<Decorator>, __ast_path: &mut AstKindPath) {
76129        if self.enabled {
76130            <V as VisitMutAstPath>::visit_mut_decorators(&mut self.visitor, node, __ast_path)
76131        } else {
76132        }
76133    }
76134
76135    #[inline]
76136    fn visit_mut_default_decl(&mut self, node: &mut DefaultDecl, __ast_path: &mut AstKindPath) {
76137        if self.enabled {
76138            <V as VisitMutAstPath>::visit_mut_default_decl(&mut self.visitor, node, __ast_path)
76139        } else {
76140        }
76141    }
76142
76143    #[inline]
76144    fn visit_mut_do_while_stmt(&mut self, node: &mut DoWhileStmt, __ast_path: &mut AstKindPath) {
76145        if self.enabled {
76146            <V as VisitMutAstPath>::visit_mut_do_while_stmt(&mut self.visitor, node, __ast_path)
76147        } else {
76148        }
76149    }
76150
76151    #[inline]
76152    fn visit_mut_empty_stmt(&mut self, node: &mut EmptyStmt, __ast_path: &mut AstKindPath) {
76153        if self.enabled {
76154            <V as VisitMutAstPath>::visit_mut_empty_stmt(&mut self.visitor, node, __ast_path)
76155        } else {
76156        }
76157    }
76158
76159    #[inline]
76160    fn visit_mut_export_all(&mut self, node: &mut ExportAll, __ast_path: &mut AstKindPath) {
76161        if self.enabled {
76162            <V as VisitMutAstPath>::visit_mut_export_all(&mut self.visitor, node, __ast_path)
76163        } else {
76164        }
76165    }
76166
76167    #[inline]
76168    fn visit_mut_export_decl(&mut self, node: &mut ExportDecl, __ast_path: &mut AstKindPath) {
76169        if self.enabled {
76170            <V as VisitMutAstPath>::visit_mut_export_decl(&mut self.visitor, node, __ast_path)
76171        } else {
76172        }
76173    }
76174
76175    #[inline]
76176    fn visit_mut_export_default_decl(
76177        &mut self,
76178        node: &mut ExportDefaultDecl,
76179        __ast_path: &mut AstKindPath,
76180    ) {
76181        if self.enabled {
76182            <V as VisitMutAstPath>::visit_mut_export_default_decl(
76183                &mut self.visitor,
76184                node,
76185                __ast_path,
76186            )
76187        } else {
76188        }
76189    }
76190
76191    #[inline]
76192    fn visit_mut_export_default_expr(
76193        &mut self,
76194        node: &mut ExportDefaultExpr,
76195        __ast_path: &mut AstKindPath,
76196    ) {
76197        if self.enabled {
76198            <V as VisitMutAstPath>::visit_mut_export_default_expr(
76199                &mut self.visitor,
76200                node,
76201                __ast_path,
76202            )
76203        } else {
76204        }
76205    }
76206
76207    #[inline]
76208    fn visit_mut_export_default_specifier(
76209        &mut self,
76210        node: &mut ExportDefaultSpecifier,
76211        __ast_path: &mut AstKindPath,
76212    ) {
76213        if self.enabled {
76214            <V as VisitMutAstPath>::visit_mut_export_default_specifier(
76215                &mut self.visitor,
76216                node,
76217                __ast_path,
76218            )
76219        } else {
76220        }
76221    }
76222
76223    #[inline]
76224    fn visit_mut_export_named_specifier(
76225        &mut self,
76226        node: &mut ExportNamedSpecifier,
76227        __ast_path: &mut AstKindPath,
76228    ) {
76229        if self.enabled {
76230            <V as VisitMutAstPath>::visit_mut_export_named_specifier(
76231                &mut self.visitor,
76232                node,
76233                __ast_path,
76234            )
76235        } else {
76236        }
76237    }
76238
76239    #[inline]
76240    fn visit_mut_export_namespace_specifier(
76241        &mut self,
76242        node: &mut ExportNamespaceSpecifier,
76243        __ast_path: &mut AstKindPath,
76244    ) {
76245        if self.enabled {
76246            <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(
76247                &mut self.visitor,
76248                node,
76249                __ast_path,
76250            )
76251        } else {
76252        }
76253    }
76254
76255    #[inline]
76256    fn visit_mut_export_specifier(
76257        &mut self,
76258        node: &mut ExportSpecifier,
76259        __ast_path: &mut AstKindPath,
76260    ) {
76261        if self.enabled {
76262            <V as VisitMutAstPath>::visit_mut_export_specifier(&mut self.visitor, node, __ast_path)
76263        } else {
76264        }
76265    }
76266
76267    #[inline]
76268    fn visit_mut_export_specifiers(
76269        &mut self,
76270        node: &mut Vec<ExportSpecifier>,
76271        __ast_path: &mut AstKindPath,
76272    ) {
76273        if self.enabled {
76274            <V as VisitMutAstPath>::visit_mut_export_specifiers(&mut self.visitor, node, __ast_path)
76275        } else {
76276        }
76277    }
76278
76279    #[inline]
76280    fn visit_mut_expr(&mut self, node: &mut Expr, __ast_path: &mut AstKindPath) {
76281        if self.enabled {
76282            <V as VisitMutAstPath>::visit_mut_expr(&mut self.visitor, node, __ast_path)
76283        } else {
76284        }
76285    }
76286
76287    #[inline]
76288    fn visit_mut_expr_or_spread(&mut self, node: &mut ExprOrSpread, __ast_path: &mut AstKindPath) {
76289        if self.enabled {
76290            <V as VisitMutAstPath>::visit_mut_expr_or_spread(&mut self.visitor, node, __ast_path)
76291        } else {
76292        }
76293    }
76294
76295    #[inline]
76296    fn visit_mut_expr_or_spreads(
76297        &mut self,
76298        node: &mut Vec<ExprOrSpread>,
76299        __ast_path: &mut AstKindPath,
76300    ) {
76301        if self.enabled {
76302            <V as VisitMutAstPath>::visit_mut_expr_or_spreads(&mut self.visitor, node, __ast_path)
76303        } else {
76304        }
76305    }
76306
76307    #[inline]
76308    fn visit_mut_expr_stmt(&mut self, node: &mut ExprStmt, __ast_path: &mut AstKindPath) {
76309        if self.enabled {
76310            <V as VisitMutAstPath>::visit_mut_expr_stmt(&mut self.visitor, node, __ast_path)
76311        } else {
76312        }
76313    }
76314
76315    #[inline]
76316    fn visit_mut_exprs(&mut self, node: &mut Vec<Box<Expr>>, __ast_path: &mut AstKindPath) {
76317        if self.enabled {
76318            <V as VisitMutAstPath>::visit_mut_exprs(&mut self.visitor, node, __ast_path)
76319        } else {
76320        }
76321    }
76322
76323    #[inline]
76324    fn visit_mut_fn_decl(&mut self, node: &mut FnDecl, __ast_path: &mut AstKindPath) {
76325        if self.enabled {
76326            <V as VisitMutAstPath>::visit_mut_fn_decl(&mut self.visitor, node, __ast_path)
76327        } else {
76328        }
76329    }
76330
76331    #[inline]
76332    fn visit_mut_fn_expr(&mut self, node: &mut FnExpr, __ast_path: &mut AstKindPath) {
76333        if self.enabled {
76334            <V as VisitMutAstPath>::visit_mut_fn_expr(&mut self.visitor, node, __ast_path)
76335        } else {
76336        }
76337    }
76338
76339    #[inline]
76340    fn visit_mut_for_head(&mut self, node: &mut ForHead, __ast_path: &mut AstKindPath) {
76341        if self.enabled {
76342            <V as VisitMutAstPath>::visit_mut_for_head(&mut self.visitor, node, __ast_path)
76343        } else {
76344        }
76345    }
76346
76347    #[inline]
76348    fn visit_mut_for_in_stmt(&mut self, node: &mut ForInStmt, __ast_path: &mut AstKindPath) {
76349        if self.enabled {
76350            <V as VisitMutAstPath>::visit_mut_for_in_stmt(&mut self.visitor, node, __ast_path)
76351        } else {
76352        }
76353    }
76354
76355    #[inline]
76356    fn visit_mut_for_of_stmt(&mut self, node: &mut ForOfStmt, __ast_path: &mut AstKindPath) {
76357        if self.enabled {
76358            <V as VisitMutAstPath>::visit_mut_for_of_stmt(&mut self.visitor, node, __ast_path)
76359        } else {
76360        }
76361    }
76362
76363    #[inline]
76364    fn visit_mut_for_stmt(&mut self, node: &mut ForStmt, __ast_path: &mut AstKindPath) {
76365        if self.enabled {
76366            <V as VisitMutAstPath>::visit_mut_for_stmt(&mut self.visitor, node, __ast_path)
76367        } else {
76368        }
76369    }
76370
76371    #[inline]
76372    fn visit_mut_function(&mut self, node: &mut Function, __ast_path: &mut AstKindPath) {
76373        if self.enabled {
76374            <V as VisitMutAstPath>::visit_mut_function(&mut self.visitor, node, __ast_path)
76375        } else {
76376        }
76377    }
76378
76379    #[inline]
76380    fn visit_mut_getter_prop(&mut self, node: &mut GetterProp, __ast_path: &mut AstKindPath) {
76381        if self.enabled {
76382            <V as VisitMutAstPath>::visit_mut_getter_prop(&mut self.visitor, node, __ast_path)
76383        } else {
76384        }
76385    }
76386
76387    #[inline]
76388    fn visit_mut_ident(&mut self, node: &mut Ident, __ast_path: &mut AstKindPath) {
76389        if self.enabled {
76390            <V as VisitMutAstPath>::visit_mut_ident(&mut self.visitor, node, __ast_path)
76391        } else {
76392        }
76393    }
76394
76395    #[inline]
76396    fn visit_mut_ident_name(&mut self, node: &mut IdentName, __ast_path: &mut AstKindPath) {
76397        if self.enabled {
76398            <V as VisitMutAstPath>::visit_mut_ident_name(&mut self.visitor, node, __ast_path)
76399        } else {
76400        }
76401    }
76402
76403    #[inline]
76404    fn visit_mut_if_stmt(&mut self, node: &mut IfStmt, __ast_path: &mut AstKindPath) {
76405        if self.enabled {
76406            <V as VisitMutAstPath>::visit_mut_if_stmt(&mut self.visitor, node, __ast_path)
76407        } else {
76408        }
76409    }
76410
76411    #[inline]
76412    fn visit_mut_import(&mut self, node: &mut Import, __ast_path: &mut AstKindPath) {
76413        if self.enabled {
76414            <V as VisitMutAstPath>::visit_mut_import(&mut self.visitor, node, __ast_path)
76415        } else {
76416        }
76417    }
76418
76419    #[inline]
76420    fn visit_mut_import_decl(&mut self, node: &mut ImportDecl, __ast_path: &mut AstKindPath) {
76421        if self.enabled {
76422            <V as VisitMutAstPath>::visit_mut_import_decl(&mut self.visitor, node, __ast_path)
76423        } else {
76424        }
76425    }
76426
76427    #[inline]
76428    fn visit_mut_import_default_specifier(
76429        &mut self,
76430        node: &mut ImportDefaultSpecifier,
76431        __ast_path: &mut AstKindPath,
76432    ) {
76433        if self.enabled {
76434            <V as VisitMutAstPath>::visit_mut_import_default_specifier(
76435                &mut self.visitor,
76436                node,
76437                __ast_path,
76438            )
76439        } else {
76440        }
76441    }
76442
76443    #[inline]
76444    fn visit_mut_import_named_specifier(
76445        &mut self,
76446        node: &mut ImportNamedSpecifier,
76447        __ast_path: &mut AstKindPath,
76448    ) {
76449        if self.enabled {
76450            <V as VisitMutAstPath>::visit_mut_import_named_specifier(
76451                &mut self.visitor,
76452                node,
76453                __ast_path,
76454            )
76455        } else {
76456        }
76457    }
76458
76459    #[inline]
76460    fn visit_mut_import_phase(&mut self, node: &mut ImportPhase, __ast_path: &mut AstKindPath) {
76461        if self.enabled {
76462            <V as VisitMutAstPath>::visit_mut_import_phase(&mut self.visitor, node, __ast_path)
76463        } else {
76464        }
76465    }
76466
76467    #[inline]
76468    fn visit_mut_import_specifier(
76469        &mut self,
76470        node: &mut ImportSpecifier,
76471        __ast_path: &mut AstKindPath,
76472    ) {
76473        if self.enabled {
76474            <V as VisitMutAstPath>::visit_mut_import_specifier(&mut self.visitor, node, __ast_path)
76475        } else {
76476        }
76477    }
76478
76479    #[inline]
76480    fn visit_mut_import_specifiers(
76481        &mut self,
76482        node: &mut Vec<ImportSpecifier>,
76483        __ast_path: &mut AstKindPath,
76484    ) {
76485        if self.enabled {
76486            <V as VisitMutAstPath>::visit_mut_import_specifiers(&mut self.visitor, node, __ast_path)
76487        } else {
76488        }
76489    }
76490
76491    #[inline]
76492    fn visit_mut_import_star_as_specifier(
76493        &mut self,
76494        node: &mut ImportStarAsSpecifier,
76495        __ast_path: &mut AstKindPath,
76496    ) {
76497        if self.enabled {
76498            <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(
76499                &mut self.visitor,
76500                node,
76501                __ast_path,
76502            )
76503        } else {
76504        }
76505    }
76506
76507    #[inline]
76508    fn visit_mut_import_with(&mut self, node: &mut ImportWith, __ast_path: &mut AstKindPath) {
76509        if self.enabled {
76510            <V as VisitMutAstPath>::visit_mut_import_with(&mut self.visitor, node, __ast_path)
76511        } else {
76512        }
76513    }
76514
76515    #[inline]
76516    fn visit_mut_import_with_item(
76517        &mut self,
76518        node: &mut ImportWithItem,
76519        __ast_path: &mut AstKindPath,
76520    ) {
76521        if self.enabled {
76522            <V as VisitMutAstPath>::visit_mut_import_with_item(&mut self.visitor, node, __ast_path)
76523        } else {
76524        }
76525    }
76526
76527    #[inline]
76528    fn visit_mut_import_with_items(
76529        &mut self,
76530        node: &mut Vec<ImportWithItem>,
76531        __ast_path: &mut AstKindPath,
76532    ) {
76533        if self.enabled {
76534            <V as VisitMutAstPath>::visit_mut_import_with_items(&mut self.visitor, node, __ast_path)
76535        } else {
76536        }
76537    }
76538
76539    #[inline]
76540    fn visit_mut_invalid(&mut self, node: &mut Invalid, __ast_path: &mut AstKindPath) {
76541        if self.enabled {
76542            <V as VisitMutAstPath>::visit_mut_invalid(&mut self.visitor, node, __ast_path)
76543        } else {
76544        }
76545    }
76546
76547    #[inline]
76548    fn visit_mut_jsx_attr(&mut self, node: &mut JSXAttr, __ast_path: &mut AstKindPath) {
76549        if self.enabled {
76550            <V as VisitMutAstPath>::visit_mut_jsx_attr(&mut self.visitor, node, __ast_path)
76551        } else {
76552        }
76553    }
76554
76555    #[inline]
76556    fn visit_mut_jsx_attr_name(&mut self, node: &mut JSXAttrName, __ast_path: &mut AstKindPath) {
76557        if self.enabled {
76558            <V as VisitMutAstPath>::visit_mut_jsx_attr_name(&mut self.visitor, node, __ast_path)
76559        } else {
76560        }
76561    }
76562
76563    #[inline]
76564    fn visit_mut_jsx_attr_or_spread(
76565        &mut self,
76566        node: &mut JSXAttrOrSpread,
76567        __ast_path: &mut AstKindPath,
76568    ) {
76569        if self.enabled {
76570            <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(
76571                &mut self.visitor,
76572                node,
76573                __ast_path,
76574            )
76575        } else {
76576        }
76577    }
76578
76579    #[inline]
76580    fn visit_mut_jsx_attr_or_spreads(
76581        &mut self,
76582        node: &mut Vec<JSXAttrOrSpread>,
76583        __ast_path: &mut AstKindPath,
76584    ) {
76585        if self.enabled {
76586            <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(
76587                &mut self.visitor,
76588                node,
76589                __ast_path,
76590            )
76591        } else {
76592        }
76593    }
76594
76595    #[inline]
76596    fn visit_mut_jsx_attr_value(&mut self, node: &mut JSXAttrValue, __ast_path: &mut AstKindPath) {
76597        if self.enabled {
76598            <V as VisitMutAstPath>::visit_mut_jsx_attr_value(&mut self.visitor, node, __ast_path)
76599        } else {
76600        }
76601    }
76602
76603    #[inline]
76604    fn visit_mut_jsx_closing_element(
76605        &mut self,
76606        node: &mut JSXClosingElement,
76607        __ast_path: &mut AstKindPath,
76608    ) {
76609        if self.enabled {
76610            <V as VisitMutAstPath>::visit_mut_jsx_closing_element(
76611                &mut self.visitor,
76612                node,
76613                __ast_path,
76614            )
76615        } else {
76616        }
76617    }
76618
76619    #[inline]
76620    fn visit_mut_jsx_closing_fragment(
76621        &mut self,
76622        node: &mut JSXClosingFragment,
76623        __ast_path: &mut AstKindPath,
76624    ) {
76625        if self.enabled {
76626            <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(
76627                &mut self.visitor,
76628                node,
76629                __ast_path,
76630            )
76631        } else {
76632        }
76633    }
76634
76635    #[inline]
76636    fn visit_mut_jsx_element(&mut self, node: &mut JSXElement, __ast_path: &mut AstKindPath) {
76637        if self.enabled {
76638            <V as VisitMutAstPath>::visit_mut_jsx_element(&mut self.visitor, node, __ast_path)
76639        } else {
76640        }
76641    }
76642
76643    #[inline]
76644    fn visit_mut_jsx_element_child(
76645        &mut self,
76646        node: &mut JSXElementChild,
76647        __ast_path: &mut AstKindPath,
76648    ) {
76649        if self.enabled {
76650            <V as VisitMutAstPath>::visit_mut_jsx_element_child(&mut self.visitor, node, __ast_path)
76651        } else {
76652        }
76653    }
76654
76655    #[inline]
76656    fn visit_mut_jsx_element_childs(
76657        &mut self,
76658        node: &mut Vec<JSXElementChild>,
76659        __ast_path: &mut AstKindPath,
76660    ) {
76661        if self.enabled {
76662            <V as VisitMutAstPath>::visit_mut_jsx_element_childs(
76663                &mut self.visitor,
76664                node,
76665                __ast_path,
76666            )
76667        } else {
76668        }
76669    }
76670
76671    #[inline]
76672    fn visit_mut_jsx_element_name(
76673        &mut self,
76674        node: &mut JSXElementName,
76675        __ast_path: &mut AstKindPath,
76676    ) {
76677        if self.enabled {
76678            <V as VisitMutAstPath>::visit_mut_jsx_element_name(&mut self.visitor, node, __ast_path)
76679        } else {
76680        }
76681    }
76682
76683    #[inline]
76684    fn visit_mut_jsx_empty_expr(&mut self, node: &mut JSXEmptyExpr, __ast_path: &mut AstKindPath) {
76685        if self.enabled {
76686            <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(&mut self.visitor, node, __ast_path)
76687        } else {
76688        }
76689    }
76690
76691    #[inline]
76692    fn visit_mut_jsx_expr(&mut self, node: &mut JSXExpr, __ast_path: &mut AstKindPath) {
76693        if self.enabled {
76694            <V as VisitMutAstPath>::visit_mut_jsx_expr(&mut self.visitor, node, __ast_path)
76695        } else {
76696        }
76697    }
76698
76699    #[inline]
76700    fn visit_mut_jsx_expr_container(
76701        &mut self,
76702        node: &mut JSXExprContainer,
76703        __ast_path: &mut AstKindPath,
76704    ) {
76705        if self.enabled {
76706            <V as VisitMutAstPath>::visit_mut_jsx_expr_container(
76707                &mut self.visitor,
76708                node,
76709                __ast_path,
76710            )
76711        } else {
76712        }
76713    }
76714
76715    #[inline]
76716    fn visit_mut_jsx_fragment(&mut self, node: &mut JSXFragment, __ast_path: &mut AstKindPath) {
76717        if self.enabled {
76718            <V as VisitMutAstPath>::visit_mut_jsx_fragment(&mut self.visitor, node, __ast_path)
76719        } else {
76720        }
76721    }
76722
76723    #[inline]
76724    fn visit_mut_jsx_member_expr(
76725        &mut self,
76726        node: &mut JSXMemberExpr,
76727        __ast_path: &mut AstKindPath,
76728    ) {
76729        if self.enabled {
76730            <V as VisitMutAstPath>::visit_mut_jsx_member_expr(&mut self.visitor, node, __ast_path)
76731        } else {
76732        }
76733    }
76734
76735    #[inline]
76736    fn visit_mut_jsx_namespaced_name(
76737        &mut self,
76738        node: &mut JSXNamespacedName,
76739        __ast_path: &mut AstKindPath,
76740    ) {
76741        if self.enabled {
76742            <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(
76743                &mut self.visitor,
76744                node,
76745                __ast_path,
76746            )
76747        } else {
76748        }
76749    }
76750
76751    #[inline]
76752    fn visit_mut_jsx_object(&mut self, node: &mut JSXObject, __ast_path: &mut AstKindPath) {
76753        if self.enabled {
76754            <V as VisitMutAstPath>::visit_mut_jsx_object(&mut self.visitor, node, __ast_path)
76755        } else {
76756        }
76757    }
76758
76759    #[inline]
76760    fn visit_mut_jsx_opening_element(
76761        &mut self,
76762        node: &mut JSXOpeningElement,
76763        __ast_path: &mut AstKindPath,
76764    ) {
76765        if self.enabled {
76766            <V as VisitMutAstPath>::visit_mut_jsx_opening_element(
76767                &mut self.visitor,
76768                node,
76769                __ast_path,
76770            )
76771        } else {
76772        }
76773    }
76774
76775    #[inline]
76776    fn visit_mut_jsx_opening_fragment(
76777        &mut self,
76778        node: &mut JSXOpeningFragment,
76779        __ast_path: &mut AstKindPath,
76780    ) {
76781        if self.enabled {
76782            <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(
76783                &mut self.visitor,
76784                node,
76785                __ast_path,
76786            )
76787        } else {
76788        }
76789    }
76790
76791    #[inline]
76792    fn visit_mut_jsx_spread_child(
76793        &mut self,
76794        node: &mut JSXSpreadChild,
76795        __ast_path: &mut AstKindPath,
76796    ) {
76797        if self.enabled {
76798            <V as VisitMutAstPath>::visit_mut_jsx_spread_child(&mut self.visitor, node, __ast_path)
76799        } else {
76800        }
76801    }
76802
76803    #[inline]
76804    fn visit_mut_jsx_text(&mut self, node: &mut JSXText, __ast_path: &mut AstKindPath) {
76805        if self.enabled {
76806            <V as VisitMutAstPath>::visit_mut_jsx_text(&mut self.visitor, node, __ast_path)
76807        } else {
76808        }
76809    }
76810
76811    #[inline]
76812    fn visit_mut_key(&mut self, node: &mut Key, __ast_path: &mut AstKindPath) {
76813        if self.enabled {
76814            <V as VisitMutAstPath>::visit_mut_key(&mut self.visitor, node, __ast_path)
76815        } else {
76816        }
76817    }
76818
76819    #[inline]
76820    fn visit_mut_key_value_pat_prop(
76821        &mut self,
76822        node: &mut KeyValuePatProp,
76823        __ast_path: &mut AstKindPath,
76824    ) {
76825        if self.enabled {
76826            <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(
76827                &mut self.visitor,
76828                node,
76829                __ast_path,
76830            )
76831        } else {
76832        }
76833    }
76834
76835    #[inline]
76836    fn visit_mut_key_value_prop(&mut self, node: &mut KeyValueProp, __ast_path: &mut AstKindPath) {
76837        if self.enabled {
76838            <V as VisitMutAstPath>::visit_mut_key_value_prop(&mut self.visitor, node, __ast_path)
76839        } else {
76840        }
76841    }
76842
76843    #[inline]
76844    fn visit_mut_labeled_stmt(&mut self, node: &mut LabeledStmt, __ast_path: &mut AstKindPath) {
76845        if self.enabled {
76846            <V as VisitMutAstPath>::visit_mut_labeled_stmt(&mut self.visitor, node, __ast_path)
76847        } else {
76848        }
76849    }
76850
76851    #[inline]
76852    fn visit_mut_lit(&mut self, node: &mut Lit, __ast_path: &mut AstKindPath) {
76853        if self.enabled {
76854            <V as VisitMutAstPath>::visit_mut_lit(&mut self.visitor, node, __ast_path)
76855        } else {
76856        }
76857    }
76858
76859    #[inline]
76860    fn visit_mut_member_expr(&mut self, node: &mut MemberExpr, __ast_path: &mut AstKindPath) {
76861        if self.enabled {
76862            <V as VisitMutAstPath>::visit_mut_member_expr(&mut self.visitor, node, __ast_path)
76863        } else {
76864        }
76865    }
76866
76867    #[inline]
76868    fn visit_mut_member_prop(&mut self, node: &mut MemberProp, __ast_path: &mut AstKindPath) {
76869        if self.enabled {
76870            <V as VisitMutAstPath>::visit_mut_member_prop(&mut self.visitor, node, __ast_path)
76871        } else {
76872        }
76873    }
76874
76875    #[inline]
76876    fn visit_mut_meta_prop_expr(&mut self, node: &mut MetaPropExpr, __ast_path: &mut AstKindPath) {
76877        if self.enabled {
76878            <V as VisitMutAstPath>::visit_mut_meta_prop_expr(&mut self.visitor, node, __ast_path)
76879        } else {
76880        }
76881    }
76882
76883    #[inline]
76884    fn visit_mut_meta_prop_kind(&mut self, node: &mut MetaPropKind, __ast_path: &mut AstKindPath) {
76885        if self.enabled {
76886            <V as VisitMutAstPath>::visit_mut_meta_prop_kind(&mut self.visitor, node, __ast_path)
76887        } else {
76888        }
76889    }
76890
76891    #[inline]
76892    fn visit_mut_method_kind(&mut self, node: &mut MethodKind, __ast_path: &mut AstKindPath) {
76893        if self.enabled {
76894            <V as VisitMutAstPath>::visit_mut_method_kind(&mut self.visitor, node, __ast_path)
76895        } else {
76896        }
76897    }
76898
76899    #[inline]
76900    fn visit_mut_method_prop(&mut self, node: &mut MethodProp, __ast_path: &mut AstKindPath) {
76901        if self.enabled {
76902            <V as VisitMutAstPath>::visit_mut_method_prop(&mut self.visitor, node, __ast_path)
76903        } else {
76904        }
76905    }
76906
76907    #[inline]
76908    fn visit_mut_module(&mut self, node: &mut Module, __ast_path: &mut AstKindPath) {
76909        if self.enabled {
76910            <V as VisitMutAstPath>::visit_mut_module(&mut self.visitor, node, __ast_path)
76911        } else {
76912        }
76913    }
76914
76915    #[inline]
76916    fn visit_mut_module_decl(&mut self, node: &mut ModuleDecl, __ast_path: &mut AstKindPath) {
76917        if self.enabled {
76918            <V as VisitMutAstPath>::visit_mut_module_decl(&mut self.visitor, node, __ast_path)
76919        } else {
76920        }
76921    }
76922
76923    #[inline]
76924    fn visit_mut_module_export_name(
76925        &mut self,
76926        node: &mut ModuleExportName,
76927        __ast_path: &mut AstKindPath,
76928    ) {
76929        if self.enabled {
76930            <V as VisitMutAstPath>::visit_mut_module_export_name(
76931                &mut self.visitor,
76932                node,
76933                __ast_path,
76934            )
76935        } else {
76936        }
76937    }
76938
76939    #[inline]
76940    fn visit_mut_module_item(&mut self, node: &mut ModuleItem, __ast_path: &mut AstKindPath) {
76941        if self.enabled {
76942            <V as VisitMutAstPath>::visit_mut_module_item(&mut self.visitor, node, __ast_path)
76943        } else {
76944        }
76945    }
76946
76947    #[inline]
76948    fn visit_mut_module_items(&mut self, node: &mut Vec<ModuleItem>, __ast_path: &mut AstKindPath) {
76949        if self.enabled {
76950            <V as VisitMutAstPath>::visit_mut_module_items(&mut self.visitor, node, __ast_path)
76951        } else {
76952        }
76953    }
76954
76955    #[inline]
76956    fn visit_mut_named_export(&mut self, node: &mut NamedExport, __ast_path: &mut AstKindPath) {
76957        if self.enabled {
76958            <V as VisitMutAstPath>::visit_mut_named_export(&mut self.visitor, node, __ast_path)
76959        } else {
76960        }
76961    }
76962
76963    #[inline]
76964    fn visit_mut_new_expr(&mut self, node: &mut NewExpr, __ast_path: &mut AstKindPath) {
76965        if self.enabled {
76966            <V as VisitMutAstPath>::visit_mut_new_expr(&mut self.visitor, node, __ast_path)
76967        } else {
76968        }
76969    }
76970
76971    #[inline]
76972    fn visit_mut_null(&mut self, node: &mut Null, __ast_path: &mut AstKindPath) {
76973        if self.enabled {
76974            <V as VisitMutAstPath>::visit_mut_null(&mut self.visitor, node, __ast_path)
76975        } else {
76976        }
76977    }
76978
76979    #[inline]
76980    fn visit_mut_number(&mut self, node: &mut Number, __ast_path: &mut AstKindPath) {
76981        if self.enabled {
76982            <V as VisitMutAstPath>::visit_mut_number(&mut self.visitor, node, __ast_path)
76983        } else {
76984        }
76985    }
76986
76987    #[inline]
76988    fn visit_mut_object_lit(&mut self, node: &mut ObjectLit, __ast_path: &mut AstKindPath) {
76989        if self.enabled {
76990            <V as VisitMutAstPath>::visit_mut_object_lit(&mut self.visitor, node, __ast_path)
76991        } else {
76992        }
76993    }
76994
76995    #[inline]
76996    fn visit_mut_object_pat(&mut self, node: &mut ObjectPat, __ast_path: &mut AstKindPath) {
76997        if self.enabled {
76998            <V as VisitMutAstPath>::visit_mut_object_pat(&mut self.visitor, node, __ast_path)
76999        } else {
77000        }
77001    }
77002
77003    #[inline]
77004    fn visit_mut_object_pat_prop(
77005        &mut self,
77006        node: &mut ObjectPatProp,
77007        __ast_path: &mut AstKindPath,
77008    ) {
77009        if self.enabled {
77010            <V as VisitMutAstPath>::visit_mut_object_pat_prop(&mut self.visitor, node, __ast_path)
77011        } else {
77012        }
77013    }
77014
77015    #[inline]
77016    fn visit_mut_object_pat_props(
77017        &mut self,
77018        node: &mut Vec<ObjectPatProp>,
77019        __ast_path: &mut AstKindPath,
77020    ) {
77021        if self.enabled {
77022            <V as VisitMutAstPath>::visit_mut_object_pat_props(&mut self.visitor, node, __ast_path)
77023        } else {
77024        }
77025    }
77026
77027    #[inline]
77028    fn visit_mut_opt_accessibility(
77029        &mut self,
77030        node: &mut Option<Accessibility>,
77031        __ast_path: &mut AstKindPath,
77032    ) {
77033        if self.enabled {
77034            <V as VisitMutAstPath>::visit_mut_opt_accessibility(&mut self.visitor, node, __ast_path)
77035        } else {
77036        }
77037    }
77038
77039    #[inline]
77040    fn visit_mut_opt_atom(
77041        &mut self,
77042        node: &mut Option<swc_atoms::Atom>,
77043        __ast_path: &mut AstKindPath,
77044    ) {
77045        if self.enabled {
77046            <V as VisitMutAstPath>::visit_mut_opt_atom(&mut self.visitor, node, __ast_path)
77047        } else {
77048        }
77049    }
77050
77051    #[inline]
77052    fn visit_mut_opt_block_stmt(
77053        &mut self,
77054        node: &mut Option<BlockStmt>,
77055        __ast_path: &mut AstKindPath,
77056    ) {
77057        if self.enabled {
77058            <V as VisitMutAstPath>::visit_mut_opt_block_stmt(&mut self.visitor, node, __ast_path)
77059        } else {
77060        }
77061    }
77062
77063    #[inline]
77064    fn visit_mut_opt_call(&mut self, node: &mut OptCall, __ast_path: &mut AstKindPath) {
77065        if self.enabled {
77066            <V as VisitMutAstPath>::visit_mut_opt_call(&mut self.visitor, node, __ast_path)
77067        } else {
77068        }
77069    }
77070
77071    #[inline]
77072    fn visit_mut_opt_catch_clause(
77073        &mut self,
77074        node: &mut Option<CatchClause>,
77075        __ast_path: &mut AstKindPath,
77076    ) {
77077        if self.enabled {
77078            <V as VisitMutAstPath>::visit_mut_opt_catch_clause(&mut self.visitor, node, __ast_path)
77079        } else {
77080        }
77081    }
77082
77083    #[inline]
77084    fn visit_mut_opt_chain_base(&mut self, node: &mut OptChainBase, __ast_path: &mut AstKindPath) {
77085        if self.enabled {
77086            <V as VisitMutAstPath>::visit_mut_opt_chain_base(&mut self.visitor, node, __ast_path)
77087        } else {
77088        }
77089    }
77090
77091    #[inline]
77092    fn visit_mut_opt_chain_expr(&mut self, node: &mut OptChainExpr, __ast_path: &mut AstKindPath) {
77093        if self.enabled {
77094            <V as VisitMutAstPath>::visit_mut_opt_chain_expr(&mut self.visitor, node, __ast_path)
77095        } else {
77096        }
77097    }
77098
77099    #[inline]
77100    fn visit_mut_opt_expr(&mut self, node: &mut Option<Box<Expr>>, __ast_path: &mut AstKindPath) {
77101        if self.enabled {
77102            <V as VisitMutAstPath>::visit_mut_opt_expr(&mut self.visitor, node, __ast_path)
77103        } else {
77104        }
77105    }
77106
77107    #[inline]
77108    fn visit_mut_opt_expr_or_spread(
77109        &mut self,
77110        node: &mut Option<ExprOrSpread>,
77111        __ast_path: &mut AstKindPath,
77112    ) {
77113        if self.enabled {
77114            <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(
77115                &mut self.visitor,
77116                node,
77117                __ast_path,
77118            )
77119        } else {
77120        }
77121    }
77122
77123    #[inline]
77124    fn visit_mut_opt_expr_or_spreads(
77125        &mut self,
77126        node: &mut Option<Vec<ExprOrSpread>>,
77127        __ast_path: &mut AstKindPath,
77128    ) {
77129        if self.enabled {
77130            <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(
77131                &mut self.visitor,
77132                node,
77133                __ast_path,
77134            )
77135        } else {
77136        }
77137    }
77138
77139    #[inline]
77140    fn visit_mut_opt_ident(&mut self, node: &mut Option<Ident>, __ast_path: &mut AstKindPath) {
77141        if self.enabled {
77142            <V as VisitMutAstPath>::visit_mut_opt_ident(&mut self.visitor, node, __ast_path)
77143        } else {
77144        }
77145    }
77146
77147    #[inline]
77148    fn visit_mut_opt_jsx_attr_value(
77149        &mut self,
77150        node: &mut Option<JSXAttrValue>,
77151        __ast_path: &mut AstKindPath,
77152    ) {
77153        if self.enabled {
77154            <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(
77155                &mut self.visitor,
77156                node,
77157                __ast_path,
77158            )
77159        } else {
77160        }
77161    }
77162
77163    #[inline]
77164    fn visit_mut_opt_jsx_closing_element(
77165        &mut self,
77166        node: &mut Option<JSXClosingElement>,
77167        __ast_path: &mut AstKindPath,
77168    ) {
77169        if self.enabled {
77170            <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(
77171                &mut self.visitor,
77172                node,
77173                __ast_path,
77174            )
77175        } else {
77176        }
77177    }
77178
77179    #[inline]
77180    fn visit_mut_opt_module_export_name(
77181        &mut self,
77182        node: &mut Option<ModuleExportName>,
77183        __ast_path: &mut AstKindPath,
77184    ) {
77185        if self.enabled {
77186            <V as VisitMutAstPath>::visit_mut_opt_module_export_name(
77187                &mut self.visitor,
77188                node,
77189                __ast_path,
77190            )
77191        } else {
77192        }
77193    }
77194
77195    #[inline]
77196    fn visit_mut_opt_object_lit(
77197        &mut self,
77198        node: &mut Option<Box<ObjectLit>>,
77199        __ast_path: &mut AstKindPath,
77200    ) {
77201        if self.enabled {
77202            <V as VisitMutAstPath>::visit_mut_opt_object_lit(&mut self.visitor, node, __ast_path)
77203        } else {
77204        }
77205    }
77206
77207    #[inline]
77208    fn visit_mut_opt_pat(&mut self, node: &mut Option<Pat>, __ast_path: &mut AstKindPath) {
77209        if self.enabled {
77210            <V as VisitMutAstPath>::visit_mut_opt_pat(&mut self.visitor, node, __ast_path)
77211        } else {
77212        }
77213    }
77214
77215    #[inline]
77216    fn visit_mut_opt_span(
77217        &mut self,
77218        node: &mut Option<swc_common::Span>,
77219        __ast_path: &mut AstKindPath,
77220    ) {
77221        if self.enabled {
77222            <V as VisitMutAstPath>::visit_mut_opt_span(&mut self.visitor, node, __ast_path)
77223        } else {
77224        }
77225    }
77226
77227    #[inline]
77228    fn visit_mut_opt_stmt(&mut self, node: &mut Option<Box<Stmt>>, __ast_path: &mut AstKindPath) {
77229        if self.enabled {
77230            <V as VisitMutAstPath>::visit_mut_opt_stmt(&mut self.visitor, node, __ast_path)
77231        } else {
77232        }
77233    }
77234
77235    #[inline]
77236    fn visit_mut_opt_str(&mut self, node: &mut Option<Box<Str>>, __ast_path: &mut AstKindPath) {
77237        if self.enabled {
77238            <V as VisitMutAstPath>::visit_mut_opt_str(&mut self.visitor, node, __ast_path)
77239        } else {
77240        }
77241    }
77242
77243    #[inline]
77244    fn visit_mut_opt_true_plus_minus(
77245        &mut self,
77246        node: &mut Option<TruePlusMinus>,
77247        __ast_path: &mut AstKindPath,
77248    ) {
77249        if self.enabled {
77250            <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(
77251                &mut self.visitor,
77252                node,
77253                __ast_path,
77254            )
77255        } else {
77256        }
77257    }
77258
77259    #[inline]
77260    fn visit_mut_opt_ts_entity_name(
77261        &mut self,
77262        node: &mut Option<TsEntityName>,
77263        __ast_path: &mut AstKindPath,
77264    ) {
77265        if self.enabled {
77266            <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(
77267                &mut self.visitor,
77268                node,
77269                __ast_path,
77270            )
77271        } else {
77272        }
77273    }
77274
77275    #[inline]
77276    fn visit_mut_opt_ts_namespace_body(
77277        &mut self,
77278        node: &mut Option<TsNamespaceBody>,
77279        __ast_path: &mut AstKindPath,
77280    ) {
77281        if self.enabled {
77282            <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(
77283                &mut self.visitor,
77284                node,
77285                __ast_path,
77286            )
77287        } else {
77288        }
77289    }
77290
77291    #[inline]
77292    fn visit_mut_opt_ts_type(
77293        &mut self,
77294        node: &mut Option<Box<TsType>>,
77295        __ast_path: &mut AstKindPath,
77296    ) {
77297        if self.enabled {
77298            <V as VisitMutAstPath>::visit_mut_opt_ts_type(&mut self.visitor, node, __ast_path)
77299        } else {
77300        }
77301    }
77302
77303    #[inline]
77304    fn visit_mut_opt_ts_type_ann(
77305        &mut self,
77306        node: &mut Option<Box<TsTypeAnn>>,
77307        __ast_path: &mut AstKindPath,
77308    ) {
77309        if self.enabled {
77310            <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(&mut self.visitor, node, __ast_path)
77311        } else {
77312        }
77313    }
77314
77315    #[inline]
77316    fn visit_mut_opt_ts_type_param_decl(
77317        &mut self,
77318        node: &mut Option<Box<TsTypeParamDecl>>,
77319        __ast_path: &mut AstKindPath,
77320    ) {
77321        if self.enabled {
77322            <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(
77323                &mut self.visitor,
77324                node,
77325                __ast_path,
77326            )
77327        } else {
77328        }
77329    }
77330
77331    #[inline]
77332    fn visit_mut_opt_ts_type_param_instantiation(
77333        &mut self,
77334        node: &mut Option<Box<TsTypeParamInstantiation>>,
77335        __ast_path: &mut AstKindPath,
77336    ) {
77337        if self.enabled {
77338            <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(
77339                &mut self.visitor,
77340                node,
77341                __ast_path,
77342            )
77343        } else {
77344        }
77345    }
77346
77347    #[inline]
77348    fn visit_mut_opt_var_decl_or_expr(
77349        &mut self,
77350        node: &mut Option<VarDeclOrExpr>,
77351        __ast_path: &mut AstKindPath,
77352    ) {
77353        if self.enabled {
77354            <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(
77355                &mut self.visitor,
77356                node,
77357                __ast_path,
77358            )
77359        } else {
77360        }
77361    }
77362
77363    #[inline]
77364    fn visit_mut_opt_vec_expr_or_spreads(
77365        &mut self,
77366        node: &mut Vec<Option<ExprOrSpread>>,
77367        __ast_path: &mut AstKindPath,
77368    ) {
77369        if self.enabled {
77370            <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(
77371                &mut self.visitor,
77372                node,
77373                __ast_path,
77374            )
77375        } else {
77376        }
77377    }
77378
77379    #[inline]
77380    fn visit_mut_opt_vec_pats(
77381        &mut self,
77382        node: &mut Vec<Option<Pat>>,
77383        __ast_path: &mut AstKindPath,
77384    ) {
77385        if self.enabled {
77386            <V as VisitMutAstPath>::visit_mut_opt_vec_pats(&mut self.visitor, node, __ast_path)
77387        } else {
77388        }
77389    }
77390
77391    #[inline]
77392    fn visit_mut_param(&mut self, node: &mut Param, __ast_path: &mut AstKindPath) {
77393        if self.enabled {
77394            <V as VisitMutAstPath>::visit_mut_param(&mut self.visitor, node, __ast_path)
77395        } else {
77396        }
77397    }
77398
77399    #[inline]
77400    fn visit_mut_param_or_ts_param_prop(
77401        &mut self,
77402        node: &mut ParamOrTsParamProp,
77403        __ast_path: &mut AstKindPath,
77404    ) {
77405        if self.enabled {
77406            <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(
77407                &mut self.visitor,
77408                node,
77409                __ast_path,
77410            )
77411        } else {
77412        }
77413    }
77414
77415    #[inline]
77416    fn visit_mut_param_or_ts_param_props(
77417        &mut self,
77418        node: &mut Vec<ParamOrTsParamProp>,
77419        __ast_path: &mut AstKindPath,
77420    ) {
77421        if self.enabled {
77422            <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(
77423                &mut self.visitor,
77424                node,
77425                __ast_path,
77426            )
77427        } else {
77428        }
77429    }
77430
77431    #[inline]
77432    fn visit_mut_params(&mut self, node: &mut Vec<Param>, __ast_path: &mut AstKindPath) {
77433        if self.enabled {
77434            <V as VisitMutAstPath>::visit_mut_params(&mut self.visitor, node, __ast_path)
77435        } else {
77436        }
77437    }
77438
77439    #[inline]
77440    fn visit_mut_paren_expr(&mut self, node: &mut ParenExpr, __ast_path: &mut AstKindPath) {
77441        if self.enabled {
77442            <V as VisitMutAstPath>::visit_mut_paren_expr(&mut self.visitor, node, __ast_path)
77443        } else {
77444        }
77445    }
77446
77447    #[inline]
77448    fn visit_mut_pat(&mut self, node: &mut Pat, __ast_path: &mut AstKindPath) {
77449        if self.enabled {
77450            <V as VisitMutAstPath>::visit_mut_pat(&mut self.visitor, node, __ast_path)
77451        } else {
77452        }
77453    }
77454
77455    #[inline]
77456    fn visit_mut_pats(&mut self, node: &mut Vec<Pat>, __ast_path: &mut AstKindPath) {
77457        if self.enabled {
77458            <V as VisitMutAstPath>::visit_mut_pats(&mut self.visitor, node, __ast_path)
77459        } else {
77460        }
77461    }
77462
77463    #[inline]
77464    fn visit_mut_private_method(&mut self, node: &mut PrivateMethod, __ast_path: &mut AstKindPath) {
77465        if self.enabled {
77466            <V as VisitMutAstPath>::visit_mut_private_method(&mut self.visitor, node, __ast_path)
77467        } else {
77468        }
77469    }
77470
77471    #[inline]
77472    fn visit_mut_private_name(&mut self, node: &mut PrivateName, __ast_path: &mut AstKindPath) {
77473        if self.enabled {
77474            <V as VisitMutAstPath>::visit_mut_private_name(&mut self.visitor, node, __ast_path)
77475        } else {
77476        }
77477    }
77478
77479    #[inline]
77480    fn visit_mut_private_prop(&mut self, node: &mut PrivateProp, __ast_path: &mut AstKindPath) {
77481        if self.enabled {
77482            <V as VisitMutAstPath>::visit_mut_private_prop(&mut self.visitor, node, __ast_path)
77483        } else {
77484        }
77485    }
77486
77487    #[inline]
77488    fn visit_mut_program(&mut self, node: &mut Program, __ast_path: &mut AstKindPath) {
77489        if self.enabled {
77490            <V as VisitMutAstPath>::visit_mut_program(&mut self.visitor, node, __ast_path)
77491        } else {
77492        }
77493    }
77494
77495    #[inline]
77496    fn visit_mut_prop(&mut self, node: &mut Prop, __ast_path: &mut AstKindPath) {
77497        if self.enabled {
77498            <V as VisitMutAstPath>::visit_mut_prop(&mut self.visitor, node, __ast_path)
77499        } else {
77500        }
77501    }
77502
77503    #[inline]
77504    fn visit_mut_prop_name(&mut self, node: &mut PropName, __ast_path: &mut AstKindPath) {
77505        if self.enabled {
77506            <V as VisitMutAstPath>::visit_mut_prop_name(&mut self.visitor, node, __ast_path)
77507        } else {
77508        }
77509    }
77510
77511    #[inline]
77512    fn visit_mut_prop_or_spread(&mut self, node: &mut PropOrSpread, __ast_path: &mut AstKindPath) {
77513        if self.enabled {
77514            <V as VisitMutAstPath>::visit_mut_prop_or_spread(&mut self.visitor, node, __ast_path)
77515        } else {
77516        }
77517    }
77518
77519    #[inline]
77520    fn visit_mut_prop_or_spreads(
77521        &mut self,
77522        node: &mut Vec<PropOrSpread>,
77523        __ast_path: &mut AstKindPath,
77524    ) {
77525        if self.enabled {
77526            <V as VisitMutAstPath>::visit_mut_prop_or_spreads(&mut self.visitor, node, __ast_path)
77527        } else {
77528        }
77529    }
77530
77531    #[inline]
77532    fn visit_mut_regex(&mut self, node: &mut Regex, __ast_path: &mut AstKindPath) {
77533        if self.enabled {
77534            <V as VisitMutAstPath>::visit_mut_regex(&mut self.visitor, node, __ast_path)
77535        } else {
77536        }
77537    }
77538
77539    #[inline]
77540    fn visit_mut_rest_pat(&mut self, node: &mut RestPat, __ast_path: &mut AstKindPath) {
77541        if self.enabled {
77542            <V as VisitMutAstPath>::visit_mut_rest_pat(&mut self.visitor, node, __ast_path)
77543        } else {
77544        }
77545    }
77546
77547    #[inline]
77548    fn visit_mut_return_stmt(&mut self, node: &mut ReturnStmt, __ast_path: &mut AstKindPath) {
77549        if self.enabled {
77550            <V as VisitMutAstPath>::visit_mut_return_stmt(&mut self.visitor, node, __ast_path)
77551        } else {
77552        }
77553    }
77554
77555    #[inline]
77556    fn visit_mut_script(&mut self, node: &mut Script, __ast_path: &mut AstKindPath) {
77557        if self.enabled {
77558            <V as VisitMutAstPath>::visit_mut_script(&mut self.visitor, node, __ast_path)
77559        } else {
77560        }
77561    }
77562
77563    #[inline]
77564    fn visit_mut_seq_expr(&mut self, node: &mut SeqExpr, __ast_path: &mut AstKindPath) {
77565        if self.enabled {
77566            <V as VisitMutAstPath>::visit_mut_seq_expr(&mut self.visitor, node, __ast_path)
77567        } else {
77568        }
77569    }
77570
77571    #[inline]
77572    fn visit_mut_setter_prop(&mut self, node: &mut SetterProp, __ast_path: &mut AstKindPath) {
77573        if self.enabled {
77574            <V as VisitMutAstPath>::visit_mut_setter_prop(&mut self.visitor, node, __ast_path)
77575        } else {
77576        }
77577    }
77578
77579    #[inline]
77580    fn visit_mut_simple_assign_target(
77581        &mut self,
77582        node: &mut SimpleAssignTarget,
77583        __ast_path: &mut AstKindPath,
77584    ) {
77585        if self.enabled {
77586            <V as VisitMutAstPath>::visit_mut_simple_assign_target(
77587                &mut self.visitor,
77588                node,
77589                __ast_path,
77590            )
77591        } else {
77592        }
77593    }
77594
77595    #[inline]
77596    fn visit_mut_span(&mut self, node: &mut swc_common::Span, __ast_path: &mut AstKindPath) {
77597        if self.enabled {
77598            <V as VisitMutAstPath>::visit_mut_span(&mut self.visitor, node, __ast_path)
77599        } else {
77600        }
77601    }
77602
77603    #[inline]
77604    fn visit_mut_spread_element(&mut self, node: &mut SpreadElement, __ast_path: &mut AstKindPath) {
77605        if self.enabled {
77606            <V as VisitMutAstPath>::visit_mut_spread_element(&mut self.visitor, node, __ast_path)
77607        } else {
77608        }
77609    }
77610
77611    #[inline]
77612    fn visit_mut_static_block(&mut self, node: &mut StaticBlock, __ast_path: &mut AstKindPath) {
77613        if self.enabled {
77614            <V as VisitMutAstPath>::visit_mut_static_block(&mut self.visitor, node, __ast_path)
77615        } else {
77616        }
77617    }
77618
77619    #[inline]
77620    fn visit_mut_stmt(&mut self, node: &mut Stmt, __ast_path: &mut AstKindPath) {
77621        if self.enabled {
77622            <V as VisitMutAstPath>::visit_mut_stmt(&mut self.visitor, node, __ast_path)
77623        } else {
77624        }
77625    }
77626
77627    #[inline]
77628    fn visit_mut_stmts(&mut self, node: &mut Vec<Stmt>, __ast_path: &mut AstKindPath) {
77629        if self.enabled {
77630            <V as VisitMutAstPath>::visit_mut_stmts(&mut self.visitor, node, __ast_path)
77631        } else {
77632        }
77633    }
77634
77635    #[inline]
77636    fn visit_mut_str(&mut self, node: &mut Str, __ast_path: &mut AstKindPath) {
77637        if self.enabled {
77638            <V as VisitMutAstPath>::visit_mut_str(&mut self.visitor, node, __ast_path)
77639        } else {
77640        }
77641    }
77642
77643    #[inline]
77644    fn visit_mut_super(&mut self, node: &mut Super, __ast_path: &mut AstKindPath) {
77645        if self.enabled {
77646            <V as VisitMutAstPath>::visit_mut_super(&mut self.visitor, node, __ast_path)
77647        } else {
77648        }
77649    }
77650
77651    #[inline]
77652    fn visit_mut_super_prop(&mut self, node: &mut SuperProp, __ast_path: &mut AstKindPath) {
77653        if self.enabled {
77654            <V as VisitMutAstPath>::visit_mut_super_prop(&mut self.visitor, node, __ast_path)
77655        } else {
77656        }
77657    }
77658
77659    #[inline]
77660    fn visit_mut_super_prop_expr(
77661        &mut self,
77662        node: &mut SuperPropExpr,
77663        __ast_path: &mut AstKindPath,
77664    ) {
77665        if self.enabled {
77666            <V as VisitMutAstPath>::visit_mut_super_prop_expr(&mut self.visitor, node, __ast_path)
77667        } else {
77668        }
77669    }
77670
77671    #[inline]
77672    fn visit_mut_switch_case(&mut self, node: &mut SwitchCase, __ast_path: &mut AstKindPath) {
77673        if self.enabled {
77674            <V as VisitMutAstPath>::visit_mut_switch_case(&mut self.visitor, node, __ast_path)
77675        } else {
77676        }
77677    }
77678
77679    #[inline]
77680    fn visit_mut_switch_cases(&mut self, node: &mut Vec<SwitchCase>, __ast_path: &mut AstKindPath) {
77681        if self.enabled {
77682            <V as VisitMutAstPath>::visit_mut_switch_cases(&mut self.visitor, node, __ast_path)
77683        } else {
77684        }
77685    }
77686
77687    #[inline]
77688    fn visit_mut_switch_stmt(&mut self, node: &mut SwitchStmt, __ast_path: &mut AstKindPath) {
77689        if self.enabled {
77690            <V as VisitMutAstPath>::visit_mut_switch_stmt(&mut self.visitor, node, __ast_path)
77691        } else {
77692        }
77693    }
77694
77695    #[inline]
77696    fn visit_mut_syntax_context(
77697        &mut self,
77698        node: &mut swc_common::SyntaxContext,
77699        __ast_path: &mut AstKindPath,
77700    ) {
77701        if self.enabled {
77702            <V as VisitMutAstPath>::visit_mut_syntax_context(&mut self.visitor, node, __ast_path)
77703        } else {
77704        }
77705    }
77706
77707    #[inline]
77708    fn visit_mut_tagged_tpl(&mut self, node: &mut TaggedTpl, __ast_path: &mut AstKindPath) {
77709        if self.enabled {
77710            <V as VisitMutAstPath>::visit_mut_tagged_tpl(&mut self.visitor, node, __ast_path)
77711        } else {
77712        }
77713    }
77714
77715    #[inline]
77716    fn visit_mut_this_expr(&mut self, node: &mut ThisExpr, __ast_path: &mut AstKindPath) {
77717        if self.enabled {
77718            <V as VisitMutAstPath>::visit_mut_this_expr(&mut self.visitor, node, __ast_path)
77719        } else {
77720        }
77721    }
77722
77723    #[inline]
77724    fn visit_mut_throw_stmt(&mut self, node: &mut ThrowStmt, __ast_path: &mut AstKindPath) {
77725        if self.enabled {
77726            <V as VisitMutAstPath>::visit_mut_throw_stmt(&mut self.visitor, node, __ast_path)
77727        } else {
77728        }
77729    }
77730
77731    #[inline]
77732    fn visit_mut_tpl(&mut self, node: &mut Tpl, __ast_path: &mut AstKindPath) {
77733        if self.enabled {
77734            <V as VisitMutAstPath>::visit_mut_tpl(&mut self.visitor, node, __ast_path)
77735        } else {
77736        }
77737    }
77738
77739    #[inline]
77740    fn visit_mut_tpl_element(&mut self, node: &mut TplElement, __ast_path: &mut AstKindPath) {
77741        if self.enabled {
77742            <V as VisitMutAstPath>::visit_mut_tpl_element(&mut self.visitor, node, __ast_path)
77743        } else {
77744        }
77745    }
77746
77747    #[inline]
77748    fn visit_mut_tpl_elements(&mut self, node: &mut Vec<TplElement>, __ast_path: &mut AstKindPath) {
77749        if self.enabled {
77750            <V as VisitMutAstPath>::visit_mut_tpl_elements(&mut self.visitor, node, __ast_path)
77751        } else {
77752        }
77753    }
77754
77755    #[inline]
77756    fn visit_mut_true_plus_minus(
77757        &mut self,
77758        node: &mut TruePlusMinus,
77759        __ast_path: &mut AstKindPath,
77760    ) {
77761        if self.enabled {
77762            <V as VisitMutAstPath>::visit_mut_true_plus_minus(&mut self.visitor, node, __ast_path)
77763        } else {
77764        }
77765    }
77766
77767    #[inline]
77768    fn visit_mut_try_stmt(&mut self, node: &mut TryStmt, __ast_path: &mut AstKindPath) {
77769        if self.enabled {
77770            <V as VisitMutAstPath>::visit_mut_try_stmt(&mut self.visitor, node, __ast_path)
77771        } else {
77772        }
77773    }
77774
77775    #[inline]
77776    fn visit_mut_ts_array_type(&mut self, node: &mut TsArrayType, __ast_path: &mut AstKindPath) {
77777        if self.enabled {
77778            <V as VisitMutAstPath>::visit_mut_ts_array_type(&mut self.visitor, node, __ast_path)
77779        } else {
77780        }
77781    }
77782
77783    #[inline]
77784    fn visit_mut_ts_as_expr(&mut self, node: &mut TsAsExpr, __ast_path: &mut AstKindPath) {
77785        if self.enabled {
77786            <V as VisitMutAstPath>::visit_mut_ts_as_expr(&mut self.visitor, node, __ast_path)
77787        } else {
77788        }
77789    }
77790
77791    #[inline]
77792    fn visit_mut_ts_call_signature_decl(
77793        &mut self,
77794        node: &mut TsCallSignatureDecl,
77795        __ast_path: &mut AstKindPath,
77796    ) {
77797        if self.enabled {
77798            <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(
77799                &mut self.visitor,
77800                node,
77801                __ast_path,
77802            )
77803        } else {
77804        }
77805    }
77806
77807    #[inline]
77808    fn visit_mut_ts_conditional_type(
77809        &mut self,
77810        node: &mut TsConditionalType,
77811        __ast_path: &mut AstKindPath,
77812    ) {
77813        if self.enabled {
77814            <V as VisitMutAstPath>::visit_mut_ts_conditional_type(
77815                &mut self.visitor,
77816                node,
77817                __ast_path,
77818            )
77819        } else {
77820        }
77821    }
77822
77823    #[inline]
77824    fn visit_mut_ts_const_assertion(
77825        &mut self,
77826        node: &mut TsConstAssertion,
77827        __ast_path: &mut AstKindPath,
77828    ) {
77829        if self.enabled {
77830            <V as VisitMutAstPath>::visit_mut_ts_const_assertion(
77831                &mut self.visitor,
77832                node,
77833                __ast_path,
77834            )
77835        } else {
77836        }
77837    }
77838
77839    #[inline]
77840    fn visit_mut_ts_construct_signature_decl(
77841        &mut self,
77842        node: &mut TsConstructSignatureDecl,
77843        __ast_path: &mut AstKindPath,
77844    ) {
77845        if self.enabled {
77846            <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(
77847                &mut self.visitor,
77848                node,
77849                __ast_path,
77850            )
77851        } else {
77852        }
77853    }
77854
77855    #[inline]
77856    fn visit_mut_ts_constructor_type(
77857        &mut self,
77858        node: &mut TsConstructorType,
77859        __ast_path: &mut AstKindPath,
77860    ) {
77861        if self.enabled {
77862            <V as VisitMutAstPath>::visit_mut_ts_constructor_type(
77863                &mut self.visitor,
77864                node,
77865                __ast_path,
77866            )
77867        } else {
77868        }
77869    }
77870
77871    #[inline]
77872    fn visit_mut_ts_entity_name(&mut self, node: &mut TsEntityName, __ast_path: &mut AstKindPath) {
77873        if self.enabled {
77874            <V as VisitMutAstPath>::visit_mut_ts_entity_name(&mut self.visitor, node, __ast_path)
77875        } else {
77876        }
77877    }
77878
77879    #[inline]
77880    fn visit_mut_ts_enum_decl(&mut self, node: &mut TsEnumDecl, __ast_path: &mut AstKindPath) {
77881        if self.enabled {
77882            <V as VisitMutAstPath>::visit_mut_ts_enum_decl(&mut self.visitor, node, __ast_path)
77883        } else {
77884        }
77885    }
77886
77887    #[inline]
77888    fn visit_mut_ts_enum_member(&mut self, node: &mut TsEnumMember, __ast_path: &mut AstKindPath) {
77889        if self.enabled {
77890            <V as VisitMutAstPath>::visit_mut_ts_enum_member(&mut self.visitor, node, __ast_path)
77891        } else {
77892        }
77893    }
77894
77895    #[inline]
77896    fn visit_mut_ts_enum_member_id(
77897        &mut self,
77898        node: &mut TsEnumMemberId,
77899        __ast_path: &mut AstKindPath,
77900    ) {
77901        if self.enabled {
77902            <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(&mut self.visitor, node, __ast_path)
77903        } else {
77904        }
77905    }
77906
77907    #[inline]
77908    fn visit_mut_ts_enum_members(
77909        &mut self,
77910        node: &mut Vec<TsEnumMember>,
77911        __ast_path: &mut AstKindPath,
77912    ) {
77913        if self.enabled {
77914            <V as VisitMutAstPath>::visit_mut_ts_enum_members(&mut self.visitor, node, __ast_path)
77915        } else {
77916        }
77917    }
77918
77919    #[inline]
77920    fn visit_mut_ts_export_assignment(
77921        &mut self,
77922        node: &mut TsExportAssignment,
77923        __ast_path: &mut AstKindPath,
77924    ) {
77925        if self.enabled {
77926            <V as VisitMutAstPath>::visit_mut_ts_export_assignment(
77927                &mut self.visitor,
77928                node,
77929                __ast_path,
77930            )
77931        } else {
77932        }
77933    }
77934
77935    #[inline]
77936    fn visit_mut_ts_expr_with_type_args(
77937        &mut self,
77938        node: &mut TsExprWithTypeArgs,
77939        __ast_path: &mut AstKindPath,
77940    ) {
77941        if self.enabled {
77942            <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(
77943                &mut self.visitor,
77944                node,
77945                __ast_path,
77946            )
77947        } else {
77948        }
77949    }
77950
77951    #[inline]
77952    fn visit_mut_ts_expr_with_type_argss(
77953        &mut self,
77954        node: &mut Vec<TsExprWithTypeArgs>,
77955        __ast_path: &mut AstKindPath,
77956    ) {
77957        if self.enabled {
77958            <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(
77959                &mut self.visitor,
77960                node,
77961                __ast_path,
77962            )
77963        } else {
77964        }
77965    }
77966
77967    #[inline]
77968    fn visit_mut_ts_external_module_ref(
77969        &mut self,
77970        node: &mut TsExternalModuleRef,
77971        __ast_path: &mut AstKindPath,
77972    ) {
77973        if self.enabled {
77974            <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(
77975                &mut self.visitor,
77976                node,
77977                __ast_path,
77978            )
77979        } else {
77980        }
77981    }
77982
77983    #[inline]
77984    fn visit_mut_ts_fn_or_constructor_type(
77985        &mut self,
77986        node: &mut TsFnOrConstructorType,
77987        __ast_path: &mut AstKindPath,
77988    ) {
77989        if self.enabled {
77990            <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(
77991                &mut self.visitor,
77992                node,
77993                __ast_path,
77994            )
77995        } else {
77996        }
77997    }
77998
77999    #[inline]
78000    fn visit_mut_ts_fn_param(&mut self, node: &mut TsFnParam, __ast_path: &mut AstKindPath) {
78001        if self.enabled {
78002            <V as VisitMutAstPath>::visit_mut_ts_fn_param(&mut self.visitor, node, __ast_path)
78003        } else {
78004        }
78005    }
78006
78007    #[inline]
78008    fn visit_mut_ts_fn_params(&mut self, node: &mut Vec<TsFnParam>, __ast_path: &mut AstKindPath) {
78009        if self.enabled {
78010            <V as VisitMutAstPath>::visit_mut_ts_fn_params(&mut self.visitor, node, __ast_path)
78011        } else {
78012        }
78013    }
78014
78015    #[inline]
78016    fn visit_mut_ts_fn_type(&mut self, node: &mut TsFnType, __ast_path: &mut AstKindPath) {
78017        if self.enabled {
78018            <V as VisitMutAstPath>::visit_mut_ts_fn_type(&mut self.visitor, node, __ast_path)
78019        } else {
78020        }
78021    }
78022
78023    #[inline]
78024    fn visit_mut_ts_getter_signature(
78025        &mut self,
78026        node: &mut TsGetterSignature,
78027        __ast_path: &mut AstKindPath,
78028    ) {
78029        if self.enabled {
78030            <V as VisitMutAstPath>::visit_mut_ts_getter_signature(
78031                &mut self.visitor,
78032                node,
78033                __ast_path,
78034            )
78035        } else {
78036        }
78037    }
78038
78039    #[inline]
78040    fn visit_mut_ts_import_equals_decl(
78041        &mut self,
78042        node: &mut TsImportEqualsDecl,
78043        __ast_path: &mut AstKindPath,
78044    ) {
78045        if self.enabled {
78046            <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(
78047                &mut self.visitor,
78048                node,
78049                __ast_path,
78050            )
78051        } else {
78052        }
78053    }
78054
78055    #[inline]
78056    fn visit_mut_ts_import_type(&mut self, node: &mut TsImportType, __ast_path: &mut AstKindPath) {
78057        if self.enabled {
78058            <V as VisitMutAstPath>::visit_mut_ts_import_type(&mut self.visitor, node, __ast_path)
78059        } else {
78060        }
78061    }
78062
78063    #[inline]
78064    fn visit_mut_ts_index_signature(
78065        &mut self,
78066        node: &mut TsIndexSignature,
78067        __ast_path: &mut AstKindPath,
78068    ) {
78069        if self.enabled {
78070            <V as VisitMutAstPath>::visit_mut_ts_index_signature(
78071                &mut self.visitor,
78072                node,
78073                __ast_path,
78074            )
78075        } else {
78076        }
78077    }
78078
78079    #[inline]
78080    fn visit_mut_ts_indexed_access_type(
78081        &mut self,
78082        node: &mut TsIndexedAccessType,
78083        __ast_path: &mut AstKindPath,
78084    ) {
78085        if self.enabled {
78086            <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(
78087                &mut self.visitor,
78088                node,
78089                __ast_path,
78090            )
78091        } else {
78092        }
78093    }
78094
78095    #[inline]
78096    fn visit_mut_ts_infer_type(&mut self, node: &mut TsInferType, __ast_path: &mut AstKindPath) {
78097        if self.enabled {
78098            <V as VisitMutAstPath>::visit_mut_ts_infer_type(&mut self.visitor, node, __ast_path)
78099        } else {
78100        }
78101    }
78102
78103    #[inline]
78104    fn visit_mut_ts_instantiation(
78105        &mut self,
78106        node: &mut TsInstantiation,
78107        __ast_path: &mut AstKindPath,
78108    ) {
78109        if self.enabled {
78110            <V as VisitMutAstPath>::visit_mut_ts_instantiation(&mut self.visitor, node, __ast_path)
78111        } else {
78112        }
78113    }
78114
78115    #[inline]
78116    fn visit_mut_ts_interface_body(
78117        &mut self,
78118        node: &mut TsInterfaceBody,
78119        __ast_path: &mut AstKindPath,
78120    ) {
78121        if self.enabled {
78122            <V as VisitMutAstPath>::visit_mut_ts_interface_body(&mut self.visitor, node, __ast_path)
78123        } else {
78124        }
78125    }
78126
78127    #[inline]
78128    fn visit_mut_ts_interface_decl(
78129        &mut self,
78130        node: &mut TsInterfaceDecl,
78131        __ast_path: &mut AstKindPath,
78132    ) {
78133        if self.enabled {
78134            <V as VisitMutAstPath>::visit_mut_ts_interface_decl(&mut self.visitor, node, __ast_path)
78135        } else {
78136        }
78137    }
78138
78139    #[inline]
78140    fn visit_mut_ts_intersection_type(
78141        &mut self,
78142        node: &mut TsIntersectionType,
78143        __ast_path: &mut AstKindPath,
78144    ) {
78145        if self.enabled {
78146            <V as VisitMutAstPath>::visit_mut_ts_intersection_type(
78147                &mut self.visitor,
78148                node,
78149                __ast_path,
78150            )
78151        } else {
78152        }
78153    }
78154
78155    #[inline]
78156    fn visit_mut_ts_keyword_type(
78157        &mut self,
78158        node: &mut TsKeywordType,
78159        __ast_path: &mut AstKindPath,
78160    ) {
78161        if self.enabled {
78162            <V as VisitMutAstPath>::visit_mut_ts_keyword_type(&mut self.visitor, node, __ast_path)
78163        } else {
78164        }
78165    }
78166
78167    #[inline]
78168    fn visit_mut_ts_keyword_type_kind(
78169        &mut self,
78170        node: &mut TsKeywordTypeKind,
78171        __ast_path: &mut AstKindPath,
78172    ) {
78173        if self.enabled {
78174            <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(
78175                &mut self.visitor,
78176                node,
78177                __ast_path,
78178            )
78179        } else {
78180        }
78181    }
78182
78183    #[inline]
78184    fn visit_mut_ts_lit(&mut self, node: &mut TsLit, __ast_path: &mut AstKindPath) {
78185        if self.enabled {
78186            <V as VisitMutAstPath>::visit_mut_ts_lit(&mut self.visitor, node, __ast_path)
78187        } else {
78188        }
78189    }
78190
78191    #[inline]
78192    fn visit_mut_ts_lit_type(&mut self, node: &mut TsLitType, __ast_path: &mut AstKindPath) {
78193        if self.enabled {
78194            <V as VisitMutAstPath>::visit_mut_ts_lit_type(&mut self.visitor, node, __ast_path)
78195        } else {
78196        }
78197    }
78198
78199    #[inline]
78200    fn visit_mut_ts_mapped_type(&mut self, node: &mut TsMappedType, __ast_path: &mut AstKindPath) {
78201        if self.enabled {
78202            <V as VisitMutAstPath>::visit_mut_ts_mapped_type(&mut self.visitor, node, __ast_path)
78203        } else {
78204        }
78205    }
78206
78207    #[inline]
78208    fn visit_mut_ts_method_signature(
78209        &mut self,
78210        node: &mut TsMethodSignature,
78211        __ast_path: &mut AstKindPath,
78212    ) {
78213        if self.enabled {
78214            <V as VisitMutAstPath>::visit_mut_ts_method_signature(
78215                &mut self.visitor,
78216                node,
78217                __ast_path,
78218            )
78219        } else {
78220        }
78221    }
78222
78223    #[inline]
78224    fn visit_mut_ts_module_block(
78225        &mut self,
78226        node: &mut TsModuleBlock,
78227        __ast_path: &mut AstKindPath,
78228    ) {
78229        if self.enabled {
78230            <V as VisitMutAstPath>::visit_mut_ts_module_block(&mut self.visitor, node, __ast_path)
78231        } else {
78232        }
78233    }
78234
78235    #[inline]
78236    fn visit_mut_ts_module_decl(&mut self, node: &mut TsModuleDecl, __ast_path: &mut AstKindPath) {
78237        if self.enabled {
78238            <V as VisitMutAstPath>::visit_mut_ts_module_decl(&mut self.visitor, node, __ast_path)
78239        } else {
78240        }
78241    }
78242
78243    #[inline]
78244    fn visit_mut_ts_module_name(&mut self, node: &mut TsModuleName, __ast_path: &mut AstKindPath) {
78245        if self.enabled {
78246            <V as VisitMutAstPath>::visit_mut_ts_module_name(&mut self.visitor, node, __ast_path)
78247        } else {
78248        }
78249    }
78250
78251    #[inline]
78252    fn visit_mut_ts_module_ref(&mut self, node: &mut TsModuleRef, __ast_path: &mut AstKindPath) {
78253        if self.enabled {
78254            <V as VisitMutAstPath>::visit_mut_ts_module_ref(&mut self.visitor, node, __ast_path)
78255        } else {
78256        }
78257    }
78258
78259    #[inline]
78260    fn visit_mut_ts_namespace_body(
78261        &mut self,
78262        node: &mut TsNamespaceBody,
78263        __ast_path: &mut AstKindPath,
78264    ) {
78265        if self.enabled {
78266            <V as VisitMutAstPath>::visit_mut_ts_namespace_body(&mut self.visitor, node, __ast_path)
78267        } else {
78268        }
78269    }
78270
78271    #[inline]
78272    fn visit_mut_ts_namespace_decl(
78273        &mut self,
78274        node: &mut TsNamespaceDecl,
78275        __ast_path: &mut AstKindPath,
78276    ) {
78277        if self.enabled {
78278            <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(&mut self.visitor, node, __ast_path)
78279        } else {
78280        }
78281    }
78282
78283    #[inline]
78284    fn visit_mut_ts_namespace_export_decl(
78285        &mut self,
78286        node: &mut TsNamespaceExportDecl,
78287        __ast_path: &mut AstKindPath,
78288    ) {
78289        if self.enabled {
78290            <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(
78291                &mut self.visitor,
78292                node,
78293                __ast_path,
78294            )
78295        } else {
78296        }
78297    }
78298
78299    #[inline]
78300    fn visit_mut_ts_non_null_expr(
78301        &mut self,
78302        node: &mut TsNonNullExpr,
78303        __ast_path: &mut AstKindPath,
78304    ) {
78305        if self.enabled {
78306            <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(&mut self.visitor, node, __ast_path)
78307        } else {
78308        }
78309    }
78310
78311    #[inline]
78312    fn visit_mut_ts_optional_type(
78313        &mut self,
78314        node: &mut TsOptionalType,
78315        __ast_path: &mut AstKindPath,
78316    ) {
78317        if self.enabled {
78318            <V as VisitMutAstPath>::visit_mut_ts_optional_type(&mut self.visitor, node, __ast_path)
78319        } else {
78320        }
78321    }
78322
78323    #[inline]
78324    fn visit_mut_ts_param_prop(&mut self, node: &mut TsParamProp, __ast_path: &mut AstKindPath) {
78325        if self.enabled {
78326            <V as VisitMutAstPath>::visit_mut_ts_param_prop(&mut self.visitor, node, __ast_path)
78327        } else {
78328        }
78329    }
78330
78331    #[inline]
78332    fn visit_mut_ts_param_prop_param(
78333        &mut self,
78334        node: &mut TsParamPropParam,
78335        __ast_path: &mut AstKindPath,
78336    ) {
78337        if self.enabled {
78338            <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(
78339                &mut self.visitor,
78340                node,
78341                __ast_path,
78342            )
78343        } else {
78344        }
78345    }
78346
78347    #[inline]
78348    fn visit_mut_ts_parenthesized_type(
78349        &mut self,
78350        node: &mut TsParenthesizedType,
78351        __ast_path: &mut AstKindPath,
78352    ) {
78353        if self.enabled {
78354            <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(
78355                &mut self.visitor,
78356                node,
78357                __ast_path,
78358            )
78359        } else {
78360        }
78361    }
78362
78363    #[inline]
78364    fn visit_mut_ts_property_signature(
78365        &mut self,
78366        node: &mut TsPropertySignature,
78367        __ast_path: &mut AstKindPath,
78368    ) {
78369        if self.enabled {
78370            <V as VisitMutAstPath>::visit_mut_ts_property_signature(
78371                &mut self.visitor,
78372                node,
78373                __ast_path,
78374            )
78375        } else {
78376        }
78377    }
78378
78379    #[inline]
78380    fn visit_mut_ts_qualified_name(
78381        &mut self,
78382        node: &mut TsQualifiedName,
78383        __ast_path: &mut AstKindPath,
78384    ) {
78385        if self.enabled {
78386            <V as VisitMutAstPath>::visit_mut_ts_qualified_name(&mut self.visitor, node, __ast_path)
78387        } else {
78388        }
78389    }
78390
78391    #[inline]
78392    fn visit_mut_ts_rest_type(&mut self, node: &mut TsRestType, __ast_path: &mut AstKindPath) {
78393        if self.enabled {
78394            <V as VisitMutAstPath>::visit_mut_ts_rest_type(&mut self.visitor, node, __ast_path)
78395        } else {
78396        }
78397    }
78398
78399    #[inline]
78400    fn visit_mut_ts_satisfies_expr(
78401        &mut self,
78402        node: &mut TsSatisfiesExpr,
78403        __ast_path: &mut AstKindPath,
78404    ) {
78405        if self.enabled {
78406            <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(&mut self.visitor, node, __ast_path)
78407        } else {
78408        }
78409    }
78410
78411    #[inline]
78412    fn visit_mut_ts_setter_signature(
78413        &mut self,
78414        node: &mut TsSetterSignature,
78415        __ast_path: &mut AstKindPath,
78416    ) {
78417        if self.enabled {
78418            <V as VisitMutAstPath>::visit_mut_ts_setter_signature(
78419                &mut self.visitor,
78420                node,
78421                __ast_path,
78422            )
78423        } else {
78424        }
78425    }
78426
78427    #[inline]
78428    fn visit_mut_ts_this_type(&mut self, node: &mut TsThisType, __ast_path: &mut AstKindPath) {
78429        if self.enabled {
78430            <V as VisitMutAstPath>::visit_mut_ts_this_type(&mut self.visitor, node, __ast_path)
78431        } else {
78432        }
78433    }
78434
78435    #[inline]
78436    fn visit_mut_ts_this_type_or_ident(
78437        &mut self,
78438        node: &mut TsThisTypeOrIdent,
78439        __ast_path: &mut AstKindPath,
78440    ) {
78441        if self.enabled {
78442            <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(
78443                &mut self.visitor,
78444                node,
78445                __ast_path,
78446            )
78447        } else {
78448        }
78449    }
78450
78451    #[inline]
78452    fn visit_mut_ts_tpl_lit_type(&mut self, node: &mut TsTplLitType, __ast_path: &mut AstKindPath) {
78453        if self.enabled {
78454            <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(&mut self.visitor, node, __ast_path)
78455        } else {
78456        }
78457    }
78458
78459    #[inline]
78460    fn visit_mut_ts_tuple_element(
78461        &mut self,
78462        node: &mut TsTupleElement,
78463        __ast_path: &mut AstKindPath,
78464    ) {
78465        if self.enabled {
78466            <V as VisitMutAstPath>::visit_mut_ts_tuple_element(&mut self.visitor, node, __ast_path)
78467        } else {
78468        }
78469    }
78470
78471    #[inline]
78472    fn visit_mut_ts_tuple_elements(
78473        &mut self,
78474        node: &mut Vec<TsTupleElement>,
78475        __ast_path: &mut AstKindPath,
78476    ) {
78477        if self.enabled {
78478            <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(&mut self.visitor, node, __ast_path)
78479        } else {
78480        }
78481    }
78482
78483    #[inline]
78484    fn visit_mut_ts_tuple_type(&mut self, node: &mut TsTupleType, __ast_path: &mut AstKindPath) {
78485        if self.enabled {
78486            <V as VisitMutAstPath>::visit_mut_ts_tuple_type(&mut self.visitor, node, __ast_path)
78487        } else {
78488        }
78489    }
78490
78491    #[inline]
78492    fn visit_mut_ts_type(&mut self, node: &mut TsType, __ast_path: &mut AstKindPath) {
78493        if self.enabled {
78494            <V as VisitMutAstPath>::visit_mut_ts_type(&mut self.visitor, node, __ast_path)
78495        } else {
78496        }
78497    }
78498
78499    #[inline]
78500    fn visit_mut_ts_type_alias_decl(
78501        &mut self,
78502        node: &mut TsTypeAliasDecl,
78503        __ast_path: &mut AstKindPath,
78504    ) {
78505        if self.enabled {
78506            <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(
78507                &mut self.visitor,
78508                node,
78509                __ast_path,
78510            )
78511        } else {
78512        }
78513    }
78514
78515    #[inline]
78516    fn visit_mut_ts_type_ann(&mut self, node: &mut TsTypeAnn, __ast_path: &mut AstKindPath) {
78517        if self.enabled {
78518            <V as VisitMutAstPath>::visit_mut_ts_type_ann(&mut self.visitor, node, __ast_path)
78519        } else {
78520        }
78521    }
78522
78523    #[inline]
78524    fn visit_mut_ts_type_assertion(
78525        &mut self,
78526        node: &mut TsTypeAssertion,
78527        __ast_path: &mut AstKindPath,
78528    ) {
78529        if self.enabled {
78530            <V as VisitMutAstPath>::visit_mut_ts_type_assertion(&mut self.visitor, node, __ast_path)
78531        } else {
78532        }
78533    }
78534
78535    #[inline]
78536    fn visit_mut_ts_type_element(
78537        &mut self,
78538        node: &mut TsTypeElement,
78539        __ast_path: &mut AstKindPath,
78540    ) {
78541        if self.enabled {
78542            <V as VisitMutAstPath>::visit_mut_ts_type_element(&mut self.visitor, node, __ast_path)
78543        } else {
78544        }
78545    }
78546
78547    #[inline]
78548    fn visit_mut_ts_type_elements(
78549        &mut self,
78550        node: &mut Vec<TsTypeElement>,
78551        __ast_path: &mut AstKindPath,
78552    ) {
78553        if self.enabled {
78554            <V as VisitMutAstPath>::visit_mut_ts_type_elements(&mut self.visitor, node, __ast_path)
78555        } else {
78556        }
78557    }
78558
78559    #[inline]
78560    fn visit_mut_ts_type_lit(&mut self, node: &mut TsTypeLit, __ast_path: &mut AstKindPath) {
78561        if self.enabled {
78562            <V as VisitMutAstPath>::visit_mut_ts_type_lit(&mut self.visitor, node, __ast_path)
78563        } else {
78564        }
78565    }
78566
78567    #[inline]
78568    fn visit_mut_ts_type_operator(
78569        &mut self,
78570        node: &mut TsTypeOperator,
78571        __ast_path: &mut AstKindPath,
78572    ) {
78573        if self.enabled {
78574            <V as VisitMutAstPath>::visit_mut_ts_type_operator(&mut self.visitor, node, __ast_path)
78575        } else {
78576        }
78577    }
78578
78579    #[inline]
78580    fn visit_mut_ts_type_operator_op(
78581        &mut self,
78582        node: &mut TsTypeOperatorOp,
78583        __ast_path: &mut AstKindPath,
78584    ) {
78585        if self.enabled {
78586            <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(
78587                &mut self.visitor,
78588                node,
78589                __ast_path,
78590            )
78591        } else {
78592        }
78593    }
78594
78595    #[inline]
78596    fn visit_mut_ts_type_param(&mut self, node: &mut TsTypeParam, __ast_path: &mut AstKindPath) {
78597        if self.enabled {
78598            <V as VisitMutAstPath>::visit_mut_ts_type_param(&mut self.visitor, node, __ast_path)
78599        } else {
78600        }
78601    }
78602
78603    #[inline]
78604    fn visit_mut_ts_type_param_decl(
78605        &mut self,
78606        node: &mut TsTypeParamDecl,
78607        __ast_path: &mut AstKindPath,
78608    ) {
78609        if self.enabled {
78610            <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(
78611                &mut self.visitor,
78612                node,
78613                __ast_path,
78614            )
78615        } else {
78616        }
78617    }
78618
78619    #[inline]
78620    fn visit_mut_ts_type_param_instantiation(
78621        &mut self,
78622        node: &mut TsTypeParamInstantiation,
78623        __ast_path: &mut AstKindPath,
78624    ) {
78625        if self.enabled {
78626            <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(
78627                &mut self.visitor,
78628                node,
78629                __ast_path,
78630            )
78631        } else {
78632        }
78633    }
78634
78635    #[inline]
78636    fn visit_mut_ts_type_params(
78637        &mut self,
78638        node: &mut Vec<TsTypeParam>,
78639        __ast_path: &mut AstKindPath,
78640    ) {
78641        if self.enabled {
78642            <V as VisitMutAstPath>::visit_mut_ts_type_params(&mut self.visitor, node, __ast_path)
78643        } else {
78644        }
78645    }
78646
78647    #[inline]
78648    fn visit_mut_ts_type_predicate(
78649        &mut self,
78650        node: &mut TsTypePredicate,
78651        __ast_path: &mut AstKindPath,
78652    ) {
78653        if self.enabled {
78654            <V as VisitMutAstPath>::visit_mut_ts_type_predicate(&mut self.visitor, node, __ast_path)
78655        } else {
78656        }
78657    }
78658
78659    #[inline]
78660    fn visit_mut_ts_type_query(&mut self, node: &mut TsTypeQuery, __ast_path: &mut AstKindPath) {
78661        if self.enabled {
78662            <V as VisitMutAstPath>::visit_mut_ts_type_query(&mut self.visitor, node, __ast_path)
78663        } else {
78664        }
78665    }
78666
78667    #[inline]
78668    fn visit_mut_ts_type_query_expr(
78669        &mut self,
78670        node: &mut TsTypeQueryExpr,
78671        __ast_path: &mut AstKindPath,
78672    ) {
78673        if self.enabled {
78674            <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(
78675                &mut self.visitor,
78676                node,
78677                __ast_path,
78678            )
78679        } else {
78680        }
78681    }
78682
78683    #[inline]
78684    fn visit_mut_ts_type_ref(&mut self, node: &mut TsTypeRef, __ast_path: &mut AstKindPath) {
78685        if self.enabled {
78686            <V as VisitMutAstPath>::visit_mut_ts_type_ref(&mut self.visitor, node, __ast_path)
78687        } else {
78688        }
78689    }
78690
78691    #[inline]
78692    fn visit_mut_ts_types(&mut self, node: &mut Vec<Box<TsType>>, __ast_path: &mut AstKindPath) {
78693        if self.enabled {
78694            <V as VisitMutAstPath>::visit_mut_ts_types(&mut self.visitor, node, __ast_path)
78695        } else {
78696        }
78697    }
78698
78699    #[inline]
78700    fn visit_mut_ts_union_or_intersection_type(
78701        &mut self,
78702        node: &mut TsUnionOrIntersectionType,
78703        __ast_path: &mut AstKindPath,
78704    ) {
78705        if self.enabled {
78706            <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(
78707                &mut self.visitor,
78708                node,
78709                __ast_path,
78710            )
78711        } else {
78712        }
78713    }
78714
78715    #[inline]
78716    fn visit_mut_ts_union_type(&mut self, node: &mut TsUnionType, __ast_path: &mut AstKindPath) {
78717        if self.enabled {
78718            <V as VisitMutAstPath>::visit_mut_ts_union_type(&mut self.visitor, node, __ast_path)
78719        } else {
78720        }
78721    }
78722
78723    #[inline]
78724    fn visit_mut_unary_expr(&mut self, node: &mut UnaryExpr, __ast_path: &mut AstKindPath) {
78725        if self.enabled {
78726            <V as VisitMutAstPath>::visit_mut_unary_expr(&mut self.visitor, node, __ast_path)
78727        } else {
78728        }
78729    }
78730
78731    #[inline]
78732    fn visit_mut_unary_op(&mut self, node: &mut UnaryOp, __ast_path: &mut AstKindPath) {
78733        if self.enabled {
78734            <V as VisitMutAstPath>::visit_mut_unary_op(&mut self.visitor, node, __ast_path)
78735        } else {
78736        }
78737    }
78738
78739    #[inline]
78740    fn visit_mut_update_expr(&mut self, node: &mut UpdateExpr, __ast_path: &mut AstKindPath) {
78741        if self.enabled {
78742            <V as VisitMutAstPath>::visit_mut_update_expr(&mut self.visitor, node, __ast_path)
78743        } else {
78744        }
78745    }
78746
78747    #[inline]
78748    fn visit_mut_update_op(&mut self, node: &mut UpdateOp, __ast_path: &mut AstKindPath) {
78749        if self.enabled {
78750            <V as VisitMutAstPath>::visit_mut_update_op(&mut self.visitor, node, __ast_path)
78751        } else {
78752        }
78753    }
78754
78755    #[inline]
78756    fn visit_mut_using_decl(&mut self, node: &mut UsingDecl, __ast_path: &mut AstKindPath) {
78757        if self.enabled {
78758            <V as VisitMutAstPath>::visit_mut_using_decl(&mut self.visitor, node, __ast_path)
78759        } else {
78760        }
78761    }
78762
78763    #[inline]
78764    fn visit_mut_var_decl(&mut self, node: &mut VarDecl, __ast_path: &mut AstKindPath) {
78765        if self.enabled {
78766            <V as VisitMutAstPath>::visit_mut_var_decl(&mut self.visitor, node, __ast_path)
78767        } else {
78768        }
78769    }
78770
78771    #[inline]
78772    fn visit_mut_var_decl_kind(&mut self, node: &mut VarDeclKind, __ast_path: &mut AstKindPath) {
78773        if self.enabled {
78774            <V as VisitMutAstPath>::visit_mut_var_decl_kind(&mut self.visitor, node, __ast_path)
78775        } else {
78776        }
78777    }
78778
78779    #[inline]
78780    fn visit_mut_var_decl_or_expr(
78781        &mut self,
78782        node: &mut VarDeclOrExpr,
78783        __ast_path: &mut AstKindPath,
78784    ) {
78785        if self.enabled {
78786            <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(&mut self.visitor, node, __ast_path)
78787        } else {
78788        }
78789    }
78790
78791    #[inline]
78792    fn visit_mut_var_declarator(&mut self, node: &mut VarDeclarator, __ast_path: &mut AstKindPath) {
78793        if self.enabled {
78794            <V as VisitMutAstPath>::visit_mut_var_declarator(&mut self.visitor, node, __ast_path)
78795        } else {
78796        }
78797    }
78798
78799    #[inline]
78800    fn visit_mut_var_declarators(
78801        &mut self,
78802        node: &mut Vec<VarDeclarator>,
78803        __ast_path: &mut AstKindPath,
78804    ) {
78805        if self.enabled {
78806            <V as VisitMutAstPath>::visit_mut_var_declarators(&mut self.visitor, node, __ast_path)
78807        } else {
78808        }
78809    }
78810
78811    #[inline]
78812    fn visit_mut_while_stmt(&mut self, node: &mut WhileStmt, __ast_path: &mut AstKindPath) {
78813        if self.enabled {
78814            <V as VisitMutAstPath>::visit_mut_while_stmt(&mut self.visitor, node, __ast_path)
78815        } else {
78816        }
78817    }
78818
78819    #[inline]
78820    fn visit_mut_with_stmt(&mut self, node: &mut WithStmt, __ast_path: &mut AstKindPath) {
78821        if self.enabled {
78822            <V as VisitMutAstPath>::visit_mut_with_stmt(&mut self.visitor, node, __ast_path)
78823        } else {
78824        }
78825    }
78826
78827    #[inline]
78828    fn visit_mut_yield_expr(&mut self, node: &mut YieldExpr, __ast_path: &mut AstKindPath) {
78829        if self.enabled {
78830            <V as VisitMutAstPath>::visit_mut_yield_expr(&mut self.visitor, node, __ast_path)
78831        } else {
78832        }
78833    }
78834}
78835#[doc = r" A trait implemented for types that can be visited using a visitor."]
78836#[cfg(any(docsrs, feature = "path"))]
78837#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
78838pub trait VisitMutWithAstPath<V: ?Sized + VisitMutAstPath> {
78839    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
78840    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath);
78841    #[doc = r" Visit children nodes of `self`` with `visitor`."]
78842    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath);
78843}
78844#[cfg(any(docsrs, feature = "path"))]
78845#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
78846impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Accessibility {
78847    #[doc = "Calls [VisitMutAstPath`::visit_mut_accessibility`] with `self`."]
78848    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78849        <V as VisitMutAstPath>::visit_mut_accessibility(visitor, self, __ast_path)
78850    }
78851
78852    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78853        match self {
78854            Accessibility::Public => {}
78855            Accessibility::Protected => {}
78856            Accessibility::Private => {}
78857        }
78858    }
78859}
78860#[cfg(any(docsrs, feature = "path"))]
78861#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
78862impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ArrayLit {
78863    #[doc = "Calls [VisitMutAstPath`::visit_mut_array_lit`] with `self`."]
78864    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78865        <V as VisitMutAstPath>::visit_mut_array_lit(visitor, self, __ast_path)
78866    }
78867
78868    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78869        match self {
78870            ArrayLit { span, elems } => {
78871                {
78872                    let mut __ast_path = __ast_path
78873                        .with_guard(AstParentKind::ArrayLit(self::fields::ArrayLitField::Span));
78874                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78875                        span,
78876                        visitor,
78877                        &mut *__ast_path,
78878                    )
78879                };
78880                {
78881                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayLit(
78882                        self::fields::ArrayLitField::Elems(usize::MAX),
78883                    ));
78884                    <Vec<Option<ExprOrSpread>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78885                        elems,
78886                        visitor,
78887                        &mut *__ast_path,
78888                    )
78889                };
78890            }
78891        }
78892    }
78893}
78894#[cfg(any(docsrs, feature = "path"))]
78895#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
78896impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ArrayPat {
78897    #[doc = "Calls [VisitMutAstPath`::visit_mut_array_pat`] with `self`."]
78898    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78899        <V as VisitMutAstPath>::visit_mut_array_pat(visitor, self, __ast_path)
78900    }
78901
78902    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78903        match self {
78904            ArrayPat {
78905                span,
78906                elems,
78907                optional,
78908                type_ann,
78909            } => {
78910                {
78911                    let mut __ast_path = __ast_path
78912                        .with_guard(AstParentKind::ArrayPat(self::fields::ArrayPatField::Span));
78913                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78914                        span,
78915                        visitor,
78916                        &mut *__ast_path,
78917                    )
78918                };
78919                {
78920                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
78921                        self::fields::ArrayPatField::Elems(usize::MAX),
78922                    ));
78923                    <Vec<Option<Pat>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78924                        elems,
78925                        visitor,
78926                        &mut *__ast_path,
78927                    )
78928                };
78929                {
78930                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
78931                        self::fields::ArrayPatField::TypeAnn,
78932                    ));
78933                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78934                        type_ann,
78935                        visitor,
78936                        &mut *__ast_path,
78937                    )
78938                };
78939            }
78940        }
78941    }
78942}
78943#[cfg(any(docsrs, feature = "path"))]
78944#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
78945impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ArrowExpr {
78946    #[doc = "Calls [VisitMutAstPath`::visit_mut_arrow_expr`] with `self`."]
78947    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78948        <V as VisitMutAstPath>::visit_mut_arrow_expr(visitor, self, __ast_path)
78949    }
78950
78951    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
78952        match self {
78953            ArrowExpr {
78954                span,
78955                ctxt,
78956                params,
78957                body,
78958                is_async,
78959                is_generator,
78960                type_params,
78961                return_type,
78962            } => {
78963                {
78964                    let mut __ast_path = __ast_path
78965                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Span));
78966                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78967                        span,
78968                        visitor,
78969                        &mut *__ast_path,
78970                    )
78971                };
78972                {
78973                    let mut __ast_path = __ast_path
78974                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Ctxt));
78975                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78976                        ctxt,
78977                        visitor,
78978                        &mut *__ast_path,
78979                    )
78980                };
78981                {
78982                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
78983                        self::fields::ArrowExprField::Params(usize::MAX),
78984                    ));
78985                    <Vec<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78986                        params,
78987                        visitor,
78988                        &mut *__ast_path,
78989                    )
78990                };
78991                {
78992                    let mut __ast_path = __ast_path
78993                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Body));
78994                    <Box<BlockStmtOrExpr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
78995                        body,
78996                        visitor,
78997                        &mut *__ast_path,
78998                    )
78999                };
79000                {
79001                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
79002                        self::fields::ArrowExprField::TypeParams,
79003                    ));
79004                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
79005                };
79006                {
79007                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
79008                        self::fields::ArrowExprField::ReturnType,
79009                    ));
79010                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79011                        return_type,
79012                        visitor,
79013                        &mut *__ast_path,
79014                    )
79015                };
79016            }
79017        }
79018    }
79019}
79020#[cfg(any(docsrs, feature = "path"))]
79021#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79022impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignExpr {
79023    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_expr`] with `self`."]
79024    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79025        <V as VisitMutAstPath>::visit_mut_assign_expr(visitor, self, __ast_path)
79026    }
79027
79028    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79029        match self {
79030            AssignExpr {
79031                span,
79032                op,
79033                left,
79034                right,
79035            } => {
79036                {
79037                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
79038                        self::fields::AssignExprField::Span,
79039                    ));
79040                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79041                        span,
79042                        visitor,
79043                        &mut *__ast_path,
79044                    )
79045                };
79046                {
79047                    let mut __ast_path = __ast_path
79048                        .with_guard(AstParentKind::AssignExpr(self::fields::AssignExprField::Op));
79049                    <AssignOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79050                        op,
79051                        visitor,
79052                        &mut *__ast_path,
79053                    )
79054                };
79055                {
79056                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
79057                        self::fields::AssignExprField::Left,
79058                    ));
79059                    <AssignTarget as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79060                        left,
79061                        visitor,
79062                        &mut *__ast_path,
79063                    )
79064                };
79065                {
79066                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
79067                        self::fields::AssignExprField::Right,
79068                    ));
79069                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79070                        right,
79071                        visitor,
79072                        &mut *__ast_path,
79073                    )
79074                };
79075            }
79076        }
79077    }
79078}
79079#[cfg(any(docsrs, feature = "path"))]
79080#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79081impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignOp {
79082    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_op`] with `self`."]
79083    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79084        <V as VisitMutAstPath>::visit_mut_assign_op(visitor, self, __ast_path)
79085    }
79086
79087    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79088        match self {
79089            AssignOp::Assign => {}
79090            AssignOp::AddAssign => {}
79091            AssignOp::SubAssign => {}
79092            AssignOp::MulAssign => {}
79093            AssignOp::DivAssign => {}
79094            AssignOp::ModAssign => {}
79095            AssignOp::LShiftAssign => {}
79096            AssignOp::RShiftAssign => {}
79097            AssignOp::ZeroFillRShiftAssign => {}
79098            AssignOp::BitOrAssign => {}
79099            AssignOp::BitXorAssign => {}
79100            AssignOp::BitAndAssign => {}
79101            AssignOp::ExpAssign => {}
79102            AssignOp::AndAssign => {}
79103            AssignOp::OrAssign => {}
79104            AssignOp::NullishAssign => {}
79105        }
79106    }
79107}
79108#[cfg(any(docsrs, feature = "path"))]
79109#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79110impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignPat {
79111    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_pat`] with `self`."]
79112    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79113        <V as VisitMutAstPath>::visit_mut_assign_pat(visitor, self, __ast_path)
79114    }
79115
79116    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79117        match self {
79118            AssignPat { span, left, right } => {
79119                {
79120                    let mut __ast_path = __ast_path
79121                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Span));
79122                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79123                        span,
79124                        visitor,
79125                        &mut *__ast_path,
79126                    )
79127                };
79128                {
79129                    let mut __ast_path = __ast_path
79130                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Left));
79131                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79132                        left,
79133                        visitor,
79134                        &mut *__ast_path,
79135                    )
79136                };
79137                {
79138                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPat(
79139                        self::fields::AssignPatField::Right,
79140                    ));
79141                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79142                        right,
79143                        visitor,
79144                        &mut *__ast_path,
79145                    )
79146                };
79147            }
79148        }
79149    }
79150}
79151#[cfg(any(docsrs, feature = "path"))]
79152#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79153impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignPatProp {
79154    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_pat_prop`] with `self`."]
79155    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79156        <V as VisitMutAstPath>::visit_mut_assign_pat_prop(visitor, self, __ast_path)
79157    }
79158
79159    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79160        match self {
79161            AssignPatProp { span, key, value } => {
79162                {
79163                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
79164                        self::fields::AssignPatPropField::Span,
79165                    ));
79166                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79167                        span,
79168                        visitor,
79169                        &mut *__ast_path,
79170                    )
79171                };
79172                {
79173                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
79174                        self::fields::AssignPatPropField::Key,
79175                    ));
79176                    <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79177                        key,
79178                        visitor,
79179                        &mut *__ast_path,
79180                    )
79181                };
79182                {
79183                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
79184                        self::fields::AssignPatPropField::Value,
79185                    ));
79186                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79187                        value,
79188                        visitor,
79189                        &mut *__ast_path,
79190                    )
79191                };
79192            }
79193        }
79194    }
79195}
79196#[cfg(any(docsrs, feature = "path"))]
79197#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79198impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignProp {
79199    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_prop`] with `self`."]
79200    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79201        <V as VisitMutAstPath>::visit_mut_assign_prop(visitor, self, __ast_path)
79202    }
79203
79204    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79205        match self {
79206            AssignProp { span, key, value } => {
79207                {
79208                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
79209                        self::fields::AssignPropField::Span,
79210                    ));
79211                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79212                        span,
79213                        visitor,
79214                        &mut *__ast_path,
79215                    )
79216                };
79217                {
79218                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
79219                        self::fields::AssignPropField::Key,
79220                    ));
79221                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79222                        key,
79223                        visitor,
79224                        &mut *__ast_path,
79225                    )
79226                };
79227                {
79228                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
79229                        self::fields::AssignPropField::Value,
79230                    ));
79231                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79232                        value,
79233                        visitor,
79234                        &mut *__ast_path,
79235                    )
79236                };
79237            }
79238        }
79239    }
79240}
79241#[cfg(any(docsrs, feature = "path"))]
79242#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79243impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignTarget {
79244    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_target`] with `self`."]
79245    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79246        <V as VisitMutAstPath>::visit_mut_assign_target(visitor, self, __ast_path)
79247    }
79248
79249    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79250        match self {
79251            AssignTarget::Simple { 0: _field_0 } => {
79252                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
79253                    self::fields::AssignTargetField::Simple,
79254                ));
79255                <SimpleAssignTarget as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79256                    _field_0,
79257                    visitor,
79258                    &mut *__ast_path,
79259                );
79260            }
79261            AssignTarget::Pat { 0: _field_0 } => {
79262                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
79263                    self::fields::AssignTargetField::Pat,
79264                ));
79265                <AssignTargetPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79266                    _field_0,
79267                    visitor,
79268                    &mut *__ast_path,
79269                );
79270            }
79271        }
79272    }
79273}
79274#[cfg(any(docsrs, feature = "path"))]
79275#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79276impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AssignTargetPat {
79277    #[doc = "Calls [VisitMutAstPath`::visit_mut_assign_target_pat`] with `self`."]
79278    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79279        <V as VisitMutAstPath>::visit_mut_assign_target_pat(visitor, self, __ast_path)
79280    }
79281
79282    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79283        match self {
79284            AssignTargetPat::Array { 0: _field_0 } => {
79285                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
79286                    self::fields::AssignTargetPatField::Array,
79287                ));
79288                <ArrayPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79289                    _field_0,
79290                    visitor,
79291                    &mut *__ast_path,
79292                );
79293            }
79294            AssignTargetPat::Object { 0: _field_0 } => {
79295                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
79296                    self::fields::AssignTargetPatField::Object,
79297                ));
79298                <ObjectPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79299                    _field_0,
79300                    visitor,
79301                    &mut *__ast_path,
79302                );
79303            }
79304            AssignTargetPat::Invalid { 0: _field_0 } => {
79305                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
79306                    self::fields::AssignTargetPatField::Invalid,
79307                ));
79308                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79309                    _field_0,
79310                    visitor,
79311                    &mut *__ast_path,
79312                );
79313            }
79314        }
79315    }
79316}
79317#[cfg(any(docsrs, feature = "path"))]
79318#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79319impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AutoAccessor {
79320    #[doc = "Calls [VisitMutAstPath`::visit_mut_auto_accessor`] with `self`."]
79321    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79322        <V as VisitMutAstPath>::visit_mut_auto_accessor(visitor, self, __ast_path)
79323    }
79324
79325    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79326        match self {
79327            AutoAccessor {
79328                span,
79329                key,
79330                value,
79331                type_ann,
79332                is_static,
79333                decorators,
79334                accessibility,
79335                is_abstract,
79336                is_override,
79337                definite,
79338            } => {
79339                {
79340                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79341                        self::fields::AutoAccessorField::Span,
79342                    ));
79343                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79344                        span,
79345                        visitor,
79346                        &mut *__ast_path,
79347                    )
79348                };
79349                {
79350                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79351                        self::fields::AutoAccessorField::Key,
79352                    ));
79353                    <Key as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79354                        key,
79355                        visitor,
79356                        &mut *__ast_path,
79357                    )
79358                };
79359                {
79360                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79361                        self::fields::AutoAccessorField::Value,
79362                    ));
79363                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79364                        value,
79365                        visitor,
79366                        &mut *__ast_path,
79367                    )
79368                };
79369                {
79370                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79371                        self::fields::AutoAccessorField::TypeAnn,
79372                    ));
79373                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79374                        type_ann,
79375                        visitor,
79376                        &mut *__ast_path,
79377                    )
79378                };
79379                {
79380                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79381                        self::fields::AutoAccessorField::Decorators(usize::MAX),
79382                    ));
79383                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79384                        decorators,
79385                        visitor,
79386                        &mut *__ast_path,
79387                    )
79388                };
79389                {
79390                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
79391                        self::fields::AutoAccessorField::Accessibility,
79392                    ));
79393                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79394                        accessibility,
79395                        visitor,
79396                        &mut *__ast_path,
79397                    )
79398                };
79399            }
79400        }
79401    }
79402}
79403#[cfg(any(docsrs, feature = "path"))]
79404#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79405impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for AwaitExpr {
79406    #[doc = "Calls [VisitMutAstPath`::visit_mut_await_expr`] with `self`."]
79407    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79408        <V as VisitMutAstPath>::visit_mut_await_expr(visitor, self, __ast_path)
79409    }
79410
79411    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79412        match self {
79413            AwaitExpr { span, arg } => {
79414                {
79415                    let mut __ast_path = __ast_path
79416                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Span));
79417                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79418                        span,
79419                        visitor,
79420                        &mut *__ast_path,
79421                    )
79422                };
79423                {
79424                    let mut __ast_path = __ast_path
79425                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Arg));
79426                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79427                        arg,
79428                        visitor,
79429                        &mut *__ast_path,
79430                    )
79431                };
79432            }
79433        }
79434    }
79435}
79436#[cfg(any(docsrs, feature = "path"))]
79437#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79438impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BigInt {
79439    #[doc = "Calls [VisitMutAstPath`::visit_mut_big_int`] with `self`."]
79440    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79441        <V as VisitMutAstPath>::visit_mut_big_int(visitor, self, __ast_path)
79442    }
79443
79444    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79445        match self {
79446            BigInt { span, value, raw } => {
79447                {
79448                    let mut __ast_path = __ast_path
79449                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Span));
79450                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79451                        span,
79452                        visitor,
79453                        &mut *__ast_path,
79454                    )
79455                };
79456                {
79457                    let mut __ast_path = __ast_path
79458                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Value));
79459                    <Box<BigIntValue> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79460                        value,
79461                        visitor,
79462                        &mut *__ast_path,
79463                    )
79464                };
79465                {
79466                    let mut __ast_path = __ast_path
79467                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Raw));
79468                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79469                        raw,
79470                        visitor,
79471                        &mut *__ast_path,
79472                    )
79473                };
79474            }
79475        }
79476    }
79477}
79478#[cfg(any(docsrs, feature = "path"))]
79479#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79480impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BinExpr {
79481    #[doc = "Calls [VisitMutAstPath`::visit_mut_bin_expr`] with `self`."]
79482    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79483        <V as VisitMutAstPath>::visit_mut_bin_expr(visitor, self, __ast_path)
79484    }
79485
79486    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79487        match self {
79488            BinExpr {
79489                span,
79490                op,
79491                left,
79492                right,
79493            } => {
79494                {
79495                    let mut __ast_path = __ast_path
79496                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Span));
79497                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79498                        span,
79499                        visitor,
79500                        &mut *__ast_path,
79501                    )
79502                };
79503                {
79504                    let mut __ast_path = __ast_path
79505                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Op));
79506                    <BinaryOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79507                        op,
79508                        visitor,
79509                        &mut *__ast_path,
79510                    )
79511                };
79512                {
79513                    let mut __ast_path = __ast_path
79514                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Left));
79515                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79516                        left,
79517                        visitor,
79518                        &mut *__ast_path,
79519                    )
79520                };
79521                {
79522                    let mut __ast_path = __ast_path
79523                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Right));
79524                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79525                        right,
79526                        visitor,
79527                        &mut *__ast_path,
79528                    )
79529                };
79530            }
79531        }
79532    }
79533}
79534#[cfg(any(docsrs, feature = "path"))]
79535#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79536impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BinaryOp {
79537    #[doc = "Calls [VisitMutAstPath`::visit_mut_binary_op`] with `self`."]
79538    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79539        <V as VisitMutAstPath>::visit_mut_binary_op(visitor, self, __ast_path)
79540    }
79541
79542    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79543        match self {
79544            BinaryOp::EqEq => {}
79545            BinaryOp::NotEq => {}
79546            BinaryOp::EqEqEq => {}
79547            BinaryOp::NotEqEq => {}
79548            BinaryOp::Lt => {}
79549            BinaryOp::LtEq => {}
79550            BinaryOp::Gt => {}
79551            BinaryOp::GtEq => {}
79552            BinaryOp::LShift => {}
79553            BinaryOp::RShift => {}
79554            BinaryOp::ZeroFillRShift => {}
79555            BinaryOp::Add => {}
79556            BinaryOp::Sub => {}
79557            BinaryOp::Mul => {}
79558            BinaryOp::Div => {}
79559            BinaryOp::Mod => {}
79560            BinaryOp::BitOr => {}
79561            BinaryOp::BitXor => {}
79562            BinaryOp::BitAnd => {}
79563            BinaryOp::LogicalOr => {}
79564            BinaryOp::LogicalAnd => {}
79565            BinaryOp::In => {}
79566            BinaryOp::InstanceOf => {}
79567            BinaryOp::Exp => {}
79568            BinaryOp::NullishCoalescing => {}
79569        }
79570    }
79571}
79572#[cfg(any(docsrs, feature = "path"))]
79573#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79574impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BindingIdent {
79575    #[doc = "Calls [VisitMutAstPath`::visit_mut_binding_ident`] with `self`."]
79576    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79577        <V as VisitMutAstPath>::visit_mut_binding_ident(visitor, self, __ast_path)
79578    }
79579
79580    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79581        match self {
79582            BindingIdent { id, type_ann } => {
79583                {
79584                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
79585                        self::fields::BindingIdentField::Id,
79586                    ));
79587                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79588                        id,
79589                        visitor,
79590                        &mut *__ast_path,
79591                    )
79592                };
79593                {
79594                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
79595                        self::fields::BindingIdentField::TypeAnn,
79596                    ));
79597                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79598                        type_ann,
79599                        visitor,
79600                        &mut *__ast_path,
79601                    )
79602                };
79603            }
79604        }
79605    }
79606}
79607#[cfg(any(docsrs, feature = "path"))]
79608#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79609impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BlockStmt {
79610    #[doc = "Calls [VisitMutAstPath`::visit_mut_block_stmt`] with `self`."]
79611    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79612        <V as VisitMutAstPath>::visit_mut_block_stmt(visitor, self, __ast_path)
79613    }
79614
79615    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79616        match self {
79617            BlockStmt { span, ctxt, stmts } => {
79618                {
79619                    let mut __ast_path = __ast_path
79620                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Span));
79621                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79622                        span,
79623                        visitor,
79624                        &mut *__ast_path,
79625                    )
79626                };
79627                {
79628                    let mut __ast_path = __ast_path
79629                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Ctxt));
79630                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79631                        ctxt,
79632                        visitor,
79633                        &mut *__ast_path,
79634                    )
79635                };
79636                {
79637                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmt(
79638                        self::fields::BlockStmtField::Stmts(usize::MAX),
79639                    ));
79640                    <Vec<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79641                        stmts,
79642                        visitor,
79643                        &mut *__ast_path,
79644                    )
79645                };
79646            }
79647        }
79648    }
79649}
79650#[cfg(any(docsrs, feature = "path"))]
79651#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79652impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BlockStmtOrExpr {
79653    #[doc = "Calls [VisitMutAstPath`::visit_mut_block_stmt_or_expr`] with `self`."]
79654    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79655        <V as VisitMutAstPath>::visit_mut_block_stmt_or_expr(visitor, self, __ast_path)
79656    }
79657
79658    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79659        match self {
79660            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
79661                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
79662                    self::fields::BlockStmtOrExprField::BlockStmt,
79663                ));
79664                <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79665                    _field_0,
79666                    visitor,
79667                    &mut *__ast_path,
79668                );
79669            }
79670            BlockStmtOrExpr::Expr { 0: _field_0 } => {
79671                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
79672                    self::fields::BlockStmtOrExprField::Expr,
79673                ));
79674                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79675                    _field_0,
79676                    visitor,
79677                    &mut *__ast_path,
79678                );
79679            }
79680        }
79681    }
79682}
79683#[cfg(any(docsrs, feature = "path"))]
79684#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79685impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Bool {
79686    #[doc = "Calls [VisitMutAstPath`::visit_mut_bool`] with `self`."]
79687    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79688        <V as VisitMutAstPath>::visit_mut_bool(visitor, self, __ast_path)
79689    }
79690
79691    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79692        match self {
79693            Bool { span, value } => {
79694                {
79695                    let mut __ast_path =
79696                        __ast_path.with_guard(AstParentKind::Bool(self::fields::BoolField::Span));
79697                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79698                        span,
79699                        visitor,
79700                        &mut *__ast_path,
79701                    )
79702                };
79703            }
79704        }
79705    }
79706}
79707#[cfg(any(docsrs, feature = "path"))]
79708#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79709impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BreakStmt {
79710    #[doc = "Calls [VisitMutAstPath`::visit_mut_break_stmt`] with `self`."]
79711    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79712        <V as VisitMutAstPath>::visit_mut_break_stmt(visitor, self, __ast_path)
79713    }
79714
79715    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79716        match self {
79717            BreakStmt { span, label } => {
79718                {
79719                    let mut __ast_path = __ast_path
79720                        .with_guard(AstParentKind::BreakStmt(self::fields::BreakStmtField::Span));
79721                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79722                        span,
79723                        visitor,
79724                        &mut *__ast_path,
79725                    )
79726                };
79727                {
79728                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BreakStmt(
79729                        self::fields::BreakStmtField::Label,
79730                    ));
79731                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79732                        label,
79733                        visitor,
79734                        &mut *__ast_path,
79735                    )
79736                };
79737            }
79738        }
79739    }
79740}
79741#[cfg(any(docsrs, feature = "path"))]
79742#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79743impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for CallExpr {
79744    #[doc = "Calls [VisitMutAstPath`::visit_mut_call_expr`] with `self`."]
79745    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79746        <V as VisitMutAstPath>::visit_mut_call_expr(visitor, self, __ast_path)
79747    }
79748
79749    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79750        match self {
79751            CallExpr {
79752                span,
79753                ctxt,
79754                callee,
79755                args,
79756                type_args,
79757            } => {
79758                {
79759                    let mut __ast_path = __ast_path
79760                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Span));
79761                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79762                        span,
79763                        visitor,
79764                        &mut *__ast_path,
79765                    )
79766                };
79767                {
79768                    let mut __ast_path = __ast_path
79769                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Ctxt));
79770                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79771                        ctxt,
79772                        visitor,
79773                        &mut *__ast_path,
79774                    )
79775                };
79776                {
79777                    let mut __ast_path = __ast_path
79778                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Callee));
79779                    <Callee as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79780                        callee,
79781                        visitor,
79782                        &mut *__ast_path,
79783                    )
79784                };
79785                {
79786                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
79787                        self::fields::CallExprField::Args(usize::MAX),
79788                    ));
79789                    <Vec<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79790                        args,
79791                        visitor,
79792                        &mut *__ast_path,
79793                    )
79794                };
79795                {
79796                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
79797                        self::fields::CallExprField::TypeArgs,
79798                    ));
79799                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
79800                };
79801            }
79802        }
79803    }
79804}
79805#[cfg(any(docsrs, feature = "path"))]
79806#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79807impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Callee {
79808    #[doc = "Calls [VisitMutAstPath`::visit_mut_callee`] with `self`."]
79809    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79810        <V as VisitMutAstPath>::visit_mut_callee(visitor, self, __ast_path)
79811    }
79812
79813    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79814        match self {
79815            Callee::Super { 0: _field_0 } => {
79816                let mut __ast_path =
79817                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Super));
79818                <Super as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79819                    _field_0,
79820                    visitor,
79821                    &mut *__ast_path,
79822                );
79823            }
79824            Callee::Import { 0: _field_0 } => {
79825                let mut __ast_path =
79826                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Import));
79827                <Import as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79828                    _field_0,
79829                    visitor,
79830                    &mut *__ast_path,
79831                );
79832            }
79833            Callee::Expr { 0: _field_0 } => {
79834                let mut __ast_path =
79835                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Expr));
79836                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79837                    _field_0,
79838                    visitor,
79839                    &mut *__ast_path,
79840                );
79841            }
79842        }
79843    }
79844}
79845#[cfg(any(docsrs, feature = "path"))]
79846#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79847impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for CatchClause {
79848    #[doc = "Calls [VisitMutAstPath`::visit_mut_catch_clause`] with `self`."]
79849    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79850        <V as VisitMutAstPath>::visit_mut_catch_clause(visitor, self, __ast_path)
79851    }
79852
79853    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79854        match self {
79855            CatchClause { span, param, body } => {
79856                {
79857                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
79858                        self::fields::CatchClauseField::Span,
79859                    ));
79860                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79861                        span,
79862                        visitor,
79863                        &mut *__ast_path,
79864                    )
79865                };
79866                {
79867                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
79868                        self::fields::CatchClauseField::Param,
79869                    ));
79870                    <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79871                        param,
79872                        visitor,
79873                        &mut *__ast_path,
79874                    )
79875                };
79876                {
79877                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
79878                        self::fields::CatchClauseField::Body,
79879                    ));
79880                    <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79881                        body,
79882                        visitor,
79883                        &mut *__ast_path,
79884                    )
79885                };
79886            }
79887        }
79888    }
79889}
79890#[cfg(any(docsrs, feature = "path"))]
79891#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79892impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Class {
79893    #[doc = "Calls [VisitMutAstPath`::visit_mut_class`] with `self`."]
79894    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79895        <V as VisitMutAstPath>::visit_mut_class(visitor, self, __ast_path)
79896    }
79897
79898    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79899        match self {
79900            Class {
79901                span,
79902                ctxt,
79903                decorators,
79904                body,
79905                super_class,
79906                is_abstract,
79907                type_params,
79908                super_type_params,
79909                implements,
79910            } => {
79911                {
79912                    let mut __ast_path =
79913                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Span));
79914                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79915                        span,
79916                        visitor,
79917                        &mut *__ast_path,
79918                    )
79919                };
79920                {
79921                    let mut __ast_path =
79922                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Ctxt));
79923                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79924                        ctxt,
79925                        visitor,
79926                        &mut *__ast_path,
79927                    )
79928                };
79929                {
79930                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
79931                        self::fields::ClassField::Decorators(usize::MAX),
79932                    ));
79933                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79934                        decorators,
79935                        visitor,
79936                        &mut *__ast_path,
79937                    )
79938                };
79939                {
79940                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
79941                        self::fields::ClassField::Body(usize::MAX),
79942                    ));
79943                    <Vec<ClassMember> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79944                        body,
79945                        visitor,
79946                        &mut *__ast_path,
79947                    )
79948                };
79949                {
79950                    let mut __ast_path = __ast_path
79951                        .with_guard(AstParentKind::Class(self::fields::ClassField::SuperClass));
79952                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79953                        super_class,
79954                        visitor,
79955                        &mut *__ast_path,
79956                    )
79957                };
79958                {
79959                    let mut __ast_path = __ast_path
79960                        .with_guard(AstParentKind::Class(self::fields::ClassField::TypeParams));
79961                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
79962                };
79963                {
79964                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
79965                        self::fields::ClassField::SuperTypeParams,
79966                    ));
79967                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (super_type_params , visitor , & mut * __ast_path)
79968                };
79969                {
79970                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
79971                        self::fields::ClassField::Implements(usize::MAX),
79972                    ));
79973                    <Vec<TsExprWithTypeArgs> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
79974                        implements,
79975                        visitor,
79976                        &mut *__ast_path,
79977                    )
79978                };
79979            }
79980        }
79981    }
79982}
79983#[cfg(any(docsrs, feature = "path"))]
79984#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
79985impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassDecl {
79986    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_decl`] with `self`."]
79987    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79988        <V as VisitMutAstPath>::visit_mut_class_decl(visitor, self, __ast_path)
79989    }
79990
79991    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
79992        match self {
79993            ClassDecl {
79994                ident,
79995                declare,
79996                class,
79997            } => {
79998                {
79999                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
80000                        self::fields::ClassDeclField::Ident,
80001                    ));
80002                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80003                        ident,
80004                        visitor,
80005                        &mut *__ast_path,
80006                    )
80007                };
80008                {
80009                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
80010                        self::fields::ClassDeclField::Class,
80011                    ));
80012                    <Box<Class> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80013                        class,
80014                        visitor,
80015                        &mut *__ast_path,
80016                    )
80017                };
80018            }
80019        }
80020    }
80021}
80022#[cfg(any(docsrs, feature = "path"))]
80023#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80024impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassExpr {
80025    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_expr`] with `self`."]
80026    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80027        <V as VisitMutAstPath>::visit_mut_class_expr(visitor, self, __ast_path)
80028    }
80029
80030    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80031        match self {
80032            ClassExpr { ident, class } => {
80033                {
80034                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
80035                        self::fields::ClassExprField::Ident,
80036                    ));
80037                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80038                        ident,
80039                        visitor,
80040                        &mut *__ast_path,
80041                    )
80042                };
80043                {
80044                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
80045                        self::fields::ClassExprField::Class,
80046                    ));
80047                    <Box<Class> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80048                        class,
80049                        visitor,
80050                        &mut *__ast_path,
80051                    )
80052                };
80053            }
80054        }
80055    }
80056}
80057#[cfg(any(docsrs, feature = "path"))]
80058#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80059impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassMember {
80060    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_member`] with `self`."]
80061    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80062        <V as VisitMutAstPath>::visit_mut_class_member(visitor, self, __ast_path)
80063    }
80064
80065    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80066        match self {
80067            ClassMember::Constructor { 0: _field_0 } => {
80068                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80069                    self::fields::ClassMemberField::Constructor,
80070                ));
80071                <Constructor as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80072                    _field_0,
80073                    visitor,
80074                    &mut *__ast_path,
80075                );
80076            }
80077            ClassMember::Method { 0: _field_0 } => {
80078                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80079                    self::fields::ClassMemberField::Method,
80080                ));
80081                <ClassMethod as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80082                    _field_0,
80083                    visitor,
80084                    &mut *__ast_path,
80085                );
80086            }
80087            ClassMember::PrivateMethod { 0: _field_0 } => {
80088                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80089                    self::fields::ClassMemberField::PrivateMethod,
80090                ));
80091                <PrivateMethod as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80092                    _field_0,
80093                    visitor,
80094                    &mut *__ast_path,
80095                );
80096            }
80097            ClassMember::ClassProp { 0: _field_0 } => {
80098                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80099                    self::fields::ClassMemberField::ClassProp,
80100                ));
80101                <ClassProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80102                    _field_0,
80103                    visitor,
80104                    &mut *__ast_path,
80105                );
80106            }
80107            ClassMember::PrivateProp { 0: _field_0 } => {
80108                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80109                    self::fields::ClassMemberField::PrivateProp,
80110                ));
80111                <PrivateProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80112                    _field_0,
80113                    visitor,
80114                    &mut *__ast_path,
80115                );
80116            }
80117            ClassMember::TsIndexSignature { 0: _field_0 } => {
80118                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80119                    self::fields::ClassMemberField::TsIndexSignature,
80120                ));
80121                <TsIndexSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80122                    _field_0,
80123                    visitor,
80124                    &mut *__ast_path,
80125                );
80126            }
80127            ClassMember::Empty { 0: _field_0 } => {
80128                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80129                    self::fields::ClassMemberField::Empty,
80130                ));
80131                <EmptyStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80132                    _field_0,
80133                    visitor,
80134                    &mut *__ast_path,
80135                );
80136            }
80137            ClassMember::StaticBlock { 0: _field_0 } => {
80138                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80139                    self::fields::ClassMemberField::StaticBlock,
80140                ));
80141                <StaticBlock as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80142                    _field_0,
80143                    visitor,
80144                    &mut *__ast_path,
80145                );
80146            }
80147            ClassMember::AutoAccessor { 0: _field_0 } => {
80148                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
80149                    self::fields::ClassMemberField::AutoAccessor,
80150                ));
80151                <AutoAccessor as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80152                    _field_0,
80153                    visitor,
80154                    &mut *__ast_path,
80155                );
80156            }
80157        }
80158    }
80159}
80160#[cfg(any(docsrs, feature = "path"))]
80161#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80162impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassMethod {
80163    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_method`] with `self`."]
80164    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80165        <V as VisitMutAstPath>::visit_mut_class_method(visitor, self, __ast_path)
80166    }
80167
80168    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80169        match self {
80170            ClassMethod {
80171                span,
80172                key,
80173                function,
80174                kind,
80175                is_static,
80176                accessibility,
80177                is_abstract,
80178                is_optional,
80179                is_override,
80180            } => {
80181                {
80182                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80183                        self::fields::ClassMethodField::Span,
80184                    ));
80185                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80186                        span,
80187                        visitor,
80188                        &mut *__ast_path,
80189                    )
80190                };
80191                {
80192                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80193                        self::fields::ClassMethodField::Key,
80194                    ));
80195                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80196                        key,
80197                        visitor,
80198                        &mut *__ast_path,
80199                    )
80200                };
80201                {
80202                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80203                        self::fields::ClassMethodField::Function,
80204                    ));
80205                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80206                        function,
80207                        visitor,
80208                        &mut *__ast_path,
80209                    )
80210                };
80211                {
80212                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80213                        self::fields::ClassMethodField::Kind,
80214                    ));
80215                    <MethodKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80216                        kind,
80217                        visitor,
80218                        &mut *__ast_path,
80219                    )
80220                };
80221                {
80222                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
80223                        self::fields::ClassMethodField::Accessibility,
80224                    ));
80225                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80226                        accessibility,
80227                        visitor,
80228                        &mut *__ast_path,
80229                    )
80230                };
80231            }
80232        }
80233    }
80234}
80235#[cfg(any(docsrs, feature = "path"))]
80236#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80237impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ClassProp {
80238    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_prop`] with `self`."]
80239    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80240        <V as VisitMutAstPath>::visit_mut_class_prop(visitor, self, __ast_path)
80241    }
80242
80243    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80244        match self {
80245            ClassProp {
80246                span,
80247                key,
80248                value,
80249                type_ann,
80250                is_static,
80251                decorators,
80252                accessibility,
80253                is_abstract,
80254                is_optional,
80255                is_override,
80256                readonly,
80257                declare,
80258                definite,
80259            } => {
80260                {
80261                    let mut __ast_path = __ast_path
80262                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Span));
80263                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80264                        span,
80265                        visitor,
80266                        &mut *__ast_path,
80267                    )
80268                };
80269                {
80270                    let mut __ast_path = __ast_path
80271                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Key));
80272                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80273                        key,
80274                        visitor,
80275                        &mut *__ast_path,
80276                    )
80277                };
80278                {
80279                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80280                        self::fields::ClassPropField::Value,
80281                    ));
80282                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80283                        value,
80284                        visitor,
80285                        &mut *__ast_path,
80286                    )
80287                };
80288                {
80289                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80290                        self::fields::ClassPropField::TypeAnn,
80291                    ));
80292                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80293                        type_ann,
80294                        visitor,
80295                        &mut *__ast_path,
80296                    )
80297                };
80298                {
80299                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80300                        self::fields::ClassPropField::Decorators(usize::MAX),
80301                    ));
80302                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80303                        decorators,
80304                        visitor,
80305                        &mut *__ast_path,
80306                    )
80307                };
80308                {
80309                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
80310                        self::fields::ClassPropField::Accessibility,
80311                    ));
80312                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80313                        accessibility,
80314                        visitor,
80315                        &mut *__ast_path,
80316                    )
80317                };
80318            }
80319        }
80320    }
80321}
80322#[cfg(any(docsrs, feature = "path"))]
80323#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80324impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ComputedPropName {
80325    #[doc = "Calls [VisitMutAstPath`::visit_mut_computed_prop_name`] with `self`."]
80326    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80327        <V as VisitMutAstPath>::visit_mut_computed_prop_name(visitor, self, __ast_path)
80328    }
80329
80330    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80331        match self {
80332            ComputedPropName { span, expr } => {
80333                {
80334                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
80335                        self::fields::ComputedPropNameField::Span,
80336                    ));
80337                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80338                        span,
80339                        visitor,
80340                        &mut *__ast_path,
80341                    )
80342                };
80343                {
80344                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
80345                        self::fields::ComputedPropNameField::Expr,
80346                    ));
80347                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80348                        expr,
80349                        visitor,
80350                        &mut *__ast_path,
80351                    )
80352                };
80353            }
80354        }
80355    }
80356}
80357#[cfg(any(docsrs, feature = "path"))]
80358#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80359impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for CondExpr {
80360    #[doc = "Calls [VisitMutAstPath`::visit_mut_cond_expr`] with `self`."]
80361    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80362        <V as VisitMutAstPath>::visit_mut_cond_expr(visitor, self, __ast_path)
80363    }
80364
80365    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80366        match self {
80367            CondExpr {
80368                span,
80369                test,
80370                cons,
80371                alt,
80372            } => {
80373                {
80374                    let mut __ast_path = __ast_path
80375                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Span));
80376                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80377                        span,
80378                        visitor,
80379                        &mut *__ast_path,
80380                    )
80381                };
80382                {
80383                    let mut __ast_path = __ast_path
80384                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Test));
80385                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80386                        test,
80387                        visitor,
80388                        &mut *__ast_path,
80389                    )
80390                };
80391                {
80392                    let mut __ast_path = __ast_path
80393                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Cons));
80394                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80395                        cons,
80396                        visitor,
80397                        &mut *__ast_path,
80398                    )
80399                };
80400                {
80401                    let mut __ast_path = __ast_path
80402                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Alt));
80403                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80404                        alt,
80405                        visitor,
80406                        &mut *__ast_path,
80407                    )
80408                };
80409            }
80410        }
80411    }
80412}
80413#[cfg(any(docsrs, feature = "path"))]
80414#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80415impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Constructor {
80416    #[doc = "Calls [VisitMutAstPath`::visit_mut_constructor`] with `self`."]
80417    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80418        <V as VisitMutAstPath>::visit_mut_constructor(visitor, self, __ast_path)
80419    }
80420
80421    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80422        match self {
80423            Constructor {
80424                span,
80425                ctxt,
80426                key,
80427                params,
80428                body,
80429                accessibility,
80430                is_optional,
80431            } => {
80432                {
80433                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80434                        self::fields::ConstructorField::Span,
80435                    ));
80436                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80437                        span,
80438                        visitor,
80439                        &mut *__ast_path,
80440                    )
80441                };
80442                {
80443                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80444                        self::fields::ConstructorField::Ctxt,
80445                    ));
80446                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80447                        ctxt,
80448                        visitor,
80449                        &mut *__ast_path,
80450                    )
80451                };
80452                {
80453                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80454                        self::fields::ConstructorField::Key,
80455                    ));
80456                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80457                        key,
80458                        visitor,
80459                        &mut *__ast_path,
80460                    )
80461                };
80462                {
80463                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80464                        self::fields::ConstructorField::Params(usize::MAX),
80465                    ));
80466                    <Vec<ParamOrTsParamProp> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80467                        params,
80468                        visitor,
80469                        &mut *__ast_path,
80470                    )
80471                };
80472                {
80473                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80474                        self::fields::ConstructorField::Body,
80475                    ));
80476                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80477                        body,
80478                        visitor,
80479                        &mut *__ast_path,
80480                    )
80481                };
80482                {
80483                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
80484                        self::fields::ConstructorField::Accessibility,
80485                    ));
80486                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80487                        accessibility,
80488                        visitor,
80489                        &mut *__ast_path,
80490                    )
80491                };
80492            }
80493        }
80494    }
80495}
80496#[cfg(any(docsrs, feature = "path"))]
80497#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80498impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ContinueStmt {
80499    #[doc = "Calls [VisitMutAstPath`::visit_mut_continue_stmt`] with `self`."]
80500    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80501        <V as VisitMutAstPath>::visit_mut_continue_stmt(visitor, self, __ast_path)
80502    }
80503
80504    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80505        match self {
80506            ContinueStmt { span, label } => {
80507                {
80508                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
80509                        self::fields::ContinueStmtField::Span,
80510                    ));
80511                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80512                        span,
80513                        visitor,
80514                        &mut *__ast_path,
80515                    )
80516                };
80517                {
80518                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
80519                        self::fields::ContinueStmtField::Label,
80520                    ));
80521                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80522                        label,
80523                        visitor,
80524                        &mut *__ast_path,
80525                    )
80526                };
80527            }
80528        }
80529    }
80530}
80531#[cfg(any(docsrs, feature = "path"))]
80532#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80533impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for DebuggerStmt {
80534    #[doc = "Calls [VisitMutAstPath`::visit_mut_debugger_stmt`] with `self`."]
80535    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80536        <V as VisitMutAstPath>::visit_mut_debugger_stmt(visitor, self, __ast_path)
80537    }
80538
80539    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80540        match self {
80541            DebuggerStmt { span } => {
80542                {
80543                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DebuggerStmt(
80544                        self::fields::DebuggerStmtField::Span,
80545                    ));
80546                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80547                        span,
80548                        visitor,
80549                        &mut *__ast_path,
80550                    )
80551                };
80552            }
80553        }
80554    }
80555}
80556#[cfg(any(docsrs, feature = "path"))]
80557#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80558impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Decl {
80559    #[doc = "Calls [VisitMutAstPath`::visit_mut_decl`] with `self`."]
80560    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80561        <V as VisitMutAstPath>::visit_mut_decl(visitor, self, __ast_path)
80562    }
80563
80564    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80565        match self {
80566            Decl::Class { 0: _field_0 } => {
80567                let mut __ast_path =
80568                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Class));
80569                <ClassDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80570                    _field_0,
80571                    visitor,
80572                    &mut *__ast_path,
80573                );
80574            }
80575            Decl::Fn { 0: _field_0 } => {
80576                let mut __ast_path =
80577                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Fn));
80578                <FnDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80579                    _field_0,
80580                    visitor,
80581                    &mut *__ast_path,
80582                );
80583            }
80584            Decl::Var { 0: _field_0 } => {
80585                let mut __ast_path =
80586                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Var));
80587                <Box<VarDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80588                    _field_0,
80589                    visitor,
80590                    &mut *__ast_path,
80591                );
80592            }
80593            Decl::Using { 0: _field_0 } => {
80594                let mut __ast_path =
80595                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Using));
80596                <Box<UsingDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80597                    _field_0,
80598                    visitor,
80599                    &mut *__ast_path,
80600                );
80601            }
80602            Decl::TsInterface { 0: _field_0 } => {
80603                let mut __ast_path = __ast_path
80604                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsInterface));
80605                <Box<TsInterfaceDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80606                    _field_0,
80607                    visitor,
80608                    &mut *__ast_path,
80609                );
80610            }
80611            Decl::TsTypeAlias { 0: _field_0 } => {
80612                let mut __ast_path = __ast_path
80613                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsTypeAlias));
80614                <Box<TsTypeAliasDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80615                    _field_0,
80616                    visitor,
80617                    &mut *__ast_path,
80618                );
80619            }
80620            Decl::TsEnum { 0: _field_0 } => {
80621                let mut __ast_path =
80622                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsEnum));
80623                <Box<TsEnumDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80624                    _field_0,
80625                    visitor,
80626                    &mut *__ast_path,
80627                );
80628            }
80629            Decl::TsModule { 0: _field_0 } => {
80630                let mut __ast_path =
80631                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsModule));
80632                <Box<TsModuleDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80633                    _field_0,
80634                    visitor,
80635                    &mut *__ast_path,
80636                );
80637            }
80638        }
80639    }
80640}
80641#[cfg(any(docsrs, feature = "path"))]
80642#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80643impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Decorator {
80644    #[doc = "Calls [VisitMutAstPath`::visit_mut_decorator`] with `self`."]
80645    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80646        <V as VisitMutAstPath>::visit_mut_decorator(visitor, self, __ast_path)
80647    }
80648
80649    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80650        match self {
80651            Decorator { span, expr } => {
80652                {
80653                    let mut __ast_path = __ast_path
80654                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Span));
80655                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80656                        span,
80657                        visitor,
80658                        &mut *__ast_path,
80659                    )
80660                };
80661                {
80662                    let mut __ast_path = __ast_path
80663                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Expr));
80664                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80665                        expr,
80666                        visitor,
80667                        &mut *__ast_path,
80668                    )
80669                };
80670            }
80671        }
80672    }
80673}
80674#[cfg(any(docsrs, feature = "path"))]
80675#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80676impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for DefaultDecl {
80677    #[doc = "Calls [VisitMutAstPath`::visit_mut_default_decl`] with `self`."]
80678    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80679        <V as VisitMutAstPath>::visit_mut_default_decl(visitor, self, __ast_path)
80680    }
80681
80682    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80683        match self {
80684            DefaultDecl::Class { 0: _field_0 } => {
80685                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
80686                    self::fields::DefaultDeclField::Class,
80687                ));
80688                <ClassExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80689                    _field_0,
80690                    visitor,
80691                    &mut *__ast_path,
80692                );
80693            }
80694            DefaultDecl::Fn { 0: _field_0 } => {
80695                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
80696                    self::fields::DefaultDeclField::Fn,
80697                ));
80698                <FnExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80699                    _field_0,
80700                    visitor,
80701                    &mut *__ast_path,
80702                );
80703            }
80704            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
80705                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
80706                    self::fields::DefaultDeclField::TsInterfaceDecl,
80707                ));
80708                <Box<TsInterfaceDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80709                    _field_0,
80710                    visitor,
80711                    &mut *__ast_path,
80712                );
80713            }
80714        }
80715    }
80716}
80717#[cfg(any(docsrs, feature = "path"))]
80718#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80719impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for DoWhileStmt {
80720    #[doc = "Calls [VisitMutAstPath`::visit_mut_do_while_stmt`] with `self`."]
80721    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80722        <V as VisitMutAstPath>::visit_mut_do_while_stmt(visitor, self, __ast_path)
80723    }
80724
80725    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80726        match self {
80727            DoWhileStmt { span, test, body } => {
80728                {
80729                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
80730                        self::fields::DoWhileStmtField::Span,
80731                    ));
80732                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80733                        span,
80734                        visitor,
80735                        &mut *__ast_path,
80736                    )
80737                };
80738                {
80739                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
80740                        self::fields::DoWhileStmtField::Test,
80741                    ));
80742                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80743                        test,
80744                        visitor,
80745                        &mut *__ast_path,
80746                    )
80747                };
80748                {
80749                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
80750                        self::fields::DoWhileStmtField::Body,
80751                    ));
80752                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80753                        body,
80754                        visitor,
80755                        &mut *__ast_path,
80756                    )
80757                };
80758            }
80759        }
80760    }
80761}
80762#[cfg(any(docsrs, feature = "path"))]
80763#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80764impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for EmptyStmt {
80765    #[doc = "Calls [VisitMutAstPath`::visit_mut_empty_stmt`] with `self`."]
80766    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80767        <V as VisitMutAstPath>::visit_mut_empty_stmt(visitor, self, __ast_path)
80768    }
80769
80770    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80771        match self {
80772            EmptyStmt { span } => {
80773                {
80774                    let mut __ast_path = __ast_path
80775                        .with_guard(AstParentKind::EmptyStmt(self::fields::EmptyStmtField::Span));
80776                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80777                        span,
80778                        visitor,
80779                        &mut *__ast_path,
80780                    )
80781                };
80782            }
80783        }
80784    }
80785}
80786#[cfg(any(docsrs, feature = "path"))]
80787#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80788impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportAll {
80789    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_all`] with `self`."]
80790    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80791        <V as VisitMutAstPath>::visit_mut_export_all(visitor, self, __ast_path)
80792    }
80793
80794    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80795        match self {
80796            ExportAll {
80797                span,
80798                src,
80799                type_only,
80800                with,
80801            } => {
80802                {
80803                    let mut __ast_path = __ast_path
80804                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Span));
80805                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80806                        span,
80807                        visitor,
80808                        &mut *__ast_path,
80809                    )
80810                };
80811                {
80812                    let mut __ast_path = __ast_path
80813                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Src));
80814                    <Box<Str> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80815                        src,
80816                        visitor,
80817                        &mut *__ast_path,
80818                    )
80819                };
80820                {
80821                    let mut __ast_path = __ast_path
80822                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::With));
80823                    <Option<Box<ObjectLit>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80824                        with,
80825                        visitor,
80826                        &mut *__ast_path,
80827                    )
80828                };
80829            }
80830        }
80831    }
80832}
80833#[cfg(any(docsrs, feature = "path"))]
80834#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80835impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDecl {
80836    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_decl`] with `self`."]
80837    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80838        <V as VisitMutAstPath>::visit_mut_export_decl(visitor, self, __ast_path)
80839    }
80840
80841    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80842        match self {
80843            ExportDecl { span, decl } => {
80844                {
80845                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
80846                        self::fields::ExportDeclField::Span,
80847                    ));
80848                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80849                        span,
80850                        visitor,
80851                        &mut *__ast_path,
80852                    )
80853                };
80854                {
80855                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
80856                        self::fields::ExportDeclField::Decl,
80857                    ));
80858                    <Decl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80859                        decl,
80860                        visitor,
80861                        &mut *__ast_path,
80862                    )
80863                };
80864            }
80865        }
80866    }
80867}
80868#[cfg(any(docsrs, feature = "path"))]
80869#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80870impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDefaultDecl {
80871    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_default_decl`] with `self`."]
80872    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80873        <V as VisitMutAstPath>::visit_mut_export_default_decl(visitor, self, __ast_path)
80874    }
80875
80876    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80877        match self {
80878            ExportDefaultDecl { span, decl } => {
80879                {
80880                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
80881                        self::fields::ExportDefaultDeclField::Span,
80882                    ));
80883                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80884                        span,
80885                        visitor,
80886                        &mut *__ast_path,
80887                    )
80888                };
80889                {
80890                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
80891                        self::fields::ExportDefaultDeclField::Decl,
80892                    ));
80893                    <DefaultDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80894                        decl,
80895                        visitor,
80896                        &mut *__ast_path,
80897                    )
80898                };
80899            }
80900        }
80901    }
80902}
80903#[cfg(any(docsrs, feature = "path"))]
80904#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80905impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDefaultExpr {
80906    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_default_expr`] with `self`."]
80907    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80908        <V as VisitMutAstPath>::visit_mut_export_default_expr(visitor, self, __ast_path)
80909    }
80910
80911    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80912        match self {
80913            ExportDefaultExpr { span, expr } => {
80914                {
80915                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
80916                        self::fields::ExportDefaultExprField::Span,
80917                    ));
80918                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80919                        span,
80920                        visitor,
80921                        &mut *__ast_path,
80922                    )
80923                };
80924                {
80925                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
80926                        self::fields::ExportDefaultExprField::Expr,
80927                    ));
80928                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80929                        expr,
80930                        visitor,
80931                        &mut *__ast_path,
80932                    )
80933                };
80934            }
80935        }
80936    }
80937}
80938#[cfg(any(docsrs, feature = "path"))]
80939#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80940impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportDefaultSpecifier {
80941    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_default_specifier`] with `self`."]
80942    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80943        <V as VisitMutAstPath>::visit_mut_export_default_specifier(visitor, self, __ast_path)
80944    }
80945
80946    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80947        match self {
80948            ExportDefaultSpecifier { exported } => {
80949                {
80950                    let mut __ast_path =
80951                        __ast_path.with_guard(AstParentKind::ExportDefaultSpecifier(
80952                            self::fields::ExportDefaultSpecifierField::Exported,
80953                        ));
80954                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80955                        exported,
80956                        visitor,
80957                        &mut *__ast_path,
80958                    )
80959                };
80960            }
80961        }
80962    }
80963}
80964#[cfg(any(docsrs, feature = "path"))]
80965#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
80966impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportNamedSpecifier {
80967    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_named_specifier`] with `self`."]
80968    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80969        <V as VisitMutAstPath>::visit_mut_export_named_specifier(visitor, self, __ast_path)
80970    }
80971
80972    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
80973        match self {
80974            ExportNamedSpecifier {
80975                span,
80976                orig,
80977                exported,
80978                is_type_only,
80979            } => {
80980                {
80981                    let mut __ast_path =
80982                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
80983                            self::fields::ExportNamedSpecifierField::Span,
80984                        ));
80985                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80986                        span,
80987                        visitor,
80988                        &mut *__ast_path,
80989                    )
80990                };
80991                {
80992                    let mut __ast_path =
80993                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
80994                            self::fields::ExportNamedSpecifierField::Orig,
80995                        ));
80996                    <ModuleExportName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
80997                        orig,
80998                        visitor,
80999                        &mut *__ast_path,
81000                    )
81001                };
81002                {
81003                    let mut __ast_path =
81004                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
81005                            self::fields::ExportNamedSpecifierField::Exported,
81006                        ));
81007                    <Option<ModuleExportName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81008                        exported,
81009                        visitor,
81010                        &mut *__ast_path,
81011                    )
81012                };
81013            }
81014        }
81015    }
81016}
81017#[cfg(any(docsrs, feature = "path"))]
81018#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81019impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportNamespaceSpecifier {
81020    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_namespace_specifier`] with `self`."]
81021    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81022        <V as VisitMutAstPath>::visit_mut_export_namespace_specifier(visitor, self, __ast_path)
81023    }
81024
81025    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81026        match self {
81027            ExportNamespaceSpecifier { span, name } => {
81028                {
81029                    let mut __ast_path =
81030                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
81031                            self::fields::ExportNamespaceSpecifierField::Span,
81032                        ));
81033                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81034                        span,
81035                        visitor,
81036                        &mut *__ast_path,
81037                    )
81038                };
81039                {
81040                    let mut __ast_path =
81041                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
81042                            self::fields::ExportNamespaceSpecifierField::Name,
81043                        ));
81044                    <ModuleExportName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81045                        name,
81046                        visitor,
81047                        &mut *__ast_path,
81048                    )
81049                };
81050            }
81051        }
81052    }
81053}
81054#[cfg(any(docsrs, feature = "path"))]
81055#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81056impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExportSpecifier {
81057    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_specifier`] with `self`."]
81058    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81059        <V as VisitMutAstPath>::visit_mut_export_specifier(visitor, self, __ast_path)
81060    }
81061
81062    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81063        match self {
81064            ExportSpecifier::Namespace { 0: _field_0 } => {
81065                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
81066                    self::fields::ExportSpecifierField::Namespace,
81067                ));
81068                <ExportNamespaceSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81069                    _field_0,
81070                    visitor,
81071                    &mut *__ast_path,
81072                );
81073            }
81074            ExportSpecifier::Default { 0: _field_0 } => {
81075                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
81076                    self::fields::ExportSpecifierField::Default,
81077                ));
81078                <ExportDefaultSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81079                    _field_0,
81080                    visitor,
81081                    &mut *__ast_path,
81082                );
81083            }
81084            ExportSpecifier::Named { 0: _field_0 } => {
81085                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
81086                    self::fields::ExportSpecifierField::Named,
81087                ));
81088                <ExportNamedSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81089                    _field_0,
81090                    visitor,
81091                    &mut *__ast_path,
81092                );
81093            }
81094        }
81095    }
81096}
81097#[cfg(any(docsrs, feature = "path"))]
81098#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81099impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Expr {
81100    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr`] with `self`."]
81101    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81102        <V as VisitMutAstPath>::visit_mut_expr(visitor, self, __ast_path)
81103    }
81104
81105    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81106        match self {
81107            Expr::This { 0: _field_0 } => {
81108                let mut __ast_path =
81109                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::This));
81110                <ThisExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81111                    _field_0,
81112                    visitor,
81113                    &mut *__ast_path,
81114                );
81115            }
81116            Expr::Array { 0: _field_0 } => {
81117                let mut __ast_path =
81118                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Array));
81119                <ArrayLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81120                    _field_0,
81121                    visitor,
81122                    &mut *__ast_path,
81123                );
81124            }
81125            Expr::Object { 0: _field_0 } => {
81126                let mut __ast_path =
81127                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Object));
81128                <ObjectLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81129                    _field_0,
81130                    visitor,
81131                    &mut *__ast_path,
81132                );
81133            }
81134            Expr::Fn { 0: _field_0 } => {
81135                let mut __ast_path =
81136                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Fn));
81137                <FnExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81138                    _field_0,
81139                    visitor,
81140                    &mut *__ast_path,
81141                );
81142            }
81143            Expr::Unary { 0: _field_0 } => {
81144                let mut __ast_path =
81145                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Unary));
81146                <UnaryExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81147                    _field_0,
81148                    visitor,
81149                    &mut *__ast_path,
81150                );
81151            }
81152            Expr::Update { 0: _field_0 } => {
81153                let mut __ast_path =
81154                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Update));
81155                <UpdateExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81156                    _field_0,
81157                    visitor,
81158                    &mut *__ast_path,
81159                );
81160            }
81161            Expr::Bin { 0: _field_0 } => {
81162                let mut __ast_path =
81163                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Bin));
81164                <BinExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81165                    _field_0,
81166                    visitor,
81167                    &mut *__ast_path,
81168                );
81169            }
81170            Expr::Assign { 0: _field_0 } => {
81171                let mut __ast_path =
81172                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Assign));
81173                <AssignExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81174                    _field_0,
81175                    visitor,
81176                    &mut *__ast_path,
81177                );
81178            }
81179            Expr::Member { 0: _field_0 } => {
81180                let mut __ast_path =
81181                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Member));
81182                <MemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81183                    _field_0,
81184                    visitor,
81185                    &mut *__ast_path,
81186                );
81187            }
81188            Expr::SuperProp { 0: _field_0 } => {
81189                let mut __ast_path =
81190                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::SuperProp));
81191                <SuperPropExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81192                    _field_0,
81193                    visitor,
81194                    &mut *__ast_path,
81195                );
81196            }
81197            Expr::Cond { 0: _field_0 } => {
81198                let mut __ast_path =
81199                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Cond));
81200                <CondExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81201                    _field_0,
81202                    visitor,
81203                    &mut *__ast_path,
81204                );
81205            }
81206            Expr::Call { 0: _field_0 } => {
81207                let mut __ast_path =
81208                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Call));
81209                <CallExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81210                    _field_0,
81211                    visitor,
81212                    &mut *__ast_path,
81213                );
81214            }
81215            Expr::New { 0: _field_0 } => {
81216                let mut __ast_path =
81217                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::New));
81218                <NewExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81219                    _field_0,
81220                    visitor,
81221                    &mut *__ast_path,
81222                );
81223            }
81224            Expr::Seq { 0: _field_0 } => {
81225                let mut __ast_path =
81226                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Seq));
81227                <SeqExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81228                    _field_0,
81229                    visitor,
81230                    &mut *__ast_path,
81231                );
81232            }
81233            Expr::Ident { 0: _field_0 } => {
81234                let mut __ast_path =
81235                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Ident));
81236                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81237                    _field_0,
81238                    visitor,
81239                    &mut *__ast_path,
81240                );
81241            }
81242            Expr::Lit { 0: _field_0 } => {
81243                let mut __ast_path =
81244                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Lit));
81245                <Lit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81246                    _field_0,
81247                    visitor,
81248                    &mut *__ast_path,
81249                );
81250            }
81251            Expr::Tpl { 0: _field_0 } => {
81252                let mut __ast_path =
81253                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Tpl));
81254                <Tpl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81255                    _field_0,
81256                    visitor,
81257                    &mut *__ast_path,
81258                );
81259            }
81260            Expr::TaggedTpl { 0: _field_0 } => {
81261                let mut __ast_path =
81262                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TaggedTpl));
81263                <TaggedTpl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81264                    _field_0,
81265                    visitor,
81266                    &mut *__ast_path,
81267                );
81268            }
81269            Expr::Arrow { 0: _field_0 } => {
81270                let mut __ast_path =
81271                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Arrow));
81272                <ArrowExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81273                    _field_0,
81274                    visitor,
81275                    &mut *__ast_path,
81276                );
81277            }
81278            Expr::Class { 0: _field_0 } => {
81279                let mut __ast_path =
81280                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Class));
81281                <ClassExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81282                    _field_0,
81283                    visitor,
81284                    &mut *__ast_path,
81285                );
81286            }
81287            Expr::Yield { 0: _field_0 } => {
81288                let mut __ast_path =
81289                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Yield));
81290                <YieldExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81291                    _field_0,
81292                    visitor,
81293                    &mut *__ast_path,
81294                );
81295            }
81296            Expr::MetaProp { 0: _field_0 } => {
81297                let mut __ast_path =
81298                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::MetaProp));
81299                <MetaPropExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81300                    _field_0,
81301                    visitor,
81302                    &mut *__ast_path,
81303                );
81304            }
81305            Expr::Await { 0: _field_0 } => {
81306                let mut __ast_path =
81307                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Await));
81308                <AwaitExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81309                    _field_0,
81310                    visitor,
81311                    &mut *__ast_path,
81312                );
81313            }
81314            Expr::Paren { 0: _field_0 } => {
81315                let mut __ast_path =
81316                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Paren));
81317                <ParenExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81318                    _field_0,
81319                    visitor,
81320                    &mut *__ast_path,
81321                );
81322            }
81323            Expr::JSXMember { 0: _field_0 } => {
81324                let mut __ast_path =
81325                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxmember));
81326                <JSXMemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81327                    _field_0,
81328                    visitor,
81329                    &mut *__ast_path,
81330                );
81331            }
81332            Expr::JSXNamespacedName { 0: _field_0 } => {
81333                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81334                    self::fields::ExprField::JsxnamespacedName,
81335                ));
81336                <JSXNamespacedName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81337                    _field_0,
81338                    visitor,
81339                    &mut *__ast_path,
81340                );
81341            }
81342            Expr::JSXEmpty { 0: _field_0 } => {
81343                let mut __ast_path =
81344                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxempty));
81345                <JSXEmptyExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81346                    _field_0,
81347                    visitor,
81348                    &mut *__ast_path,
81349                );
81350            }
81351            Expr::JSXElement { 0: _field_0 } => {
81352                let mut __ast_path =
81353                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxelement));
81354                <Box<JSXElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81355                    _field_0,
81356                    visitor,
81357                    &mut *__ast_path,
81358                );
81359            }
81360            Expr::JSXFragment { 0: _field_0 } => {
81361                let mut __ast_path = __ast_path
81362                    .with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxfragment));
81363                <JSXFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81364                    _field_0,
81365                    visitor,
81366                    &mut *__ast_path,
81367                );
81368            }
81369            Expr::TsTypeAssertion { 0: _field_0 } => {
81370                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81371                    self::fields::ExprField::TsTypeAssertion,
81372                ));
81373                <TsTypeAssertion as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81374                    _field_0,
81375                    visitor,
81376                    &mut *__ast_path,
81377                );
81378            }
81379            Expr::TsConstAssertion { 0: _field_0 } => {
81380                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81381                    self::fields::ExprField::TsConstAssertion,
81382                ));
81383                <TsConstAssertion as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81384                    _field_0,
81385                    visitor,
81386                    &mut *__ast_path,
81387                );
81388            }
81389            Expr::TsNonNull { 0: _field_0 } => {
81390                let mut __ast_path =
81391                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsNonNull));
81392                <TsNonNullExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81393                    _field_0,
81394                    visitor,
81395                    &mut *__ast_path,
81396                );
81397            }
81398            Expr::TsAs { 0: _field_0 } => {
81399                let mut __ast_path =
81400                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsAs));
81401                <TsAsExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81402                    _field_0,
81403                    visitor,
81404                    &mut *__ast_path,
81405                );
81406            }
81407            Expr::TsInstantiation { 0: _field_0 } => {
81408                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
81409                    self::fields::ExprField::TsInstantiation,
81410                ));
81411                <TsInstantiation as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81412                    _field_0,
81413                    visitor,
81414                    &mut *__ast_path,
81415                );
81416            }
81417            Expr::TsSatisfies { 0: _field_0 } => {
81418                let mut __ast_path = __ast_path
81419                    .with_guard(AstParentKind::Expr(self::fields::ExprField::TsSatisfies));
81420                <TsSatisfiesExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81421                    _field_0,
81422                    visitor,
81423                    &mut *__ast_path,
81424                );
81425            }
81426            Expr::PrivateName { 0: _field_0 } => {
81427                let mut __ast_path = __ast_path
81428                    .with_guard(AstParentKind::Expr(self::fields::ExprField::PrivateName));
81429                <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81430                    _field_0,
81431                    visitor,
81432                    &mut *__ast_path,
81433                );
81434            }
81435            Expr::OptChain { 0: _field_0 } => {
81436                let mut __ast_path =
81437                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::OptChain));
81438                <OptChainExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81439                    _field_0,
81440                    visitor,
81441                    &mut *__ast_path,
81442                );
81443            }
81444            Expr::Invalid { 0: _field_0 } => {
81445                let mut __ast_path =
81446                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Invalid));
81447                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81448                    _field_0,
81449                    visitor,
81450                    &mut *__ast_path,
81451                );
81452            }
81453        }
81454    }
81455}
81456#[cfg(any(docsrs, feature = "path"))]
81457#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81458impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExprOrSpread {
81459    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr_or_spread`] with `self`."]
81460    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81461        <V as VisitMutAstPath>::visit_mut_expr_or_spread(visitor, self, __ast_path)
81462    }
81463
81464    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81465        match self {
81466            ExprOrSpread { spread, expr } => {
81467                {
81468                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
81469                        self::fields::ExprOrSpreadField::Spread,
81470                    ));
81471                    <Option<swc_common::Span> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81472                        spread,
81473                        visitor,
81474                        &mut *__ast_path,
81475                    )
81476                };
81477                {
81478                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
81479                        self::fields::ExprOrSpreadField::Expr,
81480                    ));
81481                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81482                        expr,
81483                        visitor,
81484                        &mut *__ast_path,
81485                    )
81486                };
81487            }
81488        }
81489    }
81490}
81491#[cfg(any(docsrs, feature = "path"))]
81492#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81493impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ExprStmt {
81494    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr_stmt`] with `self`."]
81495    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81496        <V as VisitMutAstPath>::visit_mut_expr_stmt(visitor, self, __ast_path)
81497    }
81498
81499    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81500        match self {
81501            ExprStmt { span, expr } => {
81502                {
81503                    let mut __ast_path = __ast_path
81504                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Span));
81505                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81506                        span,
81507                        visitor,
81508                        &mut *__ast_path,
81509                    )
81510                };
81511                {
81512                    let mut __ast_path = __ast_path
81513                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Expr));
81514                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81515                        expr,
81516                        visitor,
81517                        &mut *__ast_path,
81518                    )
81519                };
81520            }
81521        }
81522    }
81523}
81524#[cfg(any(docsrs, feature = "path"))]
81525#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81526impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for FnDecl {
81527    #[doc = "Calls [VisitMutAstPath`::visit_mut_fn_decl`] with `self`."]
81528    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81529        <V as VisitMutAstPath>::visit_mut_fn_decl(visitor, self, __ast_path)
81530    }
81531
81532    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81533        match self {
81534            FnDecl {
81535                ident,
81536                declare,
81537                function,
81538            } => {
81539                {
81540                    let mut __ast_path = __ast_path
81541                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Ident));
81542                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81543                        ident,
81544                        visitor,
81545                        &mut *__ast_path,
81546                    )
81547                };
81548                {
81549                    let mut __ast_path = __ast_path
81550                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Function));
81551                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81552                        function,
81553                        visitor,
81554                        &mut *__ast_path,
81555                    )
81556                };
81557            }
81558        }
81559    }
81560}
81561#[cfg(any(docsrs, feature = "path"))]
81562#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81563impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for FnExpr {
81564    #[doc = "Calls [VisitMutAstPath`::visit_mut_fn_expr`] with `self`."]
81565    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81566        <V as VisitMutAstPath>::visit_mut_fn_expr(visitor, self, __ast_path)
81567    }
81568
81569    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81570        match self {
81571            FnExpr { ident, function } => {
81572                {
81573                    let mut __ast_path = __ast_path
81574                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Ident));
81575                    <Option<Ident> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81576                        ident,
81577                        visitor,
81578                        &mut *__ast_path,
81579                    )
81580                };
81581                {
81582                    let mut __ast_path = __ast_path
81583                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Function));
81584                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81585                        function,
81586                        visitor,
81587                        &mut *__ast_path,
81588                    )
81589                };
81590            }
81591        }
81592    }
81593}
81594#[cfg(any(docsrs, feature = "path"))]
81595#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81596impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForHead {
81597    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_head`] with `self`."]
81598    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81599        <V as VisitMutAstPath>::visit_mut_for_head(visitor, self, __ast_path)
81600    }
81601
81602    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81603        match self {
81604            ForHead::VarDecl { 0: _field_0 } => {
81605                let mut __ast_path = __ast_path
81606                    .with_guard(AstParentKind::ForHead(self::fields::ForHeadField::VarDecl));
81607                <Box<VarDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81608                    _field_0,
81609                    visitor,
81610                    &mut *__ast_path,
81611                );
81612            }
81613            ForHead::UsingDecl { 0: _field_0 } => {
81614                let mut __ast_path = __ast_path.with_guard(AstParentKind::ForHead(
81615                    self::fields::ForHeadField::UsingDecl,
81616                ));
81617                <Box<UsingDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81618                    _field_0,
81619                    visitor,
81620                    &mut *__ast_path,
81621                );
81622            }
81623            ForHead::Pat { 0: _field_0 } => {
81624                let mut __ast_path =
81625                    __ast_path.with_guard(AstParentKind::ForHead(self::fields::ForHeadField::Pat));
81626                <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81627                    _field_0,
81628                    visitor,
81629                    &mut *__ast_path,
81630                );
81631            }
81632        }
81633    }
81634}
81635#[cfg(any(docsrs, feature = "path"))]
81636#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81637impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForInStmt {
81638    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_in_stmt`] with `self`."]
81639    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81640        <V as VisitMutAstPath>::visit_mut_for_in_stmt(visitor, self, __ast_path)
81641    }
81642
81643    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81644        match self {
81645            ForInStmt {
81646                span,
81647                left,
81648                right,
81649                body,
81650            } => {
81651                {
81652                    let mut __ast_path = __ast_path
81653                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Span));
81654                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81655                        span,
81656                        visitor,
81657                        &mut *__ast_path,
81658                    )
81659                };
81660                {
81661                    let mut __ast_path = __ast_path
81662                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Left));
81663                    <ForHead as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81664                        left,
81665                        visitor,
81666                        &mut *__ast_path,
81667                    )
81668                };
81669                {
81670                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForInStmt(
81671                        self::fields::ForInStmtField::Right,
81672                    ));
81673                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81674                        right,
81675                        visitor,
81676                        &mut *__ast_path,
81677                    )
81678                };
81679                {
81680                    let mut __ast_path = __ast_path
81681                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Body));
81682                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81683                        body,
81684                        visitor,
81685                        &mut *__ast_path,
81686                    )
81687                };
81688            }
81689        }
81690    }
81691}
81692#[cfg(any(docsrs, feature = "path"))]
81693#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81694impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForOfStmt {
81695    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_of_stmt`] with `self`."]
81696    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81697        <V as VisitMutAstPath>::visit_mut_for_of_stmt(visitor, self, __ast_path)
81698    }
81699
81700    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81701        match self {
81702            ForOfStmt {
81703                span,
81704                is_await,
81705                left,
81706                right,
81707                body,
81708            } => {
81709                {
81710                    let mut __ast_path = __ast_path
81711                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Span));
81712                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81713                        span,
81714                        visitor,
81715                        &mut *__ast_path,
81716                    )
81717                };
81718                {
81719                    let mut __ast_path = __ast_path
81720                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Left));
81721                    <ForHead as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81722                        left,
81723                        visitor,
81724                        &mut *__ast_path,
81725                    )
81726                };
81727                {
81728                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForOfStmt(
81729                        self::fields::ForOfStmtField::Right,
81730                    ));
81731                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81732                        right,
81733                        visitor,
81734                        &mut *__ast_path,
81735                    )
81736                };
81737                {
81738                    let mut __ast_path = __ast_path
81739                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Body));
81740                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81741                        body,
81742                        visitor,
81743                        &mut *__ast_path,
81744                    )
81745                };
81746            }
81747        }
81748    }
81749}
81750#[cfg(any(docsrs, feature = "path"))]
81751#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81752impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ForStmt {
81753    #[doc = "Calls [VisitMutAstPath`::visit_mut_for_stmt`] with `self`."]
81754    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81755        <V as VisitMutAstPath>::visit_mut_for_stmt(visitor, self, __ast_path)
81756    }
81757
81758    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81759        match self {
81760            ForStmt {
81761                span,
81762                init,
81763                test,
81764                update,
81765                body,
81766            } => {
81767                {
81768                    let mut __ast_path = __ast_path
81769                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Span));
81770                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81771                        span,
81772                        visitor,
81773                        &mut *__ast_path,
81774                    )
81775                };
81776                {
81777                    let mut __ast_path = __ast_path
81778                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Init));
81779                    <Option<VarDeclOrExpr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81780                        init,
81781                        visitor,
81782                        &mut *__ast_path,
81783                    )
81784                };
81785                {
81786                    let mut __ast_path = __ast_path
81787                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Test));
81788                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81789                        test,
81790                        visitor,
81791                        &mut *__ast_path,
81792                    )
81793                };
81794                {
81795                    let mut __ast_path = __ast_path
81796                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Update));
81797                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81798                        update,
81799                        visitor,
81800                        &mut *__ast_path,
81801                    )
81802                };
81803                {
81804                    let mut __ast_path = __ast_path
81805                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Body));
81806                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81807                        body,
81808                        visitor,
81809                        &mut *__ast_path,
81810                    )
81811                };
81812            }
81813        }
81814    }
81815}
81816#[cfg(any(docsrs, feature = "path"))]
81817#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81818impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Function {
81819    #[doc = "Calls [VisitMutAstPath`::visit_mut_function`] with `self`."]
81820    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81821        <V as VisitMutAstPath>::visit_mut_function(visitor, self, __ast_path)
81822    }
81823
81824    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81825        match self {
81826            Function {
81827                params,
81828                decorators,
81829                span,
81830                ctxt,
81831                body,
81832                is_generator,
81833                is_async,
81834                type_params,
81835                return_type,
81836            } => {
81837                {
81838                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
81839                        self::fields::FunctionField::Params(usize::MAX),
81840                    ));
81841                    <Vec<Param> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81842                        params,
81843                        visitor,
81844                        &mut *__ast_path,
81845                    )
81846                };
81847                {
81848                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
81849                        self::fields::FunctionField::Decorators(usize::MAX),
81850                    ));
81851                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81852                        decorators,
81853                        visitor,
81854                        &mut *__ast_path,
81855                    )
81856                };
81857                {
81858                    let mut __ast_path = __ast_path
81859                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Span));
81860                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81861                        span,
81862                        visitor,
81863                        &mut *__ast_path,
81864                    )
81865                };
81866                {
81867                    let mut __ast_path = __ast_path
81868                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Ctxt));
81869                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81870                        ctxt,
81871                        visitor,
81872                        &mut *__ast_path,
81873                    )
81874                };
81875                {
81876                    let mut __ast_path = __ast_path
81877                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Body));
81878                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81879                        body,
81880                        visitor,
81881                        &mut *__ast_path,
81882                    )
81883                };
81884                {
81885                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
81886                        self::fields::FunctionField::TypeParams,
81887                    ));
81888                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
81889                };
81890                {
81891                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
81892                        self::fields::FunctionField::ReturnType,
81893                    ));
81894                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81895                        return_type,
81896                        visitor,
81897                        &mut *__ast_path,
81898                    )
81899                };
81900            }
81901        }
81902    }
81903}
81904#[cfg(any(docsrs, feature = "path"))]
81905#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81906impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for GetterProp {
81907    #[doc = "Calls [VisitMutAstPath`::visit_mut_getter_prop`] with `self`."]
81908    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81909        <V as VisitMutAstPath>::visit_mut_getter_prop(visitor, self, __ast_path)
81910    }
81911
81912    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81913        match self {
81914            GetterProp {
81915                span,
81916                key,
81917                type_ann,
81918                body,
81919            } => {
81920                {
81921                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
81922                        self::fields::GetterPropField::Span,
81923                    ));
81924                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81925                        span,
81926                        visitor,
81927                        &mut *__ast_path,
81928                    )
81929                };
81930                {
81931                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
81932                        self::fields::GetterPropField::Key,
81933                    ));
81934                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81935                        key,
81936                        visitor,
81937                        &mut *__ast_path,
81938                    )
81939                };
81940                {
81941                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
81942                        self::fields::GetterPropField::TypeAnn,
81943                    ));
81944                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81945                        type_ann,
81946                        visitor,
81947                        &mut *__ast_path,
81948                    )
81949                };
81950                {
81951                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
81952                        self::fields::GetterPropField::Body,
81953                    ));
81954                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81955                        body,
81956                        visitor,
81957                        &mut *__ast_path,
81958                    )
81959                };
81960            }
81961        }
81962    }
81963}
81964#[cfg(any(docsrs, feature = "path"))]
81965#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
81966impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Ident {
81967    #[doc = "Calls [VisitMutAstPath`::visit_mut_ident`] with `self`."]
81968    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81969        <V as VisitMutAstPath>::visit_mut_ident(visitor, self, __ast_path)
81970    }
81971
81972    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
81973        match self {
81974            Ident {
81975                span,
81976                ctxt,
81977                sym,
81978                optional,
81979            } => {
81980                {
81981                    let mut __ast_path =
81982                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Span));
81983                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81984                        span,
81985                        visitor,
81986                        &mut *__ast_path,
81987                    )
81988                };
81989                {
81990                    let mut __ast_path =
81991                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Ctxt));
81992                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
81993                        ctxt,
81994                        visitor,
81995                        &mut *__ast_path,
81996                    )
81997                };
81998                {
81999                    let mut __ast_path =
82000                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Sym));
82001                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82002                        sym,
82003                        visitor,
82004                        &mut *__ast_path,
82005                    )
82006                };
82007            }
82008        }
82009    }
82010}
82011#[cfg(any(docsrs, feature = "path"))]
82012#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82013impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for IdentName {
82014    #[doc = "Calls [VisitMutAstPath`::visit_mut_ident_name`] with `self`."]
82015    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82016        <V as VisitMutAstPath>::visit_mut_ident_name(visitor, self, __ast_path)
82017    }
82018
82019    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82020        match self {
82021            IdentName { span, sym } => {
82022                {
82023                    let mut __ast_path = __ast_path
82024                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Span));
82025                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82026                        span,
82027                        visitor,
82028                        &mut *__ast_path,
82029                    )
82030                };
82031                {
82032                    let mut __ast_path = __ast_path
82033                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Sym));
82034                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82035                        sym,
82036                        visitor,
82037                        &mut *__ast_path,
82038                    )
82039                };
82040            }
82041        }
82042    }
82043}
82044#[cfg(any(docsrs, feature = "path"))]
82045#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82046impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for IfStmt {
82047    #[doc = "Calls [VisitMutAstPath`::visit_mut_if_stmt`] with `self`."]
82048    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82049        <V as VisitMutAstPath>::visit_mut_if_stmt(visitor, self, __ast_path)
82050    }
82051
82052    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82053        match self {
82054            IfStmt {
82055                span,
82056                test,
82057                cons,
82058                alt,
82059            } => {
82060                {
82061                    let mut __ast_path = __ast_path
82062                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Span));
82063                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82064                        span,
82065                        visitor,
82066                        &mut *__ast_path,
82067                    )
82068                };
82069                {
82070                    let mut __ast_path = __ast_path
82071                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Test));
82072                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82073                        test,
82074                        visitor,
82075                        &mut *__ast_path,
82076                    )
82077                };
82078                {
82079                    let mut __ast_path = __ast_path
82080                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Cons));
82081                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82082                        cons,
82083                        visitor,
82084                        &mut *__ast_path,
82085                    )
82086                };
82087                {
82088                    let mut __ast_path = __ast_path
82089                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Alt));
82090                    <Option<Box<Stmt>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82091                        alt,
82092                        visitor,
82093                        &mut *__ast_path,
82094                    )
82095                };
82096            }
82097        }
82098    }
82099}
82100#[cfg(any(docsrs, feature = "path"))]
82101#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82102impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Import {
82103    #[doc = "Calls [VisitMutAstPath`::visit_mut_import`] with `self`."]
82104    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82105        <V as VisitMutAstPath>::visit_mut_import(visitor, self, __ast_path)
82106    }
82107
82108    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82109        match self {
82110            Import { span, phase } => {
82111                {
82112                    let mut __ast_path = __ast_path
82113                        .with_guard(AstParentKind::Import(self::fields::ImportField::Span));
82114                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82115                        span,
82116                        visitor,
82117                        &mut *__ast_path,
82118                    )
82119                };
82120                {
82121                    let mut __ast_path = __ast_path
82122                        .with_guard(AstParentKind::Import(self::fields::ImportField::Phase));
82123                    <ImportPhase as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82124                        phase,
82125                        visitor,
82126                        &mut *__ast_path,
82127                    )
82128                };
82129            }
82130        }
82131    }
82132}
82133#[cfg(any(docsrs, feature = "path"))]
82134#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82135impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportDecl {
82136    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_decl`] with `self`."]
82137    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82138        <V as VisitMutAstPath>::visit_mut_import_decl(visitor, self, __ast_path)
82139    }
82140
82141    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82142        match self {
82143            ImportDecl {
82144                span,
82145                specifiers,
82146                src,
82147                type_only,
82148                with,
82149                phase,
82150            } => {
82151                {
82152                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82153                        self::fields::ImportDeclField::Span,
82154                    ));
82155                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82156                        span,
82157                        visitor,
82158                        &mut *__ast_path,
82159                    )
82160                };
82161                {
82162                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82163                        self::fields::ImportDeclField::Specifiers(usize::MAX),
82164                    ));
82165                    <Vec<ImportSpecifier> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82166                        specifiers,
82167                        visitor,
82168                        &mut *__ast_path,
82169                    )
82170                };
82171                {
82172                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82173                        self::fields::ImportDeclField::Src,
82174                    ));
82175                    <Box<Str> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82176                        src,
82177                        visitor,
82178                        &mut *__ast_path,
82179                    )
82180                };
82181                {
82182                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82183                        self::fields::ImportDeclField::With,
82184                    ));
82185                    <Option<Box<ObjectLit>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82186                        with,
82187                        visitor,
82188                        &mut *__ast_path,
82189                    )
82190                };
82191                {
82192                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
82193                        self::fields::ImportDeclField::Phase,
82194                    ));
82195                    <ImportPhase as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82196                        phase,
82197                        visitor,
82198                        &mut *__ast_path,
82199                    )
82200                };
82201            }
82202        }
82203    }
82204}
82205#[cfg(any(docsrs, feature = "path"))]
82206#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82207impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportDefaultSpecifier {
82208    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_default_specifier`] with `self`."]
82209    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82210        <V as VisitMutAstPath>::visit_mut_import_default_specifier(visitor, self, __ast_path)
82211    }
82212
82213    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82214        match self {
82215            ImportDefaultSpecifier { span, local } => {
82216                {
82217                    let mut __ast_path =
82218                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
82219                            self::fields::ImportDefaultSpecifierField::Span,
82220                        ));
82221                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82222                        span,
82223                        visitor,
82224                        &mut *__ast_path,
82225                    )
82226                };
82227                {
82228                    let mut __ast_path =
82229                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
82230                            self::fields::ImportDefaultSpecifierField::Local,
82231                        ));
82232                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82233                        local,
82234                        visitor,
82235                        &mut *__ast_path,
82236                    )
82237                };
82238            }
82239        }
82240    }
82241}
82242#[cfg(any(docsrs, feature = "path"))]
82243#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82244impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportNamedSpecifier {
82245    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_named_specifier`] with `self`."]
82246    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82247        <V as VisitMutAstPath>::visit_mut_import_named_specifier(visitor, self, __ast_path)
82248    }
82249
82250    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82251        match self {
82252            ImportNamedSpecifier {
82253                span,
82254                local,
82255                imported,
82256                is_type_only,
82257            } => {
82258                {
82259                    let mut __ast_path =
82260                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
82261                            self::fields::ImportNamedSpecifierField::Span,
82262                        ));
82263                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82264                        span,
82265                        visitor,
82266                        &mut *__ast_path,
82267                    )
82268                };
82269                {
82270                    let mut __ast_path =
82271                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
82272                            self::fields::ImportNamedSpecifierField::Local,
82273                        ));
82274                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82275                        local,
82276                        visitor,
82277                        &mut *__ast_path,
82278                    )
82279                };
82280                {
82281                    let mut __ast_path =
82282                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
82283                            self::fields::ImportNamedSpecifierField::Imported,
82284                        ));
82285                    <Option<ModuleExportName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82286                        imported,
82287                        visitor,
82288                        &mut *__ast_path,
82289                    )
82290                };
82291            }
82292        }
82293    }
82294}
82295#[cfg(any(docsrs, feature = "path"))]
82296#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82297impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportPhase {
82298    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_phase`] with `self`."]
82299    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82300        <V as VisitMutAstPath>::visit_mut_import_phase(visitor, self, __ast_path)
82301    }
82302
82303    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82304        match self {
82305            ImportPhase::Evaluation => {}
82306            ImportPhase::Source => {}
82307            ImportPhase::Defer => {}
82308        }
82309    }
82310}
82311#[cfg(any(docsrs, feature = "path"))]
82312#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82313impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportSpecifier {
82314    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_specifier`] with `self`."]
82315    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82316        <V as VisitMutAstPath>::visit_mut_import_specifier(visitor, self, __ast_path)
82317    }
82318
82319    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82320        match self {
82321            ImportSpecifier::Named { 0: _field_0 } => {
82322                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
82323                    self::fields::ImportSpecifierField::Named,
82324                ));
82325                <ImportNamedSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82326                    _field_0,
82327                    visitor,
82328                    &mut *__ast_path,
82329                );
82330            }
82331            ImportSpecifier::Default { 0: _field_0 } => {
82332                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
82333                    self::fields::ImportSpecifierField::Default,
82334                ));
82335                <ImportDefaultSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82336                    _field_0,
82337                    visitor,
82338                    &mut *__ast_path,
82339                );
82340            }
82341            ImportSpecifier::Namespace { 0: _field_0 } => {
82342                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
82343                    self::fields::ImportSpecifierField::Namespace,
82344                ));
82345                <ImportStarAsSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82346                    _field_0,
82347                    visitor,
82348                    &mut *__ast_path,
82349                );
82350            }
82351        }
82352    }
82353}
82354#[cfg(any(docsrs, feature = "path"))]
82355#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82356impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportStarAsSpecifier {
82357    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_star_as_specifier`] with `self`."]
82358    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82359        <V as VisitMutAstPath>::visit_mut_import_star_as_specifier(visitor, self, __ast_path)
82360    }
82361
82362    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82363        match self {
82364            ImportStarAsSpecifier { span, local } => {
82365                {
82366                    let mut __ast_path =
82367                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
82368                            self::fields::ImportStarAsSpecifierField::Span,
82369                        ));
82370                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82371                        span,
82372                        visitor,
82373                        &mut *__ast_path,
82374                    )
82375                };
82376                {
82377                    let mut __ast_path =
82378                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
82379                            self::fields::ImportStarAsSpecifierField::Local,
82380                        ));
82381                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82382                        local,
82383                        visitor,
82384                        &mut *__ast_path,
82385                    )
82386                };
82387            }
82388        }
82389    }
82390}
82391#[cfg(any(docsrs, feature = "path"))]
82392#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82393impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportWith {
82394    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_with`] with `self`."]
82395    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82396        <V as VisitMutAstPath>::visit_mut_import_with(visitor, self, __ast_path)
82397    }
82398
82399    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82400        match self {
82401            ImportWith { span, values } => {
82402                {
82403                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
82404                        self::fields::ImportWithField::Span,
82405                    ));
82406                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82407                        span,
82408                        visitor,
82409                        &mut *__ast_path,
82410                    )
82411                };
82412                {
82413                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
82414                        self::fields::ImportWithField::Values(usize::MAX),
82415                    ));
82416                    <Vec<ImportWithItem> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82417                        values,
82418                        visitor,
82419                        &mut *__ast_path,
82420                    )
82421                };
82422            }
82423        }
82424    }
82425}
82426#[cfg(any(docsrs, feature = "path"))]
82427#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82428impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ImportWithItem {
82429    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_with_item`] with `self`."]
82430    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82431        <V as VisitMutAstPath>::visit_mut_import_with_item(visitor, self, __ast_path)
82432    }
82433
82434    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82435        match self {
82436            ImportWithItem { key, value } => {
82437                {
82438                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
82439                        self::fields::ImportWithItemField::Key,
82440                    ));
82441                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82442                        key,
82443                        visitor,
82444                        &mut *__ast_path,
82445                    )
82446                };
82447                {
82448                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
82449                        self::fields::ImportWithItemField::Value,
82450                    ));
82451                    <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82452                        value,
82453                        visitor,
82454                        &mut *__ast_path,
82455                    )
82456                };
82457            }
82458        }
82459    }
82460}
82461#[cfg(any(docsrs, feature = "path"))]
82462#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82463impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Invalid {
82464    #[doc = "Calls [VisitMutAstPath`::visit_mut_invalid`] with `self`."]
82465    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82466        <V as VisitMutAstPath>::visit_mut_invalid(visitor, self, __ast_path)
82467    }
82468
82469    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82470        match self {
82471            Invalid { span } => {
82472                {
82473                    let mut __ast_path = __ast_path
82474                        .with_guard(AstParentKind::Invalid(self::fields::InvalidField::Span));
82475                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82476                        span,
82477                        visitor,
82478                        &mut *__ast_path,
82479                    )
82480                };
82481            }
82482        }
82483    }
82484}
82485#[cfg(any(docsrs, feature = "path"))]
82486#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82487impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttr {
82488    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr`] with `self`."]
82489    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82490        <V as VisitMutAstPath>::visit_mut_jsx_attr(visitor, self, __ast_path)
82491    }
82492
82493    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82494        match self {
82495            JSXAttr { span, name, value } => {
82496                {
82497                    let mut __ast_path = __ast_path
82498                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Span));
82499                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82500                        span,
82501                        visitor,
82502                        &mut *__ast_path,
82503                    )
82504                };
82505                {
82506                    let mut __ast_path = __ast_path
82507                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Name));
82508                    <JSXAttrName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82509                        name,
82510                        visitor,
82511                        &mut *__ast_path,
82512                    )
82513                };
82514                {
82515                    let mut __ast_path = __ast_path
82516                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Value));
82517                    <Option<JSXAttrValue> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82518                        value,
82519                        visitor,
82520                        &mut *__ast_path,
82521                    )
82522                };
82523            }
82524        }
82525    }
82526}
82527#[cfg(any(docsrs, feature = "path"))]
82528#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82529impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttrName {
82530    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_name`] with `self`."]
82531    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82532        <V as VisitMutAstPath>::visit_mut_jsx_attr_name(visitor, self, __ast_path)
82533    }
82534
82535    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82536        match self {
82537            JSXAttrName::Ident { 0: _field_0 } => {
82538                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
82539                    self::fields::JSXAttrNameField::Ident,
82540                ));
82541                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82542                    _field_0,
82543                    visitor,
82544                    &mut *__ast_path,
82545                );
82546            }
82547            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
82548                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
82549                    self::fields::JSXAttrNameField::JsxnamespacedName,
82550                ));
82551                <JSXNamespacedName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82552                    _field_0,
82553                    visitor,
82554                    &mut *__ast_path,
82555                );
82556            }
82557        }
82558    }
82559}
82560#[cfg(any(docsrs, feature = "path"))]
82561#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82562impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttrOrSpread {
82563    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_or_spread`] with `self`."]
82564    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82565        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spread(visitor, self, __ast_path)
82566    }
82567
82568    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82569        match self {
82570            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
82571                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
82572                    self::fields::JSXAttrOrSpreadField::Jsxattr,
82573                ));
82574                <JSXAttr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82575                    _field_0,
82576                    visitor,
82577                    &mut *__ast_path,
82578                );
82579            }
82580            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
82581                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
82582                    self::fields::JSXAttrOrSpreadField::SpreadElement,
82583                ));
82584                <SpreadElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82585                    _field_0,
82586                    visitor,
82587                    &mut *__ast_path,
82588                );
82589            }
82590        }
82591    }
82592}
82593#[cfg(any(docsrs, feature = "path"))]
82594#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82595impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXAttrValue {
82596    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_value`] with `self`."]
82597    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82598        <V as VisitMutAstPath>::visit_mut_jsx_attr_value(visitor, self, __ast_path)
82599    }
82600
82601    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82602        match self {
82603            JSXAttrValue::Lit { 0: _field_0 } => {
82604                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
82605                    self::fields::JSXAttrValueField::Lit,
82606                ));
82607                <Lit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82608                    _field_0,
82609                    visitor,
82610                    &mut *__ast_path,
82611                );
82612            }
82613            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
82614                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
82615                    self::fields::JSXAttrValueField::JsxexprContainer,
82616                ));
82617                <JSXExprContainer as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82618                    _field_0,
82619                    visitor,
82620                    &mut *__ast_path,
82621                );
82622            }
82623            JSXAttrValue::JSXElement { 0: _field_0 } => {
82624                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
82625                    self::fields::JSXAttrValueField::Jsxelement,
82626                ));
82627                <Box<JSXElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82628                    _field_0,
82629                    visitor,
82630                    &mut *__ast_path,
82631                );
82632            }
82633            JSXAttrValue::JSXFragment { 0: _field_0 } => {
82634                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
82635                    self::fields::JSXAttrValueField::Jsxfragment,
82636                ));
82637                <JSXFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82638                    _field_0,
82639                    visitor,
82640                    &mut *__ast_path,
82641                );
82642            }
82643        }
82644    }
82645}
82646#[cfg(any(docsrs, feature = "path"))]
82647#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82648impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXClosingElement {
82649    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_closing_element`] with `self`."]
82650    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82651        <V as VisitMutAstPath>::visit_mut_jsx_closing_element(visitor, self, __ast_path)
82652    }
82653
82654    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82655        match self {
82656            JSXClosingElement { span, name } => {
82657                {
82658                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
82659                        self::fields::JSXClosingElementField::Span,
82660                    ));
82661                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82662                        span,
82663                        visitor,
82664                        &mut *__ast_path,
82665                    )
82666                };
82667                {
82668                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
82669                        self::fields::JSXClosingElementField::Name,
82670                    ));
82671                    <JSXElementName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82672                        name,
82673                        visitor,
82674                        &mut *__ast_path,
82675                    )
82676                };
82677            }
82678        }
82679    }
82680}
82681#[cfg(any(docsrs, feature = "path"))]
82682#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82683impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXClosingFragment {
82684    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_closing_fragment`] with `self`."]
82685    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82686        <V as VisitMutAstPath>::visit_mut_jsx_closing_fragment(visitor, self, __ast_path)
82687    }
82688
82689    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82690        match self {
82691            JSXClosingFragment { span } => {
82692                {
82693                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingFragment(
82694                        self::fields::JSXClosingFragmentField::Span,
82695                    ));
82696                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82697                        span,
82698                        visitor,
82699                        &mut *__ast_path,
82700                    )
82701                };
82702            }
82703        }
82704    }
82705}
82706#[cfg(any(docsrs, feature = "path"))]
82707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82708impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXElement {
82709    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element`] with `self`."]
82710    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82711        <V as VisitMutAstPath>::visit_mut_jsx_element(visitor, self, __ast_path)
82712    }
82713
82714    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82715        match self {
82716            JSXElement {
82717                span,
82718                opening,
82719                children,
82720                closing,
82721            } => {
82722                {
82723                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
82724                        self::fields::JSXElementField::Span,
82725                    ));
82726                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82727                        span,
82728                        visitor,
82729                        &mut *__ast_path,
82730                    )
82731                };
82732                {
82733                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
82734                        self::fields::JSXElementField::Opening,
82735                    ));
82736                    <JSXOpeningElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82737                        opening,
82738                        visitor,
82739                        &mut *__ast_path,
82740                    )
82741                };
82742                {
82743                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
82744                        self::fields::JSXElementField::Children(usize::MAX),
82745                    ));
82746                    <Vec<JSXElementChild> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82747                        children,
82748                        visitor,
82749                        &mut *__ast_path,
82750                    )
82751                };
82752                {
82753                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
82754                        self::fields::JSXElementField::Closing,
82755                    ));
82756                    <Option<JSXClosingElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82757                        closing,
82758                        visitor,
82759                        &mut *__ast_path,
82760                    )
82761                };
82762            }
82763        }
82764    }
82765}
82766#[cfg(any(docsrs, feature = "path"))]
82767#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82768impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXElementChild {
82769    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element_child`] with `self`."]
82770    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82771        <V as VisitMutAstPath>::visit_mut_jsx_element_child(visitor, self, __ast_path)
82772    }
82773
82774    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82775        match self {
82776            JSXElementChild::JSXText { 0: _field_0 } => {
82777                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
82778                    self::fields::JSXElementChildField::Jsxtext,
82779                ));
82780                <JSXText as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82781                    _field_0,
82782                    visitor,
82783                    &mut *__ast_path,
82784                );
82785            }
82786            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
82787                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
82788                    self::fields::JSXElementChildField::JsxexprContainer,
82789                ));
82790                <JSXExprContainer as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82791                    _field_0,
82792                    visitor,
82793                    &mut *__ast_path,
82794                );
82795            }
82796            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
82797                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
82798                    self::fields::JSXElementChildField::JsxspreadChild,
82799                ));
82800                <JSXSpreadChild as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82801                    _field_0,
82802                    visitor,
82803                    &mut *__ast_path,
82804                );
82805            }
82806            JSXElementChild::JSXElement { 0: _field_0 } => {
82807                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
82808                    self::fields::JSXElementChildField::Jsxelement,
82809                ));
82810                <Box<JSXElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82811                    _field_0,
82812                    visitor,
82813                    &mut *__ast_path,
82814                );
82815            }
82816            JSXElementChild::JSXFragment { 0: _field_0 } => {
82817                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
82818                    self::fields::JSXElementChildField::Jsxfragment,
82819                ));
82820                <JSXFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82821                    _field_0,
82822                    visitor,
82823                    &mut *__ast_path,
82824                );
82825            }
82826        }
82827    }
82828}
82829#[cfg(any(docsrs, feature = "path"))]
82830#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82831impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXElementName {
82832    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element_name`] with `self`."]
82833    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82834        <V as VisitMutAstPath>::visit_mut_jsx_element_name(visitor, self, __ast_path)
82835    }
82836
82837    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82838        match self {
82839            JSXElementName::Ident { 0: _field_0 } => {
82840                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
82841                    self::fields::JSXElementNameField::Ident,
82842                ));
82843                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82844                    _field_0,
82845                    visitor,
82846                    &mut *__ast_path,
82847                );
82848            }
82849            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
82850                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
82851                    self::fields::JSXElementNameField::JsxmemberExpr,
82852                ));
82853                <JSXMemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82854                    _field_0,
82855                    visitor,
82856                    &mut *__ast_path,
82857                );
82858            }
82859            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
82860                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
82861                    self::fields::JSXElementNameField::JsxnamespacedName,
82862                ));
82863                <JSXNamespacedName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82864                    _field_0,
82865                    visitor,
82866                    &mut *__ast_path,
82867                );
82868            }
82869        }
82870    }
82871}
82872#[cfg(any(docsrs, feature = "path"))]
82873#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82874impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXEmptyExpr {
82875    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_empty_expr`] with `self`."]
82876    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82877        <V as VisitMutAstPath>::visit_mut_jsx_empty_expr(visitor, self, __ast_path)
82878    }
82879
82880    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82881        match self {
82882            JSXEmptyExpr { span } => {
82883                {
82884                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXEmptyExpr(
82885                        self::fields::JSXEmptyExprField::Span,
82886                    ));
82887                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82888                        span,
82889                        visitor,
82890                        &mut *__ast_path,
82891                    )
82892                };
82893            }
82894        }
82895    }
82896}
82897#[cfg(any(docsrs, feature = "path"))]
82898#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82899impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXExpr {
82900    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_expr`] with `self`."]
82901    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82902        <V as VisitMutAstPath>::visit_mut_jsx_expr(visitor, self, __ast_path)
82903    }
82904
82905    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82906        match self {
82907            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
82908                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExpr(
82909                    self::fields::JSXExprField::JsxemptyExpr,
82910                ));
82911                <JSXEmptyExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82912                    _field_0,
82913                    visitor,
82914                    &mut *__ast_path,
82915                );
82916            }
82917            JSXExpr::Expr { 0: _field_0 } => {
82918                let mut __ast_path =
82919                    __ast_path.with_guard(AstParentKind::JSXExpr(self::fields::JSXExprField::Expr));
82920                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82921                    _field_0,
82922                    visitor,
82923                    &mut *__ast_path,
82924                );
82925            }
82926        }
82927    }
82928}
82929#[cfg(any(docsrs, feature = "path"))]
82930#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82931impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXExprContainer {
82932    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_expr_container`] with `self`."]
82933    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82934        <V as VisitMutAstPath>::visit_mut_jsx_expr_container(visitor, self, __ast_path)
82935    }
82936
82937    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82938        match self {
82939            JSXExprContainer { span, expr } => {
82940                {
82941                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
82942                        self::fields::JSXExprContainerField::Span,
82943                    ));
82944                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82945                        span,
82946                        visitor,
82947                        &mut *__ast_path,
82948                    )
82949                };
82950                {
82951                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
82952                        self::fields::JSXExprContainerField::Expr,
82953                    ));
82954                    <JSXExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82955                        expr,
82956                        visitor,
82957                        &mut *__ast_path,
82958                    )
82959                };
82960            }
82961        }
82962    }
82963}
82964#[cfg(any(docsrs, feature = "path"))]
82965#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
82966impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXFragment {
82967    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_fragment`] with `self`."]
82968    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82969        <V as VisitMutAstPath>::visit_mut_jsx_fragment(visitor, self, __ast_path)
82970    }
82971
82972    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
82973        match self {
82974            JSXFragment {
82975                span,
82976                opening,
82977                children,
82978                closing,
82979            } => {
82980                {
82981                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
82982                        self::fields::JSXFragmentField::Span,
82983                    ));
82984                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82985                        span,
82986                        visitor,
82987                        &mut *__ast_path,
82988                    )
82989                };
82990                {
82991                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
82992                        self::fields::JSXFragmentField::Opening,
82993                    ));
82994                    <JSXOpeningFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
82995                        opening,
82996                        visitor,
82997                        &mut *__ast_path,
82998                    )
82999                };
83000                {
83001                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
83002                        self::fields::JSXFragmentField::Children(usize::MAX),
83003                    ));
83004                    <Vec<JSXElementChild> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83005                        children,
83006                        visitor,
83007                        &mut *__ast_path,
83008                    )
83009                };
83010                {
83011                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
83012                        self::fields::JSXFragmentField::Closing,
83013                    ));
83014                    <JSXClosingFragment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83015                        closing,
83016                        visitor,
83017                        &mut *__ast_path,
83018                    )
83019                };
83020            }
83021        }
83022    }
83023}
83024#[cfg(any(docsrs, feature = "path"))]
83025#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83026impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXMemberExpr {
83027    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_member_expr`] with `self`."]
83028    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83029        <V as VisitMutAstPath>::visit_mut_jsx_member_expr(visitor, self, __ast_path)
83030    }
83031
83032    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83033        match self {
83034            JSXMemberExpr { span, obj, prop } => {
83035                {
83036                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
83037                        self::fields::JSXMemberExprField::Span,
83038                    ));
83039                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83040                        span,
83041                        visitor,
83042                        &mut *__ast_path,
83043                    )
83044                };
83045                {
83046                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
83047                        self::fields::JSXMemberExprField::Obj,
83048                    ));
83049                    <JSXObject as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83050                        obj,
83051                        visitor,
83052                        &mut *__ast_path,
83053                    )
83054                };
83055                {
83056                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
83057                        self::fields::JSXMemberExprField::Prop,
83058                    ));
83059                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83060                        prop,
83061                        visitor,
83062                        &mut *__ast_path,
83063                    )
83064                };
83065            }
83066        }
83067    }
83068}
83069#[cfg(any(docsrs, feature = "path"))]
83070#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83071impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXNamespacedName {
83072    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_namespaced_name`] with `self`."]
83073    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83074        <V as VisitMutAstPath>::visit_mut_jsx_namespaced_name(visitor, self, __ast_path)
83075    }
83076
83077    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83078        match self {
83079            JSXNamespacedName { span, ns, name } => {
83080                {
83081                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
83082                        self::fields::JSXNamespacedNameField::Span,
83083                    ));
83084                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83085                        span,
83086                        visitor,
83087                        &mut *__ast_path,
83088                    )
83089                };
83090                {
83091                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
83092                        self::fields::JSXNamespacedNameField::Ns,
83093                    ));
83094                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83095                        ns,
83096                        visitor,
83097                        &mut *__ast_path,
83098                    )
83099                };
83100                {
83101                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
83102                        self::fields::JSXNamespacedNameField::Name,
83103                    ));
83104                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83105                        name,
83106                        visitor,
83107                        &mut *__ast_path,
83108                    )
83109                };
83110            }
83111        }
83112    }
83113}
83114#[cfg(any(docsrs, feature = "path"))]
83115#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83116impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXObject {
83117    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_object`] with `self`."]
83118    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83119        <V as VisitMutAstPath>::visit_mut_jsx_object(visitor, self, __ast_path)
83120    }
83121
83122    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83123        match self {
83124            JSXObject::JSXMemberExpr { 0: _field_0 } => {
83125                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
83126                    self::fields::JSXObjectField::JsxmemberExpr,
83127                ));
83128                <Box<JSXMemberExpr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83129                    _field_0,
83130                    visitor,
83131                    &mut *__ast_path,
83132                );
83133            }
83134            JSXObject::Ident { 0: _field_0 } => {
83135                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
83136                    self::fields::JSXObjectField::Ident,
83137                ));
83138                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83139                    _field_0,
83140                    visitor,
83141                    &mut *__ast_path,
83142                );
83143            }
83144        }
83145    }
83146}
83147#[cfg(any(docsrs, feature = "path"))]
83148#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83149impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXOpeningElement {
83150    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_opening_element`] with `self`."]
83151    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83152        <V as VisitMutAstPath>::visit_mut_jsx_opening_element(visitor, self, __ast_path)
83153    }
83154
83155    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83156        match self {
83157            JSXOpeningElement {
83158                name,
83159                span,
83160                attrs,
83161                self_closing,
83162                type_args,
83163            } => {
83164                {
83165                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83166                        self::fields::JSXOpeningElementField::Name,
83167                    ));
83168                    <JSXElementName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83169                        name,
83170                        visitor,
83171                        &mut *__ast_path,
83172                    )
83173                };
83174                {
83175                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83176                        self::fields::JSXOpeningElementField::Span,
83177                    ));
83178                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83179                        span,
83180                        visitor,
83181                        &mut *__ast_path,
83182                    )
83183                };
83184                {
83185                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83186                        self::fields::JSXOpeningElementField::Attrs(usize::MAX),
83187                    ));
83188                    <Vec<JSXAttrOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83189                        attrs,
83190                        visitor,
83191                        &mut *__ast_path,
83192                    )
83193                };
83194                {
83195                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
83196                        self::fields::JSXOpeningElementField::TypeArgs,
83197                    ));
83198                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
83199                };
83200            }
83201        }
83202    }
83203}
83204#[cfg(any(docsrs, feature = "path"))]
83205#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83206impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXOpeningFragment {
83207    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_opening_fragment`] with `self`."]
83208    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83209        <V as VisitMutAstPath>::visit_mut_jsx_opening_fragment(visitor, self, __ast_path)
83210    }
83211
83212    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83213        match self {
83214            JSXOpeningFragment { span } => {
83215                {
83216                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningFragment(
83217                        self::fields::JSXOpeningFragmentField::Span,
83218                    ));
83219                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83220                        span,
83221                        visitor,
83222                        &mut *__ast_path,
83223                    )
83224                };
83225            }
83226        }
83227    }
83228}
83229#[cfg(any(docsrs, feature = "path"))]
83230#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83231impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXSpreadChild {
83232    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_spread_child`] with `self`."]
83233    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83234        <V as VisitMutAstPath>::visit_mut_jsx_spread_child(visitor, self, __ast_path)
83235    }
83236
83237    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83238        match self {
83239            JSXSpreadChild { span, expr } => {
83240                {
83241                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
83242                        self::fields::JSXSpreadChildField::Span,
83243                    ));
83244                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83245                        span,
83246                        visitor,
83247                        &mut *__ast_path,
83248                    )
83249                };
83250                {
83251                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
83252                        self::fields::JSXSpreadChildField::Expr,
83253                    ));
83254                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83255                        expr,
83256                        visitor,
83257                        &mut *__ast_path,
83258                    )
83259                };
83260            }
83261        }
83262    }
83263}
83264#[cfg(any(docsrs, feature = "path"))]
83265#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83266impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for JSXText {
83267    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_text`] with `self`."]
83268    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83269        <V as VisitMutAstPath>::visit_mut_jsx_text(visitor, self, __ast_path)
83270    }
83271
83272    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83273        match self {
83274            JSXText { span, value, raw } => {
83275                {
83276                    let mut __ast_path = __ast_path
83277                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Span));
83278                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83279                        span,
83280                        visitor,
83281                        &mut *__ast_path,
83282                    )
83283                };
83284                {
83285                    let mut __ast_path = __ast_path
83286                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Value));
83287                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83288                        value,
83289                        visitor,
83290                        &mut *__ast_path,
83291                    )
83292                };
83293                {
83294                    let mut __ast_path = __ast_path
83295                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Raw));
83296                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83297                        raw,
83298                        visitor,
83299                        &mut *__ast_path,
83300                    )
83301                };
83302            }
83303        }
83304    }
83305}
83306#[cfg(any(docsrs, feature = "path"))]
83307#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83308impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Key {
83309    #[doc = "Calls [VisitMutAstPath`::visit_mut_key`] with `self`."]
83310    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83311        <V as VisitMutAstPath>::visit_mut_key(visitor, self, __ast_path)
83312    }
83313
83314    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83315        match self {
83316            Key::Private { 0: _field_0 } => {
83317                let mut __ast_path =
83318                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Private));
83319                <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83320                    _field_0,
83321                    visitor,
83322                    &mut *__ast_path,
83323                );
83324            }
83325            Key::Public { 0: _field_0 } => {
83326                let mut __ast_path =
83327                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Public));
83328                <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83329                    _field_0,
83330                    visitor,
83331                    &mut *__ast_path,
83332                );
83333            }
83334        }
83335    }
83336}
83337#[cfg(any(docsrs, feature = "path"))]
83338#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83339impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for KeyValuePatProp {
83340    #[doc = "Calls [VisitMutAstPath`::visit_mut_key_value_pat_prop`] with `self`."]
83341    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83342        <V as VisitMutAstPath>::visit_mut_key_value_pat_prop(visitor, self, __ast_path)
83343    }
83344
83345    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83346        match self {
83347            KeyValuePatProp { key, value } => {
83348                {
83349                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
83350                        self::fields::KeyValuePatPropField::Key,
83351                    ));
83352                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83353                        key,
83354                        visitor,
83355                        &mut *__ast_path,
83356                    )
83357                };
83358                {
83359                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
83360                        self::fields::KeyValuePatPropField::Value,
83361                    ));
83362                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83363                        value,
83364                        visitor,
83365                        &mut *__ast_path,
83366                    )
83367                };
83368            }
83369        }
83370    }
83371}
83372#[cfg(any(docsrs, feature = "path"))]
83373#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83374impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for KeyValueProp {
83375    #[doc = "Calls [VisitMutAstPath`::visit_mut_key_value_prop`] with `self`."]
83376    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83377        <V as VisitMutAstPath>::visit_mut_key_value_prop(visitor, self, __ast_path)
83378    }
83379
83380    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83381        match self {
83382            KeyValueProp { key, value } => {
83383                {
83384                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
83385                        self::fields::KeyValuePropField::Key,
83386                    ));
83387                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83388                        key,
83389                        visitor,
83390                        &mut *__ast_path,
83391                    )
83392                };
83393                {
83394                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
83395                        self::fields::KeyValuePropField::Value,
83396                    ));
83397                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83398                        value,
83399                        visitor,
83400                        &mut *__ast_path,
83401                    )
83402                };
83403            }
83404        }
83405    }
83406}
83407#[cfg(any(docsrs, feature = "path"))]
83408#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83409impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for LabeledStmt {
83410    #[doc = "Calls [VisitMutAstPath`::visit_mut_labeled_stmt`] with `self`."]
83411    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83412        <V as VisitMutAstPath>::visit_mut_labeled_stmt(visitor, self, __ast_path)
83413    }
83414
83415    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83416        match self {
83417            LabeledStmt { span, label, body } => {
83418                {
83419                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
83420                        self::fields::LabeledStmtField::Span,
83421                    ));
83422                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83423                        span,
83424                        visitor,
83425                        &mut *__ast_path,
83426                    )
83427                };
83428                {
83429                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
83430                        self::fields::LabeledStmtField::Label,
83431                    ));
83432                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83433                        label,
83434                        visitor,
83435                        &mut *__ast_path,
83436                    )
83437                };
83438                {
83439                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
83440                        self::fields::LabeledStmtField::Body,
83441                    ));
83442                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83443                        body,
83444                        visitor,
83445                        &mut *__ast_path,
83446                    )
83447                };
83448            }
83449        }
83450    }
83451}
83452#[cfg(any(docsrs, feature = "path"))]
83453#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83454impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Lit {
83455    #[doc = "Calls [VisitMutAstPath`::visit_mut_lit`] with `self`."]
83456    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83457        <V as VisitMutAstPath>::visit_mut_lit(visitor, self, __ast_path)
83458    }
83459
83460    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83461        match self {
83462            Lit::Str { 0: _field_0 } => {
83463                let mut __ast_path =
83464                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Str));
83465                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83466                    _field_0,
83467                    visitor,
83468                    &mut *__ast_path,
83469                );
83470            }
83471            Lit::Bool { 0: _field_0 } => {
83472                let mut __ast_path =
83473                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Bool));
83474                <Bool as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83475                    _field_0,
83476                    visitor,
83477                    &mut *__ast_path,
83478                );
83479            }
83480            Lit::Null { 0: _field_0 } => {
83481                let mut __ast_path =
83482                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Null));
83483                <Null as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83484                    _field_0,
83485                    visitor,
83486                    &mut *__ast_path,
83487                );
83488            }
83489            Lit::Num { 0: _field_0 } => {
83490                let mut __ast_path =
83491                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Num));
83492                <Number as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83493                    _field_0,
83494                    visitor,
83495                    &mut *__ast_path,
83496                );
83497            }
83498            Lit::BigInt { 0: _field_0 } => {
83499                let mut __ast_path =
83500                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::BigInt));
83501                <BigInt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83502                    _field_0,
83503                    visitor,
83504                    &mut *__ast_path,
83505                );
83506            }
83507            Lit::Regex { 0: _field_0 } => {
83508                let mut __ast_path =
83509                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Regex));
83510                <Regex as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83511                    _field_0,
83512                    visitor,
83513                    &mut *__ast_path,
83514                );
83515            }
83516            Lit::JSXText { 0: _field_0 } => {
83517                let mut __ast_path =
83518                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Jsxtext));
83519                <JSXText as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83520                    _field_0,
83521                    visitor,
83522                    &mut *__ast_path,
83523                );
83524            }
83525        }
83526    }
83527}
83528#[cfg(any(docsrs, feature = "path"))]
83529#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83530impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MemberExpr {
83531    #[doc = "Calls [VisitMutAstPath`::visit_mut_member_expr`] with `self`."]
83532    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83533        <V as VisitMutAstPath>::visit_mut_member_expr(visitor, self, __ast_path)
83534    }
83535
83536    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83537        match self {
83538            MemberExpr { span, obj, prop } => {
83539                {
83540                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
83541                        self::fields::MemberExprField::Span,
83542                    ));
83543                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83544                        span,
83545                        visitor,
83546                        &mut *__ast_path,
83547                    )
83548                };
83549                {
83550                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
83551                        self::fields::MemberExprField::Obj,
83552                    ));
83553                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83554                        obj,
83555                        visitor,
83556                        &mut *__ast_path,
83557                    )
83558                };
83559                {
83560                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
83561                        self::fields::MemberExprField::Prop,
83562                    ));
83563                    <MemberProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83564                        prop,
83565                        visitor,
83566                        &mut *__ast_path,
83567                    )
83568                };
83569            }
83570        }
83571    }
83572}
83573#[cfg(any(docsrs, feature = "path"))]
83574#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83575impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MemberProp {
83576    #[doc = "Calls [VisitMutAstPath`::visit_mut_member_prop`] with `self`."]
83577    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83578        <V as VisitMutAstPath>::visit_mut_member_prop(visitor, self, __ast_path)
83579    }
83580
83581    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83582        match self {
83583            MemberProp::Ident { 0: _field_0 } => {
83584                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
83585                    self::fields::MemberPropField::Ident,
83586                ));
83587                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83588                    _field_0,
83589                    visitor,
83590                    &mut *__ast_path,
83591                );
83592            }
83593            MemberProp::PrivateName { 0: _field_0 } => {
83594                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
83595                    self::fields::MemberPropField::PrivateName,
83596                ));
83597                <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83598                    _field_0,
83599                    visitor,
83600                    &mut *__ast_path,
83601                );
83602            }
83603            MemberProp::Computed { 0: _field_0 } => {
83604                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
83605                    self::fields::MemberPropField::Computed,
83606                ));
83607                <ComputedPropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83608                    _field_0,
83609                    visitor,
83610                    &mut *__ast_path,
83611                );
83612            }
83613        }
83614    }
83615}
83616#[cfg(any(docsrs, feature = "path"))]
83617#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83618impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MetaPropExpr {
83619    #[doc = "Calls [VisitMutAstPath`::visit_mut_meta_prop_expr`] with `self`."]
83620    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83621        <V as VisitMutAstPath>::visit_mut_meta_prop_expr(visitor, self, __ast_path)
83622    }
83623
83624    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83625        match self {
83626            MetaPropExpr { span, kind } => {
83627                {
83628                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
83629                        self::fields::MetaPropExprField::Span,
83630                    ));
83631                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83632                        span,
83633                        visitor,
83634                        &mut *__ast_path,
83635                    )
83636                };
83637                {
83638                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
83639                        self::fields::MetaPropExprField::Kind,
83640                    ));
83641                    <MetaPropKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83642                        kind,
83643                        visitor,
83644                        &mut *__ast_path,
83645                    )
83646                };
83647            }
83648        }
83649    }
83650}
83651#[cfg(any(docsrs, feature = "path"))]
83652#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83653impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MetaPropKind {
83654    #[doc = "Calls [VisitMutAstPath`::visit_mut_meta_prop_kind`] with `self`."]
83655    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83656        <V as VisitMutAstPath>::visit_mut_meta_prop_kind(visitor, self, __ast_path)
83657    }
83658
83659    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83660        match self {
83661            MetaPropKind::NewTarget => {}
83662            MetaPropKind::ImportMeta => {}
83663        }
83664    }
83665}
83666#[cfg(any(docsrs, feature = "path"))]
83667#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83668impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MethodKind {
83669    #[doc = "Calls [VisitMutAstPath`::visit_mut_method_kind`] with `self`."]
83670    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83671        <V as VisitMutAstPath>::visit_mut_method_kind(visitor, self, __ast_path)
83672    }
83673
83674    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83675        match self {
83676            MethodKind::Method => {}
83677            MethodKind::Getter => {}
83678            MethodKind::Setter => {}
83679        }
83680    }
83681}
83682#[cfg(any(docsrs, feature = "path"))]
83683#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83684impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for MethodProp {
83685    #[doc = "Calls [VisitMutAstPath`::visit_mut_method_prop`] with `self`."]
83686    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83687        <V as VisitMutAstPath>::visit_mut_method_prop(visitor, self, __ast_path)
83688    }
83689
83690    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83691        match self {
83692            MethodProp { key, function } => {
83693                {
83694                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
83695                        self::fields::MethodPropField::Key,
83696                    ));
83697                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83698                        key,
83699                        visitor,
83700                        &mut *__ast_path,
83701                    )
83702                };
83703                {
83704                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
83705                        self::fields::MethodPropField::Function,
83706                    ));
83707                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83708                        function,
83709                        visitor,
83710                        &mut *__ast_path,
83711                    )
83712                };
83713            }
83714        }
83715    }
83716}
83717#[cfg(any(docsrs, feature = "path"))]
83718#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83719impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Module {
83720    #[doc = "Calls [VisitMutAstPath`::visit_mut_module`] with `self`."]
83721    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83722        <V as VisitMutAstPath>::visit_mut_module(visitor, self, __ast_path)
83723    }
83724
83725    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83726        match self {
83727            Module {
83728                span,
83729                body,
83730                shebang,
83731            } => {
83732                {
83733                    let mut __ast_path = __ast_path
83734                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Span));
83735                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83736                        span,
83737                        visitor,
83738                        &mut *__ast_path,
83739                    )
83740                };
83741                {
83742                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Module(
83743                        self::fields::ModuleField::Body(usize::MAX),
83744                    ));
83745                    <Vec<ModuleItem> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83746                        body,
83747                        visitor,
83748                        &mut *__ast_path,
83749                    )
83750                };
83751                {
83752                    let mut __ast_path = __ast_path
83753                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Shebang));
83754                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83755                        shebang,
83756                        visitor,
83757                        &mut *__ast_path,
83758                    )
83759                };
83760            }
83761        }
83762    }
83763}
83764#[cfg(any(docsrs, feature = "path"))]
83765#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83766impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ModuleDecl {
83767    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_decl`] with `self`."]
83768    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83769        <V as VisitMutAstPath>::visit_mut_module_decl(visitor, self, __ast_path)
83770    }
83771
83772    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83773        match self {
83774            ModuleDecl::Import { 0: _field_0 } => {
83775                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83776                    self::fields::ModuleDeclField::Import,
83777                ));
83778                <ImportDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83779                    _field_0,
83780                    visitor,
83781                    &mut *__ast_path,
83782                );
83783            }
83784            ModuleDecl::ExportDecl { 0: _field_0 } => {
83785                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83786                    self::fields::ModuleDeclField::ExportDecl,
83787                ));
83788                <ExportDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83789                    _field_0,
83790                    visitor,
83791                    &mut *__ast_path,
83792                );
83793            }
83794            ModuleDecl::ExportNamed { 0: _field_0 } => {
83795                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83796                    self::fields::ModuleDeclField::ExportNamed,
83797                ));
83798                <NamedExport as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83799                    _field_0,
83800                    visitor,
83801                    &mut *__ast_path,
83802                );
83803            }
83804            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
83805                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83806                    self::fields::ModuleDeclField::ExportDefaultDecl,
83807                ));
83808                <ExportDefaultDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83809                    _field_0,
83810                    visitor,
83811                    &mut *__ast_path,
83812                );
83813            }
83814            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
83815                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83816                    self::fields::ModuleDeclField::ExportDefaultExpr,
83817                ));
83818                <ExportDefaultExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83819                    _field_0,
83820                    visitor,
83821                    &mut *__ast_path,
83822                );
83823            }
83824            ModuleDecl::ExportAll { 0: _field_0 } => {
83825                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83826                    self::fields::ModuleDeclField::ExportAll,
83827                ));
83828                <ExportAll as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83829                    _field_0,
83830                    visitor,
83831                    &mut *__ast_path,
83832                );
83833            }
83834            ModuleDecl::TsImportEquals { 0: _field_0 } => {
83835                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83836                    self::fields::ModuleDeclField::TsImportEquals,
83837                ));
83838                <Box<TsImportEqualsDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83839                    _field_0,
83840                    visitor,
83841                    &mut *__ast_path,
83842                );
83843            }
83844            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
83845                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83846                    self::fields::ModuleDeclField::TsExportAssignment,
83847                ));
83848                <TsExportAssignment as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83849                    _field_0,
83850                    visitor,
83851                    &mut *__ast_path,
83852                );
83853            }
83854            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
83855                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
83856                    self::fields::ModuleDeclField::TsNamespaceExport,
83857                ));
83858                <TsNamespaceExportDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83859                    _field_0,
83860                    visitor,
83861                    &mut *__ast_path,
83862                );
83863            }
83864        }
83865    }
83866}
83867#[cfg(any(docsrs, feature = "path"))]
83868#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83869impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ModuleExportName {
83870    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_export_name`] with `self`."]
83871    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83872        <V as VisitMutAstPath>::visit_mut_module_export_name(visitor, self, __ast_path)
83873    }
83874
83875    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83876        match self {
83877            ModuleExportName::Ident { 0: _field_0 } => {
83878                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
83879                    self::fields::ModuleExportNameField::Ident,
83880                ));
83881                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83882                    _field_0,
83883                    visitor,
83884                    &mut *__ast_path,
83885                );
83886            }
83887            ModuleExportName::Str { 0: _field_0 } => {
83888                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
83889                    self::fields::ModuleExportNameField::Str,
83890                ));
83891                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83892                    _field_0,
83893                    visitor,
83894                    &mut *__ast_path,
83895                );
83896            }
83897        }
83898    }
83899}
83900#[cfg(any(docsrs, feature = "path"))]
83901#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83902impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ModuleItem {
83903    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_item`] with `self`."]
83904    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83905        <V as VisitMutAstPath>::visit_mut_module_item(visitor, self, __ast_path)
83906    }
83907
83908    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83909        match self {
83910            ModuleItem::ModuleDecl { 0: _field_0 } => {
83911                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
83912                    self::fields::ModuleItemField::ModuleDecl,
83913                ));
83914                <ModuleDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83915                    _field_0,
83916                    visitor,
83917                    &mut *__ast_path,
83918                );
83919            }
83920            ModuleItem::Stmt { 0: _field_0 } => {
83921                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
83922                    self::fields::ModuleItemField::Stmt,
83923                ));
83924                <Stmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83925                    _field_0,
83926                    visitor,
83927                    &mut *__ast_path,
83928                );
83929            }
83930        }
83931    }
83932}
83933#[cfg(any(docsrs, feature = "path"))]
83934#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83935impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for NamedExport {
83936    #[doc = "Calls [VisitMutAstPath`::visit_mut_named_export`] with `self`."]
83937    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83938        <V as VisitMutAstPath>::visit_mut_named_export(visitor, self, __ast_path)
83939    }
83940
83941    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83942        match self {
83943            NamedExport {
83944                span,
83945                specifiers,
83946                src,
83947                type_only,
83948                with,
83949            } => {
83950                {
83951                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
83952                        self::fields::NamedExportField::Span,
83953                    ));
83954                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83955                        span,
83956                        visitor,
83957                        &mut *__ast_path,
83958                    )
83959                };
83960                {
83961                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
83962                        self::fields::NamedExportField::Specifiers(usize::MAX),
83963                    ));
83964                    <Vec<ExportSpecifier> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83965                        specifiers,
83966                        visitor,
83967                        &mut *__ast_path,
83968                    )
83969                };
83970                {
83971                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
83972                        self::fields::NamedExportField::Src,
83973                    ));
83974                    <Option<Box<Str>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83975                        src,
83976                        visitor,
83977                        &mut *__ast_path,
83978                    )
83979                };
83980                {
83981                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
83982                        self::fields::NamedExportField::With,
83983                    ));
83984                    <Option<Box<ObjectLit>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
83985                        with,
83986                        visitor,
83987                        &mut *__ast_path,
83988                    )
83989                };
83990            }
83991        }
83992    }
83993}
83994#[cfg(any(docsrs, feature = "path"))]
83995#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
83996impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for NewExpr {
83997    #[doc = "Calls [VisitMutAstPath`::visit_mut_new_expr`] with `self`."]
83998    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
83999        <V as VisitMutAstPath>::visit_mut_new_expr(visitor, self, __ast_path)
84000    }
84001
84002    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84003        match self {
84004            NewExpr {
84005                span,
84006                ctxt,
84007                callee,
84008                args,
84009                type_args,
84010            } => {
84011                {
84012                    let mut __ast_path = __ast_path
84013                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Span));
84014                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84015                        span,
84016                        visitor,
84017                        &mut *__ast_path,
84018                    )
84019                };
84020                {
84021                    let mut __ast_path = __ast_path
84022                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Ctxt));
84023                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84024                        ctxt,
84025                        visitor,
84026                        &mut *__ast_path,
84027                    )
84028                };
84029                {
84030                    let mut __ast_path = __ast_path
84031                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Callee));
84032                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84033                        callee,
84034                        visitor,
84035                        &mut *__ast_path,
84036                    )
84037                };
84038                {
84039                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NewExpr(
84040                        self::fields::NewExprField::Args(usize::MAX),
84041                    ));
84042                    <Option<Vec<ExprOrSpread>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84043                        args,
84044                        visitor,
84045                        &mut *__ast_path,
84046                    )
84047                };
84048                {
84049                    let mut __ast_path = __ast_path
84050                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::TypeArgs));
84051                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
84052                };
84053            }
84054        }
84055    }
84056}
84057#[cfg(any(docsrs, feature = "path"))]
84058#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84059impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Null {
84060    #[doc = "Calls [VisitMutAstPath`::visit_mut_null`] with `self`."]
84061    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84062        <V as VisitMutAstPath>::visit_mut_null(visitor, self, __ast_path)
84063    }
84064
84065    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84066        match self {
84067            Null { span } => {
84068                {
84069                    let mut __ast_path =
84070                        __ast_path.with_guard(AstParentKind::Null(self::fields::NullField::Span));
84071                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84072                        span,
84073                        visitor,
84074                        &mut *__ast_path,
84075                    )
84076                };
84077            }
84078        }
84079    }
84080}
84081#[cfg(any(docsrs, feature = "path"))]
84082#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84083impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Number {
84084    #[doc = "Calls [VisitMutAstPath`::visit_mut_number`] with `self`."]
84085    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84086        <V as VisitMutAstPath>::visit_mut_number(visitor, self, __ast_path)
84087    }
84088
84089    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84090        match self {
84091            Number { span, value, raw } => {
84092                {
84093                    let mut __ast_path = __ast_path
84094                        .with_guard(AstParentKind::Number(self::fields::NumberField::Span));
84095                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84096                        span,
84097                        visitor,
84098                        &mut *__ast_path,
84099                    )
84100                };
84101                {
84102                    let mut __ast_path = __ast_path
84103                        .with_guard(AstParentKind::Number(self::fields::NumberField::Raw));
84104                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84105                        raw,
84106                        visitor,
84107                        &mut *__ast_path,
84108                    )
84109                };
84110            }
84111        }
84112    }
84113}
84114#[cfg(any(docsrs, feature = "path"))]
84115#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84116impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ObjectLit {
84117    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_lit`] with `self`."]
84118    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84119        <V as VisitMutAstPath>::visit_mut_object_lit(visitor, self, __ast_path)
84120    }
84121
84122    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84123        match self {
84124            ObjectLit { span, props } => {
84125                {
84126                    let mut __ast_path = __ast_path
84127                        .with_guard(AstParentKind::ObjectLit(self::fields::ObjectLitField::Span));
84128                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84129                        span,
84130                        visitor,
84131                        &mut *__ast_path,
84132                    )
84133                };
84134                {
84135                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectLit(
84136                        self::fields::ObjectLitField::Props(usize::MAX),
84137                    ));
84138                    <Vec<PropOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84139                        props,
84140                        visitor,
84141                        &mut *__ast_path,
84142                    )
84143                };
84144            }
84145        }
84146    }
84147}
84148#[cfg(any(docsrs, feature = "path"))]
84149#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84150impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ObjectPat {
84151    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_pat`] with `self`."]
84152    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84153        <V as VisitMutAstPath>::visit_mut_object_pat(visitor, self, __ast_path)
84154    }
84155
84156    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84157        match self {
84158            ObjectPat {
84159                span,
84160                props,
84161                optional,
84162                type_ann,
84163            } => {
84164                {
84165                    let mut __ast_path = __ast_path
84166                        .with_guard(AstParentKind::ObjectPat(self::fields::ObjectPatField::Span));
84167                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84168                        span,
84169                        visitor,
84170                        &mut *__ast_path,
84171                    )
84172                };
84173                {
84174                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
84175                        self::fields::ObjectPatField::Props(usize::MAX),
84176                    ));
84177                    <Vec<ObjectPatProp> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84178                        props,
84179                        visitor,
84180                        &mut *__ast_path,
84181                    )
84182                };
84183                {
84184                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
84185                        self::fields::ObjectPatField::TypeAnn,
84186                    ));
84187                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84188                        type_ann,
84189                        visitor,
84190                        &mut *__ast_path,
84191                    )
84192                };
84193            }
84194        }
84195    }
84196}
84197#[cfg(any(docsrs, feature = "path"))]
84198#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84199impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ObjectPatProp {
84200    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_pat_prop`] with `self`."]
84201    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84202        <V as VisitMutAstPath>::visit_mut_object_pat_prop(visitor, self, __ast_path)
84203    }
84204
84205    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84206        match self {
84207            ObjectPatProp::KeyValue { 0: _field_0 } => {
84208                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
84209                    self::fields::ObjectPatPropField::KeyValue,
84210                ));
84211                <KeyValuePatProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84212                    _field_0,
84213                    visitor,
84214                    &mut *__ast_path,
84215                );
84216            }
84217            ObjectPatProp::Assign { 0: _field_0 } => {
84218                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
84219                    self::fields::ObjectPatPropField::Assign,
84220                ));
84221                <AssignPatProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84222                    _field_0,
84223                    visitor,
84224                    &mut *__ast_path,
84225                );
84226            }
84227            ObjectPatProp::Rest { 0: _field_0 } => {
84228                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
84229                    self::fields::ObjectPatPropField::Rest,
84230                ));
84231                <RestPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84232                    _field_0,
84233                    visitor,
84234                    &mut *__ast_path,
84235                );
84236            }
84237        }
84238    }
84239}
84240#[cfg(any(docsrs, feature = "path"))]
84241#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84242impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for OptCall {
84243    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_call`] with `self`."]
84244    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84245        <V as VisitMutAstPath>::visit_mut_opt_call(visitor, self, __ast_path)
84246    }
84247
84248    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84249        match self {
84250            OptCall {
84251                span,
84252                ctxt,
84253                callee,
84254                args,
84255                type_args,
84256            } => {
84257                {
84258                    let mut __ast_path = __ast_path
84259                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Span));
84260                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84261                        span,
84262                        visitor,
84263                        &mut *__ast_path,
84264                    )
84265                };
84266                {
84267                    let mut __ast_path = __ast_path
84268                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Ctxt));
84269                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84270                        ctxt,
84271                        visitor,
84272                        &mut *__ast_path,
84273                    )
84274                };
84275                {
84276                    let mut __ast_path = __ast_path
84277                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Callee));
84278                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84279                        callee,
84280                        visitor,
84281                        &mut *__ast_path,
84282                    )
84283                };
84284                {
84285                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptCall(
84286                        self::fields::OptCallField::Args(usize::MAX),
84287                    ));
84288                    <Vec<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84289                        args,
84290                        visitor,
84291                        &mut *__ast_path,
84292                    )
84293                };
84294                {
84295                    let mut __ast_path = __ast_path
84296                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::TypeArgs));
84297                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
84298                };
84299            }
84300        }
84301    }
84302}
84303#[cfg(any(docsrs, feature = "path"))]
84304#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84305impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for OptChainBase {
84306    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_chain_base`] with `self`."]
84307    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84308        <V as VisitMutAstPath>::visit_mut_opt_chain_base(visitor, self, __ast_path)
84309    }
84310
84311    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84312        match self {
84313            OptChainBase::Member { 0: _field_0 } => {
84314                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
84315                    self::fields::OptChainBaseField::Member,
84316                ));
84317                <MemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84318                    _field_0,
84319                    visitor,
84320                    &mut *__ast_path,
84321                );
84322            }
84323            OptChainBase::Call { 0: _field_0 } => {
84324                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
84325                    self::fields::OptChainBaseField::Call,
84326                ));
84327                <OptCall as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84328                    _field_0,
84329                    visitor,
84330                    &mut *__ast_path,
84331                );
84332            }
84333        }
84334    }
84335}
84336#[cfg(any(docsrs, feature = "path"))]
84337#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84338impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for OptChainExpr {
84339    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_chain_expr`] with `self`."]
84340    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84341        <V as VisitMutAstPath>::visit_mut_opt_chain_expr(visitor, self, __ast_path)
84342    }
84343
84344    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84345        match self {
84346            OptChainExpr {
84347                span,
84348                optional,
84349                base,
84350            } => {
84351                {
84352                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
84353                        self::fields::OptChainExprField::Span,
84354                    ));
84355                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84356                        span,
84357                        visitor,
84358                        &mut *__ast_path,
84359                    )
84360                };
84361                {
84362                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
84363                        self::fields::OptChainExprField::Base,
84364                    ));
84365                    <Box<OptChainBase> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84366                        base,
84367                        visitor,
84368                        &mut *__ast_path,
84369                    )
84370                };
84371            }
84372        }
84373    }
84374}
84375#[cfg(any(docsrs, feature = "path"))]
84376#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84377impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Param {
84378    #[doc = "Calls [VisitMutAstPath`::visit_mut_param`] with `self`."]
84379    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84380        <V as VisitMutAstPath>::visit_mut_param(visitor, self, __ast_path)
84381    }
84382
84383    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84384        match self {
84385            Param {
84386                span,
84387                decorators,
84388                pat,
84389            } => {
84390                {
84391                    let mut __ast_path =
84392                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Span));
84393                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84394                        span,
84395                        visitor,
84396                        &mut *__ast_path,
84397                    )
84398                };
84399                {
84400                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Param(
84401                        self::fields::ParamField::Decorators(usize::MAX),
84402                    ));
84403                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84404                        decorators,
84405                        visitor,
84406                        &mut *__ast_path,
84407                    )
84408                };
84409                {
84410                    let mut __ast_path =
84411                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Pat));
84412                    <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84413                        pat,
84414                        visitor,
84415                        &mut *__ast_path,
84416                    )
84417                };
84418            }
84419        }
84420    }
84421}
84422#[cfg(any(docsrs, feature = "path"))]
84423#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84424impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ParamOrTsParamProp {
84425    #[doc = "Calls [VisitMutAstPath`::visit_mut_param_or_ts_param_prop`] with `self`."]
84426    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84427        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_prop(visitor, self, __ast_path)
84428    }
84429
84430    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84431        match self {
84432            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
84433                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
84434                    self::fields::ParamOrTsParamPropField::TsParamProp,
84435                ));
84436                <TsParamProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84437                    _field_0,
84438                    visitor,
84439                    &mut *__ast_path,
84440                );
84441            }
84442            ParamOrTsParamProp::Param { 0: _field_0 } => {
84443                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
84444                    self::fields::ParamOrTsParamPropField::Param,
84445                ));
84446                <Param as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84447                    _field_0,
84448                    visitor,
84449                    &mut *__ast_path,
84450                );
84451            }
84452        }
84453    }
84454}
84455#[cfg(any(docsrs, feature = "path"))]
84456#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84457impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ParenExpr {
84458    #[doc = "Calls [VisitMutAstPath`::visit_mut_paren_expr`] with `self`."]
84459    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84460        <V as VisitMutAstPath>::visit_mut_paren_expr(visitor, self, __ast_path)
84461    }
84462
84463    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84464        match self {
84465            ParenExpr { span, expr } => {
84466                {
84467                    let mut __ast_path = __ast_path
84468                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Span));
84469                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84470                        span,
84471                        visitor,
84472                        &mut *__ast_path,
84473                    )
84474                };
84475                {
84476                    let mut __ast_path = __ast_path
84477                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Expr));
84478                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84479                        expr,
84480                        visitor,
84481                        &mut *__ast_path,
84482                    )
84483                };
84484            }
84485        }
84486    }
84487}
84488#[cfg(any(docsrs, feature = "path"))]
84489#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84490impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Pat {
84491    #[doc = "Calls [VisitMutAstPath`::visit_mut_pat`] with `self`."]
84492    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84493        <V as VisitMutAstPath>::visit_mut_pat(visitor, self, __ast_path)
84494    }
84495
84496    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84497        match self {
84498            Pat::Ident { 0: _field_0 } => {
84499                let mut __ast_path =
84500                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Ident));
84501                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84502                    _field_0,
84503                    visitor,
84504                    &mut *__ast_path,
84505                );
84506            }
84507            Pat::Array { 0: _field_0 } => {
84508                let mut __ast_path =
84509                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Array));
84510                <ArrayPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84511                    _field_0,
84512                    visitor,
84513                    &mut *__ast_path,
84514                );
84515            }
84516            Pat::Rest { 0: _field_0 } => {
84517                let mut __ast_path =
84518                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Rest));
84519                <RestPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84520                    _field_0,
84521                    visitor,
84522                    &mut *__ast_path,
84523                );
84524            }
84525            Pat::Object { 0: _field_0 } => {
84526                let mut __ast_path =
84527                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Object));
84528                <ObjectPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84529                    _field_0,
84530                    visitor,
84531                    &mut *__ast_path,
84532                );
84533            }
84534            Pat::Assign { 0: _field_0 } => {
84535                let mut __ast_path =
84536                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Assign));
84537                <AssignPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84538                    _field_0,
84539                    visitor,
84540                    &mut *__ast_path,
84541                );
84542            }
84543            Pat::Invalid { 0: _field_0 } => {
84544                let mut __ast_path =
84545                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Invalid));
84546                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84547                    _field_0,
84548                    visitor,
84549                    &mut *__ast_path,
84550                );
84551            }
84552            Pat::Expr { 0: _field_0 } => {
84553                let mut __ast_path =
84554                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Expr));
84555                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84556                    _field_0,
84557                    visitor,
84558                    &mut *__ast_path,
84559                );
84560            }
84561        }
84562    }
84563}
84564#[cfg(any(docsrs, feature = "path"))]
84565#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84566impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PrivateMethod {
84567    #[doc = "Calls [VisitMutAstPath`::visit_mut_private_method`] with `self`."]
84568    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84569        <V as VisitMutAstPath>::visit_mut_private_method(visitor, self, __ast_path)
84570    }
84571
84572    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84573        match self {
84574            PrivateMethod {
84575                span,
84576                key,
84577                function,
84578                kind,
84579                is_static,
84580                accessibility,
84581                is_abstract,
84582                is_optional,
84583                is_override,
84584            } => {
84585                {
84586                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
84587                        self::fields::PrivateMethodField::Span,
84588                    ));
84589                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84590                        span,
84591                        visitor,
84592                        &mut *__ast_path,
84593                    )
84594                };
84595                {
84596                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
84597                        self::fields::PrivateMethodField::Key,
84598                    ));
84599                    <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84600                        key,
84601                        visitor,
84602                        &mut *__ast_path,
84603                    )
84604                };
84605                {
84606                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
84607                        self::fields::PrivateMethodField::Function,
84608                    ));
84609                    <Box<Function> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84610                        function,
84611                        visitor,
84612                        &mut *__ast_path,
84613                    )
84614                };
84615                {
84616                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
84617                        self::fields::PrivateMethodField::Kind,
84618                    ));
84619                    <MethodKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84620                        kind,
84621                        visitor,
84622                        &mut *__ast_path,
84623                    )
84624                };
84625                {
84626                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
84627                        self::fields::PrivateMethodField::Accessibility,
84628                    ));
84629                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84630                        accessibility,
84631                        visitor,
84632                        &mut *__ast_path,
84633                    )
84634                };
84635            }
84636        }
84637    }
84638}
84639#[cfg(any(docsrs, feature = "path"))]
84640#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84641impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PrivateName {
84642    #[doc = "Calls [VisitMutAstPath`::visit_mut_private_name`] with `self`."]
84643    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84644        <V as VisitMutAstPath>::visit_mut_private_name(visitor, self, __ast_path)
84645    }
84646
84647    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84648        match self {
84649            PrivateName { span, name } => {
84650                {
84651                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
84652                        self::fields::PrivateNameField::Span,
84653                    ));
84654                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84655                        span,
84656                        visitor,
84657                        &mut *__ast_path,
84658                    )
84659                };
84660                {
84661                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
84662                        self::fields::PrivateNameField::Name,
84663                    ));
84664                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84665                        name,
84666                        visitor,
84667                        &mut *__ast_path,
84668                    )
84669                };
84670            }
84671        }
84672    }
84673}
84674#[cfg(any(docsrs, feature = "path"))]
84675#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84676impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PrivateProp {
84677    #[doc = "Calls [VisitMutAstPath`::visit_mut_private_prop`] with `self`."]
84678    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84679        <V as VisitMutAstPath>::visit_mut_private_prop(visitor, self, __ast_path)
84680    }
84681
84682    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84683        match self {
84684            PrivateProp {
84685                span,
84686                ctxt,
84687                key,
84688                value,
84689                type_ann,
84690                is_static,
84691                decorators,
84692                accessibility,
84693                is_optional,
84694                is_override,
84695                readonly,
84696                definite,
84697            } => {
84698                {
84699                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84700                        self::fields::PrivatePropField::Span,
84701                    ));
84702                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84703                        span,
84704                        visitor,
84705                        &mut *__ast_path,
84706                    )
84707                };
84708                {
84709                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84710                        self::fields::PrivatePropField::Ctxt,
84711                    ));
84712                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84713                        ctxt,
84714                        visitor,
84715                        &mut *__ast_path,
84716                    )
84717                };
84718                {
84719                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84720                        self::fields::PrivatePropField::Key,
84721                    ));
84722                    <PrivateName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84723                        key,
84724                        visitor,
84725                        &mut *__ast_path,
84726                    )
84727                };
84728                {
84729                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84730                        self::fields::PrivatePropField::Value,
84731                    ));
84732                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84733                        value,
84734                        visitor,
84735                        &mut *__ast_path,
84736                    )
84737                };
84738                {
84739                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84740                        self::fields::PrivatePropField::TypeAnn,
84741                    ));
84742                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84743                        type_ann,
84744                        visitor,
84745                        &mut *__ast_path,
84746                    )
84747                };
84748                {
84749                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84750                        self::fields::PrivatePropField::Decorators(usize::MAX),
84751                    ));
84752                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84753                        decorators,
84754                        visitor,
84755                        &mut *__ast_path,
84756                    )
84757                };
84758                {
84759                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
84760                        self::fields::PrivatePropField::Accessibility,
84761                    ));
84762                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84763                        accessibility,
84764                        visitor,
84765                        &mut *__ast_path,
84766                    )
84767                };
84768            }
84769        }
84770    }
84771}
84772#[cfg(any(docsrs, feature = "path"))]
84773#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84774impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Program {
84775    #[doc = "Calls [VisitMutAstPath`::visit_mut_program`] with `self`."]
84776    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84777        <V as VisitMutAstPath>::visit_mut_program(visitor, self, __ast_path)
84778    }
84779
84780    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84781        match self {
84782            Program::Module { 0: _field_0 } => {
84783                let mut __ast_path = __ast_path
84784                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Module));
84785                <Module as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84786                    _field_0,
84787                    visitor,
84788                    &mut *__ast_path,
84789                );
84790            }
84791            Program::Script { 0: _field_0 } => {
84792                let mut __ast_path = __ast_path
84793                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Script));
84794                <Script as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84795                    _field_0,
84796                    visitor,
84797                    &mut *__ast_path,
84798                );
84799            }
84800        }
84801    }
84802}
84803#[cfg(any(docsrs, feature = "path"))]
84804#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84805impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Prop {
84806    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop`] with `self`."]
84807    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84808        <V as VisitMutAstPath>::visit_mut_prop(visitor, self, __ast_path)
84809    }
84810
84811    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84812        match self {
84813            Prop::Shorthand { 0: _field_0 } => {
84814                let mut __ast_path =
84815                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Shorthand));
84816                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84817                    _field_0,
84818                    visitor,
84819                    &mut *__ast_path,
84820                );
84821            }
84822            Prop::KeyValue { 0: _field_0 } => {
84823                let mut __ast_path =
84824                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::KeyValue));
84825                <KeyValueProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84826                    _field_0,
84827                    visitor,
84828                    &mut *__ast_path,
84829                );
84830            }
84831            Prop::Assign { 0: _field_0 } => {
84832                let mut __ast_path =
84833                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Assign));
84834                <AssignProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84835                    _field_0,
84836                    visitor,
84837                    &mut *__ast_path,
84838                );
84839            }
84840            Prop::Getter { 0: _field_0 } => {
84841                let mut __ast_path =
84842                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Getter));
84843                <GetterProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84844                    _field_0,
84845                    visitor,
84846                    &mut *__ast_path,
84847                );
84848            }
84849            Prop::Setter { 0: _field_0 } => {
84850                let mut __ast_path =
84851                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Setter));
84852                <SetterProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84853                    _field_0,
84854                    visitor,
84855                    &mut *__ast_path,
84856                );
84857            }
84858            Prop::Method { 0: _field_0 } => {
84859                let mut __ast_path =
84860                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Method));
84861                <MethodProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84862                    _field_0,
84863                    visitor,
84864                    &mut *__ast_path,
84865                );
84866            }
84867        }
84868    }
84869}
84870#[cfg(any(docsrs, feature = "path"))]
84871#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84872impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PropName {
84873    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop_name`] with `self`."]
84874    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84875        <V as VisitMutAstPath>::visit_mut_prop_name(visitor, self, __ast_path)
84876    }
84877
84878    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84879        match self {
84880            PropName::Ident { 0: _field_0 } => {
84881                let mut __ast_path = __ast_path
84882                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Ident));
84883                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84884                    _field_0,
84885                    visitor,
84886                    &mut *__ast_path,
84887                );
84888            }
84889            PropName::Str { 0: _field_0 } => {
84890                let mut __ast_path = __ast_path
84891                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Str));
84892                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84893                    _field_0,
84894                    visitor,
84895                    &mut *__ast_path,
84896                );
84897            }
84898            PropName::Num { 0: _field_0 } => {
84899                let mut __ast_path = __ast_path
84900                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Num));
84901                <Number as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84902                    _field_0,
84903                    visitor,
84904                    &mut *__ast_path,
84905                );
84906            }
84907            PropName::Computed { 0: _field_0 } => {
84908                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropName(
84909                    self::fields::PropNameField::Computed,
84910                ));
84911                <ComputedPropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84912                    _field_0,
84913                    visitor,
84914                    &mut *__ast_path,
84915                );
84916            }
84917            PropName::BigInt { 0: _field_0 } => {
84918                let mut __ast_path = __ast_path
84919                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::BigInt));
84920                <BigInt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84921                    _field_0,
84922                    visitor,
84923                    &mut *__ast_path,
84924                );
84925            }
84926        }
84927    }
84928}
84929#[cfg(any(docsrs, feature = "path"))]
84930#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84931impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for PropOrSpread {
84932    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop_or_spread`] with `self`."]
84933    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84934        <V as VisitMutAstPath>::visit_mut_prop_or_spread(visitor, self, __ast_path)
84935    }
84936
84937    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84938        match self {
84939            PropOrSpread::Spread { 0: _field_0 } => {
84940                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
84941                    self::fields::PropOrSpreadField::Spread,
84942                ));
84943                <SpreadElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84944                    _field_0,
84945                    visitor,
84946                    &mut *__ast_path,
84947                );
84948            }
84949            PropOrSpread::Prop { 0: _field_0 } => {
84950                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
84951                    self::fields::PropOrSpreadField::Prop,
84952                ));
84953                <Box<Prop> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84954                    _field_0,
84955                    visitor,
84956                    &mut *__ast_path,
84957                );
84958            }
84959        }
84960    }
84961}
84962#[cfg(any(docsrs, feature = "path"))]
84963#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
84964impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Regex {
84965    #[doc = "Calls [VisitMutAstPath`::visit_mut_regex`] with `self`."]
84966    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84967        <V as VisitMutAstPath>::visit_mut_regex(visitor, self, __ast_path)
84968    }
84969
84970    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
84971        match self {
84972            Regex { span, exp, flags } => {
84973                {
84974                    let mut __ast_path =
84975                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Span));
84976                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84977                        span,
84978                        visitor,
84979                        &mut *__ast_path,
84980                    )
84981                };
84982                {
84983                    let mut __ast_path =
84984                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Exp));
84985                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84986                        exp,
84987                        visitor,
84988                        &mut *__ast_path,
84989                    )
84990                };
84991                {
84992                    let mut __ast_path = __ast_path
84993                        .with_guard(AstParentKind::Regex(self::fields::RegexField::Flags));
84994                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
84995                        flags,
84996                        visitor,
84997                        &mut *__ast_path,
84998                    )
84999                };
85000            }
85001        }
85002    }
85003}
85004#[cfg(any(docsrs, feature = "path"))]
85005#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85006impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for RestPat {
85007    #[doc = "Calls [VisitMutAstPath`::visit_mut_rest_pat`] with `self`."]
85008    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85009        <V as VisitMutAstPath>::visit_mut_rest_pat(visitor, self, __ast_path)
85010    }
85011
85012    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85013        match self {
85014            RestPat {
85015                span,
85016                dot3_token,
85017                arg,
85018                type_ann,
85019            } => {
85020                {
85021                    let mut __ast_path = __ast_path
85022                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Span));
85023                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85024                        span,
85025                        visitor,
85026                        &mut *__ast_path,
85027                    )
85028                };
85029                {
85030                    let mut __ast_path = __ast_path.with_guard(AstParentKind::RestPat(
85031                        self::fields::RestPatField::Dot3Token,
85032                    ));
85033                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85034                        dot3_token,
85035                        visitor,
85036                        &mut *__ast_path,
85037                    )
85038                };
85039                {
85040                    let mut __ast_path = __ast_path
85041                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Arg));
85042                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85043                        arg,
85044                        visitor,
85045                        &mut *__ast_path,
85046                    )
85047                };
85048                {
85049                    let mut __ast_path = __ast_path
85050                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::TypeAnn));
85051                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85052                        type_ann,
85053                        visitor,
85054                        &mut *__ast_path,
85055                    )
85056                };
85057            }
85058        }
85059    }
85060}
85061#[cfg(any(docsrs, feature = "path"))]
85062#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85063impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ReturnStmt {
85064    #[doc = "Calls [VisitMutAstPath`::visit_mut_return_stmt`] with `self`."]
85065    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85066        <V as VisitMutAstPath>::visit_mut_return_stmt(visitor, self, __ast_path)
85067    }
85068
85069    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85070        match self {
85071            ReturnStmt { span, arg } => {
85072                {
85073                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
85074                        self::fields::ReturnStmtField::Span,
85075                    ));
85076                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85077                        span,
85078                        visitor,
85079                        &mut *__ast_path,
85080                    )
85081                };
85082                {
85083                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
85084                        self::fields::ReturnStmtField::Arg,
85085                    ));
85086                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85087                        arg,
85088                        visitor,
85089                        &mut *__ast_path,
85090                    )
85091                };
85092            }
85093        }
85094    }
85095}
85096#[cfg(any(docsrs, feature = "path"))]
85097#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85098impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Script {
85099    #[doc = "Calls [VisitMutAstPath`::visit_mut_script`] with `self`."]
85100    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85101        <V as VisitMutAstPath>::visit_mut_script(visitor, self, __ast_path)
85102    }
85103
85104    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85105        match self {
85106            Script {
85107                span,
85108                body,
85109                shebang,
85110            } => {
85111                {
85112                    let mut __ast_path = __ast_path
85113                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Span));
85114                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85115                        span,
85116                        visitor,
85117                        &mut *__ast_path,
85118                    )
85119                };
85120                {
85121                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Script(
85122                        self::fields::ScriptField::Body(usize::MAX),
85123                    ));
85124                    <Vec<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85125                        body,
85126                        visitor,
85127                        &mut *__ast_path,
85128                    )
85129                };
85130                {
85131                    let mut __ast_path = __ast_path
85132                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Shebang));
85133                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85134                        shebang,
85135                        visitor,
85136                        &mut *__ast_path,
85137                    )
85138                };
85139            }
85140        }
85141    }
85142}
85143#[cfg(any(docsrs, feature = "path"))]
85144#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85145impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SeqExpr {
85146    #[doc = "Calls [VisitMutAstPath`::visit_mut_seq_expr`] with `self`."]
85147    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85148        <V as VisitMutAstPath>::visit_mut_seq_expr(visitor, self, __ast_path)
85149    }
85150
85151    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85152        match self {
85153            SeqExpr { span, exprs } => {
85154                {
85155                    let mut __ast_path = __ast_path
85156                        .with_guard(AstParentKind::SeqExpr(self::fields::SeqExprField::Span));
85157                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85158                        span,
85159                        visitor,
85160                        &mut *__ast_path,
85161                    )
85162                };
85163                {
85164                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SeqExpr(
85165                        self::fields::SeqExprField::Exprs(usize::MAX),
85166                    ));
85167                    <Vec<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85168                        exprs,
85169                        visitor,
85170                        &mut *__ast_path,
85171                    )
85172                };
85173            }
85174        }
85175    }
85176}
85177#[cfg(any(docsrs, feature = "path"))]
85178#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85179impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SetterProp {
85180    #[doc = "Calls [VisitMutAstPath`::visit_mut_setter_prop`] with `self`."]
85181    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85182        <V as VisitMutAstPath>::visit_mut_setter_prop(visitor, self, __ast_path)
85183    }
85184
85185    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85186        match self {
85187            SetterProp {
85188                span,
85189                key,
85190                this_param,
85191                param,
85192                body,
85193            } => {
85194                {
85195                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85196                        self::fields::SetterPropField::Span,
85197                    ));
85198                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85199                        span,
85200                        visitor,
85201                        &mut *__ast_path,
85202                    )
85203                };
85204                {
85205                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85206                        self::fields::SetterPropField::Key,
85207                    ));
85208                    <PropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85209                        key,
85210                        visitor,
85211                        &mut *__ast_path,
85212                    )
85213                };
85214                {
85215                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85216                        self::fields::SetterPropField::ThisParam,
85217                    ));
85218                    <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85219                        this_param,
85220                        visitor,
85221                        &mut *__ast_path,
85222                    )
85223                };
85224                {
85225                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85226                        self::fields::SetterPropField::Param,
85227                    ));
85228                    <Box<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85229                        param,
85230                        visitor,
85231                        &mut *__ast_path,
85232                    )
85233                };
85234                {
85235                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
85236                        self::fields::SetterPropField::Body,
85237                    ));
85238                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85239                        body,
85240                        visitor,
85241                        &mut *__ast_path,
85242                    )
85243                };
85244            }
85245        }
85246    }
85247}
85248#[cfg(any(docsrs, feature = "path"))]
85249#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85250impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SimpleAssignTarget {
85251    #[doc = "Calls [VisitMutAstPath`::visit_mut_simple_assign_target`] with `self`."]
85252    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85253        <V as VisitMutAstPath>::visit_mut_simple_assign_target(visitor, self, __ast_path)
85254    }
85255
85256    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85257        match self {
85258            SimpleAssignTarget::Ident { 0: _field_0 } => {
85259                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85260                    self::fields::SimpleAssignTargetField::Ident,
85261                ));
85262                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85263                    _field_0,
85264                    visitor,
85265                    &mut *__ast_path,
85266                );
85267            }
85268            SimpleAssignTarget::Member { 0: _field_0 } => {
85269                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85270                    self::fields::SimpleAssignTargetField::Member,
85271                ));
85272                <MemberExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85273                    _field_0,
85274                    visitor,
85275                    &mut *__ast_path,
85276                );
85277            }
85278            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
85279                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85280                    self::fields::SimpleAssignTargetField::SuperProp,
85281                ));
85282                <SuperPropExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85283                    _field_0,
85284                    visitor,
85285                    &mut *__ast_path,
85286                );
85287            }
85288            SimpleAssignTarget::Paren { 0: _field_0 } => {
85289                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85290                    self::fields::SimpleAssignTargetField::Paren,
85291                ));
85292                <ParenExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85293                    _field_0,
85294                    visitor,
85295                    &mut *__ast_path,
85296                );
85297            }
85298            SimpleAssignTarget::OptChain { 0: _field_0 } => {
85299                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85300                    self::fields::SimpleAssignTargetField::OptChain,
85301                ));
85302                <OptChainExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85303                    _field_0,
85304                    visitor,
85305                    &mut *__ast_path,
85306                );
85307            }
85308            SimpleAssignTarget::TsAs { 0: _field_0 } => {
85309                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85310                    self::fields::SimpleAssignTargetField::TsAs,
85311                ));
85312                <TsAsExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85313                    _field_0,
85314                    visitor,
85315                    &mut *__ast_path,
85316                );
85317            }
85318            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
85319                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85320                    self::fields::SimpleAssignTargetField::TsSatisfies,
85321                ));
85322                <TsSatisfiesExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85323                    _field_0,
85324                    visitor,
85325                    &mut *__ast_path,
85326                );
85327            }
85328            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
85329                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85330                    self::fields::SimpleAssignTargetField::TsNonNull,
85331                ));
85332                <TsNonNullExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85333                    _field_0,
85334                    visitor,
85335                    &mut *__ast_path,
85336                );
85337            }
85338            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
85339                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85340                    self::fields::SimpleAssignTargetField::TsTypeAssertion,
85341                ));
85342                <TsTypeAssertion as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85343                    _field_0,
85344                    visitor,
85345                    &mut *__ast_path,
85346                );
85347            }
85348            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
85349                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85350                    self::fields::SimpleAssignTargetField::TsInstantiation,
85351                ));
85352                <TsInstantiation as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85353                    _field_0,
85354                    visitor,
85355                    &mut *__ast_path,
85356                );
85357            }
85358            SimpleAssignTarget::Invalid { 0: _field_0 } => {
85359                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
85360                    self::fields::SimpleAssignTargetField::Invalid,
85361                ));
85362                <Invalid as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85363                    _field_0,
85364                    visitor,
85365                    &mut *__ast_path,
85366                );
85367            }
85368        }
85369    }
85370}
85371#[cfg(any(docsrs, feature = "path"))]
85372#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85373impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SpreadElement {
85374    #[doc = "Calls [VisitMutAstPath`::visit_mut_spread_element`] with `self`."]
85375    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85376        <V as VisitMutAstPath>::visit_mut_spread_element(visitor, self, __ast_path)
85377    }
85378
85379    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85380        match self {
85381            SpreadElement { dot3_token, expr } => {
85382                {
85383                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
85384                        self::fields::SpreadElementField::Dot3Token,
85385                    ));
85386                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85387                        dot3_token,
85388                        visitor,
85389                        &mut *__ast_path,
85390                    )
85391                };
85392                {
85393                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
85394                        self::fields::SpreadElementField::Expr,
85395                    ));
85396                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85397                        expr,
85398                        visitor,
85399                        &mut *__ast_path,
85400                    )
85401                };
85402            }
85403        }
85404    }
85405}
85406#[cfg(any(docsrs, feature = "path"))]
85407#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85408impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for StaticBlock {
85409    #[doc = "Calls [VisitMutAstPath`::visit_mut_static_block`] with `self`."]
85410    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85411        <V as VisitMutAstPath>::visit_mut_static_block(visitor, self, __ast_path)
85412    }
85413
85414    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85415        match self {
85416            StaticBlock { span, body } => {
85417                {
85418                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
85419                        self::fields::StaticBlockField::Span,
85420                    ));
85421                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85422                        span,
85423                        visitor,
85424                        &mut *__ast_path,
85425                    )
85426                };
85427                {
85428                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
85429                        self::fields::StaticBlockField::Body,
85430                    ));
85431                    <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85432                        body,
85433                        visitor,
85434                        &mut *__ast_path,
85435                    )
85436                };
85437            }
85438        }
85439    }
85440}
85441#[cfg(any(docsrs, feature = "path"))]
85442#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85443impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Stmt {
85444    #[doc = "Calls [VisitMutAstPath`::visit_mut_stmt`] with `self`."]
85445    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85446        <V as VisitMutAstPath>::visit_mut_stmt(visitor, self, __ast_path)
85447    }
85448
85449    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85450        match self {
85451            Stmt::Block { 0: _field_0 } => {
85452                let mut __ast_path =
85453                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Block));
85454                <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85455                    _field_0,
85456                    visitor,
85457                    &mut *__ast_path,
85458                );
85459            }
85460            Stmt::Empty { 0: _field_0 } => {
85461                let mut __ast_path =
85462                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Empty));
85463                <EmptyStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85464                    _field_0,
85465                    visitor,
85466                    &mut *__ast_path,
85467                );
85468            }
85469            Stmt::Debugger { 0: _field_0 } => {
85470                let mut __ast_path =
85471                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Debugger));
85472                <DebuggerStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85473                    _field_0,
85474                    visitor,
85475                    &mut *__ast_path,
85476                );
85477            }
85478            Stmt::With { 0: _field_0 } => {
85479                let mut __ast_path =
85480                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::With));
85481                <WithStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85482                    _field_0,
85483                    visitor,
85484                    &mut *__ast_path,
85485                );
85486            }
85487            Stmt::Return { 0: _field_0 } => {
85488                let mut __ast_path =
85489                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Return));
85490                <ReturnStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85491                    _field_0,
85492                    visitor,
85493                    &mut *__ast_path,
85494                );
85495            }
85496            Stmt::Labeled { 0: _field_0 } => {
85497                let mut __ast_path =
85498                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Labeled));
85499                <LabeledStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85500                    _field_0,
85501                    visitor,
85502                    &mut *__ast_path,
85503                );
85504            }
85505            Stmt::Break { 0: _field_0 } => {
85506                let mut __ast_path =
85507                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Break));
85508                <BreakStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85509                    _field_0,
85510                    visitor,
85511                    &mut *__ast_path,
85512                );
85513            }
85514            Stmt::Continue { 0: _field_0 } => {
85515                let mut __ast_path =
85516                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Continue));
85517                <ContinueStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85518                    _field_0,
85519                    visitor,
85520                    &mut *__ast_path,
85521                );
85522            }
85523            Stmt::If { 0: _field_0 } => {
85524                let mut __ast_path =
85525                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::If));
85526                <IfStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85527                    _field_0,
85528                    visitor,
85529                    &mut *__ast_path,
85530                );
85531            }
85532            Stmt::Switch { 0: _field_0 } => {
85533                let mut __ast_path =
85534                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Switch));
85535                <SwitchStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85536                    _field_0,
85537                    visitor,
85538                    &mut *__ast_path,
85539                );
85540            }
85541            Stmt::Throw { 0: _field_0 } => {
85542                let mut __ast_path =
85543                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Throw));
85544                <ThrowStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85545                    _field_0,
85546                    visitor,
85547                    &mut *__ast_path,
85548                );
85549            }
85550            Stmt::Try { 0: _field_0 } => {
85551                let mut __ast_path =
85552                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Try));
85553                <Box<TryStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85554                    _field_0,
85555                    visitor,
85556                    &mut *__ast_path,
85557                );
85558            }
85559            Stmt::While { 0: _field_0 } => {
85560                let mut __ast_path =
85561                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::While));
85562                <WhileStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85563                    _field_0,
85564                    visitor,
85565                    &mut *__ast_path,
85566                );
85567            }
85568            Stmt::DoWhile { 0: _field_0 } => {
85569                let mut __ast_path =
85570                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::DoWhile));
85571                <DoWhileStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85572                    _field_0,
85573                    visitor,
85574                    &mut *__ast_path,
85575                );
85576            }
85577            Stmt::For { 0: _field_0 } => {
85578                let mut __ast_path =
85579                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::For));
85580                <ForStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85581                    _field_0,
85582                    visitor,
85583                    &mut *__ast_path,
85584                );
85585            }
85586            Stmt::ForIn { 0: _field_0 } => {
85587                let mut __ast_path =
85588                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForIn));
85589                <ForInStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85590                    _field_0,
85591                    visitor,
85592                    &mut *__ast_path,
85593                );
85594            }
85595            Stmt::ForOf { 0: _field_0 } => {
85596                let mut __ast_path =
85597                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForOf));
85598                <ForOfStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85599                    _field_0,
85600                    visitor,
85601                    &mut *__ast_path,
85602                );
85603            }
85604            Stmt::Decl { 0: _field_0 } => {
85605                let mut __ast_path =
85606                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Decl));
85607                <Decl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85608                    _field_0,
85609                    visitor,
85610                    &mut *__ast_path,
85611                );
85612            }
85613            Stmt::Expr { 0: _field_0 } => {
85614                let mut __ast_path =
85615                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Expr));
85616                <ExprStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85617                    _field_0,
85618                    visitor,
85619                    &mut *__ast_path,
85620                );
85621            }
85622        }
85623    }
85624}
85625#[cfg(any(docsrs, feature = "path"))]
85626#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85627impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Str {
85628    #[doc = "Calls [VisitMutAstPath`::visit_mut_str`] with `self`."]
85629    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85630        <V as VisitMutAstPath>::visit_mut_str(visitor, self, __ast_path)
85631    }
85632
85633    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85634        match self {
85635            Str { span, value, raw } => {
85636                {
85637                    let mut __ast_path =
85638                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Span));
85639                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85640                        span,
85641                        visitor,
85642                        &mut *__ast_path,
85643                    )
85644                };
85645                {
85646                    let mut __ast_path =
85647                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Value));
85648                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85649                        value,
85650                        visitor,
85651                        &mut *__ast_path,
85652                    )
85653                };
85654                {
85655                    let mut __ast_path =
85656                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Raw));
85657                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85658                        raw,
85659                        visitor,
85660                        &mut *__ast_path,
85661                    )
85662                };
85663            }
85664        }
85665    }
85666}
85667#[cfg(any(docsrs, feature = "path"))]
85668#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85669impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Super {
85670    #[doc = "Calls [VisitMutAstPath`::visit_mut_super`] with `self`."]
85671    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85672        <V as VisitMutAstPath>::visit_mut_super(visitor, self, __ast_path)
85673    }
85674
85675    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85676        match self {
85677            Super { span } => {
85678                {
85679                    let mut __ast_path =
85680                        __ast_path.with_guard(AstParentKind::Super(self::fields::SuperField::Span));
85681                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85682                        span,
85683                        visitor,
85684                        &mut *__ast_path,
85685                    )
85686                };
85687            }
85688        }
85689    }
85690}
85691#[cfg(any(docsrs, feature = "path"))]
85692#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85693impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SuperProp {
85694    #[doc = "Calls [VisitMutAstPath`::visit_mut_super_prop`] with `self`."]
85695    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85696        <V as VisitMutAstPath>::visit_mut_super_prop(visitor, self, __ast_path)
85697    }
85698
85699    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85700        match self {
85701            SuperProp::Ident { 0: _field_0 } => {
85702                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
85703                    self::fields::SuperPropField::Ident,
85704                ));
85705                <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85706                    _field_0,
85707                    visitor,
85708                    &mut *__ast_path,
85709                );
85710            }
85711            SuperProp::Computed { 0: _field_0 } => {
85712                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
85713                    self::fields::SuperPropField::Computed,
85714                ));
85715                <ComputedPropName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85716                    _field_0,
85717                    visitor,
85718                    &mut *__ast_path,
85719                );
85720            }
85721        }
85722    }
85723}
85724#[cfg(any(docsrs, feature = "path"))]
85725#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85726impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SuperPropExpr {
85727    #[doc = "Calls [VisitMutAstPath`::visit_mut_super_prop_expr`] with `self`."]
85728    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85729        <V as VisitMutAstPath>::visit_mut_super_prop_expr(visitor, self, __ast_path)
85730    }
85731
85732    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85733        match self {
85734            SuperPropExpr { span, obj, prop } => {
85735                {
85736                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
85737                        self::fields::SuperPropExprField::Span,
85738                    ));
85739                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85740                        span,
85741                        visitor,
85742                        &mut *__ast_path,
85743                    )
85744                };
85745                {
85746                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
85747                        self::fields::SuperPropExprField::Obj,
85748                    ));
85749                    <Super as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85750                        obj,
85751                        visitor,
85752                        &mut *__ast_path,
85753                    )
85754                };
85755                {
85756                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
85757                        self::fields::SuperPropExprField::Prop,
85758                    ));
85759                    <SuperProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85760                        prop,
85761                        visitor,
85762                        &mut *__ast_path,
85763                    )
85764                };
85765            }
85766        }
85767    }
85768}
85769#[cfg(any(docsrs, feature = "path"))]
85770#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85771impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SwitchCase {
85772    #[doc = "Calls [VisitMutAstPath`::visit_mut_switch_case`] with `self`."]
85773    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85774        <V as VisitMutAstPath>::visit_mut_switch_case(visitor, self, __ast_path)
85775    }
85776
85777    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85778        match self {
85779            SwitchCase { span, test, cons } => {
85780                {
85781                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
85782                        self::fields::SwitchCaseField::Span,
85783                    ));
85784                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85785                        span,
85786                        visitor,
85787                        &mut *__ast_path,
85788                    )
85789                };
85790                {
85791                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
85792                        self::fields::SwitchCaseField::Test,
85793                    ));
85794                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85795                        test,
85796                        visitor,
85797                        &mut *__ast_path,
85798                    )
85799                };
85800                {
85801                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
85802                        self::fields::SwitchCaseField::Cons(usize::MAX),
85803                    ));
85804                    <Vec<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85805                        cons,
85806                        visitor,
85807                        &mut *__ast_path,
85808                    )
85809                };
85810            }
85811        }
85812    }
85813}
85814#[cfg(any(docsrs, feature = "path"))]
85815#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85816impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for SwitchStmt {
85817    #[doc = "Calls [VisitMutAstPath`::visit_mut_switch_stmt`] with `self`."]
85818    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85819        <V as VisitMutAstPath>::visit_mut_switch_stmt(visitor, self, __ast_path)
85820    }
85821
85822    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85823        match self {
85824            SwitchStmt {
85825                span,
85826                discriminant,
85827                cases,
85828            } => {
85829                {
85830                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
85831                        self::fields::SwitchStmtField::Span,
85832                    ));
85833                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85834                        span,
85835                        visitor,
85836                        &mut *__ast_path,
85837                    )
85838                };
85839                {
85840                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
85841                        self::fields::SwitchStmtField::Discriminant,
85842                    ));
85843                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85844                        discriminant,
85845                        visitor,
85846                        &mut *__ast_path,
85847                    )
85848                };
85849                {
85850                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
85851                        self::fields::SwitchStmtField::Cases(usize::MAX),
85852                    ));
85853                    <Vec<SwitchCase> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85854                        cases,
85855                        visitor,
85856                        &mut *__ast_path,
85857                    )
85858                };
85859            }
85860        }
85861    }
85862}
85863#[cfg(any(docsrs, feature = "path"))]
85864#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85865impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TaggedTpl {
85866    #[doc = "Calls [VisitMutAstPath`::visit_mut_tagged_tpl`] with `self`."]
85867    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85868        <V as VisitMutAstPath>::visit_mut_tagged_tpl(visitor, self, __ast_path)
85869    }
85870
85871    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85872        match self {
85873            TaggedTpl {
85874                span,
85875                ctxt,
85876                tag,
85877                type_params,
85878                tpl,
85879            } => {
85880                {
85881                    let mut __ast_path = __ast_path
85882                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Span));
85883                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85884                        span,
85885                        visitor,
85886                        &mut *__ast_path,
85887                    )
85888                };
85889                {
85890                    let mut __ast_path = __ast_path
85891                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Ctxt));
85892                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85893                        ctxt,
85894                        visitor,
85895                        &mut *__ast_path,
85896                    )
85897                };
85898                {
85899                    let mut __ast_path = __ast_path
85900                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tag));
85901                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85902                        tag,
85903                        visitor,
85904                        &mut *__ast_path,
85905                    )
85906                };
85907                {
85908                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TaggedTpl(
85909                        self::fields::TaggedTplField::TypeParams,
85910                    ));
85911                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
85912                };
85913                {
85914                    let mut __ast_path = __ast_path
85915                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tpl));
85916                    <Box<Tpl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85917                        tpl,
85918                        visitor,
85919                        &mut *__ast_path,
85920                    )
85921                };
85922            }
85923        }
85924    }
85925}
85926#[cfg(any(docsrs, feature = "path"))]
85927#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85928impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ThisExpr {
85929    #[doc = "Calls [VisitMutAstPath`::visit_mut_this_expr`] with `self`."]
85930    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85931        <V as VisitMutAstPath>::visit_mut_this_expr(visitor, self, __ast_path)
85932    }
85933
85934    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85935        match self {
85936            ThisExpr { span } => {
85937                {
85938                    let mut __ast_path = __ast_path
85939                        .with_guard(AstParentKind::ThisExpr(self::fields::ThisExprField::Span));
85940                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85941                        span,
85942                        visitor,
85943                        &mut *__ast_path,
85944                    )
85945                };
85946            }
85947        }
85948    }
85949}
85950#[cfg(any(docsrs, feature = "path"))]
85951#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85952impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for ThrowStmt {
85953    #[doc = "Calls [VisitMutAstPath`::visit_mut_throw_stmt`] with `self`."]
85954    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85955        <V as VisitMutAstPath>::visit_mut_throw_stmt(visitor, self, __ast_path)
85956    }
85957
85958    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85959        match self {
85960            ThrowStmt { span, arg } => {
85961                {
85962                    let mut __ast_path = __ast_path
85963                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Span));
85964                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85965                        span,
85966                        visitor,
85967                        &mut *__ast_path,
85968                    )
85969                };
85970                {
85971                    let mut __ast_path = __ast_path
85972                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Arg));
85973                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
85974                        arg,
85975                        visitor,
85976                        &mut *__ast_path,
85977                    )
85978                };
85979            }
85980        }
85981    }
85982}
85983#[cfg(any(docsrs, feature = "path"))]
85984#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
85985impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Tpl {
85986    #[doc = "Calls [VisitMutAstPath`::visit_mut_tpl`] with `self`."]
85987    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85988        <V as VisitMutAstPath>::visit_mut_tpl(visitor, self, __ast_path)
85989    }
85990
85991    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
85992        match self {
85993            Tpl {
85994                span,
85995                exprs,
85996                quasis,
85997            } => {
85998                {
85999                    let mut __ast_path =
86000                        __ast_path.with_guard(AstParentKind::Tpl(self::fields::TplField::Span));
86001                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86002                        span,
86003                        visitor,
86004                        &mut *__ast_path,
86005                    )
86006                };
86007                {
86008                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
86009                        self::fields::TplField::Exprs(usize::MAX),
86010                    ));
86011                    <Vec<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86012                        exprs,
86013                        visitor,
86014                        &mut *__ast_path,
86015                    )
86016                };
86017                {
86018                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
86019                        self::fields::TplField::Quasis(usize::MAX),
86020                    ));
86021                    <Vec<TplElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86022                        quasis,
86023                        visitor,
86024                        &mut *__ast_path,
86025                    )
86026                };
86027            }
86028        }
86029    }
86030}
86031#[cfg(any(docsrs, feature = "path"))]
86032#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86033impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TplElement {
86034    #[doc = "Calls [VisitMutAstPath`::visit_mut_tpl_element`] with `self`."]
86035    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86036        <V as VisitMutAstPath>::visit_mut_tpl_element(visitor, self, __ast_path)
86037    }
86038
86039    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86040        match self {
86041            TplElement {
86042                span,
86043                tail,
86044                cooked,
86045                raw,
86046            } => {
86047                {
86048                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
86049                        self::fields::TplElementField::Span,
86050                    ));
86051                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86052                        span,
86053                        visitor,
86054                        &mut *__ast_path,
86055                    )
86056                };
86057                {
86058                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
86059                        self::fields::TplElementField::Cooked,
86060                    ));
86061                    <Option<swc_atoms::Atom> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86062                        cooked,
86063                        visitor,
86064                        &mut *__ast_path,
86065                    )
86066                };
86067                {
86068                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
86069                        self::fields::TplElementField::Raw,
86070                    ));
86071                    <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86072                        raw,
86073                        visitor,
86074                        &mut *__ast_path,
86075                    )
86076                };
86077            }
86078        }
86079    }
86080}
86081#[cfg(any(docsrs, feature = "path"))]
86082#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86083impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TruePlusMinus {
86084    #[doc = "Calls [VisitMutAstPath`::visit_mut_true_plus_minus`] with `self`."]
86085    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86086        <V as VisitMutAstPath>::visit_mut_true_plus_minus(visitor, self, __ast_path)
86087    }
86088
86089    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86090        match self {
86091            TruePlusMinus::True => {}
86092            TruePlusMinus::Plus => {}
86093            TruePlusMinus::Minus => {}
86094        }
86095    }
86096}
86097#[cfg(any(docsrs, feature = "path"))]
86098#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86099impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TryStmt {
86100    #[doc = "Calls [VisitMutAstPath`::visit_mut_try_stmt`] with `self`."]
86101    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86102        <V as VisitMutAstPath>::visit_mut_try_stmt(visitor, self, __ast_path)
86103    }
86104
86105    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86106        match self {
86107            TryStmt {
86108                span,
86109                block,
86110                handler,
86111                finalizer,
86112            } => {
86113                {
86114                    let mut __ast_path = __ast_path
86115                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Span));
86116                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86117                        span,
86118                        visitor,
86119                        &mut *__ast_path,
86120                    )
86121                };
86122                {
86123                    let mut __ast_path = __ast_path
86124                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Block));
86125                    <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86126                        block,
86127                        visitor,
86128                        &mut *__ast_path,
86129                    )
86130                };
86131                {
86132                    let mut __ast_path = __ast_path
86133                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Handler));
86134                    <Option<CatchClause> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86135                        handler,
86136                        visitor,
86137                        &mut *__ast_path,
86138                    )
86139                };
86140                {
86141                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TryStmt(
86142                        self::fields::TryStmtField::Finalizer,
86143                    ));
86144                    <Option<BlockStmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86145                        finalizer,
86146                        visitor,
86147                        &mut *__ast_path,
86148                    )
86149                };
86150            }
86151        }
86152    }
86153}
86154#[cfg(any(docsrs, feature = "path"))]
86155#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86156impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsArrayType {
86157    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_array_type`] with `self`."]
86158    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86159        <V as VisitMutAstPath>::visit_mut_ts_array_type(visitor, self, __ast_path)
86160    }
86161
86162    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86163        match self {
86164            TsArrayType { span, elem_type } => {
86165                {
86166                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
86167                        self::fields::TsArrayTypeField::Span,
86168                    ));
86169                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86170                        span,
86171                        visitor,
86172                        &mut *__ast_path,
86173                    )
86174                };
86175                {
86176                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
86177                        self::fields::TsArrayTypeField::ElemType,
86178                    ));
86179                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86180                        elem_type,
86181                        visitor,
86182                        &mut *__ast_path,
86183                    )
86184                };
86185            }
86186        }
86187    }
86188}
86189#[cfg(any(docsrs, feature = "path"))]
86190#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86191impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsAsExpr {
86192    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_as_expr`] with `self`."]
86193    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86194        <V as VisitMutAstPath>::visit_mut_ts_as_expr(visitor, self, __ast_path)
86195    }
86196
86197    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86198        match self {
86199            TsAsExpr {
86200                span,
86201                expr,
86202                type_ann,
86203            } => {
86204                {
86205                    let mut __ast_path = __ast_path
86206                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Span));
86207                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86208                        span,
86209                        visitor,
86210                        &mut *__ast_path,
86211                    )
86212                };
86213                {
86214                    let mut __ast_path = __ast_path
86215                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Expr));
86216                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86217                        expr,
86218                        visitor,
86219                        &mut *__ast_path,
86220                    )
86221                };
86222                {
86223                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsAsExpr(
86224                        self::fields::TsAsExprField::TypeAnn,
86225                    ));
86226                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86227                        type_ann,
86228                        visitor,
86229                        &mut *__ast_path,
86230                    )
86231                };
86232            }
86233        }
86234    }
86235}
86236#[cfg(any(docsrs, feature = "path"))]
86237#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86238impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsCallSignatureDecl {
86239    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_call_signature_decl`] with `self`."]
86240    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86241        <V as VisitMutAstPath>::visit_mut_ts_call_signature_decl(visitor, self, __ast_path)
86242    }
86243
86244    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86245        match self {
86246            TsCallSignatureDecl {
86247                span,
86248                params,
86249                type_ann,
86250                type_params,
86251            } => {
86252                {
86253                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86254                        self::fields::TsCallSignatureDeclField::Span,
86255                    ));
86256                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86257                        span,
86258                        visitor,
86259                        &mut *__ast_path,
86260                    )
86261                };
86262                {
86263                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86264                        self::fields::TsCallSignatureDeclField::Params(usize::MAX),
86265                    ));
86266                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86267                        params,
86268                        visitor,
86269                        &mut *__ast_path,
86270                    )
86271                };
86272                {
86273                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86274                        self::fields::TsCallSignatureDeclField::TypeAnn,
86275                    ));
86276                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86277                        type_ann,
86278                        visitor,
86279                        &mut *__ast_path,
86280                    )
86281                };
86282                {
86283                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
86284                        self::fields::TsCallSignatureDeclField::TypeParams,
86285                    ));
86286                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
86287                };
86288            }
86289        }
86290    }
86291}
86292#[cfg(any(docsrs, feature = "path"))]
86293#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86294impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConditionalType {
86295    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_conditional_type`] with `self`."]
86296    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86297        <V as VisitMutAstPath>::visit_mut_ts_conditional_type(visitor, self, __ast_path)
86298    }
86299
86300    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86301        match self {
86302            TsConditionalType {
86303                span,
86304                check_type,
86305                extends_type,
86306                true_type,
86307                false_type,
86308            } => {
86309                {
86310                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86311                        self::fields::TsConditionalTypeField::Span,
86312                    ));
86313                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86314                        span,
86315                        visitor,
86316                        &mut *__ast_path,
86317                    )
86318                };
86319                {
86320                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86321                        self::fields::TsConditionalTypeField::CheckType,
86322                    ));
86323                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86324                        check_type,
86325                        visitor,
86326                        &mut *__ast_path,
86327                    )
86328                };
86329                {
86330                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86331                        self::fields::TsConditionalTypeField::ExtendsType,
86332                    ));
86333                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86334                        extends_type,
86335                        visitor,
86336                        &mut *__ast_path,
86337                    )
86338                };
86339                {
86340                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86341                        self::fields::TsConditionalTypeField::TrueType,
86342                    ));
86343                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86344                        true_type,
86345                        visitor,
86346                        &mut *__ast_path,
86347                    )
86348                };
86349                {
86350                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
86351                        self::fields::TsConditionalTypeField::FalseType,
86352                    ));
86353                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86354                        false_type,
86355                        visitor,
86356                        &mut *__ast_path,
86357                    )
86358                };
86359            }
86360        }
86361    }
86362}
86363#[cfg(any(docsrs, feature = "path"))]
86364#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86365impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConstAssertion {
86366    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_const_assertion`] with `self`."]
86367    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86368        <V as VisitMutAstPath>::visit_mut_ts_const_assertion(visitor, self, __ast_path)
86369    }
86370
86371    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86372        match self {
86373            TsConstAssertion { span, expr } => {
86374                {
86375                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
86376                        self::fields::TsConstAssertionField::Span,
86377                    ));
86378                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86379                        span,
86380                        visitor,
86381                        &mut *__ast_path,
86382                    )
86383                };
86384                {
86385                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
86386                        self::fields::TsConstAssertionField::Expr,
86387                    ));
86388                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86389                        expr,
86390                        visitor,
86391                        &mut *__ast_path,
86392                    )
86393                };
86394            }
86395        }
86396    }
86397}
86398#[cfg(any(docsrs, feature = "path"))]
86399#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86400impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConstructSignatureDecl {
86401    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_construct_signature_decl`] with `self`."]
86402    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86403        <V as VisitMutAstPath>::visit_mut_ts_construct_signature_decl(visitor, self, __ast_path)
86404    }
86405
86406    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86407        match self {
86408            TsConstructSignatureDecl {
86409                span,
86410                params,
86411                type_ann,
86412                type_params,
86413            } => {
86414                {
86415                    let mut __ast_path =
86416                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86417                            self::fields::TsConstructSignatureDeclField::Span,
86418                        ));
86419                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86420                        span,
86421                        visitor,
86422                        &mut *__ast_path,
86423                    )
86424                };
86425                {
86426                    let mut __ast_path =
86427                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86428                            self::fields::TsConstructSignatureDeclField::Params(usize::MAX),
86429                        ));
86430                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86431                        params,
86432                        visitor,
86433                        &mut *__ast_path,
86434                    )
86435                };
86436                {
86437                    let mut __ast_path =
86438                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86439                            self::fields::TsConstructSignatureDeclField::TypeAnn,
86440                        ));
86441                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86442                        type_ann,
86443                        visitor,
86444                        &mut *__ast_path,
86445                    )
86446                };
86447                {
86448                    let mut __ast_path =
86449                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
86450                            self::fields::TsConstructSignatureDeclField::TypeParams,
86451                        ));
86452                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
86453                };
86454            }
86455        }
86456    }
86457}
86458#[cfg(any(docsrs, feature = "path"))]
86459#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86460impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsConstructorType {
86461    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_constructor_type`] with `self`."]
86462    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86463        <V as VisitMutAstPath>::visit_mut_ts_constructor_type(visitor, self, __ast_path)
86464    }
86465
86466    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86467        match self {
86468            TsConstructorType {
86469                span,
86470                params,
86471                type_params,
86472                type_ann,
86473                is_abstract,
86474            } => {
86475                {
86476                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
86477                        self::fields::TsConstructorTypeField::Span,
86478                    ));
86479                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86480                        span,
86481                        visitor,
86482                        &mut *__ast_path,
86483                    )
86484                };
86485                {
86486                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
86487                        self::fields::TsConstructorTypeField::Params(usize::MAX),
86488                    ));
86489                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86490                        params,
86491                        visitor,
86492                        &mut *__ast_path,
86493                    )
86494                };
86495                {
86496                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
86497                        self::fields::TsConstructorTypeField::TypeParams,
86498                    ));
86499                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
86500                };
86501                {
86502                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
86503                        self::fields::TsConstructorTypeField::TypeAnn,
86504                    ));
86505                    <Box<TsTypeAnn> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86506                        type_ann,
86507                        visitor,
86508                        &mut *__ast_path,
86509                    )
86510                };
86511            }
86512        }
86513    }
86514}
86515#[cfg(any(docsrs, feature = "path"))]
86516#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86517impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEntityName {
86518    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_entity_name`] with `self`."]
86519    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86520        <V as VisitMutAstPath>::visit_mut_ts_entity_name(visitor, self, __ast_path)
86521    }
86522
86523    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86524        match self {
86525            TsEntityName::TsQualifiedName { 0: _field_0 } => {
86526                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
86527                    self::fields::TsEntityNameField::TsQualifiedName,
86528                ));
86529                <Box<TsQualifiedName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86530                    _field_0,
86531                    visitor,
86532                    &mut *__ast_path,
86533                );
86534            }
86535            TsEntityName::Ident { 0: _field_0 } => {
86536                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
86537                    self::fields::TsEntityNameField::Ident,
86538                ));
86539                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86540                    _field_0,
86541                    visitor,
86542                    &mut *__ast_path,
86543                );
86544            }
86545        }
86546    }
86547}
86548#[cfg(any(docsrs, feature = "path"))]
86549#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86550impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEnumDecl {
86551    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_decl`] with `self`."]
86552    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86553        <V as VisitMutAstPath>::visit_mut_ts_enum_decl(visitor, self, __ast_path)
86554    }
86555
86556    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86557        match self {
86558            TsEnumDecl {
86559                span,
86560                declare,
86561                is_const,
86562                id,
86563                members,
86564            } => {
86565                {
86566                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
86567                        self::fields::TsEnumDeclField::Span,
86568                    ));
86569                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86570                        span,
86571                        visitor,
86572                        &mut *__ast_path,
86573                    )
86574                };
86575                {
86576                    let mut __ast_path = __ast_path
86577                        .with_guard(AstParentKind::TsEnumDecl(self::fields::TsEnumDeclField::Id));
86578                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86579                        id,
86580                        visitor,
86581                        &mut *__ast_path,
86582                    )
86583                };
86584                {
86585                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
86586                        self::fields::TsEnumDeclField::Members(usize::MAX),
86587                    ));
86588                    <Vec<TsEnumMember> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86589                        members,
86590                        visitor,
86591                        &mut *__ast_path,
86592                    )
86593                };
86594            }
86595        }
86596    }
86597}
86598#[cfg(any(docsrs, feature = "path"))]
86599#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86600impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEnumMember {
86601    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_member`] with `self`."]
86602    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86603        <V as VisitMutAstPath>::visit_mut_ts_enum_member(visitor, self, __ast_path)
86604    }
86605
86606    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86607        match self {
86608            TsEnumMember { span, id, init } => {
86609                {
86610                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
86611                        self::fields::TsEnumMemberField::Span,
86612                    ));
86613                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86614                        span,
86615                        visitor,
86616                        &mut *__ast_path,
86617                    )
86618                };
86619                {
86620                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
86621                        self::fields::TsEnumMemberField::Id,
86622                    ));
86623                    <TsEnumMemberId as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86624                        id,
86625                        visitor,
86626                        &mut *__ast_path,
86627                    )
86628                };
86629                {
86630                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
86631                        self::fields::TsEnumMemberField::Init,
86632                    ));
86633                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86634                        init,
86635                        visitor,
86636                        &mut *__ast_path,
86637                    )
86638                };
86639            }
86640        }
86641    }
86642}
86643#[cfg(any(docsrs, feature = "path"))]
86644#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86645impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsEnumMemberId {
86646    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_member_id`] with `self`."]
86647    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86648        <V as VisitMutAstPath>::visit_mut_ts_enum_member_id(visitor, self, __ast_path)
86649    }
86650
86651    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86652        match self {
86653            TsEnumMemberId::Ident { 0: _field_0 } => {
86654                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
86655                    self::fields::TsEnumMemberIdField::Ident,
86656                ));
86657                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86658                    _field_0,
86659                    visitor,
86660                    &mut *__ast_path,
86661                );
86662            }
86663            TsEnumMemberId::Str { 0: _field_0 } => {
86664                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
86665                    self::fields::TsEnumMemberIdField::Str,
86666                ));
86667                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86668                    _field_0,
86669                    visitor,
86670                    &mut *__ast_path,
86671                );
86672            }
86673        }
86674    }
86675}
86676#[cfg(any(docsrs, feature = "path"))]
86677#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86678impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsExportAssignment {
86679    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_export_assignment`] with `self`."]
86680    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86681        <V as VisitMutAstPath>::visit_mut_ts_export_assignment(visitor, self, __ast_path)
86682    }
86683
86684    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86685        match self {
86686            TsExportAssignment { span, expr } => {
86687                {
86688                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
86689                        self::fields::TsExportAssignmentField::Span,
86690                    ));
86691                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86692                        span,
86693                        visitor,
86694                        &mut *__ast_path,
86695                    )
86696                };
86697                {
86698                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
86699                        self::fields::TsExportAssignmentField::Expr,
86700                    ));
86701                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86702                        expr,
86703                        visitor,
86704                        &mut *__ast_path,
86705                    )
86706                };
86707            }
86708        }
86709    }
86710}
86711#[cfg(any(docsrs, feature = "path"))]
86712#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86713impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsExprWithTypeArgs {
86714    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_expr_with_type_args`] with `self`."]
86715    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86716        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_args(visitor, self, __ast_path)
86717    }
86718
86719    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86720        match self {
86721            TsExprWithTypeArgs {
86722                span,
86723                expr,
86724                type_args,
86725            } => {
86726                {
86727                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
86728                        self::fields::TsExprWithTypeArgsField::Span,
86729                    ));
86730                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86731                        span,
86732                        visitor,
86733                        &mut *__ast_path,
86734                    )
86735                };
86736                {
86737                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
86738                        self::fields::TsExprWithTypeArgsField::Expr,
86739                    ));
86740                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86741                        expr,
86742                        visitor,
86743                        &mut *__ast_path,
86744                    )
86745                };
86746                {
86747                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
86748                        self::fields::TsExprWithTypeArgsField::TypeArgs,
86749                    ));
86750                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
86751                };
86752            }
86753        }
86754    }
86755}
86756#[cfg(any(docsrs, feature = "path"))]
86757#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86758impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsExternalModuleRef {
86759    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_external_module_ref`] with `self`."]
86760    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86761        <V as VisitMutAstPath>::visit_mut_ts_external_module_ref(visitor, self, __ast_path)
86762    }
86763
86764    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86765        match self {
86766            TsExternalModuleRef { span, expr } => {
86767                {
86768                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
86769                        self::fields::TsExternalModuleRefField::Span,
86770                    ));
86771                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86772                        span,
86773                        visitor,
86774                        &mut *__ast_path,
86775                    )
86776                };
86777                {
86778                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
86779                        self::fields::TsExternalModuleRefField::Expr,
86780                    ));
86781                    <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86782                        expr,
86783                        visitor,
86784                        &mut *__ast_path,
86785                    )
86786                };
86787            }
86788        }
86789    }
86790}
86791#[cfg(any(docsrs, feature = "path"))]
86792#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86793impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsFnOrConstructorType {
86794    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_or_constructor_type`] with `self`."]
86795    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86796        <V as VisitMutAstPath>::visit_mut_ts_fn_or_constructor_type(visitor, self, __ast_path)
86797    }
86798
86799    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86800        match self {
86801            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
86802                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
86803                    self::fields::TsFnOrConstructorTypeField::TsFnType,
86804                ));
86805                <TsFnType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86806                    _field_0,
86807                    visitor,
86808                    &mut *__ast_path,
86809                );
86810            }
86811            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
86812                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
86813                    self::fields::TsFnOrConstructorTypeField::TsConstructorType,
86814                ));
86815                <TsConstructorType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86816                    _field_0,
86817                    visitor,
86818                    &mut *__ast_path,
86819                );
86820            }
86821        }
86822    }
86823}
86824#[cfg(any(docsrs, feature = "path"))]
86825#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86826impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsFnParam {
86827    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_param`] with `self`."]
86828    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86829        <V as VisitMutAstPath>::visit_mut_ts_fn_param(visitor, self, __ast_path)
86830    }
86831
86832    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86833        match self {
86834            TsFnParam::Ident { 0: _field_0 } => {
86835                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
86836                    self::fields::TsFnParamField::Ident,
86837                ));
86838                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86839                    _field_0,
86840                    visitor,
86841                    &mut *__ast_path,
86842                );
86843            }
86844            TsFnParam::Array { 0: _field_0 } => {
86845                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
86846                    self::fields::TsFnParamField::Array,
86847                ));
86848                <ArrayPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86849                    _field_0,
86850                    visitor,
86851                    &mut *__ast_path,
86852                );
86853            }
86854            TsFnParam::Rest { 0: _field_0 } => {
86855                let mut __ast_path = __ast_path
86856                    .with_guard(AstParentKind::TsFnParam(self::fields::TsFnParamField::Rest));
86857                <RestPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86858                    _field_0,
86859                    visitor,
86860                    &mut *__ast_path,
86861                );
86862            }
86863            TsFnParam::Object { 0: _field_0 } => {
86864                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
86865                    self::fields::TsFnParamField::Object,
86866                ));
86867                <ObjectPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86868                    _field_0,
86869                    visitor,
86870                    &mut *__ast_path,
86871                );
86872            }
86873        }
86874    }
86875}
86876#[cfg(any(docsrs, feature = "path"))]
86877#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86878impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsFnType {
86879    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_type`] with `self`."]
86880    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86881        <V as VisitMutAstPath>::visit_mut_ts_fn_type(visitor, self, __ast_path)
86882    }
86883
86884    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86885        match self {
86886            TsFnType {
86887                span,
86888                params,
86889                type_params,
86890                type_ann,
86891            } => {
86892                {
86893                    let mut __ast_path = __ast_path
86894                        .with_guard(AstParentKind::TsFnType(self::fields::TsFnTypeField::Span));
86895                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86896                        span,
86897                        visitor,
86898                        &mut *__ast_path,
86899                    )
86900                };
86901                {
86902                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
86903                        self::fields::TsFnTypeField::Params(usize::MAX),
86904                    ));
86905                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86906                        params,
86907                        visitor,
86908                        &mut *__ast_path,
86909                    )
86910                };
86911                {
86912                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
86913                        self::fields::TsFnTypeField::TypeParams,
86914                    ));
86915                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
86916                };
86917                {
86918                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
86919                        self::fields::TsFnTypeField::TypeAnn,
86920                    ));
86921                    <Box<TsTypeAnn> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86922                        type_ann,
86923                        visitor,
86924                        &mut *__ast_path,
86925                    )
86926                };
86927            }
86928        }
86929    }
86930}
86931#[cfg(any(docsrs, feature = "path"))]
86932#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86933impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsGetterSignature {
86934    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_getter_signature`] with `self`."]
86935    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86936        <V as VisitMutAstPath>::visit_mut_ts_getter_signature(visitor, self, __ast_path)
86937    }
86938
86939    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86940        match self {
86941            TsGetterSignature {
86942                span,
86943                key,
86944                computed,
86945                type_ann,
86946            } => {
86947                {
86948                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
86949                        self::fields::TsGetterSignatureField::Span,
86950                    ));
86951                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86952                        span,
86953                        visitor,
86954                        &mut *__ast_path,
86955                    )
86956                };
86957                {
86958                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
86959                        self::fields::TsGetterSignatureField::Key,
86960                    ));
86961                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86962                        key,
86963                        visitor,
86964                        &mut *__ast_path,
86965                    )
86966                };
86967                {
86968                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
86969                        self::fields::TsGetterSignatureField::TypeAnn,
86970                    ));
86971                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
86972                        type_ann,
86973                        visitor,
86974                        &mut *__ast_path,
86975                    )
86976                };
86977            }
86978        }
86979    }
86980}
86981#[cfg(any(docsrs, feature = "path"))]
86982#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
86983impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsImportEqualsDecl {
86984    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_import_equals_decl`] with `self`."]
86985    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86986        <V as VisitMutAstPath>::visit_mut_ts_import_equals_decl(visitor, self, __ast_path)
86987    }
86988
86989    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
86990        match self {
86991            TsImportEqualsDecl {
86992                span,
86993                is_export,
86994                is_type_only,
86995                id,
86996                module_ref,
86997            } => {
86998                {
86999                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
87000                        self::fields::TsImportEqualsDeclField::Span,
87001                    ));
87002                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87003                        span,
87004                        visitor,
87005                        &mut *__ast_path,
87006                    )
87007                };
87008                {
87009                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
87010                        self::fields::TsImportEqualsDeclField::Id,
87011                    ));
87012                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87013                        id,
87014                        visitor,
87015                        &mut *__ast_path,
87016                    )
87017                };
87018                {
87019                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
87020                        self::fields::TsImportEqualsDeclField::ModuleRef,
87021                    ));
87022                    <TsModuleRef as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87023                        module_ref,
87024                        visitor,
87025                        &mut *__ast_path,
87026                    )
87027                };
87028            }
87029        }
87030    }
87031}
87032#[cfg(any(docsrs, feature = "path"))]
87033#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87034impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsImportType {
87035    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_import_type`] with `self`."]
87036    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87037        <V as VisitMutAstPath>::visit_mut_ts_import_type(visitor, self, __ast_path)
87038    }
87039
87040    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87041        match self {
87042            TsImportType {
87043                span,
87044                arg,
87045                qualifier,
87046                type_args,
87047            } => {
87048                {
87049                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87050                        self::fields::TsImportTypeField::Span,
87051                    ));
87052                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87053                        span,
87054                        visitor,
87055                        &mut *__ast_path,
87056                    )
87057                };
87058                {
87059                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87060                        self::fields::TsImportTypeField::Arg,
87061                    ));
87062                    <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87063                        arg,
87064                        visitor,
87065                        &mut *__ast_path,
87066                    )
87067                };
87068                {
87069                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87070                        self::fields::TsImportTypeField::Qualifier,
87071                    ));
87072                    <Option<TsEntityName> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87073                        qualifier,
87074                        visitor,
87075                        &mut *__ast_path,
87076                    )
87077                };
87078                {
87079                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
87080                        self::fields::TsImportTypeField::TypeArgs,
87081                    ));
87082                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
87083                };
87084            }
87085        }
87086    }
87087}
87088#[cfg(any(docsrs, feature = "path"))]
87089#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87090impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsIndexSignature {
87091    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_index_signature`] with `self`."]
87092    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87093        <V as VisitMutAstPath>::visit_mut_ts_index_signature(visitor, self, __ast_path)
87094    }
87095
87096    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87097        match self {
87098            TsIndexSignature {
87099                params,
87100                type_ann,
87101                readonly,
87102                is_static,
87103                span,
87104            } => {
87105                {
87106                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
87107                        self::fields::TsIndexSignatureField::Params(usize::MAX),
87108                    ));
87109                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87110                        params,
87111                        visitor,
87112                        &mut *__ast_path,
87113                    )
87114                };
87115                {
87116                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
87117                        self::fields::TsIndexSignatureField::TypeAnn,
87118                    ));
87119                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87120                        type_ann,
87121                        visitor,
87122                        &mut *__ast_path,
87123                    )
87124                };
87125                {
87126                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
87127                        self::fields::TsIndexSignatureField::Span,
87128                    ));
87129                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87130                        span,
87131                        visitor,
87132                        &mut *__ast_path,
87133                    )
87134                };
87135            }
87136        }
87137    }
87138}
87139#[cfg(any(docsrs, feature = "path"))]
87140#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87141impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsIndexedAccessType {
87142    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_indexed_access_type`] with `self`."]
87143    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87144        <V as VisitMutAstPath>::visit_mut_ts_indexed_access_type(visitor, self, __ast_path)
87145    }
87146
87147    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87148        match self {
87149            TsIndexedAccessType {
87150                span,
87151                readonly,
87152                obj_type,
87153                index_type,
87154            } => {
87155                {
87156                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
87157                        self::fields::TsIndexedAccessTypeField::Span,
87158                    ));
87159                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87160                        span,
87161                        visitor,
87162                        &mut *__ast_path,
87163                    )
87164                };
87165                {
87166                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
87167                        self::fields::TsIndexedAccessTypeField::ObjType,
87168                    ));
87169                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87170                        obj_type,
87171                        visitor,
87172                        &mut *__ast_path,
87173                    )
87174                };
87175                {
87176                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
87177                        self::fields::TsIndexedAccessTypeField::IndexType,
87178                    ));
87179                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87180                        index_type,
87181                        visitor,
87182                        &mut *__ast_path,
87183                    )
87184                };
87185            }
87186        }
87187    }
87188}
87189#[cfg(any(docsrs, feature = "path"))]
87190#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87191impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInferType {
87192    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_infer_type`] with `self`."]
87193    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87194        <V as VisitMutAstPath>::visit_mut_ts_infer_type(visitor, self, __ast_path)
87195    }
87196
87197    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87198        match self {
87199            TsInferType { span, type_param } => {
87200                {
87201                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
87202                        self::fields::TsInferTypeField::Span,
87203                    ));
87204                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87205                        span,
87206                        visitor,
87207                        &mut *__ast_path,
87208                    )
87209                };
87210                {
87211                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
87212                        self::fields::TsInferTypeField::TypeParam,
87213                    ));
87214                    <TsTypeParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87215                        type_param,
87216                        visitor,
87217                        &mut *__ast_path,
87218                    )
87219                };
87220            }
87221        }
87222    }
87223}
87224#[cfg(any(docsrs, feature = "path"))]
87225#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87226impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInstantiation {
87227    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_instantiation`] with `self`."]
87228    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87229        <V as VisitMutAstPath>::visit_mut_ts_instantiation(visitor, self, __ast_path)
87230    }
87231
87232    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87233        match self {
87234            TsInstantiation {
87235                span,
87236                expr,
87237                type_args,
87238            } => {
87239                {
87240                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
87241                        self::fields::TsInstantiationField::Span,
87242                    ));
87243                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87244                        span,
87245                        visitor,
87246                        &mut *__ast_path,
87247                    )
87248                };
87249                {
87250                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
87251                        self::fields::TsInstantiationField::Expr,
87252                    ));
87253                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87254                        expr,
87255                        visitor,
87256                        &mut *__ast_path,
87257                    )
87258                };
87259                {
87260                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
87261                        self::fields::TsInstantiationField::TypeArgs,
87262                    ));
87263                    < Box < TsTypeParamInstantiation > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
87264                };
87265            }
87266        }
87267    }
87268}
87269#[cfg(any(docsrs, feature = "path"))]
87270#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87271impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInterfaceBody {
87272    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_interface_body`] with `self`."]
87273    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87274        <V as VisitMutAstPath>::visit_mut_ts_interface_body(visitor, self, __ast_path)
87275    }
87276
87277    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87278        match self {
87279            TsInterfaceBody { span, body } => {
87280                {
87281                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
87282                        self::fields::TsInterfaceBodyField::Span,
87283                    ));
87284                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87285                        span,
87286                        visitor,
87287                        &mut *__ast_path,
87288                    )
87289                };
87290                {
87291                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
87292                        self::fields::TsInterfaceBodyField::Body(usize::MAX),
87293                    ));
87294                    <Vec<TsTypeElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87295                        body,
87296                        visitor,
87297                        &mut *__ast_path,
87298                    )
87299                };
87300            }
87301        }
87302    }
87303}
87304#[cfg(any(docsrs, feature = "path"))]
87305#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87306impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsInterfaceDecl {
87307    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_interface_decl`] with `self`."]
87308    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87309        <V as VisitMutAstPath>::visit_mut_ts_interface_decl(visitor, self, __ast_path)
87310    }
87311
87312    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87313        match self {
87314            TsInterfaceDecl {
87315                span,
87316                id,
87317                declare,
87318                type_params,
87319                extends,
87320                body,
87321            } => {
87322                {
87323                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87324                        self::fields::TsInterfaceDeclField::Span,
87325                    ));
87326                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87327                        span,
87328                        visitor,
87329                        &mut *__ast_path,
87330                    )
87331                };
87332                {
87333                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87334                        self::fields::TsInterfaceDeclField::Id,
87335                    ));
87336                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87337                        id,
87338                        visitor,
87339                        &mut *__ast_path,
87340                    )
87341                };
87342                {
87343                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87344                        self::fields::TsInterfaceDeclField::TypeParams,
87345                    ));
87346                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
87347                };
87348                {
87349                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87350                        self::fields::TsInterfaceDeclField::Extends(usize::MAX),
87351                    ));
87352                    <Vec<TsExprWithTypeArgs> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87353                        extends,
87354                        visitor,
87355                        &mut *__ast_path,
87356                    )
87357                };
87358                {
87359                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
87360                        self::fields::TsInterfaceDeclField::Body,
87361                    ));
87362                    <TsInterfaceBody as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87363                        body,
87364                        visitor,
87365                        &mut *__ast_path,
87366                    )
87367                };
87368            }
87369        }
87370    }
87371}
87372#[cfg(any(docsrs, feature = "path"))]
87373#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87374impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsIntersectionType {
87375    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_intersection_type`] with `self`."]
87376    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87377        <V as VisitMutAstPath>::visit_mut_ts_intersection_type(visitor, self, __ast_path)
87378    }
87379
87380    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87381        match self {
87382            TsIntersectionType { span, types } => {
87383                {
87384                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
87385                        self::fields::TsIntersectionTypeField::Span,
87386                    ));
87387                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87388                        span,
87389                        visitor,
87390                        &mut *__ast_path,
87391                    )
87392                };
87393                {
87394                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
87395                        self::fields::TsIntersectionTypeField::Types(usize::MAX),
87396                    ));
87397                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87398                        types,
87399                        visitor,
87400                        &mut *__ast_path,
87401                    )
87402                };
87403            }
87404        }
87405    }
87406}
87407#[cfg(any(docsrs, feature = "path"))]
87408#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87409impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsKeywordType {
87410    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_keyword_type`] with `self`."]
87411    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87412        <V as VisitMutAstPath>::visit_mut_ts_keyword_type(visitor, self, __ast_path)
87413    }
87414
87415    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87416        match self {
87417            TsKeywordType { span, kind } => {
87418                {
87419                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
87420                        self::fields::TsKeywordTypeField::Span,
87421                    ));
87422                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87423                        span,
87424                        visitor,
87425                        &mut *__ast_path,
87426                    )
87427                };
87428                {
87429                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
87430                        self::fields::TsKeywordTypeField::Kind,
87431                    ));
87432                    <TsKeywordTypeKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87433                        kind,
87434                        visitor,
87435                        &mut *__ast_path,
87436                    )
87437                };
87438            }
87439        }
87440    }
87441}
87442#[cfg(any(docsrs, feature = "path"))]
87443#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87444impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsKeywordTypeKind {
87445    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_keyword_type_kind`] with `self`."]
87446    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87447        <V as VisitMutAstPath>::visit_mut_ts_keyword_type_kind(visitor, self, __ast_path)
87448    }
87449
87450    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87451        match self {
87452            TsKeywordTypeKind::TsAnyKeyword => {}
87453            TsKeywordTypeKind::TsUnknownKeyword => {}
87454            TsKeywordTypeKind::TsNumberKeyword => {}
87455            TsKeywordTypeKind::TsObjectKeyword => {}
87456            TsKeywordTypeKind::TsBooleanKeyword => {}
87457            TsKeywordTypeKind::TsBigIntKeyword => {}
87458            TsKeywordTypeKind::TsStringKeyword => {}
87459            TsKeywordTypeKind::TsSymbolKeyword => {}
87460            TsKeywordTypeKind::TsVoidKeyword => {}
87461            TsKeywordTypeKind::TsUndefinedKeyword => {}
87462            TsKeywordTypeKind::TsNullKeyword => {}
87463            TsKeywordTypeKind::TsNeverKeyword => {}
87464            TsKeywordTypeKind::TsIntrinsicKeyword => {}
87465        }
87466    }
87467}
87468#[cfg(any(docsrs, feature = "path"))]
87469#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87470impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsLit {
87471    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_lit`] with `self`."]
87472    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87473        <V as VisitMutAstPath>::visit_mut_ts_lit(visitor, self, __ast_path)
87474    }
87475
87476    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87477        match self {
87478            TsLit::Number { 0: _field_0 } => {
87479                let mut __ast_path =
87480                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Number));
87481                <Number as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87482                    _field_0,
87483                    visitor,
87484                    &mut *__ast_path,
87485                );
87486            }
87487            TsLit::Str { 0: _field_0 } => {
87488                let mut __ast_path =
87489                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Str));
87490                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87491                    _field_0,
87492                    visitor,
87493                    &mut *__ast_path,
87494                );
87495            }
87496            TsLit::Bool { 0: _field_0 } => {
87497                let mut __ast_path =
87498                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Bool));
87499                <Bool as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87500                    _field_0,
87501                    visitor,
87502                    &mut *__ast_path,
87503                );
87504            }
87505            TsLit::BigInt { 0: _field_0 } => {
87506                let mut __ast_path =
87507                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::BigInt));
87508                <BigInt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87509                    _field_0,
87510                    visitor,
87511                    &mut *__ast_path,
87512                );
87513            }
87514            TsLit::Tpl { 0: _field_0 } => {
87515                let mut __ast_path =
87516                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Tpl));
87517                <TsTplLitType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87518                    _field_0,
87519                    visitor,
87520                    &mut *__ast_path,
87521                );
87522            }
87523        }
87524    }
87525}
87526#[cfg(any(docsrs, feature = "path"))]
87527#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87528impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsLitType {
87529    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_lit_type`] with `self`."]
87530    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87531        <V as VisitMutAstPath>::visit_mut_ts_lit_type(visitor, self, __ast_path)
87532    }
87533
87534    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87535        match self {
87536            TsLitType { span, lit } => {
87537                {
87538                    let mut __ast_path = __ast_path
87539                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Span));
87540                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87541                        span,
87542                        visitor,
87543                        &mut *__ast_path,
87544                    )
87545                };
87546                {
87547                    let mut __ast_path = __ast_path
87548                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Lit));
87549                    <TsLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87550                        lit,
87551                        visitor,
87552                        &mut *__ast_path,
87553                    )
87554                };
87555            }
87556        }
87557    }
87558}
87559#[cfg(any(docsrs, feature = "path"))]
87560#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87561impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsMappedType {
87562    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_mapped_type`] with `self`."]
87563    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87564        <V as VisitMutAstPath>::visit_mut_ts_mapped_type(visitor, self, __ast_path)
87565    }
87566
87567    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87568        match self {
87569            TsMappedType {
87570                span,
87571                readonly,
87572                type_param,
87573                name_type,
87574                optional,
87575                type_ann,
87576            } => {
87577                {
87578                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
87579                        self::fields::TsMappedTypeField::Span,
87580                    ));
87581                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87582                        span,
87583                        visitor,
87584                        &mut *__ast_path,
87585                    )
87586                };
87587                {
87588                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
87589                        self::fields::TsMappedTypeField::Readonly,
87590                    ));
87591                    <Option<TruePlusMinus> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87592                        readonly,
87593                        visitor,
87594                        &mut *__ast_path,
87595                    )
87596                };
87597                {
87598                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
87599                        self::fields::TsMappedTypeField::TypeParam,
87600                    ));
87601                    <TsTypeParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87602                        type_param,
87603                        visitor,
87604                        &mut *__ast_path,
87605                    )
87606                };
87607                {
87608                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
87609                        self::fields::TsMappedTypeField::NameType,
87610                    ));
87611                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87612                        name_type,
87613                        visitor,
87614                        &mut *__ast_path,
87615                    )
87616                };
87617                {
87618                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
87619                        self::fields::TsMappedTypeField::Optional,
87620                    ));
87621                    <Option<TruePlusMinus> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87622                        optional,
87623                        visitor,
87624                        &mut *__ast_path,
87625                    )
87626                };
87627                {
87628                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
87629                        self::fields::TsMappedTypeField::TypeAnn,
87630                    ));
87631                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87632                        type_ann,
87633                        visitor,
87634                        &mut *__ast_path,
87635                    )
87636                };
87637            }
87638        }
87639    }
87640}
87641#[cfg(any(docsrs, feature = "path"))]
87642#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87643impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsMethodSignature {
87644    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_method_signature`] with `self`."]
87645    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87646        <V as VisitMutAstPath>::visit_mut_ts_method_signature(visitor, self, __ast_path)
87647    }
87648
87649    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87650        match self {
87651            TsMethodSignature {
87652                span,
87653                key,
87654                computed,
87655                optional,
87656                params,
87657                type_ann,
87658                type_params,
87659            } => {
87660                {
87661                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
87662                        self::fields::TsMethodSignatureField::Span,
87663                    ));
87664                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87665                        span,
87666                        visitor,
87667                        &mut *__ast_path,
87668                    )
87669                };
87670                {
87671                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
87672                        self::fields::TsMethodSignatureField::Key,
87673                    ));
87674                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87675                        key,
87676                        visitor,
87677                        &mut *__ast_path,
87678                    )
87679                };
87680                {
87681                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
87682                        self::fields::TsMethodSignatureField::Params(usize::MAX),
87683                    ));
87684                    <Vec<TsFnParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87685                        params,
87686                        visitor,
87687                        &mut *__ast_path,
87688                    )
87689                };
87690                {
87691                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
87692                        self::fields::TsMethodSignatureField::TypeAnn,
87693                    ));
87694                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87695                        type_ann,
87696                        visitor,
87697                        &mut *__ast_path,
87698                    )
87699                };
87700                {
87701                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
87702                        self::fields::TsMethodSignatureField::TypeParams,
87703                    ));
87704                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
87705                };
87706            }
87707        }
87708    }
87709}
87710#[cfg(any(docsrs, feature = "path"))]
87711#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87712impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleBlock {
87713    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_block`] with `self`."]
87714    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87715        <V as VisitMutAstPath>::visit_mut_ts_module_block(visitor, self, __ast_path)
87716    }
87717
87718    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87719        match self {
87720            TsModuleBlock { span, body } => {
87721                {
87722                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
87723                        self::fields::TsModuleBlockField::Span,
87724                    ));
87725                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87726                        span,
87727                        visitor,
87728                        &mut *__ast_path,
87729                    )
87730                };
87731                {
87732                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
87733                        self::fields::TsModuleBlockField::Body(usize::MAX),
87734                    ));
87735                    <Vec<ModuleItem> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87736                        body,
87737                        visitor,
87738                        &mut *__ast_path,
87739                    )
87740                };
87741            }
87742        }
87743    }
87744}
87745#[cfg(any(docsrs, feature = "path"))]
87746#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87747impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleDecl {
87748    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_decl`] with `self`."]
87749    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87750        <V as VisitMutAstPath>::visit_mut_ts_module_decl(visitor, self, __ast_path)
87751    }
87752
87753    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87754        match self {
87755            TsModuleDecl {
87756                span,
87757                declare,
87758                global,
87759                id,
87760                body,
87761            } => {
87762                {
87763                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
87764                        self::fields::TsModuleDeclField::Span,
87765                    ));
87766                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87767                        span,
87768                        visitor,
87769                        &mut *__ast_path,
87770                    )
87771                };
87772                {
87773                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
87774                        self::fields::TsModuleDeclField::Id,
87775                    ));
87776                    <TsModuleName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87777                        id,
87778                        visitor,
87779                        &mut *__ast_path,
87780                    )
87781                };
87782                {
87783                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
87784                        self::fields::TsModuleDeclField::Body,
87785                    ));
87786                    <Option<TsNamespaceBody> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87787                        body,
87788                        visitor,
87789                        &mut *__ast_path,
87790                    )
87791                };
87792            }
87793        }
87794    }
87795}
87796#[cfg(any(docsrs, feature = "path"))]
87797#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87798impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleName {
87799    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_name`] with `self`."]
87800    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87801        <V as VisitMutAstPath>::visit_mut_ts_module_name(visitor, self, __ast_path)
87802    }
87803
87804    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87805        match self {
87806            TsModuleName::Ident { 0: _field_0 } => {
87807                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
87808                    self::fields::TsModuleNameField::Ident,
87809                ));
87810                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87811                    _field_0,
87812                    visitor,
87813                    &mut *__ast_path,
87814                );
87815            }
87816            TsModuleName::Str { 0: _field_0 } => {
87817                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
87818                    self::fields::TsModuleNameField::Str,
87819                ));
87820                <Str as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87821                    _field_0,
87822                    visitor,
87823                    &mut *__ast_path,
87824                );
87825            }
87826        }
87827    }
87828}
87829#[cfg(any(docsrs, feature = "path"))]
87830#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87831impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsModuleRef {
87832    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_module_ref`] with `self`."]
87833    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87834        <V as VisitMutAstPath>::visit_mut_ts_module_ref(visitor, self, __ast_path)
87835    }
87836
87837    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87838        match self {
87839            TsModuleRef::TsEntityName { 0: _field_0 } => {
87840                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
87841                    self::fields::TsModuleRefField::TsEntityName,
87842                ));
87843                <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87844                    _field_0,
87845                    visitor,
87846                    &mut *__ast_path,
87847                );
87848            }
87849            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
87850                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
87851                    self::fields::TsModuleRefField::TsExternalModuleRef,
87852                ));
87853                <TsExternalModuleRef as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87854                    _field_0,
87855                    visitor,
87856                    &mut *__ast_path,
87857                );
87858            }
87859        }
87860    }
87861}
87862#[cfg(any(docsrs, feature = "path"))]
87863#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87864impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNamespaceBody {
87865    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_namespace_body`] with `self`."]
87866    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87867        <V as VisitMutAstPath>::visit_mut_ts_namespace_body(visitor, self, __ast_path)
87868    }
87869
87870    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87871        match self {
87872            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
87873                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
87874                    self::fields::TsNamespaceBodyField::TsModuleBlock,
87875                ));
87876                <TsModuleBlock as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87877                    _field_0,
87878                    visitor,
87879                    &mut *__ast_path,
87880                );
87881            }
87882            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
87883                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
87884                    self::fields::TsNamespaceBodyField::TsNamespaceDecl,
87885                ));
87886                <TsNamespaceDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87887                    _field_0,
87888                    visitor,
87889                    &mut *__ast_path,
87890                );
87891            }
87892        }
87893    }
87894}
87895#[cfg(any(docsrs, feature = "path"))]
87896#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87897impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNamespaceDecl {
87898    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_namespace_decl`] with `self`."]
87899    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87900        <V as VisitMutAstPath>::visit_mut_ts_namespace_decl(visitor, self, __ast_path)
87901    }
87902
87903    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87904        match self {
87905            TsNamespaceDecl {
87906                span,
87907                declare,
87908                global,
87909                id,
87910                body,
87911            } => {
87912                {
87913                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
87914                        self::fields::TsNamespaceDeclField::Span,
87915                    ));
87916                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87917                        span,
87918                        visitor,
87919                        &mut *__ast_path,
87920                    )
87921                };
87922                {
87923                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
87924                        self::fields::TsNamespaceDeclField::Id,
87925                    ));
87926                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87927                        id,
87928                        visitor,
87929                        &mut *__ast_path,
87930                    )
87931                };
87932                {
87933                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
87934                        self::fields::TsNamespaceDeclField::Body,
87935                    ));
87936                    <Box<TsNamespaceBody> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87937                        body,
87938                        visitor,
87939                        &mut *__ast_path,
87940                    )
87941                };
87942            }
87943        }
87944    }
87945}
87946#[cfg(any(docsrs, feature = "path"))]
87947#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87948impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNamespaceExportDecl {
87949    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_namespace_export_decl`] with `self`."]
87950    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87951        <V as VisitMutAstPath>::visit_mut_ts_namespace_export_decl(visitor, self, __ast_path)
87952    }
87953
87954    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87955        match self {
87956            TsNamespaceExportDecl { span, id } => {
87957                {
87958                    let mut __ast_path =
87959                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
87960                            self::fields::TsNamespaceExportDeclField::Span,
87961                        ));
87962                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87963                        span,
87964                        visitor,
87965                        &mut *__ast_path,
87966                    )
87967                };
87968                {
87969                    let mut __ast_path =
87970                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
87971                            self::fields::TsNamespaceExportDeclField::Id,
87972                        ));
87973                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87974                        id,
87975                        visitor,
87976                        &mut *__ast_path,
87977                    )
87978                };
87979            }
87980        }
87981    }
87982}
87983#[cfg(any(docsrs, feature = "path"))]
87984#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
87985impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsNonNullExpr {
87986    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_non_null_expr`] with `self`."]
87987    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87988        <V as VisitMutAstPath>::visit_mut_ts_non_null_expr(visitor, self, __ast_path)
87989    }
87990
87991    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
87992        match self {
87993            TsNonNullExpr { span, expr } => {
87994                {
87995                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
87996                        self::fields::TsNonNullExprField::Span,
87997                    ));
87998                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
87999                        span,
88000                        visitor,
88001                        &mut *__ast_path,
88002                    )
88003                };
88004                {
88005                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
88006                        self::fields::TsNonNullExprField::Expr,
88007                    ));
88008                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88009                        expr,
88010                        visitor,
88011                        &mut *__ast_path,
88012                    )
88013                };
88014            }
88015        }
88016    }
88017}
88018#[cfg(any(docsrs, feature = "path"))]
88019#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88020impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsOptionalType {
88021    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_optional_type`] with `self`."]
88022    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88023        <V as VisitMutAstPath>::visit_mut_ts_optional_type(visitor, self, __ast_path)
88024    }
88025
88026    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88027        match self {
88028            TsOptionalType { span, type_ann } => {
88029                {
88030                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
88031                        self::fields::TsOptionalTypeField::Span,
88032                    ));
88033                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88034                        span,
88035                        visitor,
88036                        &mut *__ast_path,
88037                    )
88038                };
88039                {
88040                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
88041                        self::fields::TsOptionalTypeField::TypeAnn,
88042                    ));
88043                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88044                        type_ann,
88045                        visitor,
88046                        &mut *__ast_path,
88047                    )
88048                };
88049            }
88050        }
88051    }
88052}
88053#[cfg(any(docsrs, feature = "path"))]
88054#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88055impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsParamProp {
88056    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_param_prop`] with `self`."]
88057    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88058        <V as VisitMutAstPath>::visit_mut_ts_param_prop(visitor, self, __ast_path)
88059    }
88060
88061    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88062        match self {
88063            TsParamProp {
88064                span,
88065                decorators,
88066                accessibility,
88067                is_override,
88068                readonly,
88069                param,
88070            } => {
88071                {
88072                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88073                        self::fields::TsParamPropField::Span,
88074                    ));
88075                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88076                        span,
88077                        visitor,
88078                        &mut *__ast_path,
88079                    )
88080                };
88081                {
88082                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88083                        self::fields::TsParamPropField::Decorators(usize::MAX),
88084                    ));
88085                    <Vec<Decorator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88086                        decorators,
88087                        visitor,
88088                        &mut *__ast_path,
88089                    )
88090                };
88091                {
88092                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88093                        self::fields::TsParamPropField::Accessibility,
88094                    ));
88095                    <Option<Accessibility> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88096                        accessibility,
88097                        visitor,
88098                        &mut *__ast_path,
88099                    )
88100                };
88101                {
88102                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
88103                        self::fields::TsParamPropField::Param,
88104                    ));
88105                    <TsParamPropParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88106                        param,
88107                        visitor,
88108                        &mut *__ast_path,
88109                    )
88110                };
88111            }
88112        }
88113    }
88114}
88115#[cfg(any(docsrs, feature = "path"))]
88116#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88117impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsParamPropParam {
88118    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_param_prop_param`] with `self`."]
88119    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88120        <V as VisitMutAstPath>::visit_mut_ts_param_prop_param(visitor, self, __ast_path)
88121    }
88122
88123    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88124        match self {
88125            TsParamPropParam::Ident { 0: _field_0 } => {
88126                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
88127                    self::fields::TsParamPropParamField::Ident,
88128                ));
88129                <BindingIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88130                    _field_0,
88131                    visitor,
88132                    &mut *__ast_path,
88133                );
88134            }
88135            TsParamPropParam::Assign { 0: _field_0 } => {
88136                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
88137                    self::fields::TsParamPropParamField::Assign,
88138                ));
88139                <AssignPat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88140                    _field_0,
88141                    visitor,
88142                    &mut *__ast_path,
88143                );
88144            }
88145        }
88146    }
88147}
88148#[cfg(any(docsrs, feature = "path"))]
88149#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88150impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsParenthesizedType {
88151    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_parenthesized_type`] with `self`."]
88152    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88153        <V as VisitMutAstPath>::visit_mut_ts_parenthesized_type(visitor, self, __ast_path)
88154    }
88155
88156    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88157        match self {
88158            TsParenthesizedType { span, type_ann } => {
88159                {
88160                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
88161                        self::fields::TsParenthesizedTypeField::Span,
88162                    ));
88163                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88164                        span,
88165                        visitor,
88166                        &mut *__ast_path,
88167                    )
88168                };
88169                {
88170                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
88171                        self::fields::TsParenthesizedTypeField::TypeAnn,
88172                    ));
88173                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88174                        type_ann,
88175                        visitor,
88176                        &mut *__ast_path,
88177                    )
88178                };
88179            }
88180        }
88181    }
88182}
88183#[cfg(any(docsrs, feature = "path"))]
88184#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88185impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsPropertySignature {
88186    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_property_signature`] with `self`."]
88187    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88188        <V as VisitMutAstPath>::visit_mut_ts_property_signature(visitor, self, __ast_path)
88189    }
88190
88191    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88192        match self {
88193            TsPropertySignature {
88194                span,
88195                readonly,
88196                key,
88197                computed,
88198                optional,
88199                type_ann,
88200            } => {
88201                {
88202                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
88203                        self::fields::TsPropertySignatureField::Span,
88204                    ));
88205                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88206                        span,
88207                        visitor,
88208                        &mut *__ast_path,
88209                    )
88210                };
88211                {
88212                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
88213                        self::fields::TsPropertySignatureField::Key,
88214                    ));
88215                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88216                        key,
88217                        visitor,
88218                        &mut *__ast_path,
88219                    )
88220                };
88221                {
88222                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
88223                        self::fields::TsPropertySignatureField::TypeAnn,
88224                    ));
88225                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88226                        type_ann,
88227                        visitor,
88228                        &mut *__ast_path,
88229                    )
88230                };
88231            }
88232        }
88233    }
88234}
88235#[cfg(any(docsrs, feature = "path"))]
88236#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88237impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsQualifiedName {
88238    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_qualified_name`] with `self`."]
88239    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88240        <V as VisitMutAstPath>::visit_mut_ts_qualified_name(visitor, self, __ast_path)
88241    }
88242
88243    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88244        match self {
88245            TsQualifiedName { span, left, right } => {
88246                {
88247                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
88248                        self::fields::TsQualifiedNameField::Span,
88249                    ));
88250                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88251                        span,
88252                        visitor,
88253                        &mut *__ast_path,
88254                    )
88255                };
88256                {
88257                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
88258                        self::fields::TsQualifiedNameField::Left,
88259                    ));
88260                    <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88261                        left,
88262                        visitor,
88263                        &mut *__ast_path,
88264                    )
88265                };
88266                {
88267                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
88268                        self::fields::TsQualifiedNameField::Right,
88269                    ));
88270                    <IdentName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88271                        right,
88272                        visitor,
88273                        &mut *__ast_path,
88274                    )
88275                };
88276            }
88277        }
88278    }
88279}
88280#[cfg(any(docsrs, feature = "path"))]
88281#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88282impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsRestType {
88283    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_rest_type`] with `self`."]
88284    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88285        <V as VisitMutAstPath>::visit_mut_ts_rest_type(visitor, self, __ast_path)
88286    }
88287
88288    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88289        match self {
88290            TsRestType { span, type_ann } => {
88291                {
88292                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
88293                        self::fields::TsRestTypeField::Span,
88294                    ));
88295                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88296                        span,
88297                        visitor,
88298                        &mut *__ast_path,
88299                    )
88300                };
88301                {
88302                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
88303                        self::fields::TsRestTypeField::TypeAnn,
88304                    ));
88305                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88306                        type_ann,
88307                        visitor,
88308                        &mut *__ast_path,
88309                    )
88310                };
88311            }
88312        }
88313    }
88314}
88315#[cfg(any(docsrs, feature = "path"))]
88316#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88317impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsSatisfiesExpr {
88318    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_satisfies_expr`] with `self`."]
88319    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88320        <V as VisitMutAstPath>::visit_mut_ts_satisfies_expr(visitor, self, __ast_path)
88321    }
88322
88323    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88324        match self {
88325            TsSatisfiesExpr {
88326                span,
88327                expr,
88328                type_ann,
88329            } => {
88330                {
88331                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
88332                        self::fields::TsSatisfiesExprField::Span,
88333                    ));
88334                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88335                        span,
88336                        visitor,
88337                        &mut *__ast_path,
88338                    )
88339                };
88340                {
88341                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
88342                        self::fields::TsSatisfiesExprField::Expr,
88343                    ));
88344                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88345                        expr,
88346                        visitor,
88347                        &mut *__ast_path,
88348                    )
88349                };
88350                {
88351                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
88352                        self::fields::TsSatisfiesExprField::TypeAnn,
88353                    ));
88354                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88355                        type_ann,
88356                        visitor,
88357                        &mut *__ast_path,
88358                    )
88359                };
88360            }
88361        }
88362    }
88363}
88364#[cfg(any(docsrs, feature = "path"))]
88365#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88366impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsSetterSignature {
88367    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_setter_signature`] with `self`."]
88368    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88369        <V as VisitMutAstPath>::visit_mut_ts_setter_signature(visitor, self, __ast_path)
88370    }
88371
88372    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88373        match self {
88374            TsSetterSignature {
88375                span,
88376                key,
88377                computed,
88378                param,
88379            } => {
88380                {
88381                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
88382                        self::fields::TsSetterSignatureField::Span,
88383                    ));
88384                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88385                        span,
88386                        visitor,
88387                        &mut *__ast_path,
88388                    )
88389                };
88390                {
88391                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
88392                        self::fields::TsSetterSignatureField::Key,
88393                    ));
88394                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88395                        key,
88396                        visitor,
88397                        &mut *__ast_path,
88398                    )
88399                };
88400                {
88401                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
88402                        self::fields::TsSetterSignatureField::Param,
88403                    ));
88404                    <TsFnParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88405                        param,
88406                        visitor,
88407                        &mut *__ast_path,
88408                    )
88409                };
88410            }
88411        }
88412    }
88413}
88414#[cfg(any(docsrs, feature = "path"))]
88415#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88416impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsThisType {
88417    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_this_type`] with `self`."]
88418    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88419        <V as VisitMutAstPath>::visit_mut_ts_this_type(visitor, self, __ast_path)
88420    }
88421
88422    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88423        match self {
88424            TsThisType { span } => {
88425                {
88426                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisType(
88427                        self::fields::TsThisTypeField::Span,
88428                    ));
88429                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88430                        span,
88431                        visitor,
88432                        &mut *__ast_path,
88433                    )
88434                };
88435            }
88436        }
88437    }
88438}
88439#[cfg(any(docsrs, feature = "path"))]
88440#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88441impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsThisTypeOrIdent {
88442    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_this_type_or_ident`] with `self`."]
88443    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88444        <V as VisitMutAstPath>::visit_mut_ts_this_type_or_ident(visitor, self, __ast_path)
88445    }
88446
88447    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88448        match self {
88449            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
88450                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
88451                    self::fields::TsThisTypeOrIdentField::TsThisType,
88452                ));
88453                <TsThisType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88454                    _field_0,
88455                    visitor,
88456                    &mut *__ast_path,
88457                );
88458            }
88459            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
88460                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
88461                    self::fields::TsThisTypeOrIdentField::Ident,
88462                ));
88463                <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88464                    _field_0,
88465                    visitor,
88466                    &mut *__ast_path,
88467                );
88468            }
88469        }
88470    }
88471}
88472#[cfg(any(docsrs, feature = "path"))]
88473#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88474impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTplLitType {
88475    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tpl_lit_type`] with `self`."]
88476    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88477        <V as VisitMutAstPath>::visit_mut_ts_tpl_lit_type(visitor, self, __ast_path)
88478    }
88479
88480    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88481        match self {
88482            TsTplLitType {
88483                span,
88484                types,
88485                quasis,
88486            } => {
88487                {
88488                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
88489                        self::fields::TsTplLitTypeField::Span,
88490                    ));
88491                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88492                        span,
88493                        visitor,
88494                        &mut *__ast_path,
88495                    )
88496                };
88497                {
88498                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
88499                        self::fields::TsTplLitTypeField::Types(usize::MAX),
88500                    ));
88501                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88502                        types,
88503                        visitor,
88504                        &mut *__ast_path,
88505                    )
88506                };
88507                {
88508                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
88509                        self::fields::TsTplLitTypeField::Quasis(usize::MAX),
88510                    ));
88511                    <Vec<TplElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88512                        quasis,
88513                        visitor,
88514                        &mut *__ast_path,
88515                    )
88516                };
88517            }
88518        }
88519    }
88520}
88521#[cfg(any(docsrs, feature = "path"))]
88522#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88523impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTupleElement {
88524    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tuple_element`] with `self`."]
88525    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88526        <V as VisitMutAstPath>::visit_mut_ts_tuple_element(visitor, self, __ast_path)
88527    }
88528
88529    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88530        match self {
88531            TsTupleElement { span, label, ty } => {
88532                {
88533                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
88534                        self::fields::TsTupleElementField::Span,
88535                    ));
88536                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88537                        span,
88538                        visitor,
88539                        &mut *__ast_path,
88540                    )
88541                };
88542                {
88543                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
88544                        self::fields::TsTupleElementField::Label,
88545                    ));
88546                    <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88547                        label,
88548                        visitor,
88549                        &mut *__ast_path,
88550                    )
88551                };
88552                {
88553                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
88554                        self::fields::TsTupleElementField::Ty,
88555                    ));
88556                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88557                        ty,
88558                        visitor,
88559                        &mut *__ast_path,
88560                    )
88561                };
88562            }
88563        }
88564    }
88565}
88566#[cfg(any(docsrs, feature = "path"))]
88567#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88568impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTupleType {
88569    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tuple_type`] with `self`."]
88570    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88571        <V as VisitMutAstPath>::visit_mut_ts_tuple_type(visitor, self, __ast_path)
88572    }
88573
88574    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88575        match self {
88576            TsTupleType { span, elem_types } => {
88577                {
88578                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
88579                        self::fields::TsTupleTypeField::Span,
88580                    ));
88581                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88582                        span,
88583                        visitor,
88584                        &mut *__ast_path,
88585                    )
88586                };
88587                {
88588                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
88589                        self::fields::TsTupleTypeField::ElemTypes(usize::MAX),
88590                    ));
88591                    <Vec<TsTupleElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88592                        elem_types,
88593                        visitor,
88594                        &mut *__ast_path,
88595                    )
88596                };
88597            }
88598        }
88599    }
88600}
88601#[cfg(any(docsrs, feature = "path"))]
88602#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88603impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsType {
88604    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type`] with `self`."]
88605    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88606        <V as VisitMutAstPath>::visit_mut_ts_type(visitor, self, __ast_path)
88607    }
88608
88609    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88610        match self {
88611            TsType::TsKeywordType { 0: _field_0 } => {
88612                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88613                    self::fields::TsTypeField::TsKeywordType,
88614                ));
88615                <TsKeywordType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88616                    _field_0,
88617                    visitor,
88618                    &mut *__ast_path,
88619                );
88620            }
88621            TsType::TsThisType { 0: _field_0 } => {
88622                let mut __ast_path = __ast_path
88623                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsThisType));
88624                <TsThisType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88625                    _field_0,
88626                    visitor,
88627                    &mut *__ast_path,
88628                );
88629            }
88630            TsType::TsFnOrConstructorType { 0: _field_0 } => {
88631                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88632                    self::fields::TsTypeField::TsFnOrConstructorType,
88633                ));
88634                <TsFnOrConstructorType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88635                    _field_0,
88636                    visitor,
88637                    &mut *__ast_path,
88638                );
88639            }
88640            TsType::TsTypeRef { 0: _field_0 } => {
88641                let mut __ast_path = __ast_path
88642                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeRef));
88643                <TsTypeRef as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88644                    _field_0,
88645                    visitor,
88646                    &mut *__ast_path,
88647                );
88648            }
88649            TsType::TsTypeQuery { 0: _field_0 } => {
88650                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88651                    self::fields::TsTypeField::TsTypeQuery,
88652                ));
88653                <TsTypeQuery as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88654                    _field_0,
88655                    visitor,
88656                    &mut *__ast_path,
88657                );
88658            }
88659            TsType::TsTypeLit { 0: _field_0 } => {
88660                let mut __ast_path = __ast_path
88661                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeLit));
88662                <TsTypeLit as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88663                    _field_0,
88664                    visitor,
88665                    &mut *__ast_path,
88666                );
88667            }
88668            TsType::TsArrayType { 0: _field_0 } => {
88669                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88670                    self::fields::TsTypeField::TsArrayType,
88671                ));
88672                <TsArrayType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88673                    _field_0,
88674                    visitor,
88675                    &mut *__ast_path,
88676                );
88677            }
88678            TsType::TsTupleType { 0: _field_0 } => {
88679                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88680                    self::fields::TsTypeField::TsTupleType,
88681                ));
88682                <TsTupleType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88683                    _field_0,
88684                    visitor,
88685                    &mut *__ast_path,
88686                );
88687            }
88688            TsType::TsOptionalType { 0: _field_0 } => {
88689                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88690                    self::fields::TsTypeField::TsOptionalType,
88691                ));
88692                <TsOptionalType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88693                    _field_0,
88694                    visitor,
88695                    &mut *__ast_path,
88696                );
88697            }
88698            TsType::TsRestType { 0: _field_0 } => {
88699                let mut __ast_path = __ast_path
88700                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsRestType));
88701                <TsRestType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88702                    _field_0,
88703                    visitor,
88704                    &mut *__ast_path,
88705                );
88706            }
88707            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
88708                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88709                    self::fields::TsTypeField::TsUnionOrIntersectionType,
88710                ));
88711                <TsUnionOrIntersectionType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88712                    _field_0,
88713                    visitor,
88714                    &mut *__ast_path,
88715                );
88716            }
88717            TsType::TsConditionalType { 0: _field_0 } => {
88718                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88719                    self::fields::TsTypeField::TsConditionalType,
88720                ));
88721                <TsConditionalType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88722                    _field_0,
88723                    visitor,
88724                    &mut *__ast_path,
88725                );
88726            }
88727            TsType::TsInferType { 0: _field_0 } => {
88728                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88729                    self::fields::TsTypeField::TsInferType,
88730                ));
88731                <TsInferType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88732                    _field_0,
88733                    visitor,
88734                    &mut *__ast_path,
88735                );
88736            }
88737            TsType::TsParenthesizedType { 0: _field_0 } => {
88738                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88739                    self::fields::TsTypeField::TsParenthesizedType,
88740                ));
88741                <TsParenthesizedType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88742                    _field_0,
88743                    visitor,
88744                    &mut *__ast_path,
88745                );
88746            }
88747            TsType::TsTypeOperator { 0: _field_0 } => {
88748                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88749                    self::fields::TsTypeField::TsTypeOperator,
88750                ));
88751                <TsTypeOperator as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88752                    _field_0,
88753                    visitor,
88754                    &mut *__ast_path,
88755                );
88756            }
88757            TsType::TsIndexedAccessType { 0: _field_0 } => {
88758                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88759                    self::fields::TsTypeField::TsIndexedAccessType,
88760                ));
88761                <TsIndexedAccessType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88762                    _field_0,
88763                    visitor,
88764                    &mut *__ast_path,
88765                );
88766            }
88767            TsType::TsMappedType { 0: _field_0 } => {
88768                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88769                    self::fields::TsTypeField::TsMappedType,
88770                ));
88771                <TsMappedType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88772                    _field_0,
88773                    visitor,
88774                    &mut *__ast_path,
88775                );
88776            }
88777            TsType::TsLitType { 0: _field_0 } => {
88778                let mut __ast_path = __ast_path
88779                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsLitType));
88780                <TsLitType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88781                    _field_0,
88782                    visitor,
88783                    &mut *__ast_path,
88784                );
88785            }
88786            TsType::TsTypePredicate { 0: _field_0 } => {
88787                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88788                    self::fields::TsTypeField::TsTypePredicate,
88789                ));
88790                <TsTypePredicate as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88791                    _field_0,
88792                    visitor,
88793                    &mut *__ast_path,
88794                );
88795            }
88796            TsType::TsImportType { 0: _field_0 } => {
88797                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
88798                    self::fields::TsTypeField::TsImportType,
88799                ));
88800                <TsImportType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88801                    _field_0,
88802                    visitor,
88803                    &mut *__ast_path,
88804                );
88805            }
88806        }
88807    }
88808}
88809#[cfg(any(docsrs, feature = "path"))]
88810#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88811impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeAliasDecl {
88812    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_alias_decl`] with `self`."]
88813    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88814        <V as VisitMutAstPath>::visit_mut_ts_type_alias_decl(visitor, self, __ast_path)
88815    }
88816
88817    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88818        match self {
88819            TsTypeAliasDecl {
88820                span,
88821                declare,
88822                id,
88823                type_params,
88824                type_ann,
88825            } => {
88826                {
88827                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
88828                        self::fields::TsTypeAliasDeclField::Span,
88829                    ));
88830                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88831                        span,
88832                        visitor,
88833                        &mut *__ast_path,
88834                    )
88835                };
88836                {
88837                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
88838                        self::fields::TsTypeAliasDeclField::Id,
88839                    ));
88840                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88841                        id,
88842                        visitor,
88843                        &mut *__ast_path,
88844                    )
88845                };
88846                {
88847                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
88848                        self::fields::TsTypeAliasDeclField::TypeParams,
88849                    ));
88850                    < Option < Box < TsTypeParamDecl > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
88851                };
88852                {
88853                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
88854                        self::fields::TsTypeAliasDeclField::TypeAnn,
88855                    ));
88856                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88857                        type_ann,
88858                        visitor,
88859                        &mut *__ast_path,
88860                    )
88861                };
88862            }
88863        }
88864    }
88865}
88866#[cfg(any(docsrs, feature = "path"))]
88867#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88868impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeAnn {
88869    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_ann`] with `self`."]
88870    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88871        <V as VisitMutAstPath>::visit_mut_ts_type_ann(visitor, self, __ast_path)
88872    }
88873
88874    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88875        match self {
88876            TsTypeAnn { span, type_ann } => {
88877                {
88878                    let mut __ast_path = __ast_path
88879                        .with_guard(AstParentKind::TsTypeAnn(self::fields::TsTypeAnnField::Span));
88880                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88881                        span,
88882                        visitor,
88883                        &mut *__ast_path,
88884                    )
88885                };
88886                {
88887                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAnn(
88888                        self::fields::TsTypeAnnField::TypeAnn,
88889                    ));
88890                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88891                        type_ann,
88892                        visitor,
88893                        &mut *__ast_path,
88894                    )
88895                };
88896            }
88897        }
88898    }
88899}
88900#[cfg(any(docsrs, feature = "path"))]
88901#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88902impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeAssertion {
88903    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_assertion`] with `self`."]
88904    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88905        <V as VisitMutAstPath>::visit_mut_ts_type_assertion(visitor, self, __ast_path)
88906    }
88907
88908    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88909        match self {
88910            TsTypeAssertion {
88911                span,
88912                expr,
88913                type_ann,
88914            } => {
88915                {
88916                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
88917                        self::fields::TsTypeAssertionField::Span,
88918                    ));
88919                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88920                        span,
88921                        visitor,
88922                        &mut *__ast_path,
88923                    )
88924                };
88925                {
88926                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
88927                        self::fields::TsTypeAssertionField::Expr,
88928                    ));
88929                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88930                        expr,
88931                        visitor,
88932                        &mut *__ast_path,
88933                    )
88934                };
88935                {
88936                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
88937                        self::fields::TsTypeAssertionField::TypeAnn,
88938                    ));
88939                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88940                        type_ann,
88941                        visitor,
88942                        &mut *__ast_path,
88943                    )
88944                };
88945            }
88946        }
88947    }
88948}
88949#[cfg(any(docsrs, feature = "path"))]
88950#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
88951impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeElement {
88952    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_element`] with `self`."]
88953    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88954        <V as VisitMutAstPath>::visit_mut_ts_type_element(visitor, self, __ast_path)
88955    }
88956
88957    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
88958        match self {
88959            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
88960                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
88961                    self::fields::TsTypeElementField::TsCallSignatureDecl,
88962                ));
88963                <TsCallSignatureDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88964                    _field_0,
88965                    visitor,
88966                    &mut *__ast_path,
88967                );
88968            }
88969            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
88970                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
88971                    self::fields::TsTypeElementField::TsConstructSignatureDecl,
88972                ));
88973                <TsConstructSignatureDecl as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88974                    _field_0,
88975                    visitor,
88976                    &mut *__ast_path,
88977                );
88978            }
88979            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
88980                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
88981                    self::fields::TsTypeElementField::TsPropertySignature,
88982                ));
88983                <TsPropertySignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88984                    _field_0,
88985                    visitor,
88986                    &mut *__ast_path,
88987                );
88988            }
88989            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
88990                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
88991                    self::fields::TsTypeElementField::TsGetterSignature,
88992                ));
88993                <TsGetterSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
88994                    _field_0,
88995                    visitor,
88996                    &mut *__ast_path,
88997                );
88998            }
88999            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
89000                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89001                    self::fields::TsTypeElementField::TsSetterSignature,
89002                ));
89003                <TsSetterSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89004                    _field_0,
89005                    visitor,
89006                    &mut *__ast_path,
89007                );
89008            }
89009            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
89010                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89011                    self::fields::TsTypeElementField::TsMethodSignature,
89012                ));
89013                <TsMethodSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89014                    _field_0,
89015                    visitor,
89016                    &mut *__ast_path,
89017                );
89018            }
89019            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
89020                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
89021                    self::fields::TsTypeElementField::TsIndexSignature,
89022                ));
89023                <TsIndexSignature as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89024                    _field_0,
89025                    visitor,
89026                    &mut *__ast_path,
89027                );
89028            }
89029        }
89030    }
89031}
89032#[cfg(any(docsrs, feature = "path"))]
89033#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89034impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeLit {
89035    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_lit`] with `self`."]
89036    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89037        <V as VisitMutAstPath>::visit_mut_ts_type_lit(visitor, self, __ast_path)
89038    }
89039
89040    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89041        match self {
89042            TsTypeLit { span, members } => {
89043                {
89044                    let mut __ast_path = __ast_path
89045                        .with_guard(AstParentKind::TsTypeLit(self::fields::TsTypeLitField::Span));
89046                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89047                        span,
89048                        visitor,
89049                        &mut *__ast_path,
89050                    )
89051                };
89052                {
89053                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeLit(
89054                        self::fields::TsTypeLitField::Members(usize::MAX),
89055                    ));
89056                    <Vec<TsTypeElement> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89057                        members,
89058                        visitor,
89059                        &mut *__ast_path,
89060                    )
89061                };
89062            }
89063        }
89064    }
89065}
89066#[cfg(any(docsrs, feature = "path"))]
89067#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89068impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeOperator {
89069    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_operator`] with `self`."]
89070    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89071        <V as VisitMutAstPath>::visit_mut_ts_type_operator(visitor, self, __ast_path)
89072    }
89073
89074    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89075        match self {
89076            TsTypeOperator { span, op, type_ann } => {
89077                {
89078                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
89079                        self::fields::TsTypeOperatorField::Span,
89080                    ));
89081                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89082                        span,
89083                        visitor,
89084                        &mut *__ast_path,
89085                    )
89086                };
89087                {
89088                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
89089                        self::fields::TsTypeOperatorField::Op,
89090                    ));
89091                    <TsTypeOperatorOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89092                        op,
89093                        visitor,
89094                        &mut *__ast_path,
89095                    )
89096                };
89097                {
89098                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
89099                        self::fields::TsTypeOperatorField::TypeAnn,
89100                    ));
89101                    <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89102                        type_ann,
89103                        visitor,
89104                        &mut *__ast_path,
89105                    )
89106                };
89107            }
89108        }
89109    }
89110}
89111#[cfg(any(docsrs, feature = "path"))]
89112#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89113impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeOperatorOp {
89114    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_operator_op`] with `self`."]
89115    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89116        <V as VisitMutAstPath>::visit_mut_ts_type_operator_op(visitor, self, __ast_path)
89117    }
89118
89119    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89120        match self {
89121            TsTypeOperatorOp::KeyOf => {}
89122            TsTypeOperatorOp::Unique => {}
89123            TsTypeOperatorOp::ReadOnly => {}
89124        }
89125    }
89126}
89127#[cfg(any(docsrs, feature = "path"))]
89128#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89129impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeParam {
89130    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_param`] with `self`."]
89131    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89132        <V as VisitMutAstPath>::visit_mut_ts_type_param(visitor, self, __ast_path)
89133    }
89134
89135    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89136        match self {
89137            TsTypeParam {
89138                span,
89139                name,
89140                is_in,
89141                is_out,
89142                is_const,
89143                constraint,
89144                default,
89145            } => {
89146                {
89147                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89148                        self::fields::TsTypeParamField::Span,
89149                    ));
89150                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89151                        span,
89152                        visitor,
89153                        &mut *__ast_path,
89154                    )
89155                };
89156                {
89157                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89158                        self::fields::TsTypeParamField::Name,
89159                    ));
89160                    <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89161                        name,
89162                        visitor,
89163                        &mut *__ast_path,
89164                    )
89165                };
89166                {
89167                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89168                        self::fields::TsTypeParamField::Constraint,
89169                    ));
89170                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89171                        constraint,
89172                        visitor,
89173                        &mut *__ast_path,
89174                    )
89175                };
89176                {
89177                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
89178                        self::fields::TsTypeParamField::Default,
89179                    ));
89180                    <Option<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89181                        default,
89182                        visitor,
89183                        &mut *__ast_path,
89184                    )
89185                };
89186            }
89187        }
89188    }
89189}
89190#[cfg(any(docsrs, feature = "path"))]
89191#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89192impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeParamDecl {
89193    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_param_decl`] with `self`."]
89194    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89195        <V as VisitMutAstPath>::visit_mut_ts_type_param_decl(visitor, self, __ast_path)
89196    }
89197
89198    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89199        match self {
89200            TsTypeParamDecl { span, params } => {
89201                {
89202                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
89203                        self::fields::TsTypeParamDeclField::Span,
89204                    ));
89205                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89206                        span,
89207                        visitor,
89208                        &mut *__ast_path,
89209                    )
89210                };
89211                {
89212                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
89213                        self::fields::TsTypeParamDeclField::Params(usize::MAX),
89214                    ));
89215                    <Vec<TsTypeParam> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89216                        params,
89217                        visitor,
89218                        &mut *__ast_path,
89219                    )
89220                };
89221            }
89222        }
89223    }
89224}
89225#[cfg(any(docsrs, feature = "path"))]
89226#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89227impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeParamInstantiation {
89228    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_param_instantiation`] with `self`."]
89229    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89230        <V as VisitMutAstPath>::visit_mut_ts_type_param_instantiation(visitor, self, __ast_path)
89231    }
89232
89233    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89234        match self {
89235            TsTypeParamInstantiation { span, params } => {
89236                {
89237                    let mut __ast_path =
89238                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
89239                            self::fields::TsTypeParamInstantiationField::Span,
89240                        ));
89241                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89242                        span,
89243                        visitor,
89244                        &mut *__ast_path,
89245                    )
89246                };
89247                {
89248                    let mut __ast_path =
89249                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
89250                            self::fields::TsTypeParamInstantiationField::Params(usize::MAX),
89251                        ));
89252                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89253                        params,
89254                        visitor,
89255                        &mut *__ast_path,
89256                    )
89257                };
89258            }
89259        }
89260    }
89261}
89262#[cfg(any(docsrs, feature = "path"))]
89263#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89264impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypePredicate {
89265    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_predicate`] with `self`."]
89266    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89267        <V as VisitMutAstPath>::visit_mut_ts_type_predicate(visitor, self, __ast_path)
89268    }
89269
89270    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89271        match self {
89272            TsTypePredicate {
89273                span,
89274                asserts,
89275                param_name,
89276                type_ann,
89277            } => {
89278                {
89279                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
89280                        self::fields::TsTypePredicateField::Span,
89281                    ));
89282                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89283                        span,
89284                        visitor,
89285                        &mut *__ast_path,
89286                    )
89287                };
89288                {
89289                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
89290                        self::fields::TsTypePredicateField::ParamName,
89291                    ));
89292                    <TsThisTypeOrIdent as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89293                        param_name,
89294                        visitor,
89295                        &mut *__ast_path,
89296                    )
89297                };
89298                {
89299                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
89300                        self::fields::TsTypePredicateField::TypeAnn,
89301                    ));
89302                    <Option<Box<TsTypeAnn>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89303                        type_ann,
89304                        visitor,
89305                        &mut *__ast_path,
89306                    )
89307                };
89308            }
89309        }
89310    }
89311}
89312#[cfg(any(docsrs, feature = "path"))]
89313#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89314impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeQuery {
89315    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_query`] with `self`."]
89316    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89317        <V as VisitMutAstPath>::visit_mut_ts_type_query(visitor, self, __ast_path)
89318    }
89319
89320    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89321        match self {
89322            TsTypeQuery {
89323                span,
89324                expr_name,
89325                type_args,
89326            } => {
89327                {
89328                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
89329                        self::fields::TsTypeQueryField::Span,
89330                    ));
89331                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89332                        span,
89333                        visitor,
89334                        &mut *__ast_path,
89335                    )
89336                };
89337                {
89338                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
89339                        self::fields::TsTypeQueryField::ExprName,
89340                    ));
89341                    <TsTypeQueryExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89342                        expr_name,
89343                        visitor,
89344                        &mut *__ast_path,
89345                    )
89346                };
89347                {
89348                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
89349                        self::fields::TsTypeQueryField::TypeArgs,
89350                    ));
89351                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_args , visitor , & mut * __ast_path)
89352                };
89353            }
89354        }
89355    }
89356}
89357#[cfg(any(docsrs, feature = "path"))]
89358#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89359impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeQueryExpr {
89360    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_query_expr`] with `self`."]
89361    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89362        <V as VisitMutAstPath>::visit_mut_ts_type_query_expr(visitor, self, __ast_path)
89363    }
89364
89365    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89366        match self {
89367            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
89368                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
89369                    self::fields::TsTypeQueryExprField::TsEntityName,
89370                ));
89371                <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89372                    _field_0,
89373                    visitor,
89374                    &mut *__ast_path,
89375                );
89376            }
89377            TsTypeQueryExpr::Import { 0: _field_0 } => {
89378                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
89379                    self::fields::TsTypeQueryExprField::Import,
89380                ));
89381                <TsImportType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89382                    _field_0,
89383                    visitor,
89384                    &mut *__ast_path,
89385                );
89386            }
89387        }
89388    }
89389}
89390#[cfg(any(docsrs, feature = "path"))]
89391#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89392impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsTypeRef {
89393    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_ref`] with `self`."]
89394    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89395        <V as VisitMutAstPath>::visit_mut_ts_type_ref(visitor, self, __ast_path)
89396    }
89397
89398    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89399        match self {
89400            TsTypeRef {
89401                span,
89402                type_name,
89403                type_params,
89404            } => {
89405                {
89406                    let mut __ast_path = __ast_path
89407                        .with_guard(AstParentKind::TsTypeRef(self::fields::TsTypeRefField::Span));
89408                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89409                        span,
89410                        visitor,
89411                        &mut *__ast_path,
89412                    )
89413                };
89414                {
89415                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
89416                        self::fields::TsTypeRefField::TypeName,
89417                    ));
89418                    <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89419                        type_name,
89420                        visitor,
89421                        &mut *__ast_path,
89422                    )
89423                };
89424                {
89425                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
89426                        self::fields::TsTypeRefField::TypeParams,
89427                    ));
89428                    < Option < Box < TsTypeParamInstantiation > > as VisitMutWithAstPath < V > > :: visit_mut_with_ast_path (type_params , visitor , & mut * __ast_path)
89429                };
89430            }
89431        }
89432    }
89433}
89434#[cfg(any(docsrs, feature = "path"))]
89435#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89436impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsUnionOrIntersectionType {
89437    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_union_or_intersection_type`] with `self`."]
89438    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89439        <V as VisitMutAstPath>::visit_mut_ts_union_or_intersection_type(visitor, self, __ast_path)
89440    }
89441
89442    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89443        match self {
89444            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
89445                let mut __ast_path =
89446                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
89447                        self::fields::TsUnionOrIntersectionTypeField::TsUnionType,
89448                    ));
89449                <TsUnionType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89450                    _field_0,
89451                    visitor,
89452                    &mut *__ast_path,
89453                );
89454            }
89455            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
89456                let mut __ast_path =
89457                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
89458                        self::fields::TsUnionOrIntersectionTypeField::TsIntersectionType,
89459                    ));
89460                <TsIntersectionType as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89461                    _field_0,
89462                    visitor,
89463                    &mut *__ast_path,
89464                );
89465            }
89466        }
89467    }
89468}
89469#[cfg(any(docsrs, feature = "path"))]
89470#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89471impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for TsUnionType {
89472    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_union_type`] with `self`."]
89473    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89474        <V as VisitMutAstPath>::visit_mut_ts_union_type(visitor, self, __ast_path)
89475    }
89476
89477    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89478        match self {
89479            TsUnionType { span, types } => {
89480                {
89481                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
89482                        self::fields::TsUnionTypeField::Span,
89483                    ));
89484                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89485                        span,
89486                        visitor,
89487                        &mut *__ast_path,
89488                    )
89489                };
89490                {
89491                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
89492                        self::fields::TsUnionTypeField::Types(usize::MAX),
89493                    ));
89494                    <Vec<Box<TsType>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89495                        types,
89496                        visitor,
89497                        &mut *__ast_path,
89498                    )
89499                };
89500            }
89501        }
89502    }
89503}
89504#[cfg(any(docsrs, feature = "path"))]
89505#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89506impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UnaryExpr {
89507    #[doc = "Calls [VisitMutAstPath`::visit_mut_unary_expr`] with `self`."]
89508    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89509        <V as VisitMutAstPath>::visit_mut_unary_expr(visitor, self, __ast_path)
89510    }
89511
89512    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89513        match self {
89514            UnaryExpr { span, op, arg } => {
89515                {
89516                    let mut __ast_path = __ast_path
89517                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Span));
89518                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89519                        span,
89520                        visitor,
89521                        &mut *__ast_path,
89522                    )
89523                };
89524                {
89525                    let mut __ast_path = __ast_path
89526                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Op));
89527                    <UnaryOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89528                        op,
89529                        visitor,
89530                        &mut *__ast_path,
89531                    )
89532                };
89533                {
89534                    let mut __ast_path = __ast_path
89535                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Arg));
89536                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89537                        arg,
89538                        visitor,
89539                        &mut *__ast_path,
89540                    )
89541                };
89542            }
89543        }
89544    }
89545}
89546#[cfg(any(docsrs, feature = "path"))]
89547#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89548impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UnaryOp {
89549    #[doc = "Calls [VisitMutAstPath`::visit_mut_unary_op`] with `self`."]
89550    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89551        <V as VisitMutAstPath>::visit_mut_unary_op(visitor, self, __ast_path)
89552    }
89553
89554    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89555        match self {
89556            UnaryOp::Minus => {}
89557            UnaryOp::Plus => {}
89558            UnaryOp::Bang => {}
89559            UnaryOp::Tilde => {}
89560            UnaryOp::TypeOf => {}
89561            UnaryOp::Void => {}
89562            UnaryOp::Delete => {}
89563        }
89564    }
89565}
89566#[cfg(any(docsrs, feature = "path"))]
89567#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89568impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UpdateExpr {
89569    #[doc = "Calls [VisitMutAstPath`::visit_mut_update_expr`] with `self`."]
89570    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89571        <V as VisitMutAstPath>::visit_mut_update_expr(visitor, self, __ast_path)
89572    }
89573
89574    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89575        match self {
89576            UpdateExpr {
89577                span,
89578                op,
89579                prefix,
89580                arg,
89581            } => {
89582                {
89583                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
89584                        self::fields::UpdateExprField::Span,
89585                    ));
89586                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89587                        span,
89588                        visitor,
89589                        &mut *__ast_path,
89590                    )
89591                };
89592                {
89593                    let mut __ast_path = __ast_path
89594                        .with_guard(AstParentKind::UpdateExpr(self::fields::UpdateExprField::Op));
89595                    <UpdateOp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89596                        op,
89597                        visitor,
89598                        &mut *__ast_path,
89599                    )
89600                };
89601                {
89602                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
89603                        self::fields::UpdateExprField::Arg,
89604                    ));
89605                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89606                        arg,
89607                        visitor,
89608                        &mut *__ast_path,
89609                    )
89610                };
89611            }
89612        }
89613    }
89614}
89615#[cfg(any(docsrs, feature = "path"))]
89616#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89617impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UpdateOp {
89618    #[doc = "Calls [VisitMutAstPath`::visit_mut_update_op`] with `self`."]
89619    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89620        <V as VisitMutAstPath>::visit_mut_update_op(visitor, self, __ast_path)
89621    }
89622
89623    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89624        match self {
89625            UpdateOp::PlusPlus => {}
89626            UpdateOp::MinusMinus => {}
89627        }
89628    }
89629}
89630#[cfg(any(docsrs, feature = "path"))]
89631#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89632impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for UsingDecl {
89633    #[doc = "Calls [VisitMutAstPath`::visit_mut_using_decl`] with `self`."]
89634    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89635        <V as VisitMutAstPath>::visit_mut_using_decl(visitor, self, __ast_path)
89636    }
89637
89638    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89639        match self {
89640            UsingDecl {
89641                span,
89642                is_await,
89643                decls,
89644            } => {
89645                {
89646                    let mut __ast_path = __ast_path
89647                        .with_guard(AstParentKind::UsingDecl(self::fields::UsingDeclField::Span));
89648                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89649                        span,
89650                        visitor,
89651                        &mut *__ast_path,
89652                    )
89653                };
89654                {
89655                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UsingDecl(
89656                        self::fields::UsingDeclField::Decls(usize::MAX),
89657                    ));
89658                    <Vec<VarDeclarator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89659                        decls,
89660                        visitor,
89661                        &mut *__ast_path,
89662                    )
89663                };
89664            }
89665        }
89666    }
89667}
89668#[cfg(any(docsrs, feature = "path"))]
89669#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89670impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDecl {
89671    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_decl`] with `self`."]
89672    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89673        <V as VisitMutAstPath>::visit_mut_var_decl(visitor, self, __ast_path)
89674    }
89675
89676    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89677        match self {
89678            VarDecl {
89679                span,
89680                ctxt,
89681                kind,
89682                declare,
89683                decls,
89684            } => {
89685                {
89686                    let mut __ast_path = __ast_path
89687                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Span));
89688                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89689                        span,
89690                        visitor,
89691                        &mut *__ast_path,
89692                    )
89693                };
89694                {
89695                    let mut __ast_path = __ast_path
89696                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Ctxt));
89697                    <swc_common::SyntaxContext as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89698                        ctxt,
89699                        visitor,
89700                        &mut *__ast_path,
89701                    )
89702                };
89703                {
89704                    let mut __ast_path = __ast_path
89705                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Kind));
89706                    <VarDeclKind as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89707                        kind,
89708                        visitor,
89709                        &mut *__ast_path,
89710                    )
89711                };
89712                {
89713                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDecl(
89714                        self::fields::VarDeclField::Decls(usize::MAX),
89715                    ));
89716                    <Vec<VarDeclarator> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89717                        decls,
89718                        visitor,
89719                        &mut *__ast_path,
89720                    )
89721                };
89722            }
89723        }
89724    }
89725}
89726#[cfg(any(docsrs, feature = "path"))]
89727#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89728impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDeclKind {
89729    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_decl_kind`] with `self`."]
89730    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89731        <V as VisitMutAstPath>::visit_mut_var_decl_kind(visitor, self, __ast_path)
89732    }
89733
89734    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89735        match self {
89736            VarDeclKind::Var => {}
89737            VarDeclKind::Let => {}
89738            VarDeclKind::Const => {}
89739        }
89740    }
89741}
89742#[cfg(any(docsrs, feature = "path"))]
89743#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89744impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDeclOrExpr {
89745    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_decl_or_expr`] with `self`."]
89746    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89747        <V as VisitMutAstPath>::visit_mut_var_decl_or_expr(visitor, self, __ast_path)
89748    }
89749
89750    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89751        match self {
89752            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
89753                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
89754                    self::fields::VarDeclOrExprField::VarDecl,
89755                ));
89756                <Box<VarDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89757                    _field_0,
89758                    visitor,
89759                    &mut *__ast_path,
89760                );
89761            }
89762            VarDeclOrExpr::Expr { 0: _field_0 } => {
89763                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
89764                    self::fields::VarDeclOrExprField::Expr,
89765                ));
89766                <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89767                    _field_0,
89768                    visitor,
89769                    &mut *__ast_path,
89770                );
89771            }
89772        }
89773    }
89774}
89775#[cfg(any(docsrs, feature = "path"))]
89776#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89777impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for VarDeclarator {
89778    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_declarator`] with `self`."]
89779    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89780        <V as VisitMutAstPath>::visit_mut_var_declarator(visitor, self, __ast_path)
89781    }
89782
89783    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89784        match self {
89785            VarDeclarator {
89786                span,
89787                name,
89788                init,
89789                definite,
89790            } => {
89791                {
89792                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
89793                        self::fields::VarDeclaratorField::Span,
89794                    ));
89795                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89796                        span,
89797                        visitor,
89798                        &mut *__ast_path,
89799                    )
89800                };
89801                {
89802                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
89803                        self::fields::VarDeclaratorField::Name,
89804                    ));
89805                    <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89806                        name,
89807                        visitor,
89808                        &mut *__ast_path,
89809                    )
89810                };
89811                {
89812                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
89813                        self::fields::VarDeclaratorField::Init,
89814                    ));
89815                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89816                        init,
89817                        visitor,
89818                        &mut *__ast_path,
89819                    )
89820                };
89821            }
89822        }
89823    }
89824}
89825#[cfg(any(docsrs, feature = "path"))]
89826#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89827impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for WhileStmt {
89828    #[doc = "Calls [VisitMutAstPath`::visit_mut_while_stmt`] with `self`."]
89829    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89830        <V as VisitMutAstPath>::visit_mut_while_stmt(visitor, self, __ast_path)
89831    }
89832
89833    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89834        match self {
89835            WhileStmt { span, test, body } => {
89836                {
89837                    let mut __ast_path = __ast_path
89838                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Span));
89839                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89840                        span,
89841                        visitor,
89842                        &mut *__ast_path,
89843                    )
89844                };
89845                {
89846                    let mut __ast_path = __ast_path
89847                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Test));
89848                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89849                        test,
89850                        visitor,
89851                        &mut *__ast_path,
89852                    )
89853                };
89854                {
89855                    let mut __ast_path = __ast_path
89856                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Body));
89857                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89858                        body,
89859                        visitor,
89860                        &mut *__ast_path,
89861                    )
89862                };
89863            }
89864        }
89865    }
89866}
89867#[cfg(any(docsrs, feature = "path"))]
89868#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89869impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for WithStmt {
89870    #[doc = "Calls [VisitMutAstPath`::visit_mut_with_stmt`] with `self`."]
89871    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89872        <V as VisitMutAstPath>::visit_mut_with_stmt(visitor, self, __ast_path)
89873    }
89874
89875    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89876        match self {
89877            WithStmt { span, obj, body } => {
89878                {
89879                    let mut __ast_path = __ast_path
89880                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Span));
89881                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89882                        span,
89883                        visitor,
89884                        &mut *__ast_path,
89885                    )
89886                };
89887                {
89888                    let mut __ast_path = __ast_path
89889                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Obj));
89890                    <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89891                        obj,
89892                        visitor,
89893                        &mut *__ast_path,
89894                    )
89895                };
89896                {
89897                    let mut __ast_path = __ast_path
89898                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Body));
89899                    <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89900                        body,
89901                        visitor,
89902                        &mut *__ast_path,
89903                    )
89904                };
89905            }
89906        }
89907    }
89908}
89909#[cfg(any(docsrs, feature = "path"))]
89910#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89911impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for YieldExpr {
89912    #[doc = "Calls [VisitMutAstPath`::visit_mut_yield_expr`] with `self`."]
89913    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89914        <V as VisitMutAstPath>::visit_mut_yield_expr(visitor, self, __ast_path)
89915    }
89916
89917    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89918        match self {
89919            YieldExpr {
89920                span,
89921                arg,
89922                delegate,
89923            } => {
89924                {
89925                    let mut __ast_path = __ast_path
89926                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Span));
89927                    <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89928                        span,
89929                        visitor,
89930                        &mut *__ast_path,
89931                    )
89932                };
89933                {
89934                    let mut __ast_path = __ast_path
89935                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Arg));
89936                    <Option<Box<Expr>> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89937                        arg,
89938                        visitor,
89939                        &mut *__ast_path,
89940                    )
89941                };
89942            }
89943        }
89944    }
89945}
89946#[cfg(any(docsrs, feature = "path"))]
89947#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89948impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for swc_atoms::Atom {
89949    #[doc = "Calls [VisitMutAstPath`::visit_mut_atom`] with `self`. (Extra impl)"]
89950    #[inline]
89951    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89952        <V as VisitMutAstPath>::visit_mut_atom(visitor, self, __ast_path)
89953    }
89954
89955    #[inline]
89956    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89957        {}
89958    }
89959}
89960#[cfg(any(docsrs, feature = "path"))]
89961#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89962impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for BigIntValue {
89963    #[doc = "Calls [VisitMutAstPath`::visit_mut_big_int_value`] with `self`. (Extra impl)"]
89964    #[inline]
89965    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89966        <V as VisitMutAstPath>::visit_mut_big_int_value(visitor, self, __ast_path)
89967    }
89968
89969    #[inline]
89970    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89971        {}
89972    }
89973}
89974#[cfg(any(docsrs, feature = "path"))]
89975#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89976impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ClassMember> {
89977    #[doc = "Calls [VisitMutAstPath`::visit_mut_class_members`] with `self`. (Extra impl)"]
89978    #[inline]
89979    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89980        <V as VisitMutAstPath>::visit_mut_class_members(visitor, self, __ast_path)
89981    }
89982
89983    #[inline]
89984    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
89985        self.iter_mut().enumerate().for_each(|(__idx, item)| {
89986            let mut __ast_path = __ast_path.with_index_guard(__idx);
89987            <ClassMember as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
89988                item,
89989                visitor,
89990                &mut *__ast_path,
89991            )
89992        })
89993    }
89994}
89995#[cfg(any(docsrs, feature = "path"))]
89996#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
89997impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Decorator> {
89998    #[doc = "Calls [VisitMutAstPath`::visit_mut_decorators`] with `self`. (Extra impl)"]
89999    #[inline]
90000    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90001        <V as VisitMutAstPath>::visit_mut_decorators(visitor, self, __ast_path)
90002    }
90003
90004    #[inline]
90005    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90006        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90007            let mut __ast_path = __ast_path.with_index_guard(__idx);
90008            <Decorator as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90009                item,
90010                visitor,
90011                &mut *__ast_path,
90012            )
90013        })
90014    }
90015}
90016#[cfg(any(docsrs, feature = "path"))]
90017#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90018impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ExportSpecifier> {
90019    #[doc = "Calls [VisitMutAstPath`::visit_mut_export_specifiers`] with `self`. (Extra impl)"]
90020    #[inline]
90021    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90022        <V as VisitMutAstPath>::visit_mut_export_specifiers(visitor, self, __ast_path)
90023    }
90024
90025    #[inline]
90026    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90027        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90028            let mut __ast_path = __ast_path.with_index_guard(__idx);
90029            <ExportSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90030                item,
90031                visitor,
90032                &mut *__ast_path,
90033            )
90034        })
90035    }
90036}
90037#[cfg(any(docsrs, feature = "path"))]
90038#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90039impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ExprOrSpread> {
90040    #[doc = "Calls [VisitMutAstPath`::visit_mut_expr_or_spreads`] with `self`. (Extra impl)"]
90041    #[inline]
90042    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90043        <V as VisitMutAstPath>::visit_mut_expr_or_spreads(visitor, self, __ast_path)
90044    }
90045
90046    #[inline]
90047    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90048        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90049            let mut __ast_path = __ast_path.with_index_guard(__idx);
90050            <ExprOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90051                item,
90052                visitor,
90053                &mut *__ast_path,
90054            )
90055        })
90056    }
90057}
90058#[cfg(any(docsrs, feature = "path"))]
90059#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90060impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Box<Expr>> {
90061    #[doc = "Calls [VisitMutAstPath`::visit_mut_exprs`] with `self`. (Extra impl)"]
90062    #[inline]
90063    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90064        <V as VisitMutAstPath>::visit_mut_exprs(visitor, self, __ast_path)
90065    }
90066
90067    #[inline]
90068    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90069        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90070            let mut __ast_path = __ast_path.with_index_guard(__idx);
90071            <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90072                item,
90073                visitor,
90074                &mut *__ast_path,
90075            )
90076        })
90077    }
90078}
90079#[cfg(any(docsrs, feature = "path"))]
90080#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90081impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ImportSpecifier> {
90082    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_specifiers`] with `self`. (Extra impl)"]
90083    #[inline]
90084    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90085        <V as VisitMutAstPath>::visit_mut_import_specifiers(visitor, self, __ast_path)
90086    }
90087
90088    #[inline]
90089    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90090        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90091            let mut __ast_path = __ast_path.with_index_guard(__idx);
90092            <ImportSpecifier as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90093                item,
90094                visitor,
90095                &mut *__ast_path,
90096            )
90097        })
90098    }
90099}
90100#[cfg(any(docsrs, feature = "path"))]
90101#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90102impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ImportWithItem> {
90103    #[doc = "Calls [VisitMutAstPath`::visit_mut_import_with_items`] with `self`. (Extra impl)"]
90104    #[inline]
90105    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90106        <V as VisitMutAstPath>::visit_mut_import_with_items(visitor, self, __ast_path)
90107    }
90108
90109    #[inline]
90110    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90111        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90112            let mut __ast_path = __ast_path.with_index_guard(__idx);
90113            <ImportWithItem as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90114                item,
90115                visitor,
90116                &mut *__ast_path,
90117            )
90118        })
90119    }
90120}
90121#[cfg(any(docsrs, feature = "path"))]
90122#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90123impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<JSXAttrOrSpread> {
90124    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
90125    #[inline]
90126    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90127        <V as VisitMutAstPath>::visit_mut_jsx_attr_or_spreads(visitor, self, __ast_path)
90128    }
90129
90130    #[inline]
90131    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90132        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90133            let mut __ast_path = __ast_path.with_index_guard(__idx);
90134            <JSXAttrOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90135                item,
90136                visitor,
90137                &mut *__ast_path,
90138            )
90139        })
90140    }
90141}
90142#[cfg(any(docsrs, feature = "path"))]
90143#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90144impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<JSXElementChild> {
90145    #[doc = "Calls [VisitMutAstPath`::visit_mut_jsx_element_childs`] with `self`. (Extra impl)"]
90146    #[inline]
90147    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90148        <V as VisitMutAstPath>::visit_mut_jsx_element_childs(visitor, self, __ast_path)
90149    }
90150
90151    #[inline]
90152    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90153        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90154            let mut __ast_path = __ast_path.with_index_guard(__idx);
90155            <JSXElementChild as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90156                item,
90157                visitor,
90158                &mut *__ast_path,
90159            )
90160        })
90161    }
90162}
90163#[cfg(any(docsrs, feature = "path"))]
90164#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90165impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ModuleItem> {
90166    #[doc = "Calls [VisitMutAstPath`::visit_mut_module_items`] with `self`. (Extra impl)"]
90167    #[inline]
90168    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90169        <V as VisitMutAstPath>::visit_mut_module_items(visitor, self, __ast_path)
90170    }
90171
90172    #[inline]
90173    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90174        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90175            let mut __ast_path = __ast_path.with_index_guard(__idx);
90176            <ModuleItem as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90177                item,
90178                visitor,
90179                &mut *__ast_path,
90180            )
90181        })
90182    }
90183}
90184#[cfg(any(docsrs, feature = "path"))]
90185#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90186impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ObjectPatProp> {
90187    #[doc = "Calls [VisitMutAstPath`::visit_mut_object_pat_props`] with `self`. (Extra impl)"]
90188    #[inline]
90189    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90190        <V as VisitMutAstPath>::visit_mut_object_pat_props(visitor, self, __ast_path)
90191    }
90192
90193    #[inline]
90194    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90195        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90196            let mut __ast_path = __ast_path.with_index_guard(__idx);
90197            <ObjectPatProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90198                item,
90199                visitor,
90200                &mut *__ast_path,
90201            )
90202        })
90203    }
90204}
90205#[cfg(any(docsrs, feature = "path"))]
90206#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90207impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Accessibility> {
90208    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_accessibility`] with `self`. (Extra impl)"]
90209    #[inline]
90210    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90211        <V as VisitMutAstPath>::visit_mut_opt_accessibility(visitor, self, __ast_path)
90212    }
90213
90214    #[inline]
90215    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90216        match self {
90217            Some(inner) => <Accessibility as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90218                inner, visitor, __ast_path,
90219            ),
90220            None => {}
90221        }
90222    }
90223}
90224#[cfg(any(docsrs, feature = "path"))]
90225#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90226impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<swc_atoms::Atom> {
90227    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_atom`] with `self`. (Extra impl)"]
90228    #[inline]
90229    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90230        <V as VisitMutAstPath>::visit_mut_opt_atom(visitor, self, __ast_path)
90231    }
90232
90233    #[inline]
90234    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90235        match self {
90236            Some(inner) => <swc_atoms::Atom as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90237                inner, visitor, __ast_path,
90238            ),
90239            None => {}
90240        }
90241    }
90242}
90243#[cfg(any(docsrs, feature = "path"))]
90244#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90245impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<BlockStmt> {
90246    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_block_stmt`] with `self`. (Extra impl)"]
90247    #[inline]
90248    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90249        <V as VisitMutAstPath>::visit_mut_opt_block_stmt(visitor, self, __ast_path)
90250    }
90251
90252    #[inline]
90253    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90254        match self {
90255            Some(inner) => <BlockStmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90256                inner, visitor, __ast_path,
90257            ),
90258            None => {}
90259        }
90260    }
90261}
90262#[cfg(any(docsrs, feature = "path"))]
90263#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90264impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<CatchClause> {
90265    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_catch_clause`] with `self`. (Extra impl)"]
90266    #[inline]
90267    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90268        <V as VisitMutAstPath>::visit_mut_opt_catch_clause(visitor, self, __ast_path)
90269    }
90270
90271    #[inline]
90272    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90273        match self {
90274            Some(inner) => <CatchClause as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90275                inner, visitor, __ast_path,
90276            ),
90277            None => {}
90278        }
90279    }
90280}
90281#[cfg(any(docsrs, feature = "path"))]
90282#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90283impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<Expr>> {
90284    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_expr`] with `self`. (Extra impl)"]
90285    #[inline]
90286    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90287        <V as VisitMutAstPath>::visit_mut_opt_expr(visitor, self, __ast_path)
90288    }
90289
90290    #[inline]
90291    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90292        match self {
90293            Some(inner) => <Box<Expr> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90294                inner, visitor, __ast_path,
90295            ),
90296            None => {}
90297        }
90298    }
90299}
90300#[cfg(any(docsrs, feature = "path"))]
90301#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90302impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<ExprOrSpread> {
90303    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_expr_or_spread`] with `self`. (Extra impl)"]
90304    #[inline]
90305    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90306        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spread(visitor, self, __ast_path)
90307    }
90308
90309    #[inline]
90310    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90311        match self {
90312            Some(inner) => <ExprOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90313                inner, visitor, __ast_path,
90314            ),
90315            None => {}
90316        }
90317    }
90318}
90319#[cfg(any(docsrs, feature = "path"))]
90320#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90321impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Vec<ExprOrSpread>> {
90322    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_expr_or_spreads`] with `self`. (Extra impl)"]
90323    #[inline]
90324    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90325        <V as VisitMutAstPath>::visit_mut_opt_expr_or_spreads(visitor, self, __ast_path)
90326    }
90327
90328    #[inline]
90329    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90330        match self {
90331            Some(inner) => <Vec<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90332                inner, visitor, __ast_path,
90333            ),
90334            None => {}
90335        }
90336    }
90337}
90338#[cfg(any(docsrs, feature = "path"))]
90339#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90340impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Ident> {
90341    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ident`] with `self`. (Extra impl)"]
90342    #[inline]
90343    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90344        <V as VisitMutAstPath>::visit_mut_opt_ident(visitor, self, __ast_path)
90345    }
90346
90347    #[inline]
90348    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90349        match self {
90350            Some(inner) => <Ident as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90351                inner, visitor, __ast_path,
90352            ),
90353            None => {}
90354        }
90355    }
90356}
90357#[cfg(any(docsrs, feature = "path"))]
90358#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90359impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<JSXAttrValue> {
90360    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_jsx_attr_value`] with `self`. (Extra impl)"]
90361    #[inline]
90362    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90363        <V as VisitMutAstPath>::visit_mut_opt_jsx_attr_value(visitor, self, __ast_path)
90364    }
90365
90366    #[inline]
90367    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90368        match self {
90369            Some(inner) => <JSXAttrValue as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90370                inner, visitor, __ast_path,
90371            ),
90372            None => {}
90373        }
90374    }
90375}
90376#[cfg(any(docsrs, feature = "path"))]
90377#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90378impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<JSXClosingElement> {
90379    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_jsx_closing_element`] with `self`. (Extra impl)"]
90380    #[inline]
90381    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90382        <V as VisitMutAstPath>::visit_mut_opt_jsx_closing_element(visitor, self, __ast_path)
90383    }
90384
90385    #[inline]
90386    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90387        match self {
90388            Some(inner) => <JSXClosingElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90389                inner, visitor, __ast_path,
90390            ),
90391            None => {}
90392        }
90393    }
90394}
90395#[cfg(any(docsrs, feature = "path"))]
90396#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90397impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<ModuleExportName> {
90398    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_module_export_name`] with `self`. (Extra impl)"]
90399    #[inline]
90400    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90401        <V as VisitMutAstPath>::visit_mut_opt_module_export_name(visitor, self, __ast_path)
90402    }
90403
90404    #[inline]
90405    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90406        match self {
90407            Some(inner) => <ModuleExportName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90408                inner, visitor, __ast_path,
90409            ),
90410            None => {}
90411        }
90412    }
90413}
90414#[cfg(any(docsrs, feature = "path"))]
90415#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90416impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<ObjectLit>> {
90417    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_object_lit`] with `self`. (Extra impl)"]
90418    #[inline]
90419    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90420        <V as VisitMutAstPath>::visit_mut_opt_object_lit(visitor, self, __ast_path)
90421    }
90422
90423    #[inline]
90424    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90425        match self {
90426            Some(inner) => <Box<ObjectLit> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90427                inner, visitor, __ast_path,
90428            ),
90429            None => {}
90430        }
90431    }
90432}
90433#[cfg(any(docsrs, feature = "path"))]
90434#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90435impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Pat> {
90436    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_pat`] with `self`. (Extra impl)"]
90437    #[inline]
90438    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90439        <V as VisitMutAstPath>::visit_mut_opt_pat(visitor, self, __ast_path)
90440    }
90441
90442    #[inline]
90443    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90444        match self {
90445            Some(inner) => {
90446                <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(inner, visitor, __ast_path)
90447            }
90448            None => {}
90449        }
90450    }
90451}
90452#[cfg(any(docsrs, feature = "path"))]
90453#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90454impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<swc_common::Span> {
90455    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_span`] with `self`. (Extra impl)"]
90456    #[inline]
90457    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90458        <V as VisitMutAstPath>::visit_mut_opt_span(visitor, self, __ast_path)
90459    }
90460
90461    #[inline]
90462    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90463        match self {
90464            Some(inner) => <swc_common::Span as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90465                inner, visitor, __ast_path,
90466            ),
90467            None => {}
90468        }
90469    }
90470}
90471#[cfg(any(docsrs, feature = "path"))]
90472#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90473impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<Stmt>> {
90474    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_stmt`] with `self`. (Extra impl)"]
90475    #[inline]
90476    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90477        <V as VisitMutAstPath>::visit_mut_opt_stmt(visitor, self, __ast_path)
90478    }
90479
90480    #[inline]
90481    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90482        match self {
90483            Some(inner) => <Box<Stmt> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90484                inner, visitor, __ast_path,
90485            ),
90486            None => {}
90487        }
90488    }
90489}
90490#[cfg(any(docsrs, feature = "path"))]
90491#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90492impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<Str>> {
90493    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_str`] with `self`. (Extra impl)"]
90494    #[inline]
90495    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90496        <V as VisitMutAstPath>::visit_mut_opt_str(visitor, self, __ast_path)
90497    }
90498
90499    #[inline]
90500    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90501        match self {
90502            Some(inner) => <Box<Str> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90503                inner, visitor, __ast_path,
90504            ),
90505            None => {}
90506        }
90507    }
90508}
90509#[cfg(any(docsrs, feature = "path"))]
90510#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90511impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TruePlusMinus> {
90512    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_true_plus_minus`] with `self`. (Extra impl)"]
90513    #[inline]
90514    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90515        <V as VisitMutAstPath>::visit_mut_opt_true_plus_minus(visitor, self, __ast_path)
90516    }
90517
90518    #[inline]
90519    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90520        match self {
90521            Some(inner) => <TruePlusMinus as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90522                inner, visitor, __ast_path,
90523            ),
90524            None => {}
90525        }
90526    }
90527}
90528#[cfg(any(docsrs, feature = "path"))]
90529#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90530impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TsEntityName> {
90531    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_entity_name`] with `self`. (Extra impl)"]
90532    #[inline]
90533    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90534        <V as VisitMutAstPath>::visit_mut_opt_ts_entity_name(visitor, self, __ast_path)
90535    }
90536
90537    #[inline]
90538    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90539        match self {
90540            Some(inner) => <TsEntityName as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90541                inner, visitor, __ast_path,
90542            ),
90543            None => {}
90544        }
90545    }
90546}
90547#[cfg(any(docsrs, feature = "path"))]
90548#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90549impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<TsNamespaceBody> {
90550    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_namespace_body`] with `self`. (Extra impl)"]
90551    #[inline]
90552    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90553        <V as VisitMutAstPath>::visit_mut_opt_ts_namespace_body(visitor, self, __ast_path)
90554    }
90555
90556    #[inline]
90557    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90558        match self {
90559            Some(inner) => <TsNamespaceBody as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90560                inner, visitor, __ast_path,
90561            ),
90562            None => {}
90563        }
90564    }
90565}
90566#[cfg(any(docsrs, feature = "path"))]
90567#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90568impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsType>> {
90569    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type`] with `self`. (Extra impl)"]
90570    #[inline]
90571    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90572        <V as VisitMutAstPath>::visit_mut_opt_ts_type(visitor, self, __ast_path)
90573    }
90574
90575    #[inline]
90576    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90577        match self {
90578            Some(inner) => <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90579                inner, visitor, __ast_path,
90580            ),
90581            None => {}
90582        }
90583    }
90584}
90585#[cfg(any(docsrs, feature = "path"))]
90586#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90587impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsTypeAnn>> {
90588    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type_ann`] with `self`. (Extra impl)"]
90589    #[inline]
90590    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90591        <V as VisitMutAstPath>::visit_mut_opt_ts_type_ann(visitor, self, __ast_path)
90592    }
90593
90594    #[inline]
90595    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90596        match self {
90597            Some(inner) => <Box<TsTypeAnn> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90598                inner, visitor, __ast_path,
90599            ),
90600            None => {}
90601        }
90602    }
90603}
90604#[cfg(any(docsrs, feature = "path"))]
90605#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90606impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsTypeParamDecl>> {
90607    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
90608    #[inline]
90609    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90610        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_decl(visitor, self, __ast_path)
90611    }
90612
90613    #[inline]
90614    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90615        match self {
90616            Some(inner) => {
90617                <Box<TsTypeParamDecl> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90618                    inner, visitor, __ast_path,
90619                )
90620            }
90621            None => {}
90622        }
90623    }
90624}
90625#[cfg(any(docsrs, feature = "path"))]
90626#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90627impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<Box<TsTypeParamInstantiation>> {
90628    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_ts_type_param_instantiation`] with `self`. \
90629             (Extra impl)"]
90630    #[inline]
90631    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90632        <V as VisitMutAstPath>::visit_mut_opt_ts_type_param_instantiation(visitor, self, __ast_path)
90633    }
90634
90635    #[inline]
90636    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90637        match self {
90638            Some(inner) => {
90639                <Box<TsTypeParamInstantiation> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90640                    inner, visitor, __ast_path,
90641                )
90642            }
90643            None => {}
90644        }
90645    }
90646}
90647#[cfg(any(docsrs, feature = "path"))]
90648#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90649impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Option<VarDeclOrExpr> {
90650    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
90651    #[inline]
90652    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90653        <V as VisitMutAstPath>::visit_mut_opt_var_decl_or_expr(visitor, self, __ast_path)
90654    }
90655
90656    #[inline]
90657    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90658        match self {
90659            Some(inner) => <VarDeclOrExpr as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90660                inner, visitor, __ast_path,
90661            ),
90662            None => {}
90663        }
90664    }
90665}
90666#[cfg(any(docsrs, feature = "path"))]
90667#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90668impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Option<ExprOrSpread>> {
90669    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
90670    #[inline]
90671    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90672        <V as VisitMutAstPath>::visit_mut_opt_vec_expr_or_spreads(visitor, self, __ast_path)
90673    }
90674
90675    #[inline]
90676    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90677        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90678            let mut __ast_path = __ast_path.with_index_guard(__idx);
90679            <Option<ExprOrSpread> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90680                item,
90681                visitor,
90682                &mut *__ast_path,
90683            )
90684        })
90685    }
90686}
90687#[cfg(any(docsrs, feature = "path"))]
90688#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90689impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Option<Pat>> {
90690    #[doc = "Calls [VisitMutAstPath`::visit_mut_opt_vec_pats`] with `self`. (Extra impl)"]
90691    #[inline]
90692    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90693        <V as VisitMutAstPath>::visit_mut_opt_vec_pats(visitor, self, __ast_path)
90694    }
90695
90696    #[inline]
90697    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90698        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90699            let mut __ast_path = __ast_path.with_index_guard(__idx);
90700            <Option<Pat> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90701                item,
90702                visitor,
90703                &mut *__ast_path,
90704            )
90705        })
90706    }
90707}
90708#[cfg(any(docsrs, feature = "path"))]
90709#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90710impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<ParamOrTsParamProp> {
90711    #[doc = "Calls [VisitMutAstPath`::visit_mut_param_or_ts_param_props`] with `self`. (Extra impl)"]
90712    #[inline]
90713    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90714        <V as VisitMutAstPath>::visit_mut_param_or_ts_param_props(visitor, self, __ast_path)
90715    }
90716
90717    #[inline]
90718    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90719        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90720            let mut __ast_path = __ast_path.with_index_guard(__idx);
90721            <ParamOrTsParamProp as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90722                item,
90723                visitor,
90724                &mut *__ast_path,
90725            )
90726        })
90727    }
90728}
90729#[cfg(any(docsrs, feature = "path"))]
90730#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90731impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Param> {
90732    #[doc = "Calls [VisitMutAstPath`::visit_mut_params`] with `self`. (Extra impl)"]
90733    #[inline]
90734    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90735        <V as VisitMutAstPath>::visit_mut_params(visitor, self, __ast_path)
90736    }
90737
90738    #[inline]
90739    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90740        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90741            let mut __ast_path = __ast_path.with_index_guard(__idx);
90742            <Param as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90743                item,
90744                visitor,
90745                &mut *__ast_path,
90746            )
90747        })
90748    }
90749}
90750#[cfg(any(docsrs, feature = "path"))]
90751#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90752impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Pat> {
90753    #[doc = "Calls [VisitMutAstPath`::visit_mut_pats`] with `self`. (Extra impl)"]
90754    #[inline]
90755    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90756        <V as VisitMutAstPath>::visit_mut_pats(visitor, self, __ast_path)
90757    }
90758
90759    #[inline]
90760    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90761        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90762            let mut __ast_path = __ast_path.with_index_guard(__idx);
90763            <Pat as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90764                item,
90765                visitor,
90766                &mut *__ast_path,
90767            )
90768        })
90769    }
90770}
90771#[cfg(any(docsrs, feature = "path"))]
90772#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90773impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<PropOrSpread> {
90774    #[doc = "Calls [VisitMutAstPath`::visit_mut_prop_or_spreads`] with `self`. (Extra impl)"]
90775    #[inline]
90776    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90777        <V as VisitMutAstPath>::visit_mut_prop_or_spreads(visitor, self, __ast_path)
90778    }
90779
90780    #[inline]
90781    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90782        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90783            let mut __ast_path = __ast_path.with_index_guard(__idx);
90784            <PropOrSpread as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90785                item,
90786                visitor,
90787                &mut *__ast_path,
90788            )
90789        })
90790    }
90791}
90792#[cfg(any(docsrs, feature = "path"))]
90793#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90794impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for swc_common::Span {
90795    #[doc = "Calls [VisitMutAstPath`::visit_mut_span`] with `self`. (Extra impl)"]
90796    #[inline]
90797    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90798        <V as VisitMutAstPath>::visit_mut_span(visitor, self, __ast_path)
90799    }
90800
90801    #[inline]
90802    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90803        {}
90804    }
90805}
90806#[cfg(any(docsrs, feature = "path"))]
90807#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90808impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Stmt> {
90809    #[doc = "Calls [VisitMutAstPath`::visit_mut_stmts`] with `self`. (Extra impl)"]
90810    #[inline]
90811    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90812        <V as VisitMutAstPath>::visit_mut_stmts(visitor, self, __ast_path)
90813    }
90814
90815    #[inline]
90816    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90817        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90818            let mut __ast_path = __ast_path.with_index_guard(__idx);
90819            <Stmt as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90820                item,
90821                visitor,
90822                &mut *__ast_path,
90823            )
90824        })
90825    }
90826}
90827#[cfg(any(docsrs, feature = "path"))]
90828#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90829impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<SwitchCase> {
90830    #[doc = "Calls [VisitMutAstPath`::visit_mut_switch_cases`] with `self`. (Extra impl)"]
90831    #[inline]
90832    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90833        <V as VisitMutAstPath>::visit_mut_switch_cases(visitor, self, __ast_path)
90834    }
90835
90836    #[inline]
90837    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90838        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90839            let mut __ast_path = __ast_path.with_index_guard(__idx);
90840            <SwitchCase as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90841                item,
90842                visitor,
90843                &mut *__ast_path,
90844            )
90845        })
90846    }
90847}
90848#[cfg(any(docsrs, feature = "path"))]
90849#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90850impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for swc_common::SyntaxContext {
90851    #[doc = "Calls [VisitMutAstPath`::visit_mut_syntax_context`] with `self`. (Extra impl)"]
90852    #[inline]
90853    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90854        <V as VisitMutAstPath>::visit_mut_syntax_context(visitor, self, __ast_path)
90855    }
90856
90857    #[inline]
90858    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90859        {}
90860    }
90861}
90862#[cfg(any(docsrs, feature = "path"))]
90863#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90864impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TplElement> {
90865    #[doc = "Calls [VisitMutAstPath`::visit_mut_tpl_elements`] with `self`. (Extra impl)"]
90866    #[inline]
90867    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90868        <V as VisitMutAstPath>::visit_mut_tpl_elements(visitor, self, __ast_path)
90869    }
90870
90871    #[inline]
90872    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90873        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90874            let mut __ast_path = __ast_path.with_index_guard(__idx);
90875            <TplElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90876                item,
90877                visitor,
90878                &mut *__ast_path,
90879            )
90880        })
90881    }
90882}
90883#[cfg(any(docsrs, feature = "path"))]
90884#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90885impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsEnumMember> {
90886    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_enum_members`] with `self`. (Extra impl)"]
90887    #[inline]
90888    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90889        <V as VisitMutAstPath>::visit_mut_ts_enum_members(visitor, self, __ast_path)
90890    }
90891
90892    #[inline]
90893    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90894        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90895            let mut __ast_path = __ast_path.with_index_guard(__idx);
90896            <TsEnumMember as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90897                item,
90898                visitor,
90899                &mut *__ast_path,
90900            )
90901        })
90902    }
90903}
90904#[cfg(any(docsrs, feature = "path"))]
90905#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90906impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsExprWithTypeArgs> {
90907    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
90908    #[inline]
90909    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90910        <V as VisitMutAstPath>::visit_mut_ts_expr_with_type_argss(visitor, self, __ast_path)
90911    }
90912
90913    #[inline]
90914    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90915        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90916            let mut __ast_path = __ast_path.with_index_guard(__idx);
90917            <TsExprWithTypeArgs as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90918                item,
90919                visitor,
90920                &mut *__ast_path,
90921            )
90922        })
90923    }
90924}
90925#[cfg(any(docsrs, feature = "path"))]
90926#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90927impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsFnParam> {
90928    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_fn_params`] with `self`. (Extra impl)"]
90929    #[inline]
90930    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90931        <V as VisitMutAstPath>::visit_mut_ts_fn_params(visitor, self, __ast_path)
90932    }
90933
90934    #[inline]
90935    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90936        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90937            let mut __ast_path = __ast_path.with_index_guard(__idx);
90938            <TsFnParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90939                item,
90940                visitor,
90941                &mut *__ast_path,
90942            )
90943        })
90944    }
90945}
90946#[cfg(any(docsrs, feature = "path"))]
90947#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90948impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsTupleElement> {
90949    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_tuple_elements`] with `self`. (Extra impl)"]
90950    #[inline]
90951    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90952        <V as VisitMutAstPath>::visit_mut_ts_tuple_elements(visitor, self, __ast_path)
90953    }
90954
90955    #[inline]
90956    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90957        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90958            let mut __ast_path = __ast_path.with_index_guard(__idx);
90959            <TsTupleElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90960                item,
90961                visitor,
90962                &mut *__ast_path,
90963            )
90964        })
90965    }
90966}
90967#[cfg(any(docsrs, feature = "path"))]
90968#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90969impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsTypeElement> {
90970    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_elements`] with `self`. (Extra impl)"]
90971    #[inline]
90972    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90973        <V as VisitMutAstPath>::visit_mut_ts_type_elements(visitor, self, __ast_path)
90974    }
90975
90976    #[inline]
90977    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90978        self.iter_mut().enumerate().for_each(|(__idx, item)| {
90979            let mut __ast_path = __ast_path.with_index_guard(__idx);
90980            <TsTypeElement as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
90981                item,
90982                visitor,
90983                &mut *__ast_path,
90984            )
90985        })
90986    }
90987}
90988#[cfg(any(docsrs, feature = "path"))]
90989#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
90990impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<TsTypeParam> {
90991    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_type_params`] with `self`. (Extra impl)"]
90992    #[inline]
90993    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90994        <V as VisitMutAstPath>::visit_mut_ts_type_params(visitor, self, __ast_path)
90995    }
90996
90997    #[inline]
90998    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
90999        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91000            let mut __ast_path = __ast_path.with_index_guard(__idx);
91001            <TsTypeParam as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91002                item,
91003                visitor,
91004                &mut *__ast_path,
91005            )
91006        })
91007    }
91008}
91009#[cfg(any(docsrs, feature = "path"))]
91010#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91011impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<Box<TsType>> {
91012    #[doc = "Calls [VisitMutAstPath`::visit_mut_ts_types`] with `self`. (Extra impl)"]
91013    #[inline]
91014    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91015        <V as VisitMutAstPath>::visit_mut_ts_types(visitor, self, __ast_path)
91016    }
91017
91018    #[inline]
91019    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91020        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91021            let mut __ast_path = __ast_path.with_index_guard(__idx);
91022            <Box<TsType> as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91023                item,
91024                visitor,
91025                &mut *__ast_path,
91026            )
91027        })
91028    }
91029}
91030#[cfg(any(docsrs, feature = "path"))]
91031#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91032impl<V: ?Sized + VisitMutAstPath> VisitMutWithAstPath<V> for Vec<VarDeclarator> {
91033    #[doc = "Calls [VisitMutAstPath`::visit_mut_var_declarators`] with `self`. (Extra impl)"]
91034    #[inline]
91035    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91036        <V as VisitMutAstPath>::visit_mut_var_declarators(visitor, self, __ast_path)
91037    }
91038
91039    #[inline]
91040    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91041        self.iter_mut().enumerate().for_each(|(__idx, item)| {
91042            let mut __ast_path = __ast_path.with_index_guard(__idx);
91043            <VarDeclarator as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91044                item,
91045                visitor,
91046                &mut *__ast_path,
91047            )
91048        })
91049    }
91050}
91051#[cfg(any(docsrs, feature = "path"))]
91052#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
91053impl<V, T> VisitMutWithAstPath<V> for std::boxed::Box<T>
91054where
91055    V: ?Sized + VisitMutAstPath,
91056    T: VisitMutWithAstPath<V>,
91057{
91058    #[inline]
91059    fn visit_mut_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91060        let v = <T as VisitMutWithAstPath<V>>::visit_mut_with_ast_path(
91061            &mut **self,
91062            visitor,
91063            __ast_path,
91064        );
91065        v
91066    }
91067
91068    #[inline]
91069    fn visit_mut_children_with_ast_path(&mut self, visitor: &mut V, __ast_path: &mut AstKindPath) {
91070        let v = <T as VisitMutWithAstPath<V>>::visit_mut_children_with_ast_path(
91071            &mut **self,
91072            visitor,
91073            __ast_path,
91074        );
91075        v
91076    }
91077}
91078#[doc = r" A visitor trait for traversing the AST."]
91079pub trait Fold {
91080    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
91081             [`Accessibility::fold_children_with`]. If you want to recurse, you need to call it \
91082             manually."]
91083    #[inline]
91084    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
91085        <Accessibility as FoldWith<Self>>::fold_children_with(node, self)
91086    }
91087    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
91088             [`ArrayLit::fold_children_with`]. If you want to recurse, you need to call it \
91089             manually."]
91090    #[inline]
91091    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
91092        <ArrayLit as FoldWith<Self>>::fold_children_with(node, self)
91093    }
91094    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
91095             [`ArrayPat::fold_children_with`]. If you want to recurse, you need to call it \
91096             manually."]
91097    #[inline]
91098    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
91099        <ArrayPat as FoldWith<Self>>::fold_children_with(node, self)
91100    }
91101    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
91102             [`ArrowExpr::fold_children_with`]. If you want to recurse, you need to call it \
91103             manually."]
91104    #[inline]
91105    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
91106        <ArrowExpr as FoldWith<Self>>::fold_children_with(node, self)
91107    }
91108    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
91109             [`AssignExpr::fold_children_with`]. If you want to recurse, you need to call it \
91110             manually."]
91111    #[inline]
91112    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
91113        <AssignExpr as FoldWith<Self>>::fold_children_with(node, self)
91114    }
91115    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
91116             [`AssignOp::fold_children_with`]. If you want to recurse, you need to call it \
91117             manually."]
91118    #[inline]
91119    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
91120        <AssignOp as FoldWith<Self>>::fold_children_with(node, self)
91121    }
91122    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
91123             [`AssignPat::fold_children_with`]. If you want to recurse, you need to call it \
91124             manually."]
91125    #[inline]
91126    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
91127        <AssignPat as FoldWith<Self>>::fold_children_with(node, self)
91128    }
91129    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
91130             [`AssignPatProp::fold_children_with`]. If you want to recurse, you need to call it \
91131             manually."]
91132    #[inline]
91133    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
91134        <AssignPatProp as FoldWith<Self>>::fold_children_with(node, self)
91135    }
91136    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
91137             [`AssignProp::fold_children_with`]. If you want to recurse, you need to call it \
91138             manually."]
91139    #[inline]
91140    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
91141        <AssignProp as FoldWith<Self>>::fold_children_with(node, self)
91142    }
91143    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
91144             [`AssignTarget::fold_children_with`]. If you want to recurse, you need to call it \
91145             manually."]
91146    #[inline]
91147    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
91148        <AssignTarget as FoldWith<Self>>::fold_children_with(node, self)
91149    }
91150    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
91151             [`AssignTargetPat::fold_children_with`]. If you want to recurse, you need to call it \
91152             manually."]
91153    #[inline]
91154    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
91155        <AssignTargetPat as FoldWith<Self>>::fold_children_with(node, self)
91156    }
91157    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
91158             [`swc_atoms :: Atom::fold_children_with`]. If you want to recurse, you need to call \
91159             it manually."]
91160    #[inline]
91161    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
91162        <swc_atoms::Atom as FoldWith<Self>>::fold_children_with(node, self)
91163    }
91164    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
91165             [`AutoAccessor::fold_children_with`]. If you want to recurse, you need to call it \
91166             manually."]
91167    #[inline]
91168    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
91169        <AutoAccessor as FoldWith<Self>>::fold_children_with(node, self)
91170    }
91171    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
91172             [`AwaitExpr::fold_children_with`]. If you want to recurse, you need to call it \
91173             manually."]
91174    #[inline]
91175    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
91176        <AwaitExpr as FoldWith<Self>>::fold_children_with(node, self)
91177    }
91178    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
91179             [`BigInt::fold_children_with`]. If you want to recurse, you need to call it manually."]
91180    #[inline]
91181    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
91182        <BigInt as FoldWith<Self>>::fold_children_with(node, self)
91183    }
91184    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
91185             [`BigIntValue::fold_children_with`]. If you want to recurse, you need to call it \
91186             manually."]
91187    #[inline]
91188    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
91189        <BigIntValue as FoldWith<Self>>::fold_children_with(node, self)
91190    }
91191    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
91192             [`BinExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91193    #[inline]
91194    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
91195        <BinExpr as FoldWith<Self>>::fold_children_with(node, self)
91196    }
91197    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
91198             [`BinaryOp::fold_children_with`]. If you want to recurse, you need to call it \
91199             manually."]
91200    #[inline]
91201    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
91202        <BinaryOp as FoldWith<Self>>::fold_children_with(node, self)
91203    }
91204    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
91205             [`BindingIdent::fold_children_with`]. If you want to recurse, you need to call it \
91206             manually."]
91207    #[inline]
91208    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
91209        <BindingIdent as FoldWith<Self>>::fold_children_with(node, self)
91210    }
91211    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
91212             [`BlockStmt::fold_children_with`]. If you want to recurse, you need to call it \
91213             manually."]
91214    #[inline]
91215    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
91216        <BlockStmt as FoldWith<Self>>::fold_children_with(node, self)
91217    }
91218    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
91219             [`BlockStmtOrExpr::fold_children_with`]. If you want to recurse, you need to call it \
91220             manually."]
91221    #[inline]
91222    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
91223        <BlockStmtOrExpr as FoldWith<Self>>::fold_children_with(node, self)
91224    }
91225    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
91226             [`Bool::fold_children_with`]. If you want to recurse, you need to call it manually."]
91227    #[inline]
91228    fn fold_bool(&mut self, node: Bool) -> Bool {
91229        <Bool as FoldWith<Self>>::fold_children_with(node, self)
91230    }
91231    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
91232             [`BreakStmt::fold_children_with`]. If you want to recurse, you need to call it \
91233             manually."]
91234    #[inline]
91235    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
91236        <BreakStmt as FoldWith<Self>>::fold_children_with(node, self)
91237    }
91238    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
91239             [`CallExpr::fold_children_with`]. If you want to recurse, you need to call it \
91240             manually."]
91241    #[inline]
91242    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
91243        <CallExpr as FoldWith<Self>>::fold_children_with(node, self)
91244    }
91245    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
91246             [`Callee::fold_children_with`]. If you want to recurse, you need to call it manually."]
91247    #[inline]
91248    fn fold_callee(&mut self, node: Callee) -> Callee {
91249        <Callee as FoldWith<Self>>::fold_children_with(node, self)
91250    }
91251    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
91252             [`CatchClause::fold_children_with`]. If you want to recurse, you need to call it \
91253             manually."]
91254    #[inline]
91255    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
91256        <CatchClause as FoldWith<Self>>::fold_children_with(node, self)
91257    }
91258    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
91259             [`Class::fold_children_with`]. If you want to recurse, you need to call it manually."]
91260    #[inline]
91261    fn fold_class(&mut self, node: Class) -> Class {
91262        <Class as FoldWith<Self>>::fold_children_with(node, self)
91263    }
91264    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
91265             [`ClassDecl::fold_children_with`]. If you want to recurse, you need to call it \
91266             manually."]
91267    #[inline]
91268    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
91269        <ClassDecl as FoldWith<Self>>::fold_children_with(node, self)
91270    }
91271    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
91272             [`ClassExpr::fold_children_with`]. If you want to recurse, you need to call it \
91273             manually."]
91274    #[inline]
91275    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
91276        <ClassExpr as FoldWith<Self>>::fold_children_with(node, self)
91277    }
91278    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
91279             [`ClassMember::fold_children_with`]. If you want to recurse, you need to call it \
91280             manually."]
91281    #[inline]
91282    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
91283        <ClassMember as FoldWith<Self>>::fold_children_with(node, self)
91284    }
91285    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
91286             ClassMember >::fold_children_with`]. If you want to recurse, you need to call it \
91287             manually."]
91288    #[inline]
91289    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
91290        <Vec<ClassMember> as FoldWith<Self>>::fold_children_with(node, self)
91291    }
91292    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
91293             [`ClassMethod::fold_children_with`]. If you want to recurse, you need to call it \
91294             manually."]
91295    #[inline]
91296    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
91297        <ClassMethod as FoldWith<Self>>::fold_children_with(node, self)
91298    }
91299    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
91300             [`ClassProp::fold_children_with`]. If you want to recurse, you need to call it \
91301             manually."]
91302    #[inline]
91303    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
91304        <ClassProp as FoldWith<Self>>::fold_children_with(node, self)
91305    }
91306    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
91307             [`ComputedPropName::fold_children_with`]. If you want to recurse, you need to call it \
91308             manually."]
91309    #[inline]
91310    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
91311        <ComputedPropName as FoldWith<Self>>::fold_children_with(node, self)
91312    }
91313    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
91314             [`CondExpr::fold_children_with`]. If you want to recurse, you need to call it \
91315             manually."]
91316    #[inline]
91317    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
91318        <CondExpr as FoldWith<Self>>::fold_children_with(node, self)
91319    }
91320    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
91321             [`Constructor::fold_children_with`]. If you want to recurse, you need to call it \
91322             manually."]
91323    #[inline]
91324    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
91325        <Constructor as FoldWith<Self>>::fold_children_with(node, self)
91326    }
91327    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
91328             [`ContinueStmt::fold_children_with`]. If you want to recurse, you need to call it \
91329             manually."]
91330    #[inline]
91331    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
91332        <ContinueStmt as FoldWith<Self>>::fold_children_with(node, self)
91333    }
91334    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
91335             [`DebuggerStmt::fold_children_with`]. If you want to recurse, you need to call it \
91336             manually."]
91337    #[inline]
91338    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
91339        <DebuggerStmt as FoldWith<Self>>::fold_children_with(node, self)
91340    }
91341    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
91342             [`Decl::fold_children_with`]. If you want to recurse, you need to call it manually."]
91343    #[inline]
91344    fn fold_decl(&mut self, node: Decl) -> Decl {
91345        <Decl as FoldWith<Self>>::fold_children_with(node, self)
91346    }
91347    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
91348             [`Decorator::fold_children_with`]. If you want to recurse, you need to call it \
91349             manually."]
91350    #[inline]
91351    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
91352        <Decorator as FoldWith<Self>>::fold_children_with(node, self)
91353    }
91354    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
91355             Decorator >::fold_children_with`]. If you want to recurse, you need to call it \
91356             manually."]
91357    #[inline]
91358    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
91359        <Vec<Decorator> as FoldWith<Self>>::fold_children_with(node, self)
91360    }
91361    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
91362             [`DefaultDecl::fold_children_with`]. If you want to recurse, you need to call it \
91363             manually."]
91364    #[inline]
91365    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
91366        <DefaultDecl as FoldWith<Self>>::fold_children_with(node, self)
91367    }
91368    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
91369             [`DoWhileStmt::fold_children_with`]. If you want to recurse, you need to call it \
91370             manually."]
91371    #[inline]
91372    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
91373        <DoWhileStmt as FoldWith<Self>>::fold_children_with(node, self)
91374    }
91375    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
91376             [`EmptyStmt::fold_children_with`]. If you want to recurse, you need to call it \
91377             manually."]
91378    #[inline]
91379    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
91380        <EmptyStmt as FoldWith<Self>>::fold_children_with(node, self)
91381    }
91382    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
91383             [`ExportAll::fold_children_with`]. If you want to recurse, you need to call it \
91384             manually."]
91385    #[inline]
91386    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
91387        <ExportAll as FoldWith<Self>>::fold_children_with(node, self)
91388    }
91389    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
91390             [`ExportDecl::fold_children_with`]. If you want to recurse, you need to call it \
91391             manually."]
91392    #[inline]
91393    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
91394        <ExportDecl as FoldWith<Self>>::fold_children_with(node, self)
91395    }
91396    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
91397             [`ExportDefaultDecl::fold_children_with`]. If you want to recurse, you need to call \
91398             it manually."]
91399    #[inline]
91400    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
91401        <ExportDefaultDecl as FoldWith<Self>>::fold_children_with(node, self)
91402    }
91403    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
91404             [`ExportDefaultExpr::fold_children_with`]. If you want to recurse, you need to call \
91405             it manually."]
91406    #[inline]
91407    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
91408        <ExportDefaultExpr as FoldWith<Self>>::fold_children_with(node, self)
91409    }
91410    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
91411             [`ExportDefaultSpecifier::fold_children_with`]. If you want to recurse, you need to \
91412             call it manually."]
91413    #[inline]
91414    fn fold_export_default_specifier(
91415        &mut self,
91416        node: ExportDefaultSpecifier,
91417    ) -> ExportDefaultSpecifier {
91418        <ExportDefaultSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91419    }
91420    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
91421             [`ExportNamedSpecifier::fold_children_with`]. If you want to recurse, you need to \
91422             call it manually."]
91423    #[inline]
91424    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
91425        <ExportNamedSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91426    }
91427    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
91428             [`ExportNamespaceSpecifier::fold_children_with`]. If you want to recurse, you need to \
91429             call it manually."]
91430    #[inline]
91431    fn fold_export_namespace_specifier(
91432        &mut self,
91433        node: ExportNamespaceSpecifier,
91434    ) -> ExportNamespaceSpecifier {
91435        <ExportNamespaceSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91436    }
91437    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
91438             [`ExportSpecifier::fold_children_with`]. If you want to recurse, you need to call it \
91439             manually."]
91440    #[inline]
91441    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
91442        <ExportSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91443    }
91444    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
91445             [`Vec < ExportSpecifier >::fold_children_with`]. If you want to recurse, you need to \
91446             call it manually."]
91447    #[inline]
91448    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
91449        <Vec<ExportSpecifier> as FoldWith<Self>>::fold_children_with(node, self)
91450    }
91451    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
91452             [`Expr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91453    #[inline]
91454    fn fold_expr(&mut self, node: Expr) -> Expr {
91455        <Expr as FoldWith<Self>>::fold_children_with(node, self)
91456    }
91457    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
91458             [`ExprOrSpread::fold_children_with`]. If you want to recurse, you need to call it \
91459             manually."]
91460    #[inline]
91461    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
91462        <ExprOrSpread as FoldWith<Self>>::fold_children_with(node, self)
91463    }
91464    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
91465             ExprOrSpread >::fold_children_with`]. If you want to recurse, you need to call it \
91466             manually."]
91467    #[inline]
91468    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
91469        <Vec<ExprOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
91470    }
91471    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
91472             [`ExprStmt::fold_children_with`]. If you want to recurse, you need to call it \
91473             manually."]
91474    #[inline]
91475    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
91476        <ExprStmt as FoldWith<Self>>::fold_children_with(node, self)
91477    }
91478    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
91479             Box < Expr > >::fold_children_with`]. If you want to recurse, you need to call it \
91480             manually."]
91481    #[inline]
91482    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
91483        <Vec<Box<Expr>> as FoldWith<Self>>::fold_children_with(node, self)
91484    }
91485    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
91486             [`FnDecl::fold_children_with`]. If you want to recurse, you need to call it manually."]
91487    #[inline]
91488    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
91489        <FnDecl as FoldWith<Self>>::fold_children_with(node, self)
91490    }
91491    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
91492             [`FnExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91493    #[inline]
91494    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
91495        <FnExpr as FoldWith<Self>>::fold_children_with(node, self)
91496    }
91497    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
91498             [`ForHead::fold_children_with`]. If you want to recurse, you need to call it manually."]
91499    #[inline]
91500    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
91501        <ForHead as FoldWith<Self>>::fold_children_with(node, self)
91502    }
91503    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
91504             [`ForInStmt::fold_children_with`]. If you want to recurse, you need to call it \
91505             manually."]
91506    #[inline]
91507    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
91508        <ForInStmt as FoldWith<Self>>::fold_children_with(node, self)
91509    }
91510    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
91511             [`ForOfStmt::fold_children_with`]. If you want to recurse, you need to call it \
91512             manually."]
91513    #[inline]
91514    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
91515        <ForOfStmt as FoldWith<Self>>::fold_children_with(node, self)
91516    }
91517    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
91518             [`ForStmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
91519    #[inline]
91520    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
91521        <ForStmt as FoldWith<Self>>::fold_children_with(node, self)
91522    }
91523    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
91524             [`Function::fold_children_with`]. If you want to recurse, you need to call it \
91525             manually."]
91526    #[inline]
91527    fn fold_function(&mut self, node: Function) -> Function {
91528        <Function as FoldWith<Self>>::fold_children_with(node, self)
91529    }
91530    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
91531             [`GetterProp::fold_children_with`]. If you want to recurse, you need to call it \
91532             manually."]
91533    #[inline]
91534    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
91535        <GetterProp as FoldWith<Self>>::fold_children_with(node, self)
91536    }
91537    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
91538             [`Ident::fold_children_with`]. If you want to recurse, you need to call it manually."]
91539    #[inline]
91540    fn fold_ident(&mut self, node: Ident) -> Ident {
91541        <Ident as FoldWith<Self>>::fold_children_with(node, self)
91542    }
91543    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
91544             [`IdentName::fold_children_with`]. If you want to recurse, you need to call it \
91545             manually."]
91546    #[inline]
91547    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
91548        <IdentName as FoldWith<Self>>::fold_children_with(node, self)
91549    }
91550    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
91551             [`IfStmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
91552    #[inline]
91553    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
91554        <IfStmt as FoldWith<Self>>::fold_children_with(node, self)
91555    }
91556    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
91557             [`Import::fold_children_with`]. If you want to recurse, you need to call it manually."]
91558    #[inline]
91559    fn fold_import(&mut self, node: Import) -> Import {
91560        <Import as FoldWith<Self>>::fold_children_with(node, self)
91561    }
91562    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
91563             [`ImportDecl::fold_children_with`]. If you want to recurse, you need to call it \
91564             manually."]
91565    #[inline]
91566    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
91567        <ImportDecl as FoldWith<Self>>::fold_children_with(node, self)
91568    }
91569    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
91570             [`ImportDefaultSpecifier::fold_children_with`]. If you want to recurse, you need to \
91571             call it manually."]
91572    #[inline]
91573    fn fold_import_default_specifier(
91574        &mut self,
91575        node: ImportDefaultSpecifier,
91576    ) -> ImportDefaultSpecifier {
91577        <ImportDefaultSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91578    }
91579    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
91580             [`ImportNamedSpecifier::fold_children_with`]. If you want to recurse, you need to \
91581             call it manually."]
91582    #[inline]
91583    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
91584        <ImportNamedSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91585    }
91586    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
91587             [`ImportPhase::fold_children_with`]. If you want to recurse, you need to call it \
91588             manually."]
91589    #[inline]
91590    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
91591        <ImportPhase as FoldWith<Self>>::fold_children_with(node, self)
91592    }
91593    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
91594             [`ImportSpecifier::fold_children_with`]. If you want to recurse, you need to call it \
91595             manually."]
91596    #[inline]
91597    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
91598        <ImportSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91599    }
91600    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
91601             [`Vec < ImportSpecifier >::fold_children_with`]. If you want to recurse, you need to \
91602             call it manually."]
91603    #[inline]
91604    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
91605        <Vec<ImportSpecifier> as FoldWith<Self>>::fold_children_with(node, self)
91606    }
91607    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
91608             [`ImportStarAsSpecifier::fold_children_with`]. If you want to recurse, you need to \
91609             call it manually."]
91610    #[inline]
91611    fn fold_import_star_as_specifier(
91612        &mut self,
91613        node: ImportStarAsSpecifier,
91614    ) -> ImportStarAsSpecifier {
91615        <ImportStarAsSpecifier as FoldWith<Self>>::fold_children_with(node, self)
91616    }
91617    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
91618             [`ImportWith::fold_children_with`]. If you want to recurse, you need to call it \
91619             manually."]
91620    #[inline]
91621    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
91622        <ImportWith as FoldWith<Self>>::fold_children_with(node, self)
91623    }
91624    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
91625             [`ImportWithItem::fold_children_with`]. If you want to recurse, you need to call it \
91626             manually."]
91627    #[inline]
91628    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
91629        <ImportWithItem as FoldWith<Self>>::fold_children_with(node, self)
91630    }
91631    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
91632             < ImportWithItem >::fold_children_with`]. If you want to recurse, you need to call it \
91633             manually."]
91634    #[inline]
91635    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
91636        <Vec<ImportWithItem> as FoldWith<Self>>::fold_children_with(node, self)
91637    }
91638    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
91639             [`Invalid::fold_children_with`]. If you want to recurse, you need to call it manually."]
91640    #[inline]
91641    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
91642        <Invalid as FoldWith<Self>>::fold_children_with(node, self)
91643    }
91644    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
91645             [`JSXAttr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91646    #[inline]
91647    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
91648        <JSXAttr as FoldWith<Self>>::fold_children_with(node, self)
91649    }
91650    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
91651             [`JSXAttrName::fold_children_with`]. If you want to recurse, you need to call it \
91652             manually."]
91653    #[inline]
91654    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
91655        <JSXAttrName as FoldWith<Self>>::fold_children_with(node, self)
91656    }
91657    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
91658             [`JSXAttrOrSpread::fold_children_with`]. If you want to recurse, you need to call it \
91659             manually."]
91660    #[inline]
91661    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
91662        <JSXAttrOrSpread as FoldWith<Self>>::fold_children_with(node, self)
91663    }
91664    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
91665             [`Vec < JSXAttrOrSpread >::fold_children_with`]. If you want to recurse, you need to \
91666             call it manually."]
91667    #[inline]
91668    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
91669        <Vec<JSXAttrOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
91670    }
91671    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
91672             [`JSXAttrValue::fold_children_with`]. If you want to recurse, you need to call it \
91673             manually."]
91674    #[inline]
91675    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
91676        <JSXAttrValue as FoldWith<Self>>::fold_children_with(node, self)
91677    }
91678    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
91679             [`JSXClosingElement::fold_children_with`]. If you want to recurse, you need to call \
91680             it manually."]
91681    #[inline]
91682    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
91683        <JSXClosingElement as FoldWith<Self>>::fold_children_with(node, self)
91684    }
91685    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
91686             [`JSXClosingFragment::fold_children_with`]. If you want to recurse, you need to call \
91687             it manually."]
91688    #[inline]
91689    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
91690        <JSXClosingFragment as FoldWith<Self>>::fold_children_with(node, self)
91691    }
91692    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
91693             [`JSXElement::fold_children_with`]. If you want to recurse, you need to call it \
91694             manually."]
91695    #[inline]
91696    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
91697        <JSXElement as FoldWith<Self>>::fold_children_with(node, self)
91698    }
91699    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
91700             [`JSXElementChild::fold_children_with`]. If you want to recurse, you need to call it \
91701             manually."]
91702    #[inline]
91703    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
91704        <JSXElementChild as FoldWith<Self>>::fold_children_with(node, self)
91705    }
91706    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
91707             [`Vec < JSXElementChild >::fold_children_with`]. If you want to recurse, you need to \
91708             call it manually."]
91709    #[inline]
91710    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
91711        <Vec<JSXElementChild> as FoldWith<Self>>::fold_children_with(node, self)
91712    }
91713    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
91714             [`JSXElementName::fold_children_with`]. If you want to recurse, you need to call it \
91715             manually."]
91716    #[inline]
91717    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
91718        <JSXElementName as FoldWith<Self>>::fold_children_with(node, self)
91719    }
91720    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
91721             [`JSXEmptyExpr::fold_children_with`]. If you want to recurse, you need to call it \
91722             manually."]
91723    #[inline]
91724    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
91725        <JSXEmptyExpr as FoldWith<Self>>::fold_children_with(node, self)
91726    }
91727    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
91728             [`JSXExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91729    #[inline]
91730    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
91731        <JSXExpr as FoldWith<Self>>::fold_children_with(node, self)
91732    }
91733    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
91734             [`JSXExprContainer::fold_children_with`]. If you want to recurse, you need to call it \
91735             manually."]
91736    #[inline]
91737    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
91738        <JSXExprContainer as FoldWith<Self>>::fold_children_with(node, self)
91739    }
91740    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
91741             [`JSXFragment::fold_children_with`]. If you want to recurse, you need to call it \
91742             manually."]
91743    #[inline]
91744    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
91745        <JSXFragment as FoldWith<Self>>::fold_children_with(node, self)
91746    }
91747    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
91748             [`JSXMemberExpr::fold_children_with`]. If you want to recurse, you need to call it \
91749             manually."]
91750    #[inline]
91751    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
91752        <JSXMemberExpr as FoldWith<Self>>::fold_children_with(node, self)
91753    }
91754    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
91755             [`JSXNamespacedName::fold_children_with`]. If you want to recurse, you need to call \
91756             it manually."]
91757    #[inline]
91758    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
91759        <JSXNamespacedName as FoldWith<Self>>::fold_children_with(node, self)
91760    }
91761    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
91762             [`JSXObject::fold_children_with`]. If you want to recurse, you need to call it \
91763             manually."]
91764    #[inline]
91765    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
91766        <JSXObject as FoldWith<Self>>::fold_children_with(node, self)
91767    }
91768    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
91769             [`JSXOpeningElement::fold_children_with`]. If you want to recurse, you need to call \
91770             it manually."]
91771    #[inline]
91772    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
91773        <JSXOpeningElement as FoldWith<Self>>::fold_children_with(node, self)
91774    }
91775    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
91776             [`JSXOpeningFragment::fold_children_with`]. If you want to recurse, you need to call \
91777             it manually."]
91778    #[inline]
91779    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
91780        <JSXOpeningFragment as FoldWith<Self>>::fold_children_with(node, self)
91781    }
91782    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
91783             [`JSXSpreadChild::fold_children_with`]. If you want to recurse, you need to call it \
91784             manually."]
91785    #[inline]
91786    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
91787        <JSXSpreadChild as FoldWith<Self>>::fold_children_with(node, self)
91788    }
91789    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
91790             [`JSXText::fold_children_with`]. If you want to recurse, you need to call it manually."]
91791    #[inline]
91792    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
91793        <JSXText as FoldWith<Self>>::fold_children_with(node, self)
91794    }
91795    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
91796             [`Key::fold_children_with`]. If you want to recurse, you need to call it manually."]
91797    #[inline]
91798    fn fold_key(&mut self, node: Key) -> Key {
91799        <Key as FoldWith<Self>>::fold_children_with(node, self)
91800    }
91801    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
91802             [`KeyValuePatProp::fold_children_with`]. If you want to recurse, you need to call it \
91803             manually."]
91804    #[inline]
91805    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
91806        <KeyValuePatProp as FoldWith<Self>>::fold_children_with(node, self)
91807    }
91808    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
91809             [`KeyValueProp::fold_children_with`]. If you want to recurse, you need to call it \
91810             manually."]
91811    #[inline]
91812    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
91813        <KeyValueProp as FoldWith<Self>>::fold_children_with(node, self)
91814    }
91815    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
91816             [`LabeledStmt::fold_children_with`]. If you want to recurse, you need to call it \
91817             manually."]
91818    #[inline]
91819    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
91820        <LabeledStmt as FoldWith<Self>>::fold_children_with(node, self)
91821    }
91822    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
91823             [`Lit::fold_children_with`]. If you want to recurse, you need to call it manually."]
91824    #[inline]
91825    fn fold_lit(&mut self, node: Lit) -> Lit {
91826        <Lit as FoldWith<Self>>::fold_children_with(node, self)
91827    }
91828    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
91829             [`MemberExpr::fold_children_with`]. If you want to recurse, you need to call it \
91830             manually."]
91831    #[inline]
91832    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
91833        <MemberExpr as FoldWith<Self>>::fold_children_with(node, self)
91834    }
91835    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
91836             [`MemberProp::fold_children_with`]. If you want to recurse, you need to call it \
91837             manually."]
91838    #[inline]
91839    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
91840        <MemberProp as FoldWith<Self>>::fold_children_with(node, self)
91841    }
91842    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
91843             [`MetaPropExpr::fold_children_with`]. If you want to recurse, you need to call it \
91844             manually."]
91845    #[inline]
91846    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
91847        <MetaPropExpr as FoldWith<Self>>::fold_children_with(node, self)
91848    }
91849    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
91850             [`MetaPropKind::fold_children_with`]. If you want to recurse, you need to call it \
91851             manually."]
91852    #[inline]
91853    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
91854        <MetaPropKind as FoldWith<Self>>::fold_children_with(node, self)
91855    }
91856    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
91857             [`MethodKind::fold_children_with`]. If you want to recurse, you need to call it \
91858             manually."]
91859    #[inline]
91860    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
91861        <MethodKind as FoldWith<Self>>::fold_children_with(node, self)
91862    }
91863    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
91864             [`MethodProp::fold_children_with`]. If you want to recurse, you need to call it \
91865             manually."]
91866    #[inline]
91867    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
91868        <MethodProp as FoldWith<Self>>::fold_children_with(node, self)
91869    }
91870    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
91871             [`Module::fold_children_with`]. If you want to recurse, you need to call it manually."]
91872    #[inline]
91873    fn fold_module(&mut self, node: Module) -> Module {
91874        <Module as FoldWith<Self>>::fold_children_with(node, self)
91875    }
91876    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
91877             [`ModuleDecl::fold_children_with`]. If you want to recurse, you need to call it \
91878             manually."]
91879    #[inline]
91880    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
91881        <ModuleDecl as FoldWith<Self>>::fold_children_with(node, self)
91882    }
91883    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
91884             [`ModuleExportName::fold_children_with`]. If you want to recurse, you need to call it \
91885             manually."]
91886    #[inline]
91887    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
91888        <ModuleExportName as FoldWith<Self>>::fold_children_with(node, self)
91889    }
91890    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
91891             [`ModuleItem::fold_children_with`]. If you want to recurse, you need to call it \
91892             manually."]
91893    #[inline]
91894    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
91895        <ModuleItem as FoldWith<Self>>::fold_children_with(node, self)
91896    }
91897    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
91898             ModuleItem >::fold_children_with`]. If you want to recurse, you need to call it \
91899             manually."]
91900    #[inline]
91901    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
91902        <Vec<ModuleItem> as FoldWith<Self>>::fold_children_with(node, self)
91903    }
91904    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
91905             [`NamedExport::fold_children_with`]. If you want to recurse, you need to call it \
91906             manually."]
91907    #[inline]
91908    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
91909        <NamedExport as FoldWith<Self>>::fold_children_with(node, self)
91910    }
91911    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
91912             [`NewExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
91913    #[inline]
91914    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
91915        <NewExpr as FoldWith<Self>>::fold_children_with(node, self)
91916    }
91917    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
91918             [`Null::fold_children_with`]. If you want to recurse, you need to call it manually."]
91919    #[inline]
91920    fn fold_null(&mut self, node: Null) -> Null {
91921        <Null as FoldWith<Self>>::fold_children_with(node, self)
91922    }
91923    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
91924             [`Number::fold_children_with`]. If you want to recurse, you need to call it manually."]
91925    #[inline]
91926    fn fold_number(&mut self, node: Number) -> Number {
91927        <Number as FoldWith<Self>>::fold_children_with(node, self)
91928    }
91929    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
91930             [`ObjectLit::fold_children_with`]. If you want to recurse, you need to call it \
91931             manually."]
91932    #[inline]
91933    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
91934        <ObjectLit as FoldWith<Self>>::fold_children_with(node, self)
91935    }
91936    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
91937             [`ObjectPat::fold_children_with`]. If you want to recurse, you need to call it \
91938             manually."]
91939    #[inline]
91940    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
91941        <ObjectPat as FoldWith<Self>>::fold_children_with(node, self)
91942    }
91943    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
91944             [`ObjectPatProp::fold_children_with`]. If you want to recurse, you need to call it \
91945             manually."]
91946    #[inline]
91947    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
91948        <ObjectPatProp as FoldWith<Self>>::fold_children_with(node, self)
91949    }
91950    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
91951             < ObjectPatProp >::fold_children_with`]. If you want to recurse, you need to call it \
91952             manually."]
91953    #[inline]
91954    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
91955        <Vec<ObjectPatProp> as FoldWith<Self>>::fold_children_with(node, self)
91956    }
91957    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
91958             [`Option < Accessibility >::fold_children_with`]. If you want to recurse, you need to \
91959             call it manually."]
91960    #[inline]
91961    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
91962        <Option<Accessibility> as FoldWith<Self>>::fold_children_with(node, self)
91963    }
91964    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
91965             [`Option < swc_atoms :: Atom >::fold_children_with`]. If you want to recurse, you \
91966             need to call it manually."]
91967    #[inline]
91968    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
91969        <Option<swc_atoms::Atom> as FoldWith<Self>>::fold_children_with(node, self)
91970    }
91971    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
91972             [`Option < BlockStmt >::fold_children_with`]. If you want to recurse, you need to \
91973             call it manually."]
91974    #[inline]
91975    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
91976        <Option<BlockStmt> as FoldWith<Self>>::fold_children_with(node, self)
91977    }
91978    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
91979             [`OptCall::fold_children_with`]. If you want to recurse, you need to call it manually."]
91980    #[inline]
91981    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
91982        <OptCall as FoldWith<Self>>::fold_children_with(node, self)
91983    }
91984    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
91985             [`Option < CatchClause >::fold_children_with`]. If you want to recurse, you need to \
91986             call it manually."]
91987    #[inline]
91988    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
91989        <Option<CatchClause> as FoldWith<Self>>::fold_children_with(node, self)
91990    }
91991    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
91992             [`OptChainBase::fold_children_with`]. If you want to recurse, you need to call it \
91993             manually."]
91994    #[inline]
91995    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
91996        <OptChainBase as FoldWith<Self>>::fold_children_with(node, self)
91997    }
91998    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
91999             [`OptChainExpr::fold_children_with`]. If you want to recurse, you need to call it \
92000             manually."]
92001    #[inline]
92002    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
92003        <OptChainExpr as FoldWith<Self>>::fold_children_with(node, self)
92004    }
92005    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
92006             [`Option < Box < Expr > >::fold_children_with`]. If you want to recurse, you need to \
92007             call it manually."]
92008    #[inline]
92009    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
92010        <Option<Box<Expr>> as FoldWith<Self>>::fold_children_with(node, self)
92011    }
92012    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
92013             [`Option < ExprOrSpread >::fold_children_with`]. If you want to recurse, you need to \
92014             call it manually."]
92015    #[inline]
92016    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
92017        <Option<ExprOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
92018    }
92019    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
92020             calls [`Option < Vec < ExprOrSpread > >::fold_children_with`]. If you want to \
92021             recurse, you need to call it manually."]
92022    #[inline]
92023    fn fold_opt_expr_or_spreads(
92024        &mut self,
92025        node: Option<Vec<ExprOrSpread>>,
92026    ) -> Option<Vec<ExprOrSpread>> {
92027        <Option<Vec<ExprOrSpread>> as FoldWith<Self>>::fold_children_with(node, self)
92028    }
92029    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
92030             Ident >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92031    #[inline]
92032    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
92033        <Option<Ident> as FoldWith<Self>>::fold_children_with(node, self)
92034    }
92035    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
92036             [`Option < JSXAttrValue >::fold_children_with`]. If you want to recurse, you need to \
92037             call it manually."]
92038    #[inline]
92039    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
92040        <Option<JSXAttrValue> as FoldWith<Self>>::fold_children_with(node, self)
92041    }
92042    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
92043             [`Option < JSXClosingElement >::fold_children_with`]. If you want to recurse, you \
92044             need to call it manually."]
92045    #[inline]
92046    fn fold_opt_jsx_closing_element(
92047        &mut self,
92048        node: Option<JSXClosingElement>,
92049    ) -> Option<JSXClosingElement> {
92050        <Option<JSXClosingElement> as FoldWith<Self>>::fold_children_with(node, self)
92051    }
92052    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
92053             [`Option < ModuleExportName >::fold_children_with`]. If you want to recurse, you need \
92054             to call it manually."]
92055    #[inline]
92056    fn fold_opt_module_export_name(
92057        &mut self,
92058        node: Option<ModuleExportName>,
92059    ) -> Option<ModuleExportName> {
92060        <Option<ModuleExportName> as FoldWith<Self>>::fold_children_with(node, self)
92061    }
92062    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
92063             [`Option < Box < ObjectLit > >::fold_children_with`]. If you want to recurse, you \
92064             need to call it manually."]
92065    #[inline]
92066    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
92067        <Option<Box<ObjectLit>> as FoldWith<Self>>::fold_children_with(node, self)
92068    }
92069    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
92070             Pat >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92071    #[inline]
92072    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
92073        <Option<Pat> as FoldWith<Self>>::fold_children_with(node, self)
92074    }
92075    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
92076             calls [`Option < swc_common :: Span >::fold_children_with`]. If you want to recurse, \
92077             you need to call it manually."]
92078    #[inline]
92079    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
92080        <Option<swc_common::Span> as FoldWith<Self>>::fold_children_with(node, self)
92081    }
92082    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
92083             [`Option < Box < Stmt > >::fold_children_with`]. If you want to recurse, you need to \
92084             call it manually."]
92085    #[inline]
92086    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
92087        <Option<Box<Stmt>> as FoldWith<Self>>::fold_children_with(node, self)
92088    }
92089    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
92090             [`Option < Box < Str > >::fold_children_with`]. If you want to recurse, you need to \
92091             call it manually."]
92092    #[inline]
92093    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
92094        <Option<Box<Str>> as FoldWith<Self>>::fold_children_with(node, self)
92095    }
92096    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
92097             [`Option < TruePlusMinus >::fold_children_with`]. If you want to recurse, you need to \
92098             call it manually."]
92099    #[inline]
92100    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
92101        <Option<TruePlusMinus> as FoldWith<Self>>::fold_children_with(node, self)
92102    }
92103    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
92104             [`Option < TsEntityName >::fold_children_with`]. If you want to recurse, you need to \
92105             call it manually."]
92106    #[inline]
92107    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
92108        <Option<TsEntityName> as FoldWith<Self>>::fold_children_with(node, self)
92109    }
92110    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
92111             [`Option < TsNamespaceBody >::fold_children_with`]. If you want to recurse, you need \
92112             to call it manually."]
92113    #[inline]
92114    fn fold_opt_ts_namespace_body(
92115        &mut self,
92116        node: Option<TsNamespaceBody>,
92117    ) -> Option<TsNamespaceBody> {
92118        <Option<TsNamespaceBody> as FoldWith<Self>>::fold_children_with(node, self)
92119    }
92120    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
92121             [`Option < Box < TsType > >::fold_children_with`]. If you want to recurse, you need \
92122             to call it manually."]
92123    #[inline]
92124    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
92125        <Option<Box<TsType>> as FoldWith<Self>>::fold_children_with(node, self)
92126    }
92127    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
92128             [`Option < Box < TsTypeAnn > >::fold_children_with`]. If you want to recurse, you \
92129             need to call it manually."]
92130    #[inline]
92131    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
92132        <Option<Box<TsTypeAnn>> as FoldWith<Self>>::fold_children_with(node, self)
92133    }
92134    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
92135             calls [`Option < Box < TsTypeParamDecl > >::fold_children_with`]. If you want to \
92136             recurse, you need to call it manually."]
92137    #[inline]
92138    fn fold_opt_ts_type_param_decl(
92139        &mut self,
92140        node: Option<Box<TsTypeParamDecl>>,
92141    ) -> Option<Box<TsTypeParamDecl>> {
92142        <Option<Box<TsTypeParamDecl>> as FoldWith<Self>>::fold_children_with(node, self)
92143    }
92144    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
92145             this method calls [`Option < Box < TsTypeParamInstantiation > \
92146             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92147    #[inline]
92148    fn fold_opt_ts_type_param_instantiation(
92149        &mut self,
92150        node: Option<Box<TsTypeParamInstantiation>>,
92151    ) -> Option<Box<TsTypeParamInstantiation>> {
92152        <Option<Box<TsTypeParamInstantiation>> as FoldWith<Self>>::fold_children_with(node, self)
92153    }
92154    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
92155             [`Option < VarDeclOrExpr >::fold_children_with`]. If you want to recurse, you need to \
92156             call it manually."]
92157    #[inline]
92158    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
92159        <Option<VarDeclOrExpr> as FoldWith<Self>>::fold_children_with(node, self)
92160    }
92161    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
92162             calls [`Vec < Option < ExprOrSpread > >::fold_children_with`]. If you want to \
92163             recurse, you need to call it manually."]
92164    #[inline]
92165    fn fold_opt_vec_expr_or_spreads(
92166        &mut self,
92167        node: Vec<Option<ExprOrSpread>>,
92168    ) -> Vec<Option<ExprOrSpread>> {
92169        <Vec<Option<ExprOrSpread>> as FoldWith<Self>>::fold_children_with(node, self)
92170    }
92171    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
92172             < Option < Pat > >::fold_children_with`]. If you want to recurse, you need to call it \
92173             manually."]
92174    #[inline]
92175    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
92176        <Vec<Option<Pat>> as FoldWith<Self>>::fold_children_with(node, self)
92177    }
92178    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
92179             [`Param::fold_children_with`]. If you want to recurse, you need to call it manually."]
92180    #[inline]
92181    fn fold_param(&mut self, node: Param) -> Param {
92182        <Param as FoldWith<Self>>::fold_children_with(node, self)
92183    }
92184    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
92185             [`ParamOrTsParamProp::fold_children_with`]. If you want to recurse, you need to call \
92186             it manually."]
92187    #[inline]
92188    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
92189        <ParamOrTsParamProp as FoldWith<Self>>::fold_children_with(node, self)
92190    }
92191    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
92192             [`Vec < ParamOrTsParamProp >::fold_children_with`]. If you want to recurse, you need \
92193             to call it manually."]
92194    #[inline]
92195    fn fold_param_or_ts_param_props(
92196        &mut self,
92197        node: Vec<ParamOrTsParamProp>,
92198    ) -> Vec<ParamOrTsParamProp> {
92199        <Vec<ParamOrTsParamProp> as FoldWith<Self>>::fold_children_with(node, self)
92200    }
92201    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
92202             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92203    #[inline]
92204    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
92205        <Vec<Param> as FoldWith<Self>>::fold_children_with(node, self)
92206    }
92207    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
92208             [`ParenExpr::fold_children_with`]. If you want to recurse, you need to call it \
92209             manually."]
92210    #[inline]
92211    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
92212        <ParenExpr as FoldWith<Self>>::fold_children_with(node, self)
92213    }
92214    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
92215             [`Pat::fold_children_with`]. If you want to recurse, you need to call it manually."]
92216    #[inline]
92217    fn fold_pat(&mut self, node: Pat) -> Pat {
92218        <Pat as FoldWith<Self>>::fold_children_with(node, self)
92219    }
92220    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
92221             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92222    #[inline]
92223    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
92224        <Vec<Pat> as FoldWith<Self>>::fold_children_with(node, self)
92225    }
92226    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
92227             [`PrivateMethod::fold_children_with`]. If you want to recurse, you need to call it \
92228             manually."]
92229    #[inline]
92230    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
92231        <PrivateMethod as FoldWith<Self>>::fold_children_with(node, self)
92232    }
92233    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
92234             [`PrivateName::fold_children_with`]. If you want to recurse, you need to call it \
92235             manually."]
92236    #[inline]
92237    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
92238        <PrivateName as FoldWith<Self>>::fold_children_with(node, self)
92239    }
92240    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
92241             [`PrivateProp::fold_children_with`]. If you want to recurse, you need to call it \
92242             manually."]
92243    #[inline]
92244    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
92245        <PrivateProp as FoldWith<Self>>::fold_children_with(node, self)
92246    }
92247    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
92248             [`Program::fold_children_with`]. If you want to recurse, you need to call it manually."]
92249    #[inline]
92250    fn fold_program(&mut self, node: Program) -> Program {
92251        <Program as FoldWith<Self>>::fold_children_with(node, self)
92252    }
92253    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
92254             [`Prop::fold_children_with`]. If you want to recurse, you need to call it manually."]
92255    #[inline]
92256    fn fold_prop(&mut self, node: Prop) -> Prop {
92257        <Prop as FoldWith<Self>>::fold_children_with(node, self)
92258    }
92259    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
92260             [`PropName::fold_children_with`]. If you want to recurse, you need to call it \
92261             manually."]
92262    #[inline]
92263    fn fold_prop_name(&mut self, node: PropName) -> PropName {
92264        <PropName as FoldWith<Self>>::fold_children_with(node, self)
92265    }
92266    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
92267             [`PropOrSpread::fold_children_with`]. If you want to recurse, you need to call it \
92268             manually."]
92269    #[inline]
92270    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
92271        <PropOrSpread as FoldWith<Self>>::fold_children_with(node, self)
92272    }
92273    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
92274             PropOrSpread >::fold_children_with`]. If you want to recurse, you need to call it \
92275             manually."]
92276    #[inline]
92277    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
92278        <Vec<PropOrSpread> as FoldWith<Self>>::fold_children_with(node, self)
92279    }
92280    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
92281             [`Regex::fold_children_with`]. If you want to recurse, you need to call it manually."]
92282    #[inline]
92283    fn fold_regex(&mut self, node: Regex) -> Regex {
92284        <Regex as FoldWith<Self>>::fold_children_with(node, self)
92285    }
92286    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
92287             [`RestPat::fold_children_with`]. If you want to recurse, you need to call it manually."]
92288    #[inline]
92289    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
92290        <RestPat as FoldWith<Self>>::fold_children_with(node, self)
92291    }
92292    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
92293             [`ReturnStmt::fold_children_with`]. If you want to recurse, you need to call it \
92294             manually."]
92295    #[inline]
92296    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
92297        <ReturnStmt as FoldWith<Self>>::fold_children_with(node, self)
92298    }
92299    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
92300             [`Script::fold_children_with`]. If you want to recurse, you need to call it manually."]
92301    #[inline]
92302    fn fold_script(&mut self, node: Script) -> Script {
92303        <Script as FoldWith<Self>>::fold_children_with(node, self)
92304    }
92305    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
92306             [`SeqExpr::fold_children_with`]. If you want to recurse, you need to call it manually."]
92307    #[inline]
92308    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
92309        <SeqExpr as FoldWith<Self>>::fold_children_with(node, self)
92310    }
92311    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
92312             [`SetterProp::fold_children_with`]. If you want to recurse, you need to call it \
92313             manually."]
92314    #[inline]
92315    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
92316        <SetterProp as FoldWith<Self>>::fold_children_with(node, self)
92317    }
92318    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
92319             [`SimpleAssignTarget::fold_children_with`]. If you want to recurse, you need to call \
92320             it manually."]
92321    #[inline]
92322    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
92323        <SimpleAssignTarget as FoldWith<Self>>::fold_children_with(node, self)
92324    }
92325    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
92326             [`swc_common :: Span::fold_children_with`]. If you want to recurse, you need to call \
92327             it manually."]
92328    #[inline]
92329    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
92330        <swc_common::Span as FoldWith<Self>>::fold_children_with(node, self)
92331    }
92332    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
92333             [`SpreadElement::fold_children_with`]. If you want to recurse, you need to call it \
92334             manually."]
92335    #[inline]
92336    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
92337        <SpreadElement as FoldWith<Self>>::fold_children_with(node, self)
92338    }
92339    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
92340             [`StaticBlock::fold_children_with`]. If you want to recurse, you need to call it \
92341             manually."]
92342    #[inline]
92343    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
92344        <StaticBlock as FoldWith<Self>>::fold_children_with(node, self)
92345    }
92346    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
92347             [`Stmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
92348    #[inline]
92349    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
92350        <Stmt as FoldWith<Self>>::fold_children_with(node, self)
92351    }
92352    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
92353             >::fold_children_with`]. If you want to recurse, you need to call it manually."]
92354    #[inline]
92355    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
92356        <Vec<Stmt> as FoldWith<Self>>::fold_children_with(node, self)
92357    }
92358    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
92359             [`Str::fold_children_with`]. If you want to recurse, you need to call it manually."]
92360    #[inline]
92361    fn fold_str(&mut self, node: Str) -> Str {
92362        <Str as FoldWith<Self>>::fold_children_with(node, self)
92363    }
92364    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
92365             [`Super::fold_children_with`]. If you want to recurse, you need to call it manually."]
92366    #[inline]
92367    fn fold_super(&mut self, node: Super) -> Super {
92368        <Super as FoldWith<Self>>::fold_children_with(node, self)
92369    }
92370    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
92371             [`SuperProp::fold_children_with`]. If you want to recurse, you need to call it \
92372             manually."]
92373    #[inline]
92374    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
92375        <SuperProp as FoldWith<Self>>::fold_children_with(node, self)
92376    }
92377    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
92378             [`SuperPropExpr::fold_children_with`]. If you want to recurse, you need to call it \
92379             manually."]
92380    #[inline]
92381    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
92382        <SuperPropExpr as FoldWith<Self>>::fold_children_with(node, self)
92383    }
92384    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
92385             [`SwitchCase::fold_children_with`]. If you want to recurse, you need to call it \
92386             manually."]
92387    #[inline]
92388    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
92389        <SwitchCase as FoldWith<Self>>::fold_children_with(node, self)
92390    }
92391    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
92392             SwitchCase >::fold_children_with`]. If you want to recurse, you need to call it \
92393             manually."]
92394    #[inline]
92395    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
92396        <Vec<SwitchCase> as FoldWith<Self>>::fold_children_with(node, self)
92397    }
92398    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
92399             [`SwitchStmt::fold_children_with`]. If you want to recurse, you need to call it \
92400             manually."]
92401    #[inline]
92402    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
92403        <SwitchStmt as FoldWith<Self>>::fold_children_with(node, self)
92404    }
92405    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
92406             [`swc_common :: SyntaxContext::fold_children_with`]. If you want to recurse, you need \
92407             to call it manually."]
92408    #[inline]
92409    fn fold_syntax_context(
92410        &mut self,
92411        node: swc_common::SyntaxContext,
92412    ) -> swc_common::SyntaxContext {
92413        <swc_common::SyntaxContext as FoldWith<Self>>::fold_children_with(node, self)
92414    }
92415    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
92416             [`TaggedTpl::fold_children_with`]. If you want to recurse, you need to call it \
92417             manually."]
92418    #[inline]
92419    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
92420        <TaggedTpl as FoldWith<Self>>::fold_children_with(node, self)
92421    }
92422    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
92423             [`ThisExpr::fold_children_with`]. If you want to recurse, you need to call it \
92424             manually."]
92425    #[inline]
92426    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
92427        <ThisExpr as FoldWith<Self>>::fold_children_with(node, self)
92428    }
92429    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
92430             [`ThrowStmt::fold_children_with`]. If you want to recurse, you need to call it \
92431             manually."]
92432    #[inline]
92433    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
92434        <ThrowStmt as FoldWith<Self>>::fold_children_with(node, self)
92435    }
92436    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
92437             [`Tpl::fold_children_with`]. If you want to recurse, you need to call it manually."]
92438    #[inline]
92439    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
92440        <Tpl as FoldWith<Self>>::fold_children_with(node, self)
92441    }
92442    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
92443             [`TplElement::fold_children_with`]. If you want to recurse, you need to call it \
92444             manually."]
92445    #[inline]
92446    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
92447        <TplElement as FoldWith<Self>>::fold_children_with(node, self)
92448    }
92449    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
92450             TplElement >::fold_children_with`]. If you want to recurse, you need to call it \
92451             manually."]
92452    #[inline]
92453    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
92454        <Vec<TplElement> as FoldWith<Self>>::fold_children_with(node, self)
92455    }
92456    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
92457             [`TruePlusMinus::fold_children_with`]. If you want to recurse, you need to call it \
92458             manually."]
92459    #[inline]
92460    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
92461        <TruePlusMinus as FoldWith<Self>>::fold_children_with(node, self)
92462    }
92463    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
92464             [`TryStmt::fold_children_with`]. If you want to recurse, you need to call it manually."]
92465    #[inline]
92466    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
92467        <TryStmt as FoldWith<Self>>::fold_children_with(node, self)
92468    }
92469    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
92470             [`TsArrayType::fold_children_with`]. If you want to recurse, you need to call it \
92471             manually."]
92472    #[inline]
92473    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
92474        <TsArrayType as FoldWith<Self>>::fold_children_with(node, self)
92475    }
92476    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
92477             [`TsAsExpr::fold_children_with`]. If you want to recurse, you need to call it \
92478             manually."]
92479    #[inline]
92480    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
92481        <TsAsExpr as FoldWith<Self>>::fold_children_with(node, self)
92482    }
92483    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
92484             [`TsCallSignatureDecl::fold_children_with`]. If you want to recurse, you need to call \
92485             it manually."]
92486    #[inline]
92487    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
92488        <TsCallSignatureDecl as FoldWith<Self>>::fold_children_with(node, self)
92489    }
92490    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
92491             [`TsConditionalType::fold_children_with`]. If you want to recurse, you need to call \
92492             it manually."]
92493    #[inline]
92494    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
92495        <TsConditionalType as FoldWith<Self>>::fold_children_with(node, self)
92496    }
92497    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
92498             [`TsConstAssertion::fold_children_with`]. If you want to recurse, you need to call it \
92499             manually."]
92500    #[inline]
92501    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
92502        <TsConstAssertion as FoldWith<Self>>::fold_children_with(node, self)
92503    }
92504    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
92505             [`TsConstructSignatureDecl::fold_children_with`]. If you want to recurse, you need to \
92506             call it manually."]
92507    #[inline]
92508    fn fold_ts_construct_signature_decl(
92509        &mut self,
92510        node: TsConstructSignatureDecl,
92511    ) -> TsConstructSignatureDecl {
92512        <TsConstructSignatureDecl as FoldWith<Self>>::fold_children_with(node, self)
92513    }
92514    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
92515             [`TsConstructorType::fold_children_with`]. If you want to recurse, you need to call \
92516             it manually."]
92517    #[inline]
92518    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
92519        <TsConstructorType as FoldWith<Self>>::fold_children_with(node, self)
92520    }
92521    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
92522             [`TsEntityName::fold_children_with`]. If you want to recurse, you need to call it \
92523             manually."]
92524    #[inline]
92525    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
92526        <TsEntityName as FoldWith<Self>>::fold_children_with(node, self)
92527    }
92528    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
92529             [`TsEnumDecl::fold_children_with`]. If you want to recurse, you need to call it \
92530             manually."]
92531    #[inline]
92532    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
92533        <TsEnumDecl as FoldWith<Self>>::fold_children_with(node, self)
92534    }
92535    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
92536             [`TsEnumMember::fold_children_with`]. If you want to recurse, you need to call it \
92537             manually."]
92538    #[inline]
92539    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
92540        <TsEnumMember as FoldWith<Self>>::fold_children_with(node, self)
92541    }
92542    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
92543             [`TsEnumMemberId::fold_children_with`]. If you want to recurse, you need to call it \
92544             manually."]
92545    #[inline]
92546    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
92547        <TsEnumMemberId as FoldWith<Self>>::fold_children_with(node, self)
92548    }
92549    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
92550             TsEnumMember >::fold_children_with`]. If you want to recurse, you need to call it \
92551             manually."]
92552    #[inline]
92553    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
92554        <Vec<TsEnumMember> as FoldWith<Self>>::fold_children_with(node, self)
92555    }
92556    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
92557             [`TsExportAssignment::fold_children_with`]. If you want to recurse, you need to call \
92558             it manually."]
92559    #[inline]
92560    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
92561        <TsExportAssignment as FoldWith<Self>>::fold_children_with(node, self)
92562    }
92563    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
92564             [`TsExprWithTypeArgs::fold_children_with`]. If you want to recurse, you need to call \
92565             it manually."]
92566    #[inline]
92567    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
92568        <TsExprWithTypeArgs as FoldWith<Self>>::fold_children_with(node, self)
92569    }
92570    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
92571             [`Vec < TsExprWithTypeArgs >::fold_children_with`]. If you want to recurse, you need \
92572             to call it manually."]
92573    #[inline]
92574    fn fold_ts_expr_with_type_argss(
92575        &mut self,
92576        node: Vec<TsExprWithTypeArgs>,
92577    ) -> Vec<TsExprWithTypeArgs> {
92578        <Vec<TsExprWithTypeArgs> as FoldWith<Self>>::fold_children_with(node, self)
92579    }
92580    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
92581             [`TsExternalModuleRef::fold_children_with`]. If you want to recurse, you need to call \
92582             it manually."]
92583    #[inline]
92584    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
92585        <TsExternalModuleRef as FoldWith<Self>>::fold_children_with(node, self)
92586    }
92587    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
92588             [`TsFnOrConstructorType::fold_children_with`]. If you want to recurse, you need to \
92589             call it manually."]
92590    #[inline]
92591    fn fold_ts_fn_or_constructor_type(
92592        &mut self,
92593        node: TsFnOrConstructorType,
92594    ) -> TsFnOrConstructorType {
92595        <TsFnOrConstructorType as FoldWith<Self>>::fold_children_with(node, self)
92596    }
92597    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
92598             [`TsFnParam::fold_children_with`]. If you want to recurse, you need to call it \
92599             manually."]
92600    #[inline]
92601    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
92602        <TsFnParam as FoldWith<Self>>::fold_children_with(node, self)
92603    }
92604    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
92605             TsFnParam >::fold_children_with`]. If you want to recurse, you need to call it \
92606             manually."]
92607    #[inline]
92608    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
92609        <Vec<TsFnParam> as FoldWith<Self>>::fold_children_with(node, self)
92610    }
92611    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
92612             [`TsFnType::fold_children_with`]. If you want to recurse, you need to call it \
92613             manually."]
92614    #[inline]
92615    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
92616        <TsFnType as FoldWith<Self>>::fold_children_with(node, self)
92617    }
92618    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
92619             [`TsGetterSignature::fold_children_with`]. If you want to recurse, you need to call \
92620             it manually."]
92621    #[inline]
92622    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
92623        <TsGetterSignature as FoldWith<Self>>::fold_children_with(node, self)
92624    }
92625    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
92626             [`TsImportEqualsDecl::fold_children_with`]. If you want to recurse, you need to call \
92627             it manually."]
92628    #[inline]
92629    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
92630        <TsImportEqualsDecl as FoldWith<Self>>::fold_children_with(node, self)
92631    }
92632    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
92633             [`TsImportType::fold_children_with`]. If you want to recurse, you need to call it \
92634             manually."]
92635    #[inline]
92636    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
92637        <TsImportType as FoldWith<Self>>::fold_children_with(node, self)
92638    }
92639    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
92640             [`TsIndexSignature::fold_children_with`]. If you want to recurse, you need to call it \
92641             manually."]
92642    #[inline]
92643    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
92644        <TsIndexSignature as FoldWith<Self>>::fold_children_with(node, self)
92645    }
92646    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
92647             [`TsIndexedAccessType::fold_children_with`]. If you want to recurse, you need to call \
92648             it manually."]
92649    #[inline]
92650    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
92651        <TsIndexedAccessType as FoldWith<Self>>::fold_children_with(node, self)
92652    }
92653    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
92654             [`TsInferType::fold_children_with`]. If you want to recurse, you need to call it \
92655             manually."]
92656    #[inline]
92657    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
92658        <TsInferType as FoldWith<Self>>::fold_children_with(node, self)
92659    }
92660    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
92661             [`TsInstantiation::fold_children_with`]. If you want to recurse, you need to call it \
92662             manually."]
92663    #[inline]
92664    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
92665        <TsInstantiation as FoldWith<Self>>::fold_children_with(node, self)
92666    }
92667    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
92668             [`TsInterfaceBody::fold_children_with`]. If you want to recurse, you need to call it \
92669             manually."]
92670    #[inline]
92671    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
92672        <TsInterfaceBody as FoldWith<Self>>::fold_children_with(node, self)
92673    }
92674    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
92675             [`TsInterfaceDecl::fold_children_with`]. If you want to recurse, you need to call it \
92676             manually."]
92677    #[inline]
92678    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
92679        <TsInterfaceDecl as FoldWith<Self>>::fold_children_with(node, self)
92680    }
92681    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
92682             [`TsIntersectionType::fold_children_with`]. If you want to recurse, you need to call \
92683             it manually."]
92684    #[inline]
92685    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
92686        <TsIntersectionType as FoldWith<Self>>::fold_children_with(node, self)
92687    }
92688    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
92689             [`TsKeywordType::fold_children_with`]. If you want to recurse, you need to call it \
92690             manually."]
92691    #[inline]
92692    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
92693        <TsKeywordType as FoldWith<Self>>::fold_children_with(node, self)
92694    }
92695    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
92696             [`TsKeywordTypeKind::fold_children_with`]. If you want to recurse, you need to call \
92697             it manually."]
92698    #[inline]
92699    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
92700        <TsKeywordTypeKind as FoldWith<Self>>::fold_children_with(node, self)
92701    }
92702    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
92703             [`TsLit::fold_children_with`]. If you want to recurse, you need to call it manually."]
92704    #[inline]
92705    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
92706        <TsLit as FoldWith<Self>>::fold_children_with(node, self)
92707    }
92708    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
92709             [`TsLitType::fold_children_with`]. If you want to recurse, you need to call it \
92710             manually."]
92711    #[inline]
92712    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
92713        <TsLitType as FoldWith<Self>>::fold_children_with(node, self)
92714    }
92715    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
92716             [`TsMappedType::fold_children_with`]. If you want to recurse, you need to call it \
92717             manually."]
92718    #[inline]
92719    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
92720        <TsMappedType as FoldWith<Self>>::fold_children_with(node, self)
92721    }
92722    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
92723             [`TsMethodSignature::fold_children_with`]. If you want to recurse, you need to call \
92724             it manually."]
92725    #[inline]
92726    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
92727        <TsMethodSignature as FoldWith<Self>>::fold_children_with(node, self)
92728    }
92729    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
92730             [`TsModuleBlock::fold_children_with`]. If you want to recurse, you need to call it \
92731             manually."]
92732    #[inline]
92733    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
92734        <TsModuleBlock as FoldWith<Self>>::fold_children_with(node, self)
92735    }
92736    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
92737             [`TsModuleDecl::fold_children_with`]. If you want to recurse, you need to call it \
92738             manually."]
92739    #[inline]
92740    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
92741        <TsModuleDecl as FoldWith<Self>>::fold_children_with(node, self)
92742    }
92743    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
92744             [`TsModuleName::fold_children_with`]. If you want to recurse, you need to call it \
92745             manually."]
92746    #[inline]
92747    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
92748        <TsModuleName as FoldWith<Self>>::fold_children_with(node, self)
92749    }
92750    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
92751             [`TsModuleRef::fold_children_with`]. If you want to recurse, you need to call it \
92752             manually."]
92753    #[inline]
92754    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
92755        <TsModuleRef as FoldWith<Self>>::fold_children_with(node, self)
92756    }
92757    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
92758             [`TsNamespaceBody::fold_children_with`]. If you want to recurse, you need to call it \
92759             manually."]
92760    #[inline]
92761    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
92762        <TsNamespaceBody as FoldWith<Self>>::fold_children_with(node, self)
92763    }
92764    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
92765             [`TsNamespaceDecl::fold_children_with`]. If you want to recurse, you need to call it \
92766             manually."]
92767    #[inline]
92768    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
92769        <TsNamespaceDecl as FoldWith<Self>>::fold_children_with(node, self)
92770    }
92771    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
92772             [`TsNamespaceExportDecl::fold_children_with`]. If you want to recurse, you need to \
92773             call it manually."]
92774    #[inline]
92775    fn fold_ts_namespace_export_decl(
92776        &mut self,
92777        node: TsNamespaceExportDecl,
92778    ) -> TsNamespaceExportDecl {
92779        <TsNamespaceExportDecl as FoldWith<Self>>::fold_children_with(node, self)
92780    }
92781    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
92782             [`TsNonNullExpr::fold_children_with`]. If you want to recurse, you need to call it \
92783             manually."]
92784    #[inline]
92785    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
92786        <TsNonNullExpr as FoldWith<Self>>::fold_children_with(node, self)
92787    }
92788    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
92789             [`TsOptionalType::fold_children_with`]. If you want to recurse, you need to call it \
92790             manually."]
92791    #[inline]
92792    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
92793        <TsOptionalType as FoldWith<Self>>::fold_children_with(node, self)
92794    }
92795    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
92796             [`TsParamProp::fold_children_with`]. If you want to recurse, you need to call it \
92797             manually."]
92798    #[inline]
92799    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
92800        <TsParamProp as FoldWith<Self>>::fold_children_with(node, self)
92801    }
92802    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
92803             [`TsParamPropParam::fold_children_with`]. If you want to recurse, you need to call it \
92804             manually."]
92805    #[inline]
92806    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
92807        <TsParamPropParam as FoldWith<Self>>::fold_children_with(node, self)
92808    }
92809    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
92810             [`TsParenthesizedType::fold_children_with`]. If you want to recurse, you need to call \
92811             it manually."]
92812    #[inline]
92813    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
92814        <TsParenthesizedType as FoldWith<Self>>::fold_children_with(node, self)
92815    }
92816    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
92817             [`TsPropertySignature::fold_children_with`]. If you want to recurse, you need to call \
92818             it manually."]
92819    #[inline]
92820    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
92821        <TsPropertySignature as FoldWith<Self>>::fold_children_with(node, self)
92822    }
92823    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
92824             [`TsQualifiedName::fold_children_with`]. If you want to recurse, you need to call it \
92825             manually."]
92826    #[inline]
92827    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
92828        <TsQualifiedName as FoldWith<Self>>::fold_children_with(node, self)
92829    }
92830    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
92831             [`TsRestType::fold_children_with`]. If you want to recurse, you need to call it \
92832             manually."]
92833    #[inline]
92834    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
92835        <TsRestType as FoldWith<Self>>::fold_children_with(node, self)
92836    }
92837    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
92838             [`TsSatisfiesExpr::fold_children_with`]. If you want to recurse, you need to call it \
92839             manually."]
92840    #[inline]
92841    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
92842        <TsSatisfiesExpr as FoldWith<Self>>::fold_children_with(node, self)
92843    }
92844    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
92845             [`TsSetterSignature::fold_children_with`]. If you want to recurse, you need to call \
92846             it manually."]
92847    #[inline]
92848    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
92849        <TsSetterSignature as FoldWith<Self>>::fold_children_with(node, self)
92850    }
92851    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
92852             [`TsThisType::fold_children_with`]. If you want to recurse, you need to call it \
92853             manually."]
92854    #[inline]
92855    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
92856        <TsThisType as FoldWith<Self>>::fold_children_with(node, self)
92857    }
92858    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
92859             [`TsThisTypeOrIdent::fold_children_with`]. If you want to recurse, you need to call \
92860             it manually."]
92861    #[inline]
92862    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
92863        <TsThisTypeOrIdent as FoldWith<Self>>::fold_children_with(node, self)
92864    }
92865    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
92866             [`TsTplLitType::fold_children_with`]. If you want to recurse, you need to call it \
92867             manually."]
92868    #[inline]
92869    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
92870        <TsTplLitType as FoldWith<Self>>::fold_children_with(node, self)
92871    }
92872    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
92873             [`TsTupleElement::fold_children_with`]. If you want to recurse, you need to call it \
92874             manually."]
92875    #[inline]
92876    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
92877        <TsTupleElement as FoldWith<Self>>::fold_children_with(node, self)
92878    }
92879    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
92880             < TsTupleElement >::fold_children_with`]. If you want to recurse, you need to call it \
92881             manually."]
92882    #[inline]
92883    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
92884        <Vec<TsTupleElement> as FoldWith<Self>>::fold_children_with(node, self)
92885    }
92886    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
92887             [`TsTupleType::fold_children_with`]. If you want to recurse, you need to call it \
92888             manually."]
92889    #[inline]
92890    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
92891        <TsTupleType as FoldWith<Self>>::fold_children_with(node, self)
92892    }
92893    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
92894             [`TsType::fold_children_with`]. If you want to recurse, you need to call it manually."]
92895    #[inline]
92896    fn fold_ts_type(&mut self, node: TsType) -> TsType {
92897        <TsType as FoldWith<Self>>::fold_children_with(node, self)
92898    }
92899    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
92900             [`TsTypeAliasDecl::fold_children_with`]. If you want to recurse, you need to call it \
92901             manually."]
92902    #[inline]
92903    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
92904        <TsTypeAliasDecl as FoldWith<Self>>::fold_children_with(node, self)
92905    }
92906    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
92907             [`TsTypeAnn::fold_children_with`]. If you want to recurse, you need to call it \
92908             manually."]
92909    #[inline]
92910    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
92911        <TsTypeAnn as FoldWith<Self>>::fold_children_with(node, self)
92912    }
92913    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
92914             [`TsTypeAssertion::fold_children_with`]. If you want to recurse, you need to call it \
92915             manually."]
92916    #[inline]
92917    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
92918        <TsTypeAssertion as FoldWith<Self>>::fold_children_with(node, self)
92919    }
92920    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
92921             [`TsTypeElement::fold_children_with`]. If you want to recurse, you need to call it \
92922             manually."]
92923    #[inline]
92924    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
92925        <TsTypeElement as FoldWith<Self>>::fold_children_with(node, self)
92926    }
92927    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
92928             < TsTypeElement >::fold_children_with`]. If you want to recurse, you need to call it \
92929             manually."]
92930    #[inline]
92931    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
92932        <Vec<TsTypeElement> as FoldWith<Self>>::fold_children_with(node, self)
92933    }
92934    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
92935             [`TsTypeLit::fold_children_with`]. If you want to recurse, you need to call it \
92936             manually."]
92937    #[inline]
92938    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
92939        <TsTypeLit as FoldWith<Self>>::fold_children_with(node, self)
92940    }
92941    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
92942             [`TsTypeOperator::fold_children_with`]. If you want to recurse, you need to call it \
92943             manually."]
92944    #[inline]
92945    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
92946        <TsTypeOperator as FoldWith<Self>>::fold_children_with(node, self)
92947    }
92948    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
92949             [`TsTypeOperatorOp::fold_children_with`]. If you want to recurse, you need to call it \
92950             manually."]
92951    #[inline]
92952    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
92953        <TsTypeOperatorOp as FoldWith<Self>>::fold_children_with(node, self)
92954    }
92955    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
92956             [`TsTypeParam::fold_children_with`]. If you want to recurse, you need to call it \
92957             manually."]
92958    #[inline]
92959    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
92960        <TsTypeParam as FoldWith<Self>>::fold_children_with(node, self)
92961    }
92962    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
92963             [`TsTypeParamDecl::fold_children_with`]. If you want to recurse, you need to call it \
92964             manually."]
92965    #[inline]
92966    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
92967        <TsTypeParamDecl as FoldWith<Self>>::fold_children_with(node, self)
92968    }
92969    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
92970             [`TsTypeParamInstantiation::fold_children_with`]. If you want to recurse, you need to \
92971             call it manually."]
92972    #[inline]
92973    fn fold_ts_type_param_instantiation(
92974        &mut self,
92975        node: TsTypeParamInstantiation,
92976    ) -> TsTypeParamInstantiation {
92977        <TsTypeParamInstantiation as FoldWith<Self>>::fold_children_with(node, self)
92978    }
92979    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
92980             TsTypeParam >::fold_children_with`]. If you want to recurse, you need to call it \
92981             manually."]
92982    #[inline]
92983    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
92984        <Vec<TsTypeParam> as FoldWith<Self>>::fold_children_with(node, self)
92985    }
92986    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
92987             [`TsTypePredicate::fold_children_with`]. If you want to recurse, you need to call it \
92988             manually."]
92989    #[inline]
92990    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
92991        <TsTypePredicate as FoldWith<Self>>::fold_children_with(node, self)
92992    }
92993    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
92994             [`TsTypeQuery::fold_children_with`]. If you want to recurse, you need to call it \
92995             manually."]
92996    #[inline]
92997    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
92998        <TsTypeQuery as FoldWith<Self>>::fold_children_with(node, self)
92999    }
93000    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
93001             [`TsTypeQueryExpr::fold_children_with`]. If you want to recurse, you need to call it \
93002             manually."]
93003    #[inline]
93004    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
93005        <TsTypeQueryExpr as FoldWith<Self>>::fold_children_with(node, self)
93006    }
93007    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
93008             [`TsTypeRef::fold_children_with`]. If you want to recurse, you need to call it \
93009             manually."]
93010    #[inline]
93011    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
93012        <TsTypeRef as FoldWith<Self>>::fold_children_with(node, self)
93013    }
93014    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
93015             < Box < TsType > >::fold_children_with`]. If you want to recurse, you need to call it \
93016             manually."]
93017    #[inline]
93018    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
93019        <Vec<Box<TsType>> as FoldWith<Self>>::fold_children_with(node, self)
93020    }
93021    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
93022             [`TsUnionOrIntersectionType::fold_children_with`]. If you want to recurse, you need \
93023             to call it manually."]
93024    #[inline]
93025    fn fold_ts_union_or_intersection_type(
93026        &mut self,
93027        node: TsUnionOrIntersectionType,
93028    ) -> TsUnionOrIntersectionType {
93029        <TsUnionOrIntersectionType as FoldWith<Self>>::fold_children_with(node, self)
93030    }
93031    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
93032             [`TsUnionType::fold_children_with`]. If you want to recurse, you need to call it \
93033             manually."]
93034    #[inline]
93035    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
93036        <TsUnionType as FoldWith<Self>>::fold_children_with(node, self)
93037    }
93038    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
93039             [`UnaryExpr::fold_children_with`]. If you want to recurse, you need to call it \
93040             manually."]
93041    #[inline]
93042    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
93043        <UnaryExpr as FoldWith<Self>>::fold_children_with(node, self)
93044    }
93045    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
93046             [`UnaryOp::fold_children_with`]. If you want to recurse, you need to call it manually."]
93047    #[inline]
93048    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
93049        <UnaryOp as FoldWith<Self>>::fold_children_with(node, self)
93050    }
93051    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
93052             [`UpdateExpr::fold_children_with`]. If you want to recurse, you need to call it \
93053             manually."]
93054    #[inline]
93055    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
93056        <UpdateExpr as FoldWith<Self>>::fold_children_with(node, self)
93057    }
93058    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
93059             [`UpdateOp::fold_children_with`]. If you want to recurse, you need to call it \
93060             manually."]
93061    #[inline]
93062    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
93063        <UpdateOp as FoldWith<Self>>::fold_children_with(node, self)
93064    }
93065    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
93066             [`UsingDecl::fold_children_with`]. If you want to recurse, you need to call it \
93067             manually."]
93068    #[inline]
93069    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
93070        <UsingDecl as FoldWith<Self>>::fold_children_with(node, self)
93071    }
93072    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
93073             [`VarDecl::fold_children_with`]. If you want to recurse, you need to call it manually."]
93074    #[inline]
93075    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
93076        <VarDecl as FoldWith<Self>>::fold_children_with(node, self)
93077    }
93078    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
93079             [`VarDeclKind::fold_children_with`]. If you want to recurse, you need to call it \
93080             manually."]
93081    #[inline]
93082    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
93083        <VarDeclKind as FoldWith<Self>>::fold_children_with(node, self)
93084    }
93085    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
93086             [`VarDeclOrExpr::fold_children_with`]. If you want to recurse, you need to call it \
93087             manually."]
93088    #[inline]
93089    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
93090        <VarDeclOrExpr as FoldWith<Self>>::fold_children_with(node, self)
93091    }
93092    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
93093             [`VarDeclarator::fold_children_with`]. If you want to recurse, you need to call it \
93094             manually."]
93095    #[inline]
93096    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
93097        <VarDeclarator as FoldWith<Self>>::fold_children_with(node, self)
93098    }
93099    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
93100             < VarDeclarator >::fold_children_with`]. If you want to recurse, you need to call it \
93101             manually."]
93102    #[inline]
93103    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
93104        <Vec<VarDeclarator> as FoldWith<Self>>::fold_children_with(node, self)
93105    }
93106    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
93107             [`WhileStmt::fold_children_with`]. If you want to recurse, you need to call it \
93108             manually."]
93109    #[inline]
93110    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
93111        <WhileStmt as FoldWith<Self>>::fold_children_with(node, self)
93112    }
93113    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
93114             [`WithStmt::fold_children_with`]. If you want to recurse, you need to call it \
93115             manually."]
93116    #[inline]
93117    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
93118        <WithStmt as FoldWith<Self>>::fold_children_with(node, self)
93119    }
93120    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
93121             [`YieldExpr::fold_children_with`]. If you want to recurse, you need to call it \
93122             manually."]
93123    #[inline]
93124    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
93125        <YieldExpr as FoldWith<Self>>::fold_children_with(node, self)
93126    }
93127}
93128impl<V> Fold for &mut V
93129where
93130    V: ?Sized + Fold,
93131{
93132    #[inline]
93133    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
93134        <V as Fold>::fold_accessibility(&mut **self, node)
93135    }
93136
93137    #[inline]
93138    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
93139        <V as Fold>::fold_array_lit(&mut **self, node)
93140    }
93141
93142    #[inline]
93143    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
93144        <V as Fold>::fold_array_pat(&mut **self, node)
93145    }
93146
93147    #[inline]
93148    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
93149        <V as Fold>::fold_arrow_expr(&mut **self, node)
93150    }
93151
93152    #[inline]
93153    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
93154        <V as Fold>::fold_assign_expr(&mut **self, node)
93155    }
93156
93157    #[inline]
93158    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
93159        <V as Fold>::fold_assign_op(&mut **self, node)
93160    }
93161
93162    #[inline]
93163    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
93164        <V as Fold>::fold_assign_pat(&mut **self, node)
93165    }
93166
93167    #[inline]
93168    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
93169        <V as Fold>::fold_assign_pat_prop(&mut **self, node)
93170    }
93171
93172    #[inline]
93173    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
93174        <V as Fold>::fold_assign_prop(&mut **self, node)
93175    }
93176
93177    #[inline]
93178    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
93179        <V as Fold>::fold_assign_target(&mut **self, node)
93180    }
93181
93182    #[inline]
93183    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
93184        <V as Fold>::fold_assign_target_pat(&mut **self, node)
93185    }
93186
93187    #[inline]
93188    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
93189        <V as Fold>::fold_atom(&mut **self, node)
93190    }
93191
93192    #[inline]
93193    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
93194        <V as Fold>::fold_auto_accessor(&mut **self, node)
93195    }
93196
93197    #[inline]
93198    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
93199        <V as Fold>::fold_await_expr(&mut **self, node)
93200    }
93201
93202    #[inline]
93203    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
93204        <V as Fold>::fold_big_int(&mut **self, node)
93205    }
93206
93207    #[inline]
93208    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
93209        <V as Fold>::fold_big_int_value(&mut **self, node)
93210    }
93211
93212    #[inline]
93213    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
93214        <V as Fold>::fold_bin_expr(&mut **self, node)
93215    }
93216
93217    #[inline]
93218    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
93219        <V as Fold>::fold_binary_op(&mut **self, node)
93220    }
93221
93222    #[inline]
93223    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
93224        <V as Fold>::fold_binding_ident(&mut **self, node)
93225    }
93226
93227    #[inline]
93228    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
93229        <V as Fold>::fold_block_stmt(&mut **self, node)
93230    }
93231
93232    #[inline]
93233    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
93234        <V as Fold>::fold_block_stmt_or_expr(&mut **self, node)
93235    }
93236
93237    #[inline]
93238    fn fold_bool(&mut self, node: Bool) -> Bool {
93239        <V as Fold>::fold_bool(&mut **self, node)
93240    }
93241
93242    #[inline]
93243    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
93244        <V as Fold>::fold_break_stmt(&mut **self, node)
93245    }
93246
93247    #[inline]
93248    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
93249        <V as Fold>::fold_call_expr(&mut **self, node)
93250    }
93251
93252    #[inline]
93253    fn fold_callee(&mut self, node: Callee) -> Callee {
93254        <V as Fold>::fold_callee(&mut **self, node)
93255    }
93256
93257    #[inline]
93258    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
93259        <V as Fold>::fold_catch_clause(&mut **self, node)
93260    }
93261
93262    #[inline]
93263    fn fold_class(&mut self, node: Class) -> Class {
93264        <V as Fold>::fold_class(&mut **self, node)
93265    }
93266
93267    #[inline]
93268    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
93269        <V as Fold>::fold_class_decl(&mut **self, node)
93270    }
93271
93272    #[inline]
93273    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
93274        <V as Fold>::fold_class_expr(&mut **self, node)
93275    }
93276
93277    #[inline]
93278    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
93279        <V as Fold>::fold_class_member(&mut **self, node)
93280    }
93281
93282    #[inline]
93283    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
93284        <V as Fold>::fold_class_members(&mut **self, node)
93285    }
93286
93287    #[inline]
93288    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
93289        <V as Fold>::fold_class_method(&mut **self, node)
93290    }
93291
93292    #[inline]
93293    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
93294        <V as Fold>::fold_class_prop(&mut **self, node)
93295    }
93296
93297    #[inline]
93298    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
93299        <V as Fold>::fold_computed_prop_name(&mut **self, node)
93300    }
93301
93302    #[inline]
93303    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
93304        <V as Fold>::fold_cond_expr(&mut **self, node)
93305    }
93306
93307    #[inline]
93308    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
93309        <V as Fold>::fold_constructor(&mut **self, node)
93310    }
93311
93312    #[inline]
93313    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
93314        <V as Fold>::fold_continue_stmt(&mut **self, node)
93315    }
93316
93317    #[inline]
93318    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
93319        <V as Fold>::fold_debugger_stmt(&mut **self, node)
93320    }
93321
93322    #[inline]
93323    fn fold_decl(&mut self, node: Decl) -> Decl {
93324        <V as Fold>::fold_decl(&mut **self, node)
93325    }
93326
93327    #[inline]
93328    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
93329        <V as Fold>::fold_decorator(&mut **self, node)
93330    }
93331
93332    #[inline]
93333    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
93334        <V as Fold>::fold_decorators(&mut **self, node)
93335    }
93336
93337    #[inline]
93338    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
93339        <V as Fold>::fold_default_decl(&mut **self, node)
93340    }
93341
93342    #[inline]
93343    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
93344        <V as Fold>::fold_do_while_stmt(&mut **self, node)
93345    }
93346
93347    #[inline]
93348    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
93349        <V as Fold>::fold_empty_stmt(&mut **self, node)
93350    }
93351
93352    #[inline]
93353    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
93354        <V as Fold>::fold_export_all(&mut **self, node)
93355    }
93356
93357    #[inline]
93358    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
93359        <V as Fold>::fold_export_decl(&mut **self, node)
93360    }
93361
93362    #[inline]
93363    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
93364        <V as Fold>::fold_export_default_decl(&mut **self, node)
93365    }
93366
93367    #[inline]
93368    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
93369        <V as Fold>::fold_export_default_expr(&mut **self, node)
93370    }
93371
93372    #[inline]
93373    fn fold_export_default_specifier(
93374        &mut self,
93375        node: ExportDefaultSpecifier,
93376    ) -> ExportDefaultSpecifier {
93377        <V as Fold>::fold_export_default_specifier(&mut **self, node)
93378    }
93379
93380    #[inline]
93381    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
93382        <V as Fold>::fold_export_named_specifier(&mut **self, node)
93383    }
93384
93385    #[inline]
93386    fn fold_export_namespace_specifier(
93387        &mut self,
93388        node: ExportNamespaceSpecifier,
93389    ) -> ExportNamespaceSpecifier {
93390        <V as Fold>::fold_export_namespace_specifier(&mut **self, node)
93391    }
93392
93393    #[inline]
93394    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
93395        <V as Fold>::fold_export_specifier(&mut **self, node)
93396    }
93397
93398    #[inline]
93399    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
93400        <V as Fold>::fold_export_specifiers(&mut **self, node)
93401    }
93402
93403    #[inline]
93404    fn fold_expr(&mut self, node: Expr) -> Expr {
93405        <V as Fold>::fold_expr(&mut **self, node)
93406    }
93407
93408    #[inline]
93409    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
93410        <V as Fold>::fold_expr_or_spread(&mut **self, node)
93411    }
93412
93413    #[inline]
93414    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
93415        <V as Fold>::fold_expr_or_spreads(&mut **self, node)
93416    }
93417
93418    #[inline]
93419    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
93420        <V as Fold>::fold_expr_stmt(&mut **self, node)
93421    }
93422
93423    #[inline]
93424    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
93425        <V as Fold>::fold_exprs(&mut **self, node)
93426    }
93427
93428    #[inline]
93429    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
93430        <V as Fold>::fold_fn_decl(&mut **self, node)
93431    }
93432
93433    #[inline]
93434    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
93435        <V as Fold>::fold_fn_expr(&mut **self, node)
93436    }
93437
93438    #[inline]
93439    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
93440        <V as Fold>::fold_for_head(&mut **self, node)
93441    }
93442
93443    #[inline]
93444    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
93445        <V as Fold>::fold_for_in_stmt(&mut **self, node)
93446    }
93447
93448    #[inline]
93449    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
93450        <V as Fold>::fold_for_of_stmt(&mut **self, node)
93451    }
93452
93453    #[inline]
93454    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
93455        <V as Fold>::fold_for_stmt(&mut **self, node)
93456    }
93457
93458    #[inline]
93459    fn fold_function(&mut self, node: Function) -> Function {
93460        <V as Fold>::fold_function(&mut **self, node)
93461    }
93462
93463    #[inline]
93464    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
93465        <V as Fold>::fold_getter_prop(&mut **self, node)
93466    }
93467
93468    #[inline]
93469    fn fold_ident(&mut self, node: Ident) -> Ident {
93470        <V as Fold>::fold_ident(&mut **self, node)
93471    }
93472
93473    #[inline]
93474    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
93475        <V as Fold>::fold_ident_name(&mut **self, node)
93476    }
93477
93478    #[inline]
93479    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
93480        <V as Fold>::fold_if_stmt(&mut **self, node)
93481    }
93482
93483    #[inline]
93484    fn fold_import(&mut self, node: Import) -> Import {
93485        <V as Fold>::fold_import(&mut **self, node)
93486    }
93487
93488    #[inline]
93489    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
93490        <V as Fold>::fold_import_decl(&mut **self, node)
93491    }
93492
93493    #[inline]
93494    fn fold_import_default_specifier(
93495        &mut self,
93496        node: ImportDefaultSpecifier,
93497    ) -> ImportDefaultSpecifier {
93498        <V as Fold>::fold_import_default_specifier(&mut **self, node)
93499    }
93500
93501    #[inline]
93502    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
93503        <V as Fold>::fold_import_named_specifier(&mut **self, node)
93504    }
93505
93506    #[inline]
93507    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
93508        <V as Fold>::fold_import_phase(&mut **self, node)
93509    }
93510
93511    #[inline]
93512    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
93513        <V as Fold>::fold_import_specifier(&mut **self, node)
93514    }
93515
93516    #[inline]
93517    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
93518        <V as Fold>::fold_import_specifiers(&mut **self, node)
93519    }
93520
93521    #[inline]
93522    fn fold_import_star_as_specifier(
93523        &mut self,
93524        node: ImportStarAsSpecifier,
93525    ) -> ImportStarAsSpecifier {
93526        <V as Fold>::fold_import_star_as_specifier(&mut **self, node)
93527    }
93528
93529    #[inline]
93530    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
93531        <V as Fold>::fold_import_with(&mut **self, node)
93532    }
93533
93534    #[inline]
93535    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
93536        <V as Fold>::fold_import_with_item(&mut **self, node)
93537    }
93538
93539    #[inline]
93540    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
93541        <V as Fold>::fold_import_with_items(&mut **self, node)
93542    }
93543
93544    #[inline]
93545    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
93546        <V as Fold>::fold_invalid(&mut **self, node)
93547    }
93548
93549    #[inline]
93550    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
93551        <V as Fold>::fold_jsx_attr(&mut **self, node)
93552    }
93553
93554    #[inline]
93555    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
93556        <V as Fold>::fold_jsx_attr_name(&mut **self, node)
93557    }
93558
93559    #[inline]
93560    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
93561        <V as Fold>::fold_jsx_attr_or_spread(&mut **self, node)
93562    }
93563
93564    #[inline]
93565    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
93566        <V as Fold>::fold_jsx_attr_or_spreads(&mut **self, node)
93567    }
93568
93569    #[inline]
93570    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
93571        <V as Fold>::fold_jsx_attr_value(&mut **self, node)
93572    }
93573
93574    #[inline]
93575    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
93576        <V as Fold>::fold_jsx_closing_element(&mut **self, node)
93577    }
93578
93579    #[inline]
93580    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
93581        <V as Fold>::fold_jsx_closing_fragment(&mut **self, node)
93582    }
93583
93584    #[inline]
93585    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
93586        <V as Fold>::fold_jsx_element(&mut **self, node)
93587    }
93588
93589    #[inline]
93590    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
93591        <V as Fold>::fold_jsx_element_child(&mut **self, node)
93592    }
93593
93594    #[inline]
93595    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
93596        <V as Fold>::fold_jsx_element_childs(&mut **self, node)
93597    }
93598
93599    #[inline]
93600    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
93601        <V as Fold>::fold_jsx_element_name(&mut **self, node)
93602    }
93603
93604    #[inline]
93605    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
93606        <V as Fold>::fold_jsx_empty_expr(&mut **self, node)
93607    }
93608
93609    #[inline]
93610    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
93611        <V as Fold>::fold_jsx_expr(&mut **self, node)
93612    }
93613
93614    #[inline]
93615    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
93616        <V as Fold>::fold_jsx_expr_container(&mut **self, node)
93617    }
93618
93619    #[inline]
93620    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
93621        <V as Fold>::fold_jsx_fragment(&mut **self, node)
93622    }
93623
93624    #[inline]
93625    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
93626        <V as Fold>::fold_jsx_member_expr(&mut **self, node)
93627    }
93628
93629    #[inline]
93630    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
93631        <V as Fold>::fold_jsx_namespaced_name(&mut **self, node)
93632    }
93633
93634    #[inline]
93635    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
93636        <V as Fold>::fold_jsx_object(&mut **self, node)
93637    }
93638
93639    #[inline]
93640    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
93641        <V as Fold>::fold_jsx_opening_element(&mut **self, node)
93642    }
93643
93644    #[inline]
93645    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
93646        <V as Fold>::fold_jsx_opening_fragment(&mut **self, node)
93647    }
93648
93649    #[inline]
93650    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
93651        <V as Fold>::fold_jsx_spread_child(&mut **self, node)
93652    }
93653
93654    #[inline]
93655    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
93656        <V as Fold>::fold_jsx_text(&mut **self, node)
93657    }
93658
93659    #[inline]
93660    fn fold_key(&mut self, node: Key) -> Key {
93661        <V as Fold>::fold_key(&mut **self, node)
93662    }
93663
93664    #[inline]
93665    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
93666        <V as Fold>::fold_key_value_pat_prop(&mut **self, node)
93667    }
93668
93669    #[inline]
93670    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
93671        <V as Fold>::fold_key_value_prop(&mut **self, node)
93672    }
93673
93674    #[inline]
93675    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
93676        <V as Fold>::fold_labeled_stmt(&mut **self, node)
93677    }
93678
93679    #[inline]
93680    fn fold_lit(&mut self, node: Lit) -> Lit {
93681        <V as Fold>::fold_lit(&mut **self, node)
93682    }
93683
93684    #[inline]
93685    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
93686        <V as Fold>::fold_member_expr(&mut **self, node)
93687    }
93688
93689    #[inline]
93690    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
93691        <V as Fold>::fold_member_prop(&mut **self, node)
93692    }
93693
93694    #[inline]
93695    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
93696        <V as Fold>::fold_meta_prop_expr(&mut **self, node)
93697    }
93698
93699    #[inline]
93700    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
93701        <V as Fold>::fold_meta_prop_kind(&mut **self, node)
93702    }
93703
93704    #[inline]
93705    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
93706        <V as Fold>::fold_method_kind(&mut **self, node)
93707    }
93708
93709    #[inline]
93710    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
93711        <V as Fold>::fold_method_prop(&mut **self, node)
93712    }
93713
93714    #[inline]
93715    fn fold_module(&mut self, node: Module) -> Module {
93716        <V as Fold>::fold_module(&mut **self, node)
93717    }
93718
93719    #[inline]
93720    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
93721        <V as Fold>::fold_module_decl(&mut **self, node)
93722    }
93723
93724    #[inline]
93725    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
93726        <V as Fold>::fold_module_export_name(&mut **self, node)
93727    }
93728
93729    #[inline]
93730    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
93731        <V as Fold>::fold_module_item(&mut **self, node)
93732    }
93733
93734    #[inline]
93735    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
93736        <V as Fold>::fold_module_items(&mut **self, node)
93737    }
93738
93739    #[inline]
93740    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
93741        <V as Fold>::fold_named_export(&mut **self, node)
93742    }
93743
93744    #[inline]
93745    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
93746        <V as Fold>::fold_new_expr(&mut **self, node)
93747    }
93748
93749    #[inline]
93750    fn fold_null(&mut self, node: Null) -> Null {
93751        <V as Fold>::fold_null(&mut **self, node)
93752    }
93753
93754    #[inline]
93755    fn fold_number(&mut self, node: Number) -> Number {
93756        <V as Fold>::fold_number(&mut **self, node)
93757    }
93758
93759    #[inline]
93760    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
93761        <V as Fold>::fold_object_lit(&mut **self, node)
93762    }
93763
93764    #[inline]
93765    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
93766        <V as Fold>::fold_object_pat(&mut **self, node)
93767    }
93768
93769    #[inline]
93770    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
93771        <V as Fold>::fold_object_pat_prop(&mut **self, node)
93772    }
93773
93774    #[inline]
93775    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
93776        <V as Fold>::fold_object_pat_props(&mut **self, node)
93777    }
93778
93779    #[inline]
93780    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
93781        <V as Fold>::fold_opt_accessibility(&mut **self, node)
93782    }
93783
93784    #[inline]
93785    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
93786        <V as Fold>::fold_opt_atom(&mut **self, node)
93787    }
93788
93789    #[inline]
93790    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
93791        <V as Fold>::fold_opt_block_stmt(&mut **self, node)
93792    }
93793
93794    #[inline]
93795    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
93796        <V as Fold>::fold_opt_call(&mut **self, node)
93797    }
93798
93799    #[inline]
93800    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
93801        <V as Fold>::fold_opt_catch_clause(&mut **self, node)
93802    }
93803
93804    #[inline]
93805    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
93806        <V as Fold>::fold_opt_chain_base(&mut **self, node)
93807    }
93808
93809    #[inline]
93810    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
93811        <V as Fold>::fold_opt_chain_expr(&mut **self, node)
93812    }
93813
93814    #[inline]
93815    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
93816        <V as Fold>::fold_opt_expr(&mut **self, node)
93817    }
93818
93819    #[inline]
93820    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
93821        <V as Fold>::fold_opt_expr_or_spread(&mut **self, node)
93822    }
93823
93824    #[inline]
93825    fn fold_opt_expr_or_spreads(
93826        &mut self,
93827        node: Option<Vec<ExprOrSpread>>,
93828    ) -> Option<Vec<ExprOrSpread>> {
93829        <V as Fold>::fold_opt_expr_or_spreads(&mut **self, node)
93830    }
93831
93832    #[inline]
93833    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
93834        <V as Fold>::fold_opt_ident(&mut **self, node)
93835    }
93836
93837    #[inline]
93838    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
93839        <V as Fold>::fold_opt_jsx_attr_value(&mut **self, node)
93840    }
93841
93842    #[inline]
93843    fn fold_opt_jsx_closing_element(
93844        &mut self,
93845        node: Option<JSXClosingElement>,
93846    ) -> Option<JSXClosingElement> {
93847        <V as Fold>::fold_opt_jsx_closing_element(&mut **self, node)
93848    }
93849
93850    #[inline]
93851    fn fold_opt_module_export_name(
93852        &mut self,
93853        node: Option<ModuleExportName>,
93854    ) -> Option<ModuleExportName> {
93855        <V as Fold>::fold_opt_module_export_name(&mut **self, node)
93856    }
93857
93858    #[inline]
93859    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
93860        <V as Fold>::fold_opt_object_lit(&mut **self, node)
93861    }
93862
93863    #[inline]
93864    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
93865        <V as Fold>::fold_opt_pat(&mut **self, node)
93866    }
93867
93868    #[inline]
93869    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
93870        <V as Fold>::fold_opt_span(&mut **self, node)
93871    }
93872
93873    #[inline]
93874    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
93875        <V as Fold>::fold_opt_stmt(&mut **self, node)
93876    }
93877
93878    #[inline]
93879    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
93880        <V as Fold>::fold_opt_str(&mut **self, node)
93881    }
93882
93883    #[inline]
93884    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
93885        <V as Fold>::fold_opt_true_plus_minus(&mut **self, node)
93886    }
93887
93888    #[inline]
93889    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
93890        <V as Fold>::fold_opt_ts_entity_name(&mut **self, node)
93891    }
93892
93893    #[inline]
93894    fn fold_opt_ts_namespace_body(
93895        &mut self,
93896        node: Option<TsNamespaceBody>,
93897    ) -> Option<TsNamespaceBody> {
93898        <V as Fold>::fold_opt_ts_namespace_body(&mut **self, node)
93899    }
93900
93901    #[inline]
93902    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
93903        <V as Fold>::fold_opt_ts_type(&mut **self, node)
93904    }
93905
93906    #[inline]
93907    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
93908        <V as Fold>::fold_opt_ts_type_ann(&mut **self, node)
93909    }
93910
93911    #[inline]
93912    fn fold_opt_ts_type_param_decl(
93913        &mut self,
93914        node: Option<Box<TsTypeParamDecl>>,
93915    ) -> Option<Box<TsTypeParamDecl>> {
93916        <V as Fold>::fold_opt_ts_type_param_decl(&mut **self, node)
93917    }
93918
93919    #[inline]
93920    fn fold_opt_ts_type_param_instantiation(
93921        &mut self,
93922        node: Option<Box<TsTypeParamInstantiation>>,
93923    ) -> Option<Box<TsTypeParamInstantiation>> {
93924        <V as Fold>::fold_opt_ts_type_param_instantiation(&mut **self, node)
93925    }
93926
93927    #[inline]
93928    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
93929        <V as Fold>::fold_opt_var_decl_or_expr(&mut **self, node)
93930    }
93931
93932    #[inline]
93933    fn fold_opt_vec_expr_or_spreads(
93934        &mut self,
93935        node: Vec<Option<ExprOrSpread>>,
93936    ) -> Vec<Option<ExprOrSpread>> {
93937        <V as Fold>::fold_opt_vec_expr_or_spreads(&mut **self, node)
93938    }
93939
93940    #[inline]
93941    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
93942        <V as Fold>::fold_opt_vec_pats(&mut **self, node)
93943    }
93944
93945    #[inline]
93946    fn fold_param(&mut self, node: Param) -> Param {
93947        <V as Fold>::fold_param(&mut **self, node)
93948    }
93949
93950    #[inline]
93951    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
93952        <V as Fold>::fold_param_or_ts_param_prop(&mut **self, node)
93953    }
93954
93955    #[inline]
93956    fn fold_param_or_ts_param_props(
93957        &mut self,
93958        node: Vec<ParamOrTsParamProp>,
93959    ) -> Vec<ParamOrTsParamProp> {
93960        <V as Fold>::fold_param_or_ts_param_props(&mut **self, node)
93961    }
93962
93963    #[inline]
93964    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
93965        <V as Fold>::fold_params(&mut **self, node)
93966    }
93967
93968    #[inline]
93969    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
93970        <V as Fold>::fold_paren_expr(&mut **self, node)
93971    }
93972
93973    #[inline]
93974    fn fold_pat(&mut self, node: Pat) -> Pat {
93975        <V as Fold>::fold_pat(&mut **self, node)
93976    }
93977
93978    #[inline]
93979    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
93980        <V as Fold>::fold_pats(&mut **self, node)
93981    }
93982
93983    #[inline]
93984    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
93985        <V as Fold>::fold_private_method(&mut **self, node)
93986    }
93987
93988    #[inline]
93989    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
93990        <V as Fold>::fold_private_name(&mut **self, node)
93991    }
93992
93993    #[inline]
93994    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
93995        <V as Fold>::fold_private_prop(&mut **self, node)
93996    }
93997
93998    #[inline]
93999    fn fold_program(&mut self, node: Program) -> Program {
94000        <V as Fold>::fold_program(&mut **self, node)
94001    }
94002
94003    #[inline]
94004    fn fold_prop(&mut self, node: Prop) -> Prop {
94005        <V as Fold>::fold_prop(&mut **self, node)
94006    }
94007
94008    #[inline]
94009    fn fold_prop_name(&mut self, node: PropName) -> PropName {
94010        <V as Fold>::fold_prop_name(&mut **self, node)
94011    }
94012
94013    #[inline]
94014    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
94015        <V as Fold>::fold_prop_or_spread(&mut **self, node)
94016    }
94017
94018    #[inline]
94019    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
94020        <V as Fold>::fold_prop_or_spreads(&mut **self, node)
94021    }
94022
94023    #[inline]
94024    fn fold_regex(&mut self, node: Regex) -> Regex {
94025        <V as Fold>::fold_regex(&mut **self, node)
94026    }
94027
94028    #[inline]
94029    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
94030        <V as Fold>::fold_rest_pat(&mut **self, node)
94031    }
94032
94033    #[inline]
94034    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
94035        <V as Fold>::fold_return_stmt(&mut **self, node)
94036    }
94037
94038    #[inline]
94039    fn fold_script(&mut self, node: Script) -> Script {
94040        <V as Fold>::fold_script(&mut **self, node)
94041    }
94042
94043    #[inline]
94044    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
94045        <V as Fold>::fold_seq_expr(&mut **self, node)
94046    }
94047
94048    #[inline]
94049    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
94050        <V as Fold>::fold_setter_prop(&mut **self, node)
94051    }
94052
94053    #[inline]
94054    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
94055        <V as Fold>::fold_simple_assign_target(&mut **self, node)
94056    }
94057
94058    #[inline]
94059    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
94060        <V as Fold>::fold_span(&mut **self, node)
94061    }
94062
94063    #[inline]
94064    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
94065        <V as Fold>::fold_spread_element(&mut **self, node)
94066    }
94067
94068    #[inline]
94069    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
94070        <V as Fold>::fold_static_block(&mut **self, node)
94071    }
94072
94073    #[inline]
94074    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
94075        <V as Fold>::fold_stmt(&mut **self, node)
94076    }
94077
94078    #[inline]
94079    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
94080        <V as Fold>::fold_stmts(&mut **self, node)
94081    }
94082
94083    #[inline]
94084    fn fold_str(&mut self, node: Str) -> Str {
94085        <V as Fold>::fold_str(&mut **self, node)
94086    }
94087
94088    #[inline]
94089    fn fold_super(&mut self, node: Super) -> Super {
94090        <V as Fold>::fold_super(&mut **self, node)
94091    }
94092
94093    #[inline]
94094    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
94095        <V as Fold>::fold_super_prop(&mut **self, node)
94096    }
94097
94098    #[inline]
94099    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
94100        <V as Fold>::fold_super_prop_expr(&mut **self, node)
94101    }
94102
94103    #[inline]
94104    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
94105        <V as Fold>::fold_switch_case(&mut **self, node)
94106    }
94107
94108    #[inline]
94109    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
94110        <V as Fold>::fold_switch_cases(&mut **self, node)
94111    }
94112
94113    #[inline]
94114    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
94115        <V as Fold>::fold_switch_stmt(&mut **self, node)
94116    }
94117
94118    #[inline]
94119    fn fold_syntax_context(
94120        &mut self,
94121        node: swc_common::SyntaxContext,
94122    ) -> swc_common::SyntaxContext {
94123        <V as Fold>::fold_syntax_context(&mut **self, node)
94124    }
94125
94126    #[inline]
94127    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
94128        <V as Fold>::fold_tagged_tpl(&mut **self, node)
94129    }
94130
94131    #[inline]
94132    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
94133        <V as Fold>::fold_this_expr(&mut **self, node)
94134    }
94135
94136    #[inline]
94137    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
94138        <V as Fold>::fold_throw_stmt(&mut **self, node)
94139    }
94140
94141    #[inline]
94142    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
94143        <V as Fold>::fold_tpl(&mut **self, node)
94144    }
94145
94146    #[inline]
94147    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
94148        <V as Fold>::fold_tpl_element(&mut **self, node)
94149    }
94150
94151    #[inline]
94152    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
94153        <V as Fold>::fold_tpl_elements(&mut **self, node)
94154    }
94155
94156    #[inline]
94157    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
94158        <V as Fold>::fold_true_plus_minus(&mut **self, node)
94159    }
94160
94161    #[inline]
94162    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
94163        <V as Fold>::fold_try_stmt(&mut **self, node)
94164    }
94165
94166    #[inline]
94167    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
94168        <V as Fold>::fold_ts_array_type(&mut **self, node)
94169    }
94170
94171    #[inline]
94172    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
94173        <V as Fold>::fold_ts_as_expr(&mut **self, node)
94174    }
94175
94176    #[inline]
94177    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
94178        <V as Fold>::fold_ts_call_signature_decl(&mut **self, node)
94179    }
94180
94181    #[inline]
94182    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
94183        <V as Fold>::fold_ts_conditional_type(&mut **self, node)
94184    }
94185
94186    #[inline]
94187    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
94188        <V as Fold>::fold_ts_const_assertion(&mut **self, node)
94189    }
94190
94191    #[inline]
94192    fn fold_ts_construct_signature_decl(
94193        &mut self,
94194        node: TsConstructSignatureDecl,
94195    ) -> TsConstructSignatureDecl {
94196        <V as Fold>::fold_ts_construct_signature_decl(&mut **self, node)
94197    }
94198
94199    #[inline]
94200    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
94201        <V as Fold>::fold_ts_constructor_type(&mut **self, node)
94202    }
94203
94204    #[inline]
94205    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
94206        <V as Fold>::fold_ts_entity_name(&mut **self, node)
94207    }
94208
94209    #[inline]
94210    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
94211        <V as Fold>::fold_ts_enum_decl(&mut **self, node)
94212    }
94213
94214    #[inline]
94215    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
94216        <V as Fold>::fold_ts_enum_member(&mut **self, node)
94217    }
94218
94219    #[inline]
94220    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
94221        <V as Fold>::fold_ts_enum_member_id(&mut **self, node)
94222    }
94223
94224    #[inline]
94225    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
94226        <V as Fold>::fold_ts_enum_members(&mut **self, node)
94227    }
94228
94229    #[inline]
94230    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
94231        <V as Fold>::fold_ts_export_assignment(&mut **self, node)
94232    }
94233
94234    #[inline]
94235    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
94236        <V as Fold>::fold_ts_expr_with_type_args(&mut **self, node)
94237    }
94238
94239    #[inline]
94240    fn fold_ts_expr_with_type_argss(
94241        &mut self,
94242        node: Vec<TsExprWithTypeArgs>,
94243    ) -> Vec<TsExprWithTypeArgs> {
94244        <V as Fold>::fold_ts_expr_with_type_argss(&mut **self, node)
94245    }
94246
94247    #[inline]
94248    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
94249        <V as Fold>::fold_ts_external_module_ref(&mut **self, node)
94250    }
94251
94252    #[inline]
94253    fn fold_ts_fn_or_constructor_type(
94254        &mut self,
94255        node: TsFnOrConstructorType,
94256    ) -> TsFnOrConstructorType {
94257        <V as Fold>::fold_ts_fn_or_constructor_type(&mut **self, node)
94258    }
94259
94260    #[inline]
94261    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
94262        <V as Fold>::fold_ts_fn_param(&mut **self, node)
94263    }
94264
94265    #[inline]
94266    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
94267        <V as Fold>::fold_ts_fn_params(&mut **self, node)
94268    }
94269
94270    #[inline]
94271    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
94272        <V as Fold>::fold_ts_fn_type(&mut **self, node)
94273    }
94274
94275    #[inline]
94276    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
94277        <V as Fold>::fold_ts_getter_signature(&mut **self, node)
94278    }
94279
94280    #[inline]
94281    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
94282        <V as Fold>::fold_ts_import_equals_decl(&mut **self, node)
94283    }
94284
94285    #[inline]
94286    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
94287        <V as Fold>::fold_ts_import_type(&mut **self, node)
94288    }
94289
94290    #[inline]
94291    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
94292        <V as Fold>::fold_ts_index_signature(&mut **self, node)
94293    }
94294
94295    #[inline]
94296    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
94297        <V as Fold>::fold_ts_indexed_access_type(&mut **self, node)
94298    }
94299
94300    #[inline]
94301    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
94302        <V as Fold>::fold_ts_infer_type(&mut **self, node)
94303    }
94304
94305    #[inline]
94306    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
94307        <V as Fold>::fold_ts_instantiation(&mut **self, node)
94308    }
94309
94310    #[inline]
94311    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
94312        <V as Fold>::fold_ts_interface_body(&mut **self, node)
94313    }
94314
94315    #[inline]
94316    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
94317        <V as Fold>::fold_ts_interface_decl(&mut **self, node)
94318    }
94319
94320    #[inline]
94321    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
94322        <V as Fold>::fold_ts_intersection_type(&mut **self, node)
94323    }
94324
94325    #[inline]
94326    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
94327        <V as Fold>::fold_ts_keyword_type(&mut **self, node)
94328    }
94329
94330    #[inline]
94331    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
94332        <V as Fold>::fold_ts_keyword_type_kind(&mut **self, node)
94333    }
94334
94335    #[inline]
94336    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
94337        <V as Fold>::fold_ts_lit(&mut **self, node)
94338    }
94339
94340    #[inline]
94341    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
94342        <V as Fold>::fold_ts_lit_type(&mut **self, node)
94343    }
94344
94345    #[inline]
94346    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
94347        <V as Fold>::fold_ts_mapped_type(&mut **self, node)
94348    }
94349
94350    #[inline]
94351    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
94352        <V as Fold>::fold_ts_method_signature(&mut **self, node)
94353    }
94354
94355    #[inline]
94356    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
94357        <V as Fold>::fold_ts_module_block(&mut **self, node)
94358    }
94359
94360    #[inline]
94361    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
94362        <V as Fold>::fold_ts_module_decl(&mut **self, node)
94363    }
94364
94365    #[inline]
94366    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
94367        <V as Fold>::fold_ts_module_name(&mut **self, node)
94368    }
94369
94370    #[inline]
94371    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
94372        <V as Fold>::fold_ts_module_ref(&mut **self, node)
94373    }
94374
94375    #[inline]
94376    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
94377        <V as Fold>::fold_ts_namespace_body(&mut **self, node)
94378    }
94379
94380    #[inline]
94381    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
94382        <V as Fold>::fold_ts_namespace_decl(&mut **self, node)
94383    }
94384
94385    #[inline]
94386    fn fold_ts_namespace_export_decl(
94387        &mut self,
94388        node: TsNamespaceExportDecl,
94389    ) -> TsNamespaceExportDecl {
94390        <V as Fold>::fold_ts_namespace_export_decl(&mut **self, node)
94391    }
94392
94393    #[inline]
94394    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
94395        <V as Fold>::fold_ts_non_null_expr(&mut **self, node)
94396    }
94397
94398    #[inline]
94399    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
94400        <V as Fold>::fold_ts_optional_type(&mut **self, node)
94401    }
94402
94403    #[inline]
94404    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
94405        <V as Fold>::fold_ts_param_prop(&mut **self, node)
94406    }
94407
94408    #[inline]
94409    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
94410        <V as Fold>::fold_ts_param_prop_param(&mut **self, node)
94411    }
94412
94413    #[inline]
94414    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
94415        <V as Fold>::fold_ts_parenthesized_type(&mut **self, node)
94416    }
94417
94418    #[inline]
94419    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
94420        <V as Fold>::fold_ts_property_signature(&mut **self, node)
94421    }
94422
94423    #[inline]
94424    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
94425        <V as Fold>::fold_ts_qualified_name(&mut **self, node)
94426    }
94427
94428    #[inline]
94429    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
94430        <V as Fold>::fold_ts_rest_type(&mut **self, node)
94431    }
94432
94433    #[inline]
94434    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
94435        <V as Fold>::fold_ts_satisfies_expr(&mut **self, node)
94436    }
94437
94438    #[inline]
94439    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
94440        <V as Fold>::fold_ts_setter_signature(&mut **self, node)
94441    }
94442
94443    #[inline]
94444    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
94445        <V as Fold>::fold_ts_this_type(&mut **self, node)
94446    }
94447
94448    #[inline]
94449    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
94450        <V as Fold>::fold_ts_this_type_or_ident(&mut **self, node)
94451    }
94452
94453    #[inline]
94454    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
94455        <V as Fold>::fold_ts_tpl_lit_type(&mut **self, node)
94456    }
94457
94458    #[inline]
94459    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
94460        <V as Fold>::fold_ts_tuple_element(&mut **self, node)
94461    }
94462
94463    #[inline]
94464    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
94465        <V as Fold>::fold_ts_tuple_elements(&mut **self, node)
94466    }
94467
94468    #[inline]
94469    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
94470        <V as Fold>::fold_ts_tuple_type(&mut **self, node)
94471    }
94472
94473    #[inline]
94474    fn fold_ts_type(&mut self, node: TsType) -> TsType {
94475        <V as Fold>::fold_ts_type(&mut **self, node)
94476    }
94477
94478    #[inline]
94479    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
94480        <V as Fold>::fold_ts_type_alias_decl(&mut **self, node)
94481    }
94482
94483    #[inline]
94484    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
94485        <V as Fold>::fold_ts_type_ann(&mut **self, node)
94486    }
94487
94488    #[inline]
94489    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
94490        <V as Fold>::fold_ts_type_assertion(&mut **self, node)
94491    }
94492
94493    #[inline]
94494    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
94495        <V as Fold>::fold_ts_type_element(&mut **self, node)
94496    }
94497
94498    #[inline]
94499    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
94500        <V as Fold>::fold_ts_type_elements(&mut **self, node)
94501    }
94502
94503    #[inline]
94504    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
94505        <V as Fold>::fold_ts_type_lit(&mut **self, node)
94506    }
94507
94508    #[inline]
94509    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
94510        <V as Fold>::fold_ts_type_operator(&mut **self, node)
94511    }
94512
94513    #[inline]
94514    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
94515        <V as Fold>::fold_ts_type_operator_op(&mut **self, node)
94516    }
94517
94518    #[inline]
94519    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
94520        <V as Fold>::fold_ts_type_param(&mut **self, node)
94521    }
94522
94523    #[inline]
94524    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
94525        <V as Fold>::fold_ts_type_param_decl(&mut **self, node)
94526    }
94527
94528    #[inline]
94529    fn fold_ts_type_param_instantiation(
94530        &mut self,
94531        node: TsTypeParamInstantiation,
94532    ) -> TsTypeParamInstantiation {
94533        <V as Fold>::fold_ts_type_param_instantiation(&mut **self, node)
94534    }
94535
94536    #[inline]
94537    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
94538        <V as Fold>::fold_ts_type_params(&mut **self, node)
94539    }
94540
94541    #[inline]
94542    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
94543        <V as Fold>::fold_ts_type_predicate(&mut **self, node)
94544    }
94545
94546    #[inline]
94547    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
94548        <V as Fold>::fold_ts_type_query(&mut **self, node)
94549    }
94550
94551    #[inline]
94552    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
94553        <V as Fold>::fold_ts_type_query_expr(&mut **self, node)
94554    }
94555
94556    #[inline]
94557    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
94558        <V as Fold>::fold_ts_type_ref(&mut **self, node)
94559    }
94560
94561    #[inline]
94562    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
94563        <V as Fold>::fold_ts_types(&mut **self, node)
94564    }
94565
94566    #[inline]
94567    fn fold_ts_union_or_intersection_type(
94568        &mut self,
94569        node: TsUnionOrIntersectionType,
94570    ) -> TsUnionOrIntersectionType {
94571        <V as Fold>::fold_ts_union_or_intersection_type(&mut **self, node)
94572    }
94573
94574    #[inline]
94575    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
94576        <V as Fold>::fold_ts_union_type(&mut **self, node)
94577    }
94578
94579    #[inline]
94580    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
94581        <V as Fold>::fold_unary_expr(&mut **self, node)
94582    }
94583
94584    #[inline]
94585    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
94586        <V as Fold>::fold_unary_op(&mut **self, node)
94587    }
94588
94589    #[inline]
94590    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
94591        <V as Fold>::fold_update_expr(&mut **self, node)
94592    }
94593
94594    #[inline]
94595    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
94596        <V as Fold>::fold_update_op(&mut **self, node)
94597    }
94598
94599    #[inline]
94600    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
94601        <V as Fold>::fold_using_decl(&mut **self, node)
94602    }
94603
94604    #[inline]
94605    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
94606        <V as Fold>::fold_var_decl(&mut **self, node)
94607    }
94608
94609    #[inline]
94610    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
94611        <V as Fold>::fold_var_decl_kind(&mut **self, node)
94612    }
94613
94614    #[inline]
94615    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
94616        <V as Fold>::fold_var_decl_or_expr(&mut **self, node)
94617    }
94618
94619    #[inline]
94620    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
94621        <V as Fold>::fold_var_declarator(&mut **self, node)
94622    }
94623
94624    #[inline]
94625    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
94626        <V as Fold>::fold_var_declarators(&mut **self, node)
94627    }
94628
94629    #[inline]
94630    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
94631        <V as Fold>::fold_while_stmt(&mut **self, node)
94632    }
94633
94634    #[inline]
94635    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
94636        <V as Fold>::fold_with_stmt(&mut **self, node)
94637    }
94638
94639    #[inline]
94640    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
94641        <V as Fold>::fold_yield_expr(&mut **self, node)
94642    }
94643}
94644impl<V> Fold for Box<V>
94645where
94646    V: ?Sized + Fold,
94647{
94648    #[inline]
94649    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
94650        <V as Fold>::fold_accessibility(&mut **self, node)
94651    }
94652
94653    #[inline]
94654    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
94655        <V as Fold>::fold_array_lit(&mut **self, node)
94656    }
94657
94658    #[inline]
94659    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
94660        <V as Fold>::fold_array_pat(&mut **self, node)
94661    }
94662
94663    #[inline]
94664    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
94665        <V as Fold>::fold_arrow_expr(&mut **self, node)
94666    }
94667
94668    #[inline]
94669    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
94670        <V as Fold>::fold_assign_expr(&mut **self, node)
94671    }
94672
94673    #[inline]
94674    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
94675        <V as Fold>::fold_assign_op(&mut **self, node)
94676    }
94677
94678    #[inline]
94679    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
94680        <V as Fold>::fold_assign_pat(&mut **self, node)
94681    }
94682
94683    #[inline]
94684    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
94685        <V as Fold>::fold_assign_pat_prop(&mut **self, node)
94686    }
94687
94688    #[inline]
94689    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
94690        <V as Fold>::fold_assign_prop(&mut **self, node)
94691    }
94692
94693    #[inline]
94694    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
94695        <V as Fold>::fold_assign_target(&mut **self, node)
94696    }
94697
94698    #[inline]
94699    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
94700        <V as Fold>::fold_assign_target_pat(&mut **self, node)
94701    }
94702
94703    #[inline]
94704    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
94705        <V as Fold>::fold_atom(&mut **self, node)
94706    }
94707
94708    #[inline]
94709    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
94710        <V as Fold>::fold_auto_accessor(&mut **self, node)
94711    }
94712
94713    #[inline]
94714    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
94715        <V as Fold>::fold_await_expr(&mut **self, node)
94716    }
94717
94718    #[inline]
94719    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
94720        <V as Fold>::fold_big_int(&mut **self, node)
94721    }
94722
94723    #[inline]
94724    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
94725        <V as Fold>::fold_big_int_value(&mut **self, node)
94726    }
94727
94728    #[inline]
94729    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
94730        <V as Fold>::fold_bin_expr(&mut **self, node)
94731    }
94732
94733    #[inline]
94734    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
94735        <V as Fold>::fold_binary_op(&mut **self, node)
94736    }
94737
94738    #[inline]
94739    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
94740        <V as Fold>::fold_binding_ident(&mut **self, node)
94741    }
94742
94743    #[inline]
94744    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
94745        <V as Fold>::fold_block_stmt(&mut **self, node)
94746    }
94747
94748    #[inline]
94749    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
94750        <V as Fold>::fold_block_stmt_or_expr(&mut **self, node)
94751    }
94752
94753    #[inline]
94754    fn fold_bool(&mut self, node: Bool) -> Bool {
94755        <V as Fold>::fold_bool(&mut **self, node)
94756    }
94757
94758    #[inline]
94759    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
94760        <V as Fold>::fold_break_stmt(&mut **self, node)
94761    }
94762
94763    #[inline]
94764    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
94765        <V as Fold>::fold_call_expr(&mut **self, node)
94766    }
94767
94768    #[inline]
94769    fn fold_callee(&mut self, node: Callee) -> Callee {
94770        <V as Fold>::fold_callee(&mut **self, node)
94771    }
94772
94773    #[inline]
94774    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
94775        <V as Fold>::fold_catch_clause(&mut **self, node)
94776    }
94777
94778    #[inline]
94779    fn fold_class(&mut self, node: Class) -> Class {
94780        <V as Fold>::fold_class(&mut **self, node)
94781    }
94782
94783    #[inline]
94784    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
94785        <V as Fold>::fold_class_decl(&mut **self, node)
94786    }
94787
94788    #[inline]
94789    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
94790        <V as Fold>::fold_class_expr(&mut **self, node)
94791    }
94792
94793    #[inline]
94794    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
94795        <V as Fold>::fold_class_member(&mut **self, node)
94796    }
94797
94798    #[inline]
94799    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
94800        <V as Fold>::fold_class_members(&mut **self, node)
94801    }
94802
94803    #[inline]
94804    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
94805        <V as Fold>::fold_class_method(&mut **self, node)
94806    }
94807
94808    #[inline]
94809    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
94810        <V as Fold>::fold_class_prop(&mut **self, node)
94811    }
94812
94813    #[inline]
94814    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
94815        <V as Fold>::fold_computed_prop_name(&mut **self, node)
94816    }
94817
94818    #[inline]
94819    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
94820        <V as Fold>::fold_cond_expr(&mut **self, node)
94821    }
94822
94823    #[inline]
94824    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
94825        <V as Fold>::fold_constructor(&mut **self, node)
94826    }
94827
94828    #[inline]
94829    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
94830        <V as Fold>::fold_continue_stmt(&mut **self, node)
94831    }
94832
94833    #[inline]
94834    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
94835        <V as Fold>::fold_debugger_stmt(&mut **self, node)
94836    }
94837
94838    #[inline]
94839    fn fold_decl(&mut self, node: Decl) -> Decl {
94840        <V as Fold>::fold_decl(&mut **self, node)
94841    }
94842
94843    #[inline]
94844    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
94845        <V as Fold>::fold_decorator(&mut **self, node)
94846    }
94847
94848    #[inline]
94849    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
94850        <V as Fold>::fold_decorators(&mut **self, node)
94851    }
94852
94853    #[inline]
94854    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
94855        <V as Fold>::fold_default_decl(&mut **self, node)
94856    }
94857
94858    #[inline]
94859    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
94860        <V as Fold>::fold_do_while_stmt(&mut **self, node)
94861    }
94862
94863    #[inline]
94864    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
94865        <V as Fold>::fold_empty_stmt(&mut **self, node)
94866    }
94867
94868    #[inline]
94869    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
94870        <V as Fold>::fold_export_all(&mut **self, node)
94871    }
94872
94873    #[inline]
94874    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
94875        <V as Fold>::fold_export_decl(&mut **self, node)
94876    }
94877
94878    #[inline]
94879    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
94880        <V as Fold>::fold_export_default_decl(&mut **self, node)
94881    }
94882
94883    #[inline]
94884    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
94885        <V as Fold>::fold_export_default_expr(&mut **self, node)
94886    }
94887
94888    #[inline]
94889    fn fold_export_default_specifier(
94890        &mut self,
94891        node: ExportDefaultSpecifier,
94892    ) -> ExportDefaultSpecifier {
94893        <V as Fold>::fold_export_default_specifier(&mut **self, node)
94894    }
94895
94896    #[inline]
94897    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
94898        <V as Fold>::fold_export_named_specifier(&mut **self, node)
94899    }
94900
94901    #[inline]
94902    fn fold_export_namespace_specifier(
94903        &mut self,
94904        node: ExportNamespaceSpecifier,
94905    ) -> ExportNamespaceSpecifier {
94906        <V as Fold>::fold_export_namespace_specifier(&mut **self, node)
94907    }
94908
94909    #[inline]
94910    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
94911        <V as Fold>::fold_export_specifier(&mut **self, node)
94912    }
94913
94914    #[inline]
94915    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
94916        <V as Fold>::fold_export_specifiers(&mut **self, node)
94917    }
94918
94919    #[inline]
94920    fn fold_expr(&mut self, node: Expr) -> Expr {
94921        <V as Fold>::fold_expr(&mut **self, node)
94922    }
94923
94924    #[inline]
94925    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
94926        <V as Fold>::fold_expr_or_spread(&mut **self, node)
94927    }
94928
94929    #[inline]
94930    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
94931        <V as Fold>::fold_expr_or_spreads(&mut **self, node)
94932    }
94933
94934    #[inline]
94935    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
94936        <V as Fold>::fold_expr_stmt(&mut **self, node)
94937    }
94938
94939    #[inline]
94940    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
94941        <V as Fold>::fold_exprs(&mut **self, node)
94942    }
94943
94944    #[inline]
94945    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
94946        <V as Fold>::fold_fn_decl(&mut **self, node)
94947    }
94948
94949    #[inline]
94950    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
94951        <V as Fold>::fold_fn_expr(&mut **self, node)
94952    }
94953
94954    #[inline]
94955    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
94956        <V as Fold>::fold_for_head(&mut **self, node)
94957    }
94958
94959    #[inline]
94960    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
94961        <V as Fold>::fold_for_in_stmt(&mut **self, node)
94962    }
94963
94964    #[inline]
94965    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
94966        <V as Fold>::fold_for_of_stmt(&mut **self, node)
94967    }
94968
94969    #[inline]
94970    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
94971        <V as Fold>::fold_for_stmt(&mut **self, node)
94972    }
94973
94974    #[inline]
94975    fn fold_function(&mut self, node: Function) -> Function {
94976        <V as Fold>::fold_function(&mut **self, node)
94977    }
94978
94979    #[inline]
94980    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
94981        <V as Fold>::fold_getter_prop(&mut **self, node)
94982    }
94983
94984    #[inline]
94985    fn fold_ident(&mut self, node: Ident) -> Ident {
94986        <V as Fold>::fold_ident(&mut **self, node)
94987    }
94988
94989    #[inline]
94990    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
94991        <V as Fold>::fold_ident_name(&mut **self, node)
94992    }
94993
94994    #[inline]
94995    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
94996        <V as Fold>::fold_if_stmt(&mut **self, node)
94997    }
94998
94999    #[inline]
95000    fn fold_import(&mut self, node: Import) -> Import {
95001        <V as Fold>::fold_import(&mut **self, node)
95002    }
95003
95004    #[inline]
95005    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
95006        <V as Fold>::fold_import_decl(&mut **self, node)
95007    }
95008
95009    #[inline]
95010    fn fold_import_default_specifier(
95011        &mut self,
95012        node: ImportDefaultSpecifier,
95013    ) -> ImportDefaultSpecifier {
95014        <V as Fold>::fold_import_default_specifier(&mut **self, node)
95015    }
95016
95017    #[inline]
95018    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
95019        <V as Fold>::fold_import_named_specifier(&mut **self, node)
95020    }
95021
95022    #[inline]
95023    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
95024        <V as Fold>::fold_import_phase(&mut **self, node)
95025    }
95026
95027    #[inline]
95028    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
95029        <V as Fold>::fold_import_specifier(&mut **self, node)
95030    }
95031
95032    #[inline]
95033    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
95034        <V as Fold>::fold_import_specifiers(&mut **self, node)
95035    }
95036
95037    #[inline]
95038    fn fold_import_star_as_specifier(
95039        &mut self,
95040        node: ImportStarAsSpecifier,
95041    ) -> ImportStarAsSpecifier {
95042        <V as Fold>::fold_import_star_as_specifier(&mut **self, node)
95043    }
95044
95045    #[inline]
95046    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
95047        <V as Fold>::fold_import_with(&mut **self, node)
95048    }
95049
95050    #[inline]
95051    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
95052        <V as Fold>::fold_import_with_item(&mut **self, node)
95053    }
95054
95055    #[inline]
95056    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
95057        <V as Fold>::fold_import_with_items(&mut **self, node)
95058    }
95059
95060    #[inline]
95061    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
95062        <V as Fold>::fold_invalid(&mut **self, node)
95063    }
95064
95065    #[inline]
95066    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
95067        <V as Fold>::fold_jsx_attr(&mut **self, node)
95068    }
95069
95070    #[inline]
95071    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
95072        <V as Fold>::fold_jsx_attr_name(&mut **self, node)
95073    }
95074
95075    #[inline]
95076    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
95077        <V as Fold>::fold_jsx_attr_or_spread(&mut **self, node)
95078    }
95079
95080    #[inline]
95081    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
95082        <V as Fold>::fold_jsx_attr_or_spreads(&mut **self, node)
95083    }
95084
95085    #[inline]
95086    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
95087        <V as Fold>::fold_jsx_attr_value(&mut **self, node)
95088    }
95089
95090    #[inline]
95091    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
95092        <V as Fold>::fold_jsx_closing_element(&mut **self, node)
95093    }
95094
95095    #[inline]
95096    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
95097        <V as Fold>::fold_jsx_closing_fragment(&mut **self, node)
95098    }
95099
95100    #[inline]
95101    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
95102        <V as Fold>::fold_jsx_element(&mut **self, node)
95103    }
95104
95105    #[inline]
95106    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
95107        <V as Fold>::fold_jsx_element_child(&mut **self, node)
95108    }
95109
95110    #[inline]
95111    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
95112        <V as Fold>::fold_jsx_element_childs(&mut **self, node)
95113    }
95114
95115    #[inline]
95116    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
95117        <V as Fold>::fold_jsx_element_name(&mut **self, node)
95118    }
95119
95120    #[inline]
95121    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
95122        <V as Fold>::fold_jsx_empty_expr(&mut **self, node)
95123    }
95124
95125    #[inline]
95126    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
95127        <V as Fold>::fold_jsx_expr(&mut **self, node)
95128    }
95129
95130    #[inline]
95131    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
95132        <V as Fold>::fold_jsx_expr_container(&mut **self, node)
95133    }
95134
95135    #[inline]
95136    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
95137        <V as Fold>::fold_jsx_fragment(&mut **self, node)
95138    }
95139
95140    #[inline]
95141    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
95142        <V as Fold>::fold_jsx_member_expr(&mut **self, node)
95143    }
95144
95145    #[inline]
95146    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
95147        <V as Fold>::fold_jsx_namespaced_name(&mut **self, node)
95148    }
95149
95150    #[inline]
95151    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
95152        <V as Fold>::fold_jsx_object(&mut **self, node)
95153    }
95154
95155    #[inline]
95156    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
95157        <V as Fold>::fold_jsx_opening_element(&mut **self, node)
95158    }
95159
95160    #[inline]
95161    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
95162        <V as Fold>::fold_jsx_opening_fragment(&mut **self, node)
95163    }
95164
95165    #[inline]
95166    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
95167        <V as Fold>::fold_jsx_spread_child(&mut **self, node)
95168    }
95169
95170    #[inline]
95171    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
95172        <V as Fold>::fold_jsx_text(&mut **self, node)
95173    }
95174
95175    #[inline]
95176    fn fold_key(&mut self, node: Key) -> Key {
95177        <V as Fold>::fold_key(&mut **self, node)
95178    }
95179
95180    #[inline]
95181    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
95182        <V as Fold>::fold_key_value_pat_prop(&mut **self, node)
95183    }
95184
95185    #[inline]
95186    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
95187        <V as Fold>::fold_key_value_prop(&mut **self, node)
95188    }
95189
95190    #[inline]
95191    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
95192        <V as Fold>::fold_labeled_stmt(&mut **self, node)
95193    }
95194
95195    #[inline]
95196    fn fold_lit(&mut self, node: Lit) -> Lit {
95197        <V as Fold>::fold_lit(&mut **self, node)
95198    }
95199
95200    #[inline]
95201    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
95202        <V as Fold>::fold_member_expr(&mut **self, node)
95203    }
95204
95205    #[inline]
95206    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
95207        <V as Fold>::fold_member_prop(&mut **self, node)
95208    }
95209
95210    #[inline]
95211    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
95212        <V as Fold>::fold_meta_prop_expr(&mut **self, node)
95213    }
95214
95215    #[inline]
95216    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
95217        <V as Fold>::fold_meta_prop_kind(&mut **self, node)
95218    }
95219
95220    #[inline]
95221    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
95222        <V as Fold>::fold_method_kind(&mut **self, node)
95223    }
95224
95225    #[inline]
95226    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
95227        <V as Fold>::fold_method_prop(&mut **self, node)
95228    }
95229
95230    #[inline]
95231    fn fold_module(&mut self, node: Module) -> Module {
95232        <V as Fold>::fold_module(&mut **self, node)
95233    }
95234
95235    #[inline]
95236    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
95237        <V as Fold>::fold_module_decl(&mut **self, node)
95238    }
95239
95240    #[inline]
95241    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
95242        <V as Fold>::fold_module_export_name(&mut **self, node)
95243    }
95244
95245    #[inline]
95246    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
95247        <V as Fold>::fold_module_item(&mut **self, node)
95248    }
95249
95250    #[inline]
95251    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
95252        <V as Fold>::fold_module_items(&mut **self, node)
95253    }
95254
95255    #[inline]
95256    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
95257        <V as Fold>::fold_named_export(&mut **self, node)
95258    }
95259
95260    #[inline]
95261    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
95262        <V as Fold>::fold_new_expr(&mut **self, node)
95263    }
95264
95265    #[inline]
95266    fn fold_null(&mut self, node: Null) -> Null {
95267        <V as Fold>::fold_null(&mut **self, node)
95268    }
95269
95270    #[inline]
95271    fn fold_number(&mut self, node: Number) -> Number {
95272        <V as Fold>::fold_number(&mut **self, node)
95273    }
95274
95275    #[inline]
95276    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
95277        <V as Fold>::fold_object_lit(&mut **self, node)
95278    }
95279
95280    #[inline]
95281    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
95282        <V as Fold>::fold_object_pat(&mut **self, node)
95283    }
95284
95285    #[inline]
95286    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
95287        <V as Fold>::fold_object_pat_prop(&mut **self, node)
95288    }
95289
95290    #[inline]
95291    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
95292        <V as Fold>::fold_object_pat_props(&mut **self, node)
95293    }
95294
95295    #[inline]
95296    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
95297        <V as Fold>::fold_opt_accessibility(&mut **self, node)
95298    }
95299
95300    #[inline]
95301    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
95302        <V as Fold>::fold_opt_atom(&mut **self, node)
95303    }
95304
95305    #[inline]
95306    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
95307        <V as Fold>::fold_opt_block_stmt(&mut **self, node)
95308    }
95309
95310    #[inline]
95311    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
95312        <V as Fold>::fold_opt_call(&mut **self, node)
95313    }
95314
95315    #[inline]
95316    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
95317        <V as Fold>::fold_opt_catch_clause(&mut **self, node)
95318    }
95319
95320    #[inline]
95321    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
95322        <V as Fold>::fold_opt_chain_base(&mut **self, node)
95323    }
95324
95325    #[inline]
95326    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
95327        <V as Fold>::fold_opt_chain_expr(&mut **self, node)
95328    }
95329
95330    #[inline]
95331    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
95332        <V as Fold>::fold_opt_expr(&mut **self, node)
95333    }
95334
95335    #[inline]
95336    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
95337        <V as Fold>::fold_opt_expr_or_spread(&mut **self, node)
95338    }
95339
95340    #[inline]
95341    fn fold_opt_expr_or_spreads(
95342        &mut self,
95343        node: Option<Vec<ExprOrSpread>>,
95344    ) -> Option<Vec<ExprOrSpread>> {
95345        <V as Fold>::fold_opt_expr_or_spreads(&mut **self, node)
95346    }
95347
95348    #[inline]
95349    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
95350        <V as Fold>::fold_opt_ident(&mut **self, node)
95351    }
95352
95353    #[inline]
95354    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
95355        <V as Fold>::fold_opt_jsx_attr_value(&mut **self, node)
95356    }
95357
95358    #[inline]
95359    fn fold_opt_jsx_closing_element(
95360        &mut self,
95361        node: Option<JSXClosingElement>,
95362    ) -> Option<JSXClosingElement> {
95363        <V as Fold>::fold_opt_jsx_closing_element(&mut **self, node)
95364    }
95365
95366    #[inline]
95367    fn fold_opt_module_export_name(
95368        &mut self,
95369        node: Option<ModuleExportName>,
95370    ) -> Option<ModuleExportName> {
95371        <V as Fold>::fold_opt_module_export_name(&mut **self, node)
95372    }
95373
95374    #[inline]
95375    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
95376        <V as Fold>::fold_opt_object_lit(&mut **self, node)
95377    }
95378
95379    #[inline]
95380    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
95381        <V as Fold>::fold_opt_pat(&mut **self, node)
95382    }
95383
95384    #[inline]
95385    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
95386        <V as Fold>::fold_opt_span(&mut **self, node)
95387    }
95388
95389    #[inline]
95390    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
95391        <V as Fold>::fold_opt_stmt(&mut **self, node)
95392    }
95393
95394    #[inline]
95395    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
95396        <V as Fold>::fold_opt_str(&mut **self, node)
95397    }
95398
95399    #[inline]
95400    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
95401        <V as Fold>::fold_opt_true_plus_minus(&mut **self, node)
95402    }
95403
95404    #[inline]
95405    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
95406        <V as Fold>::fold_opt_ts_entity_name(&mut **self, node)
95407    }
95408
95409    #[inline]
95410    fn fold_opt_ts_namespace_body(
95411        &mut self,
95412        node: Option<TsNamespaceBody>,
95413    ) -> Option<TsNamespaceBody> {
95414        <V as Fold>::fold_opt_ts_namespace_body(&mut **self, node)
95415    }
95416
95417    #[inline]
95418    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
95419        <V as Fold>::fold_opt_ts_type(&mut **self, node)
95420    }
95421
95422    #[inline]
95423    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
95424        <V as Fold>::fold_opt_ts_type_ann(&mut **self, node)
95425    }
95426
95427    #[inline]
95428    fn fold_opt_ts_type_param_decl(
95429        &mut self,
95430        node: Option<Box<TsTypeParamDecl>>,
95431    ) -> Option<Box<TsTypeParamDecl>> {
95432        <V as Fold>::fold_opt_ts_type_param_decl(&mut **self, node)
95433    }
95434
95435    #[inline]
95436    fn fold_opt_ts_type_param_instantiation(
95437        &mut self,
95438        node: Option<Box<TsTypeParamInstantiation>>,
95439    ) -> Option<Box<TsTypeParamInstantiation>> {
95440        <V as Fold>::fold_opt_ts_type_param_instantiation(&mut **self, node)
95441    }
95442
95443    #[inline]
95444    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
95445        <V as Fold>::fold_opt_var_decl_or_expr(&mut **self, node)
95446    }
95447
95448    #[inline]
95449    fn fold_opt_vec_expr_or_spreads(
95450        &mut self,
95451        node: Vec<Option<ExprOrSpread>>,
95452    ) -> Vec<Option<ExprOrSpread>> {
95453        <V as Fold>::fold_opt_vec_expr_or_spreads(&mut **self, node)
95454    }
95455
95456    #[inline]
95457    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
95458        <V as Fold>::fold_opt_vec_pats(&mut **self, node)
95459    }
95460
95461    #[inline]
95462    fn fold_param(&mut self, node: Param) -> Param {
95463        <V as Fold>::fold_param(&mut **self, node)
95464    }
95465
95466    #[inline]
95467    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
95468        <V as Fold>::fold_param_or_ts_param_prop(&mut **self, node)
95469    }
95470
95471    #[inline]
95472    fn fold_param_or_ts_param_props(
95473        &mut self,
95474        node: Vec<ParamOrTsParamProp>,
95475    ) -> Vec<ParamOrTsParamProp> {
95476        <V as Fold>::fold_param_or_ts_param_props(&mut **self, node)
95477    }
95478
95479    #[inline]
95480    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
95481        <V as Fold>::fold_params(&mut **self, node)
95482    }
95483
95484    #[inline]
95485    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
95486        <V as Fold>::fold_paren_expr(&mut **self, node)
95487    }
95488
95489    #[inline]
95490    fn fold_pat(&mut self, node: Pat) -> Pat {
95491        <V as Fold>::fold_pat(&mut **self, node)
95492    }
95493
95494    #[inline]
95495    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
95496        <V as Fold>::fold_pats(&mut **self, node)
95497    }
95498
95499    #[inline]
95500    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
95501        <V as Fold>::fold_private_method(&mut **self, node)
95502    }
95503
95504    #[inline]
95505    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
95506        <V as Fold>::fold_private_name(&mut **self, node)
95507    }
95508
95509    #[inline]
95510    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
95511        <V as Fold>::fold_private_prop(&mut **self, node)
95512    }
95513
95514    #[inline]
95515    fn fold_program(&mut self, node: Program) -> Program {
95516        <V as Fold>::fold_program(&mut **self, node)
95517    }
95518
95519    #[inline]
95520    fn fold_prop(&mut self, node: Prop) -> Prop {
95521        <V as Fold>::fold_prop(&mut **self, node)
95522    }
95523
95524    #[inline]
95525    fn fold_prop_name(&mut self, node: PropName) -> PropName {
95526        <V as Fold>::fold_prop_name(&mut **self, node)
95527    }
95528
95529    #[inline]
95530    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
95531        <V as Fold>::fold_prop_or_spread(&mut **self, node)
95532    }
95533
95534    #[inline]
95535    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
95536        <V as Fold>::fold_prop_or_spreads(&mut **self, node)
95537    }
95538
95539    #[inline]
95540    fn fold_regex(&mut self, node: Regex) -> Regex {
95541        <V as Fold>::fold_regex(&mut **self, node)
95542    }
95543
95544    #[inline]
95545    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
95546        <V as Fold>::fold_rest_pat(&mut **self, node)
95547    }
95548
95549    #[inline]
95550    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
95551        <V as Fold>::fold_return_stmt(&mut **self, node)
95552    }
95553
95554    #[inline]
95555    fn fold_script(&mut self, node: Script) -> Script {
95556        <V as Fold>::fold_script(&mut **self, node)
95557    }
95558
95559    #[inline]
95560    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
95561        <V as Fold>::fold_seq_expr(&mut **self, node)
95562    }
95563
95564    #[inline]
95565    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
95566        <V as Fold>::fold_setter_prop(&mut **self, node)
95567    }
95568
95569    #[inline]
95570    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
95571        <V as Fold>::fold_simple_assign_target(&mut **self, node)
95572    }
95573
95574    #[inline]
95575    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
95576        <V as Fold>::fold_span(&mut **self, node)
95577    }
95578
95579    #[inline]
95580    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
95581        <V as Fold>::fold_spread_element(&mut **self, node)
95582    }
95583
95584    #[inline]
95585    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
95586        <V as Fold>::fold_static_block(&mut **self, node)
95587    }
95588
95589    #[inline]
95590    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
95591        <V as Fold>::fold_stmt(&mut **self, node)
95592    }
95593
95594    #[inline]
95595    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
95596        <V as Fold>::fold_stmts(&mut **self, node)
95597    }
95598
95599    #[inline]
95600    fn fold_str(&mut self, node: Str) -> Str {
95601        <V as Fold>::fold_str(&mut **self, node)
95602    }
95603
95604    #[inline]
95605    fn fold_super(&mut self, node: Super) -> Super {
95606        <V as Fold>::fold_super(&mut **self, node)
95607    }
95608
95609    #[inline]
95610    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
95611        <V as Fold>::fold_super_prop(&mut **self, node)
95612    }
95613
95614    #[inline]
95615    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
95616        <V as Fold>::fold_super_prop_expr(&mut **self, node)
95617    }
95618
95619    #[inline]
95620    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
95621        <V as Fold>::fold_switch_case(&mut **self, node)
95622    }
95623
95624    #[inline]
95625    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
95626        <V as Fold>::fold_switch_cases(&mut **self, node)
95627    }
95628
95629    #[inline]
95630    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
95631        <V as Fold>::fold_switch_stmt(&mut **self, node)
95632    }
95633
95634    #[inline]
95635    fn fold_syntax_context(
95636        &mut self,
95637        node: swc_common::SyntaxContext,
95638    ) -> swc_common::SyntaxContext {
95639        <V as Fold>::fold_syntax_context(&mut **self, node)
95640    }
95641
95642    #[inline]
95643    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
95644        <V as Fold>::fold_tagged_tpl(&mut **self, node)
95645    }
95646
95647    #[inline]
95648    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
95649        <V as Fold>::fold_this_expr(&mut **self, node)
95650    }
95651
95652    #[inline]
95653    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
95654        <V as Fold>::fold_throw_stmt(&mut **self, node)
95655    }
95656
95657    #[inline]
95658    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
95659        <V as Fold>::fold_tpl(&mut **self, node)
95660    }
95661
95662    #[inline]
95663    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
95664        <V as Fold>::fold_tpl_element(&mut **self, node)
95665    }
95666
95667    #[inline]
95668    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
95669        <V as Fold>::fold_tpl_elements(&mut **self, node)
95670    }
95671
95672    #[inline]
95673    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
95674        <V as Fold>::fold_true_plus_minus(&mut **self, node)
95675    }
95676
95677    #[inline]
95678    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
95679        <V as Fold>::fold_try_stmt(&mut **self, node)
95680    }
95681
95682    #[inline]
95683    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
95684        <V as Fold>::fold_ts_array_type(&mut **self, node)
95685    }
95686
95687    #[inline]
95688    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
95689        <V as Fold>::fold_ts_as_expr(&mut **self, node)
95690    }
95691
95692    #[inline]
95693    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
95694        <V as Fold>::fold_ts_call_signature_decl(&mut **self, node)
95695    }
95696
95697    #[inline]
95698    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
95699        <V as Fold>::fold_ts_conditional_type(&mut **self, node)
95700    }
95701
95702    #[inline]
95703    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
95704        <V as Fold>::fold_ts_const_assertion(&mut **self, node)
95705    }
95706
95707    #[inline]
95708    fn fold_ts_construct_signature_decl(
95709        &mut self,
95710        node: TsConstructSignatureDecl,
95711    ) -> TsConstructSignatureDecl {
95712        <V as Fold>::fold_ts_construct_signature_decl(&mut **self, node)
95713    }
95714
95715    #[inline]
95716    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
95717        <V as Fold>::fold_ts_constructor_type(&mut **self, node)
95718    }
95719
95720    #[inline]
95721    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
95722        <V as Fold>::fold_ts_entity_name(&mut **self, node)
95723    }
95724
95725    #[inline]
95726    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
95727        <V as Fold>::fold_ts_enum_decl(&mut **self, node)
95728    }
95729
95730    #[inline]
95731    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
95732        <V as Fold>::fold_ts_enum_member(&mut **self, node)
95733    }
95734
95735    #[inline]
95736    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
95737        <V as Fold>::fold_ts_enum_member_id(&mut **self, node)
95738    }
95739
95740    #[inline]
95741    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
95742        <V as Fold>::fold_ts_enum_members(&mut **self, node)
95743    }
95744
95745    #[inline]
95746    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
95747        <V as Fold>::fold_ts_export_assignment(&mut **self, node)
95748    }
95749
95750    #[inline]
95751    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
95752        <V as Fold>::fold_ts_expr_with_type_args(&mut **self, node)
95753    }
95754
95755    #[inline]
95756    fn fold_ts_expr_with_type_argss(
95757        &mut self,
95758        node: Vec<TsExprWithTypeArgs>,
95759    ) -> Vec<TsExprWithTypeArgs> {
95760        <V as Fold>::fold_ts_expr_with_type_argss(&mut **self, node)
95761    }
95762
95763    #[inline]
95764    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
95765        <V as Fold>::fold_ts_external_module_ref(&mut **self, node)
95766    }
95767
95768    #[inline]
95769    fn fold_ts_fn_or_constructor_type(
95770        &mut self,
95771        node: TsFnOrConstructorType,
95772    ) -> TsFnOrConstructorType {
95773        <V as Fold>::fold_ts_fn_or_constructor_type(&mut **self, node)
95774    }
95775
95776    #[inline]
95777    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
95778        <V as Fold>::fold_ts_fn_param(&mut **self, node)
95779    }
95780
95781    #[inline]
95782    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
95783        <V as Fold>::fold_ts_fn_params(&mut **self, node)
95784    }
95785
95786    #[inline]
95787    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
95788        <V as Fold>::fold_ts_fn_type(&mut **self, node)
95789    }
95790
95791    #[inline]
95792    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
95793        <V as Fold>::fold_ts_getter_signature(&mut **self, node)
95794    }
95795
95796    #[inline]
95797    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
95798        <V as Fold>::fold_ts_import_equals_decl(&mut **self, node)
95799    }
95800
95801    #[inline]
95802    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
95803        <V as Fold>::fold_ts_import_type(&mut **self, node)
95804    }
95805
95806    #[inline]
95807    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
95808        <V as Fold>::fold_ts_index_signature(&mut **self, node)
95809    }
95810
95811    #[inline]
95812    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
95813        <V as Fold>::fold_ts_indexed_access_type(&mut **self, node)
95814    }
95815
95816    #[inline]
95817    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
95818        <V as Fold>::fold_ts_infer_type(&mut **self, node)
95819    }
95820
95821    #[inline]
95822    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
95823        <V as Fold>::fold_ts_instantiation(&mut **self, node)
95824    }
95825
95826    #[inline]
95827    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
95828        <V as Fold>::fold_ts_interface_body(&mut **self, node)
95829    }
95830
95831    #[inline]
95832    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
95833        <V as Fold>::fold_ts_interface_decl(&mut **self, node)
95834    }
95835
95836    #[inline]
95837    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
95838        <V as Fold>::fold_ts_intersection_type(&mut **self, node)
95839    }
95840
95841    #[inline]
95842    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
95843        <V as Fold>::fold_ts_keyword_type(&mut **self, node)
95844    }
95845
95846    #[inline]
95847    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
95848        <V as Fold>::fold_ts_keyword_type_kind(&mut **self, node)
95849    }
95850
95851    #[inline]
95852    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
95853        <V as Fold>::fold_ts_lit(&mut **self, node)
95854    }
95855
95856    #[inline]
95857    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
95858        <V as Fold>::fold_ts_lit_type(&mut **self, node)
95859    }
95860
95861    #[inline]
95862    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
95863        <V as Fold>::fold_ts_mapped_type(&mut **self, node)
95864    }
95865
95866    #[inline]
95867    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
95868        <V as Fold>::fold_ts_method_signature(&mut **self, node)
95869    }
95870
95871    #[inline]
95872    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
95873        <V as Fold>::fold_ts_module_block(&mut **self, node)
95874    }
95875
95876    #[inline]
95877    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
95878        <V as Fold>::fold_ts_module_decl(&mut **self, node)
95879    }
95880
95881    #[inline]
95882    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
95883        <V as Fold>::fold_ts_module_name(&mut **self, node)
95884    }
95885
95886    #[inline]
95887    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
95888        <V as Fold>::fold_ts_module_ref(&mut **self, node)
95889    }
95890
95891    #[inline]
95892    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
95893        <V as Fold>::fold_ts_namespace_body(&mut **self, node)
95894    }
95895
95896    #[inline]
95897    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
95898        <V as Fold>::fold_ts_namespace_decl(&mut **self, node)
95899    }
95900
95901    #[inline]
95902    fn fold_ts_namespace_export_decl(
95903        &mut self,
95904        node: TsNamespaceExportDecl,
95905    ) -> TsNamespaceExportDecl {
95906        <V as Fold>::fold_ts_namespace_export_decl(&mut **self, node)
95907    }
95908
95909    #[inline]
95910    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
95911        <V as Fold>::fold_ts_non_null_expr(&mut **self, node)
95912    }
95913
95914    #[inline]
95915    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
95916        <V as Fold>::fold_ts_optional_type(&mut **self, node)
95917    }
95918
95919    #[inline]
95920    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
95921        <V as Fold>::fold_ts_param_prop(&mut **self, node)
95922    }
95923
95924    #[inline]
95925    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
95926        <V as Fold>::fold_ts_param_prop_param(&mut **self, node)
95927    }
95928
95929    #[inline]
95930    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
95931        <V as Fold>::fold_ts_parenthesized_type(&mut **self, node)
95932    }
95933
95934    #[inline]
95935    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
95936        <V as Fold>::fold_ts_property_signature(&mut **self, node)
95937    }
95938
95939    #[inline]
95940    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
95941        <V as Fold>::fold_ts_qualified_name(&mut **self, node)
95942    }
95943
95944    #[inline]
95945    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
95946        <V as Fold>::fold_ts_rest_type(&mut **self, node)
95947    }
95948
95949    #[inline]
95950    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
95951        <V as Fold>::fold_ts_satisfies_expr(&mut **self, node)
95952    }
95953
95954    #[inline]
95955    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
95956        <V as Fold>::fold_ts_setter_signature(&mut **self, node)
95957    }
95958
95959    #[inline]
95960    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
95961        <V as Fold>::fold_ts_this_type(&mut **self, node)
95962    }
95963
95964    #[inline]
95965    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
95966        <V as Fold>::fold_ts_this_type_or_ident(&mut **self, node)
95967    }
95968
95969    #[inline]
95970    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
95971        <V as Fold>::fold_ts_tpl_lit_type(&mut **self, node)
95972    }
95973
95974    #[inline]
95975    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
95976        <V as Fold>::fold_ts_tuple_element(&mut **self, node)
95977    }
95978
95979    #[inline]
95980    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
95981        <V as Fold>::fold_ts_tuple_elements(&mut **self, node)
95982    }
95983
95984    #[inline]
95985    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
95986        <V as Fold>::fold_ts_tuple_type(&mut **self, node)
95987    }
95988
95989    #[inline]
95990    fn fold_ts_type(&mut self, node: TsType) -> TsType {
95991        <V as Fold>::fold_ts_type(&mut **self, node)
95992    }
95993
95994    #[inline]
95995    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
95996        <V as Fold>::fold_ts_type_alias_decl(&mut **self, node)
95997    }
95998
95999    #[inline]
96000    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
96001        <V as Fold>::fold_ts_type_ann(&mut **self, node)
96002    }
96003
96004    #[inline]
96005    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
96006        <V as Fold>::fold_ts_type_assertion(&mut **self, node)
96007    }
96008
96009    #[inline]
96010    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
96011        <V as Fold>::fold_ts_type_element(&mut **self, node)
96012    }
96013
96014    #[inline]
96015    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
96016        <V as Fold>::fold_ts_type_elements(&mut **self, node)
96017    }
96018
96019    #[inline]
96020    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
96021        <V as Fold>::fold_ts_type_lit(&mut **self, node)
96022    }
96023
96024    #[inline]
96025    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
96026        <V as Fold>::fold_ts_type_operator(&mut **self, node)
96027    }
96028
96029    #[inline]
96030    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
96031        <V as Fold>::fold_ts_type_operator_op(&mut **self, node)
96032    }
96033
96034    #[inline]
96035    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
96036        <V as Fold>::fold_ts_type_param(&mut **self, node)
96037    }
96038
96039    #[inline]
96040    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
96041        <V as Fold>::fold_ts_type_param_decl(&mut **self, node)
96042    }
96043
96044    #[inline]
96045    fn fold_ts_type_param_instantiation(
96046        &mut self,
96047        node: TsTypeParamInstantiation,
96048    ) -> TsTypeParamInstantiation {
96049        <V as Fold>::fold_ts_type_param_instantiation(&mut **self, node)
96050    }
96051
96052    #[inline]
96053    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
96054        <V as Fold>::fold_ts_type_params(&mut **self, node)
96055    }
96056
96057    #[inline]
96058    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
96059        <V as Fold>::fold_ts_type_predicate(&mut **self, node)
96060    }
96061
96062    #[inline]
96063    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
96064        <V as Fold>::fold_ts_type_query(&mut **self, node)
96065    }
96066
96067    #[inline]
96068    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
96069        <V as Fold>::fold_ts_type_query_expr(&mut **self, node)
96070    }
96071
96072    #[inline]
96073    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
96074        <V as Fold>::fold_ts_type_ref(&mut **self, node)
96075    }
96076
96077    #[inline]
96078    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
96079        <V as Fold>::fold_ts_types(&mut **self, node)
96080    }
96081
96082    #[inline]
96083    fn fold_ts_union_or_intersection_type(
96084        &mut self,
96085        node: TsUnionOrIntersectionType,
96086    ) -> TsUnionOrIntersectionType {
96087        <V as Fold>::fold_ts_union_or_intersection_type(&mut **self, node)
96088    }
96089
96090    #[inline]
96091    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
96092        <V as Fold>::fold_ts_union_type(&mut **self, node)
96093    }
96094
96095    #[inline]
96096    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
96097        <V as Fold>::fold_unary_expr(&mut **self, node)
96098    }
96099
96100    #[inline]
96101    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
96102        <V as Fold>::fold_unary_op(&mut **self, node)
96103    }
96104
96105    #[inline]
96106    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
96107        <V as Fold>::fold_update_expr(&mut **self, node)
96108    }
96109
96110    #[inline]
96111    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
96112        <V as Fold>::fold_update_op(&mut **self, node)
96113    }
96114
96115    #[inline]
96116    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
96117        <V as Fold>::fold_using_decl(&mut **self, node)
96118    }
96119
96120    #[inline]
96121    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
96122        <V as Fold>::fold_var_decl(&mut **self, node)
96123    }
96124
96125    #[inline]
96126    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
96127        <V as Fold>::fold_var_decl_kind(&mut **self, node)
96128    }
96129
96130    #[inline]
96131    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
96132        <V as Fold>::fold_var_decl_or_expr(&mut **self, node)
96133    }
96134
96135    #[inline]
96136    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
96137        <V as Fold>::fold_var_declarator(&mut **self, node)
96138    }
96139
96140    #[inline]
96141    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
96142        <V as Fold>::fold_var_declarators(&mut **self, node)
96143    }
96144
96145    #[inline]
96146    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
96147        <V as Fold>::fold_while_stmt(&mut **self, node)
96148    }
96149
96150    #[inline]
96151    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
96152        <V as Fold>::fold_with_stmt(&mut **self, node)
96153    }
96154
96155    #[inline]
96156    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
96157        <V as Fold>::fold_yield_expr(&mut **self, node)
96158    }
96159}
96160impl<A, B> Fold for ::swc_visit::Either<A, B>
96161where
96162    A: Fold,
96163    B: Fold,
96164{
96165    #[inline]
96166    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
96167        match self {
96168            swc_visit::Either::Left(visitor) => Fold::fold_accessibility(visitor, node),
96169            swc_visit::Either::Right(visitor) => Fold::fold_accessibility(visitor, node),
96170        }
96171    }
96172
96173    #[inline]
96174    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
96175        match self {
96176            swc_visit::Either::Left(visitor) => Fold::fold_array_lit(visitor, node),
96177            swc_visit::Either::Right(visitor) => Fold::fold_array_lit(visitor, node),
96178        }
96179    }
96180
96181    #[inline]
96182    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
96183        match self {
96184            swc_visit::Either::Left(visitor) => Fold::fold_array_pat(visitor, node),
96185            swc_visit::Either::Right(visitor) => Fold::fold_array_pat(visitor, node),
96186        }
96187    }
96188
96189    #[inline]
96190    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
96191        match self {
96192            swc_visit::Either::Left(visitor) => Fold::fold_arrow_expr(visitor, node),
96193            swc_visit::Either::Right(visitor) => Fold::fold_arrow_expr(visitor, node),
96194        }
96195    }
96196
96197    #[inline]
96198    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
96199        match self {
96200            swc_visit::Either::Left(visitor) => Fold::fold_assign_expr(visitor, node),
96201            swc_visit::Either::Right(visitor) => Fold::fold_assign_expr(visitor, node),
96202        }
96203    }
96204
96205    #[inline]
96206    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
96207        match self {
96208            swc_visit::Either::Left(visitor) => Fold::fold_assign_op(visitor, node),
96209            swc_visit::Either::Right(visitor) => Fold::fold_assign_op(visitor, node),
96210        }
96211    }
96212
96213    #[inline]
96214    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
96215        match self {
96216            swc_visit::Either::Left(visitor) => Fold::fold_assign_pat(visitor, node),
96217            swc_visit::Either::Right(visitor) => Fold::fold_assign_pat(visitor, node),
96218        }
96219    }
96220
96221    #[inline]
96222    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
96223        match self {
96224            swc_visit::Either::Left(visitor) => Fold::fold_assign_pat_prop(visitor, node),
96225            swc_visit::Either::Right(visitor) => Fold::fold_assign_pat_prop(visitor, node),
96226        }
96227    }
96228
96229    #[inline]
96230    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
96231        match self {
96232            swc_visit::Either::Left(visitor) => Fold::fold_assign_prop(visitor, node),
96233            swc_visit::Either::Right(visitor) => Fold::fold_assign_prop(visitor, node),
96234        }
96235    }
96236
96237    #[inline]
96238    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
96239        match self {
96240            swc_visit::Either::Left(visitor) => Fold::fold_assign_target(visitor, node),
96241            swc_visit::Either::Right(visitor) => Fold::fold_assign_target(visitor, node),
96242        }
96243    }
96244
96245    #[inline]
96246    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
96247        match self {
96248            swc_visit::Either::Left(visitor) => Fold::fold_assign_target_pat(visitor, node),
96249            swc_visit::Either::Right(visitor) => Fold::fold_assign_target_pat(visitor, node),
96250        }
96251    }
96252
96253    #[inline]
96254    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
96255        match self {
96256            swc_visit::Either::Left(visitor) => Fold::fold_atom(visitor, node),
96257            swc_visit::Either::Right(visitor) => Fold::fold_atom(visitor, node),
96258        }
96259    }
96260
96261    #[inline]
96262    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
96263        match self {
96264            swc_visit::Either::Left(visitor) => Fold::fold_auto_accessor(visitor, node),
96265            swc_visit::Either::Right(visitor) => Fold::fold_auto_accessor(visitor, node),
96266        }
96267    }
96268
96269    #[inline]
96270    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
96271        match self {
96272            swc_visit::Either::Left(visitor) => Fold::fold_await_expr(visitor, node),
96273            swc_visit::Either::Right(visitor) => Fold::fold_await_expr(visitor, node),
96274        }
96275    }
96276
96277    #[inline]
96278    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
96279        match self {
96280            swc_visit::Either::Left(visitor) => Fold::fold_big_int(visitor, node),
96281            swc_visit::Either::Right(visitor) => Fold::fold_big_int(visitor, node),
96282        }
96283    }
96284
96285    #[inline]
96286    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
96287        match self {
96288            swc_visit::Either::Left(visitor) => Fold::fold_big_int_value(visitor, node),
96289            swc_visit::Either::Right(visitor) => Fold::fold_big_int_value(visitor, node),
96290        }
96291    }
96292
96293    #[inline]
96294    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
96295        match self {
96296            swc_visit::Either::Left(visitor) => Fold::fold_bin_expr(visitor, node),
96297            swc_visit::Either::Right(visitor) => Fold::fold_bin_expr(visitor, node),
96298        }
96299    }
96300
96301    #[inline]
96302    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
96303        match self {
96304            swc_visit::Either::Left(visitor) => Fold::fold_binary_op(visitor, node),
96305            swc_visit::Either::Right(visitor) => Fold::fold_binary_op(visitor, node),
96306        }
96307    }
96308
96309    #[inline]
96310    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
96311        match self {
96312            swc_visit::Either::Left(visitor) => Fold::fold_binding_ident(visitor, node),
96313            swc_visit::Either::Right(visitor) => Fold::fold_binding_ident(visitor, node),
96314        }
96315    }
96316
96317    #[inline]
96318    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
96319        match self {
96320            swc_visit::Either::Left(visitor) => Fold::fold_block_stmt(visitor, node),
96321            swc_visit::Either::Right(visitor) => Fold::fold_block_stmt(visitor, node),
96322        }
96323    }
96324
96325    #[inline]
96326    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
96327        match self {
96328            swc_visit::Either::Left(visitor) => Fold::fold_block_stmt_or_expr(visitor, node),
96329            swc_visit::Either::Right(visitor) => Fold::fold_block_stmt_or_expr(visitor, node),
96330        }
96331    }
96332
96333    #[inline]
96334    fn fold_bool(&mut self, node: Bool) -> Bool {
96335        match self {
96336            swc_visit::Either::Left(visitor) => Fold::fold_bool(visitor, node),
96337            swc_visit::Either::Right(visitor) => Fold::fold_bool(visitor, node),
96338        }
96339    }
96340
96341    #[inline]
96342    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
96343        match self {
96344            swc_visit::Either::Left(visitor) => Fold::fold_break_stmt(visitor, node),
96345            swc_visit::Either::Right(visitor) => Fold::fold_break_stmt(visitor, node),
96346        }
96347    }
96348
96349    #[inline]
96350    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
96351        match self {
96352            swc_visit::Either::Left(visitor) => Fold::fold_call_expr(visitor, node),
96353            swc_visit::Either::Right(visitor) => Fold::fold_call_expr(visitor, node),
96354        }
96355    }
96356
96357    #[inline]
96358    fn fold_callee(&mut self, node: Callee) -> Callee {
96359        match self {
96360            swc_visit::Either::Left(visitor) => Fold::fold_callee(visitor, node),
96361            swc_visit::Either::Right(visitor) => Fold::fold_callee(visitor, node),
96362        }
96363    }
96364
96365    #[inline]
96366    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
96367        match self {
96368            swc_visit::Either::Left(visitor) => Fold::fold_catch_clause(visitor, node),
96369            swc_visit::Either::Right(visitor) => Fold::fold_catch_clause(visitor, node),
96370        }
96371    }
96372
96373    #[inline]
96374    fn fold_class(&mut self, node: Class) -> Class {
96375        match self {
96376            swc_visit::Either::Left(visitor) => Fold::fold_class(visitor, node),
96377            swc_visit::Either::Right(visitor) => Fold::fold_class(visitor, node),
96378        }
96379    }
96380
96381    #[inline]
96382    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
96383        match self {
96384            swc_visit::Either::Left(visitor) => Fold::fold_class_decl(visitor, node),
96385            swc_visit::Either::Right(visitor) => Fold::fold_class_decl(visitor, node),
96386        }
96387    }
96388
96389    #[inline]
96390    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
96391        match self {
96392            swc_visit::Either::Left(visitor) => Fold::fold_class_expr(visitor, node),
96393            swc_visit::Either::Right(visitor) => Fold::fold_class_expr(visitor, node),
96394        }
96395    }
96396
96397    #[inline]
96398    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
96399        match self {
96400            swc_visit::Either::Left(visitor) => Fold::fold_class_member(visitor, node),
96401            swc_visit::Either::Right(visitor) => Fold::fold_class_member(visitor, node),
96402        }
96403    }
96404
96405    #[inline]
96406    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
96407        match self {
96408            swc_visit::Either::Left(visitor) => Fold::fold_class_members(visitor, node),
96409            swc_visit::Either::Right(visitor) => Fold::fold_class_members(visitor, node),
96410        }
96411    }
96412
96413    #[inline]
96414    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
96415        match self {
96416            swc_visit::Either::Left(visitor) => Fold::fold_class_method(visitor, node),
96417            swc_visit::Either::Right(visitor) => Fold::fold_class_method(visitor, node),
96418        }
96419    }
96420
96421    #[inline]
96422    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
96423        match self {
96424            swc_visit::Either::Left(visitor) => Fold::fold_class_prop(visitor, node),
96425            swc_visit::Either::Right(visitor) => Fold::fold_class_prop(visitor, node),
96426        }
96427    }
96428
96429    #[inline]
96430    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
96431        match self {
96432            swc_visit::Either::Left(visitor) => Fold::fold_computed_prop_name(visitor, node),
96433            swc_visit::Either::Right(visitor) => Fold::fold_computed_prop_name(visitor, node),
96434        }
96435    }
96436
96437    #[inline]
96438    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
96439        match self {
96440            swc_visit::Either::Left(visitor) => Fold::fold_cond_expr(visitor, node),
96441            swc_visit::Either::Right(visitor) => Fold::fold_cond_expr(visitor, node),
96442        }
96443    }
96444
96445    #[inline]
96446    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
96447        match self {
96448            swc_visit::Either::Left(visitor) => Fold::fold_constructor(visitor, node),
96449            swc_visit::Either::Right(visitor) => Fold::fold_constructor(visitor, node),
96450        }
96451    }
96452
96453    #[inline]
96454    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
96455        match self {
96456            swc_visit::Either::Left(visitor) => Fold::fold_continue_stmt(visitor, node),
96457            swc_visit::Either::Right(visitor) => Fold::fold_continue_stmt(visitor, node),
96458        }
96459    }
96460
96461    #[inline]
96462    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
96463        match self {
96464            swc_visit::Either::Left(visitor) => Fold::fold_debugger_stmt(visitor, node),
96465            swc_visit::Either::Right(visitor) => Fold::fold_debugger_stmt(visitor, node),
96466        }
96467    }
96468
96469    #[inline]
96470    fn fold_decl(&mut self, node: Decl) -> Decl {
96471        match self {
96472            swc_visit::Either::Left(visitor) => Fold::fold_decl(visitor, node),
96473            swc_visit::Either::Right(visitor) => Fold::fold_decl(visitor, node),
96474        }
96475    }
96476
96477    #[inline]
96478    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
96479        match self {
96480            swc_visit::Either::Left(visitor) => Fold::fold_decorator(visitor, node),
96481            swc_visit::Either::Right(visitor) => Fold::fold_decorator(visitor, node),
96482        }
96483    }
96484
96485    #[inline]
96486    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
96487        match self {
96488            swc_visit::Either::Left(visitor) => Fold::fold_decorators(visitor, node),
96489            swc_visit::Either::Right(visitor) => Fold::fold_decorators(visitor, node),
96490        }
96491    }
96492
96493    #[inline]
96494    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
96495        match self {
96496            swc_visit::Either::Left(visitor) => Fold::fold_default_decl(visitor, node),
96497            swc_visit::Either::Right(visitor) => Fold::fold_default_decl(visitor, node),
96498        }
96499    }
96500
96501    #[inline]
96502    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
96503        match self {
96504            swc_visit::Either::Left(visitor) => Fold::fold_do_while_stmt(visitor, node),
96505            swc_visit::Either::Right(visitor) => Fold::fold_do_while_stmt(visitor, node),
96506        }
96507    }
96508
96509    #[inline]
96510    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
96511        match self {
96512            swc_visit::Either::Left(visitor) => Fold::fold_empty_stmt(visitor, node),
96513            swc_visit::Either::Right(visitor) => Fold::fold_empty_stmt(visitor, node),
96514        }
96515    }
96516
96517    #[inline]
96518    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
96519        match self {
96520            swc_visit::Either::Left(visitor) => Fold::fold_export_all(visitor, node),
96521            swc_visit::Either::Right(visitor) => Fold::fold_export_all(visitor, node),
96522        }
96523    }
96524
96525    #[inline]
96526    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
96527        match self {
96528            swc_visit::Either::Left(visitor) => Fold::fold_export_decl(visitor, node),
96529            swc_visit::Either::Right(visitor) => Fold::fold_export_decl(visitor, node),
96530        }
96531    }
96532
96533    #[inline]
96534    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
96535        match self {
96536            swc_visit::Either::Left(visitor) => Fold::fold_export_default_decl(visitor, node),
96537            swc_visit::Either::Right(visitor) => Fold::fold_export_default_decl(visitor, node),
96538        }
96539    }
96540
96541    #[inline]
96542    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
96543        match self {
96544            swc_visit::Either::Left(visitor) => Fold::fold_export_default_expr(visitor, node),
96545            swc_visit::Either::Right(visitor) => Fold::fold_export_default_expr(visitor, node),
96546        }
96547    }
96548
96549    #[inline]
96550    fn fold_export_default_specifier(
96551        &mut self,
96552        node: ExportDefaultSpecifier,
96553    ) -> ExportDefaultSpecifier {
96554        match self {
96555            swc_visit::Either::Left(visitor) => Fold::fold_export_default_specifier(visitor, node),
96556            swc_visit::Either::Right(visitor) => Fold::fold_export_default_specifier(visitor, node),
96557        }
96558    }
96559
96560    #[inline]
96561    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
96562        match self {
96563            swc_visit::Either::Left(visitor) => Fold::fold_export_named_specifier(visitor, node),
96564            swc_visit::Either::Right(visitor) => Fold::fold_export_named_specifier(visitor, node),
96565        }
96566    }
96567
96568    #[inline]
96569    fn fold_export_namespace_specifier(
96570        &mut self,
96571        node: ExportNamespaceSpecifier,
96572    ) -> ExportNamespaceSpecifier {
96573        match self {
96574            swc_visit::Either::Left(visitor) => {
96575                Fold::fold_export_namespace_specifier(visitor, node)
96576            }
96577            swc_visit::Either::Right(visitor) => {
96578                Fold::fold_export_namespace_specifier(visitor, node)
96579            }
96580        }
96581    }
96582
96583    #[inline]
96584    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
96585        match self {
96586            swc_visit::Either::Left(visitor) => Fold::fold_export_specifier(visitor, node),
96587            swc_visit::Either::Right(visitor) => Fold::fold_export_specifier(visitor, node),
96588        }
96589    }
96590
96591    #[inline]
96592    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
96593        match self {
96594            swc_visit::Either::Left(visitor) => Fold::fold_export_specifiers(visitor, node),
96595            swc_visit::Either::Right(visitor) => Fold::fold_export_specifiers(visitor, node),
96596        }
96597    }
96598
96599    #[inline]
96600    fn fold_expr(&mut self, node: Expr) -> Expr {
96601        match self {
96602            swc_visit::Either::Left(visitor) => Fold::fold_expr(visitor, node),
96603            swc_visit::Either::Right(visitor) => Fold::fold_expr(visitor, node),
96604        }
96605    }
96606
96607    #[inline]
96608    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
96609        match self {
96610            swc_visit::Either::Left(visitor) => Fold::fold_expr_or_spread(visitor, node),
96611            swc_visit::Either::Right(visitor) => Fold::fold_expr_or_spread(visitor, node),
96612        }
96613    }
96614
96615    #[inline]
96616    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
96617        match self {
96618            swc_visit::Either::Left(visitor) => Fold::fold_expr_or_spreads(visitor, node),
96619            swc_visit::Either::Right(visitor) => Fold::fold_expr_or_spreads(visitor, node),
96620        }
96621    }
96622
96623    #[inline]
96624    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
96625        match self {
96626            swc_visit::Either::Left(visitor) => Fold::fold_expr_stmt(visitor, node),
96627            swc_visit::Either::Right(visitor) => Fold::fold_expr_stmt(visitor, node),
96628        }
96629    }
96630
96631    #[inline]
96632    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
96633        match self {
96634            swc_visit::Either::Left(visitor) => Fold::fold_exprs(visitor, node),
96635            swc_visit::Either::Right(visitor) => Fold::fold_exprs(visitor, node),
96636        }
96637    }
96638
96639    #[inline]
96640    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
96641        match self {
96642            swc_visit::Either::Left(visitor) => Fold::fold_fn_decl(visitor, node),
96643            swc_visit::Either::Right(visitor) => Fold::fold_fn_decl(visitor, node),
96644        }
96645    }
96646
96647    #[inline]
96648    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
96649        match self {
96650            swc_visit::Either::Left(visitor) => Fold::fold_fn_expr(visitor, node),
96651            swc_visit::Either::Right(visitor) => Fold::fold_fn_expr(visitor, node),
96652        }
96653    }
96654
96655    #[inline]
96656    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
96657        match self {
96658            swc_visit::Either::Left(visitor) => Fold::fold_for_head(visitor, node),
96659            swc_visit::Either::Right(visitor) => Fold::fold_for_head(visitor, node),
96660        }
96661    }
96662
96663    #[inline]
96664    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
96665        match self {
96666            swc_visit::Either::Left(visitor) => Fold::fold_for_in_stmt(visitor, node),
96667            swc_visit::Either::Right(visitor) => Fold::fold_for_in_stmt(visitor, node),
96668        }
96669    }
96670
96671    #[inline]
96672    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
96673        match self {
96674            swc_visit::Either::Left(visitor) => Fold::fold_for_of_stmt(visitor, node),
96675            swc_visit::Either::Right(visitor) => Fold::fold_for_of_stmt(visitor, node),
96676        }
96677    }
96678
96679    #[inline]
96680    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
96681        match self {
96682            swc_visit::Either::Left(visitor) => Fold::fold_for_stmt(visitor, node),
96683            swc_visit::Either::Right(visitor) => Fold::fold_for_stmt(visitor, node),
96684        }
96685    }
96686
96687    #[inline]
96688    fn fold_function(&mut self, node: Function) -> Function {
96689        match self {
96690            swc_visit::Either::Left(visitor) => Fold::fold_function(visitor, node),
96691            swc_visit::Either::Right(visitor) => Fold::fold_function(visitor, node),
96692        }
96693    }
96694
96695    #[inline]
96696    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
96697        match self {
96698            swc_visit::Either::Left(visitor) => Fold::fold_getter_prop(visitor, node),
96699            swc_visit::Either::Right(visitor) => Fold::fold_getter_prop(visitor, node),
96700        }
96701    }
96702
96703    #[inline]
96704    fn fold_ident(&mut self, node: Ident) -> Ident {
96705        match self {
96706            swc_visit::Either::Left(visitor) => Fold::fold_ident(visitor, node),
96707            swc_visit::Either::Right(visitor) => Fold::fold_ident(visitor, node),
96708        }
96709    }
96710
96711    #[inline]
96712    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
96713        match self {
96714            swc_visit::Either::Left(visitor) => Fold::fold_ident_name(visitor, node),
96715            swc_visit::Either::Right(visitor) => Fold::fold_ident_name(visitor, node),
96716        }
96717    }
96718
96719    #[inline]
96720    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
96721        match self {
96722            swc_visit::Either::Left(visitor) => Fold::fold_if_stmt(visitor, node),
96723            swc_visit::Either::Right(visitor) => Fold::fold_if_stmt(visitor, node),
96724        }
96725    }
96726
96727    #[inline]
96728    fn fold_import(&mut self, node: Import) -> Import {
96729        match self {
96730            swc_visit::Either::Left(visitor) => Fold::fold_import(visitor, node),
96731            swc_visit::Either::Right(visitor) => Fold::fold_import(visitor, node),
96732        }
96733    }
96734
96735    #[inline]
96736    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
96737        match self {
96738            swc_visit::Either::Left(visitor) => Fold::fold_import_decl(visitor, node),
96739            swc_visit::Either::Right(visitor) => Fold::fold_import_decl(visitor, node),
96740        }
96741    }
96742
96743    #[inline]
96744    fn fold_import_default_specifier(
96745        &mut self,
96746        node: ImportDefaultSpecifier,
96747    ) -> ImportDefaultSpecifier {
96748        match self {
96749            swc_visit::Either::Left(visitor) => Fold::fold_import_default_specifier(visitor, node),
96750            swc_visit::Either::Right(visitor) => Fold::fold_import_default_specifier(visitor, node),
96751        }
96752    }
96753
96754    #[inline]
96755    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
96756        match self {
96757            swc_visit::Either::Left(visitor) => Fold::fold_import_named_specifier(visitor, node),
96758            swc_visit::Either::Right(visitor) => Fold::fold_import_named_specifier(visitor, node),
96759        }
96760    }
96761
96762    #[inline]
96763    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
96764        match self {
96765            swc_visit::Either::Left(visitor) => Fold::fold_import_phase(visitor, node),
96766            swc_visit::Either::Right(visitor) => Fold::fold_import_phase(visitor, node),
96767        }
96768    }
96769
96770    #[inline]
96771    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
96772        match self {
96773            swc_visit::Either::Left(visitor) => Fold::fold_import_specifier(visitor, node),
96774            swc_visit::Either::Right(visitor) => Fold::fold_import_specifier(visitor, node),
96775        }
96776    }
96777
96778    #[inline]
96779    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
96780        match self {
96781            swc_visit::Either::Left(visitor) => Fold::fold_import_specifiers(visitor, node),
96782            swc_visit::Either::Right(visitor) => Fold::fold_import_specifiers(visitor, node),
96783        }
96784    }
96785
96786    #[inline]
96787    fn fold_import_star_as_specifier(
96788        &mut self,
96789        node: ImportStarAsSpecifier,
96790    ) -> ImportStarAsSpecifier {
96791        match self {
96792            swc_visit::Either::Left(visitor) => Fold::fold_import_star_as_specifier(visitor, node),
96793            swc_visit::Either::Right(visitor) => Fold::fold_import_star_as_specifier(visitor, node),
96794        }
96795    }
96796
96797    #[inline]
96798    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
96799        match self {
96800            swc_visit::Either::Left(visitor) => Fold::fold_import_with(visitor, node),
96801            swc_visit::Either::Right(visitor) => Fold::fold_import_with(visitor, node),
96802        }
96803    }
96804
96805    #[inline]
96806    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
96807        match self {
96808            swc_visit::Either::Left(visitor) => Fold::fold_import_with_item(visitor, node),
96809            swc_visit::Either::Right(visitor) => Fold::fold_import_with_item(visitor, node),
96810        }
96811    }
96812
96813    #[inline]
96814    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
96815        match self {
96816            swc_visit::Either::Left(visitor) => Fold::fold_import_with_items(visitor, node),
96817            swc_visit::Either::Right(visitor) => Fold::fold_import_with_items(visitor, node),
96818        }
96819    }
96820
96821    #[inline]
96822    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
96823        match self {
96824            swc_visit::Either::Left(visitor) => Fold::fold_invalid(visitor, node),
96825            swc_visit::Either::Right(visitor) => Fold::fold_invalid(visitor, node),
96826        }
96827    }
96828
96829    #[inline]
96830    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
96831        match self {
96832            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr(visitor, node),
96833            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr(visitor, node),
96834        }
96835    }
96836
96837    #[inline]
96838    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
96839        match self {
96840            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_name(visitor, node),
96841            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_name(visitor, node),
96842        }
96843    }
96844
96845    #[inline]
96846    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
96847        match self {
96848            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_or_spread(visitor, node),
96849            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_or_spread(visitor, node),
96850        }
96851    }
96852
96853    #[inline]
96854    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
96855        match self {
96856            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_or_spreads(visitor, node),
96857            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_or_spreads(visitor, node),
96858        }
96859    }
96860
96861    #[inline]
96862    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
96863        match self {
96864            swc_visit::Either::Left(visitor) => Fold::fold_jsx_attr_value(visitor, node),
96865            swc_visit::Either::Right(visitor) => Fold::fold_jsx_attr_value(visitor, node),
96866        }
96867    }
96868
96869    #[inline]
96870    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
96871        match self {
96872            swc_visit::Either::Left(visitor) => Fold::fold_jsx_closing_element(visitor, node),
96873            swc_visit::Either::Right(visitor) => Fold::fold_jsx_closing_element(visitor, node),
96874        }
96875    }
96876
96877    #[inline]
96878    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
96879        match self {
96880            swc_visit::Either::Left(visitor) => Fold::fold_jsx_closing_fragment(visitor, node),
96881            swc_visit::Either::Right(visitor) => Fold::fold_jsx_closing_fragment(visitor, node),
96882        }
96883    }
96884
96885    #[inline]
96886    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
96887        match self {
96888            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element(visitor, node),
96889            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element(visitor, node),
96890        }
96891    }
96892
96893    #[inline]
96894    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
96895        match self {
96896            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element_child(visitor, node),
96897            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element_child(visitor, node),
96898        }
96899    }
96900
96901    #[inline]
96902    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
96903        match self {
96904            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element_childs(visitor, node),
96905            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element_childs(visitor, node),
96906        }
96907    }
96908
96909    #[inline]
96910    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
96911        match self {
96912            swc_visit::Either::Left(visitor) => Fold::fold_jsx_element_name(visitor, node),
96913            swc_visit::Either::Right(visitor) => Fold::fold_jsx_element_name(visitor, node),
96914        }
96915    }
96916
96917    #[inline]
96918    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
96919        match self {
96920            swc_visit::Either::Left(visitor) => Fold::fold_jsx_empty_expr(visitor, node),
96921            swc_visit::Either::Right(visitor) => Fold::fold_jsx_empty_expr(visitor, node),
96922        }
96923    }
96924
96925    #[inline]
96926    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
96927        match self {
96928            swc_visit::Either::Left(visitor) => Fold::fold_jsx_expr(visitor, node),
96929            swc_visit::Either::Right(visitor) => Fold::fold_jsx_expr(visitor, node),
96930        }
96931    }
96932
96933    #[inline]
96934    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
96935        match self {
96936            swc_visit::Either::Left(visitor) => Fold::fold_jsx_expr_container(visitor, node),
96937            swc_visit::Either::Right(visitor) => Fold::fold_jsx_expr_container(visitor, node),
96938        }
96939    }
96940
96941    #[inline]
96942    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
96943        match self {
96944            swc_visit::Either::Left(visitor) => Fold::fold_jsx_fragment(visitor, node),
96945            swc_visit::Either::Right(visitor) => Fold::fold_jsx_fragment(visitor, node),
96946        }
96947    }
96948
96949    #[inline]
96950    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
96951        match self {
96952            swc_visit::Either::Left(visitor) => Fold::fold_jsx_member_expr(visitor, node),
96953            swc_visit::Either::Right(visitor) => Fold::fold_jsx_member_expr(visitor, node),
96954        }
96955    }
96956
96957    #[inline]
96958    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
96959        match self {
96960            swc_visit::Either::Left(visitor) => Fold::fold_jsx_namespaced_name(visitor, node),
96961            swc_visit::Either::Right(visitor) => Fold::fold_jsx_namespaced_name(visitor, node),
96962        }
96963    }
96964
96965    #[inline]
96966    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
96967        match self {
96968            swc_visit::Either::Left(visitor) => Fold::fold_jsx_object(visitor, node),
96969            swc_visit::Either::Right(visitor) => Fold::fold_jsx_object(visitor, node),
96970        }
96971    }
96972
96973    #[inline]
96974    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
96975        match self {
96976            swc_visit::Either::Left(visitor) => Fold::fold_jsx_opening_element(visitor, node),
96977            swc_visit::Either::Right(visitor) => Fold::fold_jsx_opening_element(visitor, node),
96978        }
96979    }
96980
96981    #[inline]
96982    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
96983        match self {
96984            swc_visit::Either::Left(visitor) => Fold::fold_jsx_opening_fragment(visitor, node),
96985            swc_visit::Either::Right(visitor) => Fold::fold_jsx_opening_fragment(visitor, node),
96986        }
96987    }
96988
96989    #[inline]
96990    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
96991        match self {
96992            swc_visit::Either::Left(visitor) => Fold::fold_jsx_spread_child(visitor, node),
96993            swc_visit::Either::Right(visitor) => Fold::fold_jsx_spread_child(visitor, node),
96994        }
96995    }
96996
96997    #[inline]
96998    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
96999        match self {
97000            swc_visit::Either::Left(visitor) => Fold::fold_jsx_text(visitor, node),
97001            swc_visit::Either::Right(visitor) => Fold::fold_jsx_text(visitor, node),
97002        }
97003    }
97004
97005    #[inline]
97006    fn fold_key(&mut self, node: Key) -> Key {
97007        match self {
97008            swc_visit::Either::Left(visitor) => Fold::fold_key(visitor, node),
97009            swc_visit::Either::Right(visitor) => Fold::fold_key(visitor, node),
97010        }
97011    }
97012
97013    #[inline]
97014    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
97015        match self {
97016            swc_visit::Either::Left(visitor) => Fold::fold_key_value_pat_prop(visitor, node),
97017            swc_visit::Either::Right(visitor) => Fold::fold_key_value_pat_prop(visitor, node),
97018        }
97019    }
97020
97021    #[inline]
97022    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
97023        match self {
97024            swc_visit::Either::Left(visitor) => Fold::fold_key_value_prop(visitor, node),
97025            swc_visit::Either::Right(visitor) => Fold::fold_key_value_prop(visitor, node),
97026        }
97027    }
97028
97029    #[inline]
97030    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
97031        match self {
97032            swc_visit::Either::Left(visitor) => Fold::fold_labeled_stmt(visitor, node),
97033            swc_visit::Either::Right(visitor) => Fold::fold_labeled_stmt(visitor, node),
97034        }
97035    }
97036
97037    #[inline]
97038    fn fold_lit(&mut self, node: Lit) -> Lit {
97039        match self {
97040            swc_visit::Either::Left(visitor) => Fold::fold_lit(visitor, node),
97041            swc_visit::Either::Right(visitor) => Fold::fold_lit(visitor, node),
97042        }
97043    }
97044
97045    #[inline]
97046    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
97047        match self {
97048            swc_visit::Either::Left(visitor) => Fold::fold_member_expr(visitor, node),
97049            swc_visit::Either::Right(visitor) => Fold::fold_member_expr(visitor, node),
97050        }
97051    }
97052
97053    #[inline]
97054    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
97055        match self {
97056            swc_visit::Either::Left(visitor) => Fold::fold_member_prop(visitor, node),
97057            swc_visit::Either::Right(visitor) => Fold::fold_member_prop(visitor, node),
97058        }
97059    }
97060
97061    #[inline]
97062    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
97063        match self {
97064            swc_visit::Either::Left(visitor) => Fold::fold_meta_prop_expr(visitor, node),
97065            swc_visit::Either::Right(visitor) => Fold::fold_meta_prop_expr(visitor, node),
97066        }
97067    }
97068
97069    #[inline]
97070    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
97071        match self {
97072            swc_visit::Either::Left(visitor) => Fold::fold_meta_prop_kind(visitor, node),
97073            swc_visit::Either::Right(visitor) => Fold::fold_meta_prop_kind(visitor, node),
97074        }
97075    }
97076
97077    #[inline]
97078    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
97079        match self {
97080            swc_visit::Either::Left(visitor) => Fold::fold_method_kind(visitor, node),
97081            swc_visit::Either::Right(visitor) => Fold::fold_method_kind(visitor, node),
97082        }
97083    }
97084
97085    #[inline]
97086    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
97087        match self {
97088            swc_visit::Either::Left(visitor) => Fold::fold_method_prop(visitor, node),
97089            swc_visit::Either::Right(visitor) => Fold::fold_method_prop(visitor, node),
97090        }
97091    }
97092
97093    #[inline]
97094    fn fold_module(&mut self, node: Module) -> Module {
97095        match self {
97096            swc_visit::Either::Left(visitor) => Fold::fold_module(visitor, node),
97097            swc_visit::Either::Right(visitor) => Fold::fold_module(visitor, node),
97098        }
97099    }
97100
97101    #[inline]
97102    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
97103        match self {
97104            swc_visit::Either::Left(visitor) => Fold::fold_module_decl(visitor, node),
97105            swc_visit::Either::Right(visitor) => Fold::fold_module_decl(visitor, node),
97106        }
97107    }
97108
97109    #[inline]
97110    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
97111        match self {
97112            swc_visit::Either::Left(visitor) => Fold::fold_module_export_name(visitor, node),
97113            swc_visit::Either::Right(visitor) => Fold::fold_module_export_name(visitor, node),
97114        }
97115    }
97116
97117    #[inline]
97118    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
97119        match self {
97120            swc_visit::Either::Left(visitor) => Fold::fold_module_item(visitor, node),
97121            swc_visit::Either::Right(visitor) => Fold::fold_module_item(visitor, node),
97122        }
97123    }
97124
97125    #[inline]
97126    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
97127        match self {
97128            swc_visit::Either::Left(visitor) => Fold::fold_module_items(visitor, node),
97129            swc_visit::Either::Right(visitor) => Fold::fold_module_items(visitor, node),
97130        }
97131    }
97132
97133    #[inline]
97134    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
97135        match self {
97136            swc_visit::Either::Left(visitor) => Fold::fold_named_export(visitor, node),
97137            swc_visit::Either::Right(visitor) => Fold::fold_named_export(visitor, node),
97138        }
97139    }
97140
97141    #[inline]
97142    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
97143        match self {
97144            swc_visit::Either::Left(visitor) => Fold::fold_new_expr(visitor, node),
97145            swc_visit::Either::Right(visitor) => Fold::fold_new_expr(visitor, node),
97146        }
97147    }
97148
97149    #[inline]
97150    fn fold_null(&mut self, node: Null) -> Null {
97151        match self {
97152            swc_visit::Either::Left(visitor) => Fold::fold_null(visitor, node),
97153            swc_visit::Either::Right(visitor) => Fold::fold_null(visitor, node),
97154        }
97155    }
97156
97157    #[inline]
97158    fn fold_number(&mut self, node: Number) -> Number {
97159        match self {
97160            swc_visit::Either::Left(visitor) => Fold::fold_number(visitor, node),
97161            swc_visit::Either::Right(visitor) => Fold::fold_number(visitor, node),
97162        }
97163    }
97164
97165    #[inline]
97166    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
97167        match self {
97168            swc_visit::Either::Left(visitor) => Fold::fold_object_lit(visitor, node),
97169            swc_visit::Either::Right(visitor) => Fold::fold_object_lit(visitor, node),
97170        }
97171    }
97172
97173    #[inline]
97174    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
97175        match self {
97176            swc_visit::Either::Left(visitor) => Fold::fold_object_pat(visitor, node),
97177            swc_visit::Either::Right(visitor) => Fold::fold_object_pat(visitor, node),
97178        }
97179    }
97180
97181    #[inline]
97182    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
97183        match self {
97184            swc_visit::Either::Left(visitor) => Fold::fold_object_pat_prop(visitor, node),
97185            swc_visit::Either::Right(visitor) => Fold::fold_object_pat_prop(visitor, node),
97186        }
97187    }
97188
97189    #[inline]
97190    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
97191        match self {
97192            swc_visit::Either::Left(visitor) => Fold::fold_object_pat_props(visitor, node),
97193            swc_visit::Either::Right(visitor) => Fold::fold_object_pat_props(visitor, node),
97194        }
97195    }
97196
97197    #[inline]
97198    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
97199        match self {
97200            swc_visit::Either::Left(visitor) => Fold::fold_opt_accessibility(visitor, node),
97201            swc_visit::Either::Right(visitor) => Fold::fold_opt_accessibility(visitor, node),
97202        }
97203    }
97204
97205    #[inline]
97206    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
97207        match self {
97208            swc_visit::Either::Left(visitor) => Fold::fold_opt_atom(visitor, node),
97209            swc_visit::Either::Right(visitor) => Fold::fold_opt_atom(visitor, node),
97210        }
97211    }
97212
97213    #[inline]
97214    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
97215        match self {
97216            swc_visit::Either::Left(visitor) => Fold::fold_opt_block_stmt(visitor, node),
97217            swc_visit::Either::Right(visitor) => Fold::fold_opt_block_stmt(visitor, node),
97218        }
97219    }
97220
97221    #[inline]
97222    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
97223        match self {
97224            swc_visit::Either::Left(visitor) => Fold::fold_opt_call(visitor, node),
97225            swc_visit::Either::Right(visitor) => Fold::fold_opt_call(visitor, node),
97226        }
97227    }
97228
97229    #[inline]
97230    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
97231        match self {
97232            swc_visit::Either::Left(visitor) => Fold::fold_opt_catch_clause(visitor, node),
97233            swc_visit::Either::Right(visitor) => Fold::fold_opt_catch_clause(visitor, node),
97234        }
97235    }
97236
97237    #[inline]
97238    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
97239        match self {
97240            swc_visit::Either::Left(visitor) => Fold::fold_opt_chain_base(visitor, node),
97241            swc_visit::Either::Right(visitor) => Fold::fold_opt_chain_base(visitor, node),
97242        }
97243    }
97244
97245    #[inline]
97246    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
97247        match self {
97248            swc_visit::Either::Left(visitor) => Fold::fold_opt_chain_expr(visitor, node),
97249            swc_visit::Either::Right(visitor) => Fold::fold_opt_chain_expr(visitor, node),
97250        }
97251    }
97252
97253    #[inline]
97254    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
97255        match self {
97256            swc_visit::Either::Left(visitor) => Fold::fold_opt_expr(visitor, node),
97257            swc_visit::Either::Right(visitor) => Fold::fold_opt_expr(visitor, node),
97258        }
97259    }
97260
97261    #[inline]
97262    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
97263        match self {
97264            swc_visit::Either::Left(visitor) => Fold::fold_opt_expr_or_spread(visitor, node),
97265            swc_visit::Either::Right(visitor) => Fold::fold_opt_expr_or_spread(visitor, node),
97266        }
97267    }
97268
97269    #[inline]
97270    fn fold_opt_expr_or_spreads(
97271        &mut self,
97272        node: Option<Vec<ExprOrSpread>>,
97273    ) -> Option<Vec<ExprOrSpread>> {
97274        match self {
97275            swc_visit::Either::Left(visitor) => Fold::fold_opt_expr_or_spreads(visitor, node),
97276            swc_visit::Either::Right(visitor) => Fold::fold_opt_expr_or_spreads(visitor, node),
97277        }
97278    }
97279
97280    #[inline]
97281    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
97282        match self {
97283            swc_visit::Either::Left(visitor) => Fold::fold_opt_ident(visitor, node),
97284            swc_visit::Either::Right(visitor) => Fold::fold_opt_ident(visitor, node),
97285        }
97286    }
97287
97288    #[inline]
97289    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
97290        match self {
97291            swc_visit::Either::Left(visitor) => Fold::fold_opt_jsx_attr_value(visitor, node),
97292            swc_visit::Either::Right(visitor) => Fold::fold_opt_jsx_attr_value(visitor, node),
97293        }
97294    }
97295
97296    #[inline]
97297    fn fold_opt_jsx_closing_element(
97298        &mut self,
97299        node: Option<JSXClosingElement>,
97300    ) -> Option<JSXClosingElement> {
97301        match self {
97302            swc_visit::Either::Left(visitor) => Fold::fold_opt_jsx_closing_element(visitor, node),
97303            swc_visit::Either::Right(visitor) => Fold::fold_opt_jsx_closing_element(visitor, node),
97304        }
97305    }
97306
97307    #[inline]
97308    fn fold_opt_module_export_name(
97309        &mut self,
97310        node: Option<ModuleExportName>,
97311    ) -> Option<ModuleExportName> {
97312        match self {
97313            swc_visit::Either::Left(visitor) => Fold::fold_opt_module_export_name(visitor, node),
97314            swc_visit::Either::Right(visitor) => Fold::fold_opt_module_export_name(visitor, node),
97315        }
97316    }
97317
97318    #[inline]
97319    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
97320        match self {
97321            swc_visit::Either::Left(visitor) => Fold::fold_opt_object_lit(visitor, node),
97322            swc_visit::Either::Right(visitor) => Fold::fold_opt_object_lit(visitor, node),
97323        }
97324    }
97325
97326    #[inline]
97327    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
97328        match self {
97329            swc_visit::Either::Left(visitor) => Fold::fold_opt_pat(visitor, node),
97330            swc_visit::Either::Right(visitor) => Fold::fold_opt_pat(visitor, node),
97331        }
97332    }
97333
97334    #[inline]
97335    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
97336        match self {
97337            swc_visit::Either::Left(visitor) => Fold::fold_opt_span(visitor, node),
97338            swc_visit::Either::Right(visitor) => Fold::fold_opt_span(visitor, node),
97339        }
97340    }
97341
97342    #[inline]
97343    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
97344        match self {
97345            swc_visit::Either::Left(visitor) => Fold::fold_opt_stmt(visitor, node),
97346            swc_visit::Either::Right(visitor) => Fold::fold_opt_stmt(visitor, node),
97347        }
97348    }
97349
97350    #[inline]
97351    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
97352        match self {
97353            swc_visit::Either::Left(visitor) => Fold::fold_opt_str(visitor, node),
97354            swc_visit::Either::Right(visitor) => Fold::fold_opt_str(visitor, node),
97355        }
97356    }
97357
97358    #[inline]
97359    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
97360        match self {
97361            swc_visit::Either::Left(visitor) => Fold::fold_opt_true_plus_minus(visitor, node),
97362            swc_visit::Either::Right(visitor) => Fold::fold_opt_true_plus_minus(visitor, node),
97363        }
97364    }
97365
97366    #[inline]
97367    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
97368        match self {
97369            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_entity_name(visitor, node),
97370            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_entity_name(visitor, node),
97371        }
97372    }
97373
97374    #[inline]
97375    fn fold_opt_ts_namespace_body(
97376        &mut self,
97377        node: Option<TsNamespaceBody>,
97378    ) -> Option<TsNamespaceBody> {
97379        match self {
97380            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_namespace_body(visitor, node),
97381            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_namespace_body(visitor, node),
97382        }
97383    }
97384
97385    #[inline]
97386    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
97387        match self {
97388            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_type(visitor, node),
97389            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_type(visitor, node),
97390        }
97391    }
97392
97393    #[inline]
97394    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
97395        match self {
97396            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_type_ann(visitor, node),
97397            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_type_ann(visitor, node),
97398        }
97399    }
97400
97401    #[inline]
97402    fn fold_opt_ts_type_param_decl(
97403        &mut self,
97404        node: Option<Box<TsTypeParamDecl>>,
97405    ) -> Option<Box<TsTypeParamDecl>> {
97406        match self {
97407            swc_visit::Either::Left(visitor) => Fold::fold_opt_ts_type_param_decl(visitor, node),
97408            swc_visit::Either::Right(visitor) => Fold::fold_opt_ts_type_param_decl(visitor, node),
97409        }
97410    }
97411
97412    #[inline]
97413    fn fold_opt_ts_type_param_instantiation(
97414        &mut self,
97415        node: Option<Box<TsTypeParamInstantiation>>,
97416    ) -> Option<Box<TsTypeParamInstantiation>> {
97417        match self {
97418            swc_visit::Either::Left(visitor) => {
97419                Fold::fold_opt_ts_type_param_instantiation(visitor, node)
97420            }
97421            swc_visit::Either::Right(visitor) => {
97422                Fold::fold_opt_ts_type_param_instantiation(visitor, node)
97423            }
97424        }
97425    }
97426
97427    #[inline]
97428    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
97429        match self {
97430            swc_visit::Either::Left(visitor) => Fold::fold_opt_var_decl_or_expr(visitor, node),
97431            swc_visit::Either::Right(visitor) => Fold::fold_opt_var_decl_or_expr(visitor, node),
97432        }
97433    }
97434
97435    #[inline]
97436    fn fold_opt_vec_expr_or_spreads(
97437        &mut self,
97438        node: Vec<Option<ExprOrSpread>>,
97439    ) -> Vec<Option<ExprOrSpread>> {
97440        match self {
97441            swc_visit::Either::Left(visitor) => Fold::fold_opt_vec_expr_or_spreads(visitor, node),
97442            swc_visit::Either::Right(visitor) => Fold::fold_opt_vec_expr_or_spreads(visitor, node),
97443        }
97444    }
97445
97446    #[inline]
97447    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
97448        match self {
97449            swc_visit::Either::Left(visitor) => Fold::fold_opt_vec_pats(visitor, node),
97450            swc_visit::Either::Right(visitor) => Fold::fold_opt_vec_pats(visitor, node),
97451        }
97452    }
97453
97454    #[inline]
97455    fn fold_param(&mut self, node: Param) -> Param {
97456        match self {
97457            swc_visit::Either::Left(visitor) => Fold::fold_param(visitor, node),
97458            swc_visit::Either::Right(visitor) => Fold::fold_param(visitor, node),
97459        }
97460    }
97461
97462    #[inline]
97463    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
97464        match self {
97465            swc_visit::Either::Left(visitor) => Fold::fold_param_or_ts_param_prop(visitor, node),
97466            swc_visit::Either::Right(visitor) => Fold::fold_param_or_ts_param_prop(visitor, node),
97467        }
97468    }
97469
97470    #[inline]
97471    fn fold_param_or_ts_param_props(
97472        &mut self,
97473        node: Vec<ParamOrTsParamProp>,
97474    ) -> Vec<ParamOrTsParamProp> {
97475        match self {
97476            swc_visit::Either::Left(visitor) => Fold::fold_param_or_ts_param_props(visitor, node),
97477            swc_visit::Either::Right(visitor) => Fold::fold_param_or_ts_param_props(visitor, node),
97478        }
97479    }
97480
97481    #[inline]
97482    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
97483        match self {
97484            swc_visit::Either::Left(visitor) => Fold::fold_params(visitor, node),
97485            swc_visit::Either::Right(visitor) => Fold::fold_params(visitor, node),
97486        }
97487    }
97488
97489    #[inline]
97490    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
97491        match self {
97492            swc_visit::Either::Left(visitor) => Fold::fold_paren_expr(visitor, node),
97493            swc_visit::Either::Right(visitor) => Fold::fold_paren_expr(visitor, node),
97494        }
97495    }
97496
97497    #[inline]
97498    fn fold_pat(&mut self, node: Pat) -> Pat {
97499        match self {
97500            swc_visit::Either::Left(visitor) => Fold::fold_pat(visitor, node),
97501            swc_visit::Either::Right(visitor) => Fold::fold_pat(visitor, node),
97502        }
97503    }
97504
97505    #[inline]
97506    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
97507        match self {
97508            swc_visit::Either::Left(visitor) => Fold::fold_pats(visitor, node),
97509            swc_visit::Either::Right(visitor) => Fold::fold_pats(visitor, node),
97510        }
97511    }
97512
97513    #[inline]
97514    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
97515        match self {
97516            swc_visit::Either::Left(visitor) => Fold::fold_private_method(visitor, node),
97517            swc_visit::Either::Right(visitor) => Fold::fold_private_method(visitor, node),
97518        }
97519    }
97520
97521    #[inline]
97522    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
97523        match self {
97524            swc_visit::Either::Left(visitor) => Fold::fold_private_name(visitor, node),
97525            swc_visit::Either::Right(visitor) => Fold::fold_private_name(visitor, node),
97526        }
97527    }
97528
97529    #[inline]
97530    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
97531        match self {
97532            swc_visit::Either::Left(visitor) => Fold::fold_private_prop(visitor, node),
97533            swc_visit::Either::Right(visitor) => Fold::fold_private_prop(visitor, node),
97534        }
97535    }
97536
97537    #[inline]
97538    fn fold_program(&mut self, node: Program) -> Program {
97539        match self {
97540            swc_visit::Either::Left(visitor) => Fold::fold_program(visitor, node),
97541            swc_visit::Either::Right(visitor) => Fold::fold_program(visitor, node),
97542        }
97543    }
97544
97545    #[inline]
97546    fn fold_prop(&mut self, node: Prop) -> Prop {
97547        match self {
97548            swc_visit::Either::Left(visitor) => Fold::fold_prop(visitor, node),
97549            swc_visit::Either::Right(visitor) => Fold::fold_prop(visitor, node),
97550        }
97551    }
97552
97553    #[inline]
97554    fn fold_prop_name(&mut self, node: PropName) -> PropName {
97555        match self {
97556            swc_visit::Either::Left(visitor) => Fold::fold_prop_name(visitor, node),
97557            swc_visit::Either::Right(visitor) => Fold::fold_prop_name(visitor, node),
97558        }
97559    }
97560
97561    #[inline]
97562    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
97563        match self {
97564            swc_visit::Either::Left(visitor) => Fold::fold_prop_or_spread(visitor, node),
97565            swc_visit::Either::Right(visitor) => Fold::fold_prop_or_spread(visitor, node),
97566        }
97567    }
97568
97569    #[inline]
97570    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
97571        match self {
97572            swc_visit::Either::Left(visitor) => Fold::fold_prop_or_spreads(visitor, node),
97573            swc_visit::Either::Right(visitor) => Fold::fold_prop_or_spreads(visitor, node),
97574        }
97575    }
97576
97577    #[inline]
97578    fn fold_regex(&mut self, node: Regex) -> Regex {
97579        match self {
97580            swc_visit::Either::Left(visitor) => Fold::fold_regex(visitor, node),
97581            swc_visit::Either::Right(visitor) => Fold::fold_regex(visitor, node),
97582        }
97583    }
97584
97585    #[inline]
97586    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
97587        match self {
97588            swc_visit::Either::Left(visitor) => Fold::fold_rest_pat(visitor, node),
97589            swc_visit::Either::Right(visitor) => Fold::fold_rest_pat(visitor, node),
97590        }
97591    }
97592
97593    #[inline]
97594    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
97595        match self {
97596            swc_visit::Either::Left(visitor) => Fold::fold_return_stmt(visitor, node),
97597            swc_visit::Either::Right(visitor) => Fold::fold_return_stmt(visitor, node),
97598        }
97599    }
97600
97601    #[inline]
97602    fn fold_script(&mut self, node: Script) -> Script {
97603        match self {
97604            swc_visit::Either::Left(visitor) => Fold::fold_script(visitor, node),
97605            swc_visit::Either::Right(visitor) => Fold::fold_script(visitor, node),
97606        }
97607    }
97608
97609    #[inline]
97610    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
97611        match self {
97612            swc_visit::Either::Left(visitor) => Fold::fold_seq_expr(visitor, node),
97613            swc_visit::Either::Right(visitor) => Fold::fold_seq_expr(visitor, node),
97614        }
97615    }
97616
97617    #[inline]
97618    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
97619        match self {
97620            swc_visit::Either::Left(visitor) => Fold::fold_setter_prop(visitor, node),
97621            swc_visit::Either::Right(visitor) => Fold::fold_setter_prop(visitor, node),
97622        }
97623    }
97624
97625    #[inline]
97626    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
97627        match self {
97628            swc_visit::Either::Left(visitor) => Fold::fold_simple_assign_target(visitor, node),
97629            swc_visit::Either::Right(visitor) => Fold::fold_simple_assign_target(visitor, node),
97630        }
97631    }
97632
97633    #[inline]
97634    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
97635        match self {
97636            swc_visit::Either::Left(visitor) => Fold::fold_span(visitor, node),
97637            swc_visit::Either::Right(visitor) => Fold::fold_span(visitor, node),
97638        }
97639    }
97640
97641    #[inline]
97642    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
97643        match self {
97644            swc_visit::Either::Left(visitor) => Fold::fold_spread_element(visitor, node),
97645            swc_visit::Either::Right(visitor) => Fold::fold_spread_element(visitor, node),
97646        }
97647    }
97648
97649    #[inline]
97650    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
97651        match self {
97652            swc_visit::Either::Left(visitor) => Fold::fold_static_block(visitor, node),
97653            swc_visit::Either::Right(visitor) => Fold::fold_static_block(visitor, node),
97654        }
97655    }
97656
97657    #[inline]
97658    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
97659        match self {
97660            swc_visit::Either::Left(visitor) => Fold::fold_stmt(visitor, node),
97661            swc_visit::Either::Right(visitor) => Fold::fold_stmt(visitor, node),
97662        }
97663    }
97664
97665    #[inline]
97666    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
97667        match self {
97668            swc_visit::Either::Left(visitor) => Fold::fold_stmts(visitor, node),
97669            swc_visit::Either::Right(visitor) => Fold::fold_stmts(visitor, node),
97670        }
97671    }
97672
97673    #[inline]
97674    fn fold_str(&mut self, node: Str) -> Str {
97675        match self {
97676            swc_visit::Either::Left(visitor) => Fold::fold_str(visitor, node),
97677            swc_visit::Either::Right(visitor) => Fold::fold_str(visitor, node),
97678        }
97679    }
97680
97681    #[inline]
97682    fn fold_super(&mut self, node: Super) -> Super {
97683        match self {
97684            swc_visit::Either::Left(visitor) => Fold::fold_super(visitor, node),
97685            swc_visit::Either::Right(visitor) => Fold::fold_super(visitor, node),
97686        }
97687    }
97688
97689    #[inline]
97690    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
97691        match self {
97692            swc_visit::Either::Left(visitor) => Fold::fold_super_prop(visitor, node),
97693            swc_visit::Either::Right(visitor) => Fold::fold_super_prop(visitor, node),
97694        }
97695    }
97696
97697    #[inline]
97698    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
97699        match self {
97700            swc_visit::Either::Left(visitor) => Fold::fold_super_prop_expr(visitor, node),
97701            swc_visit::Either::Right(visitor) => Fold::fold_super_prop_expr(visitor, node),
97702        }
97703    }
97704
97705    #[inline]
97706    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
97707        match self {
97708            swc_visit::Either::Left(visitor) => Fold::fold_switch_case(visitor, node),
97709            swc_visit::Either::Right(visitor) => Fold::fold_switch_case(visitor, node),
97710        }
97711    }
97712
97713    #[inline]
97714    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
97715        match self {
97716            swc_visit::Either::Left(visitor) => Fold::fold_switch_cases(visitor, node),
97717            swc_visit::Either::Right(visitor) => Fold::fold_switch_cases(visitor, node),
97718        }
97719    }
97720
97721    #[inline]
97722    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
97723        match self {
97724            swc_visit::Either::Left(visitor) => Fold::fold_switch_stmt(visitor, node),
97725            swc_visit::Either::Right(visitor) => Fold::fold_switch_stmt(visitor, node),
97726        }
97727    }
97728
97729    #[inline]
97730    fn fold_syntax_context(
97731        &mut self,
97732        node: swc_common::SyntaxContext,
97733    ) -> swc_common::SyntaxContext {
97734        match self {
97735            swc_visit::Either::Left(visitor) => Fold::fold_syntax_context(visitor, node),
97736            swc_visit::Either::Right(visitor) => Fold::fold_syntax_context(visitor, node),
97737        }
97738    }
97739
97740    #[inline]
97741    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
97742        match self {
97743            swc_visit::Either::Left(visitor) => Fold::fold_tagged_tpl(visitor, node),
97744            swc_visit::Either::Right(visitor) => Fold::fold_tagged_tpl(visitor, node),
97745        }
97746    }
97747
97748    #[inline]
97749    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
97750        match self {
97751            swc_visit::Either::Left(visitor) => Fold::fold_this_expr(visitor, node),
97752            swc_visit::Either::Right(visitor) => Fold::fold_this_expr(visitor, node),
97753        }
97754    }
97755
97756    #[inline]
97757    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
97758        match self {
97759            swc_visit::Either::Left(visitor) => Fold::fold_throw_stmt(visitor, node),
97760            swc_visit::Either::Right(visitor) => Fold::fold_throw_stmt(visitor, node),
97761        }
97762    }
97763
97764    #[inline]
97765    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
97766        match self {
97767            swc_visit::Either::Left(visitor) => Fold::fold_tpl(visitor, node),
97768            swc_visit::Either::Right(visitor) => Fold::fold_tpl(visitor, node),
97769        }
97770    }
97771
97772    #[inline]
97773    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
97774        match self {
97775            swc_visit::Either::Left(visitor) => Fold::fold_tpl_element(visitor, node),
97776            swc_visit::Either::Right(visitor) => Fold::fold_tpl_element(visitor, node),
97777        }
97778    }
97779
97780    #[inline]
97781    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
97782        match self {
97783            swc_visit::Either::Left(visitor) => Fold::fold_tpl_elements(visitor, node),
97784            swc_visit::Either::Right(visitor) => Fold::fold_tpl_elements(visitor, node),
97785        }
97786    }
97787
97788    #[inline]
97789    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
97790        match self {
97791            swc_visit::Either::Left(visitor) => Fold::fold_true_plus_minus(visitor, node),
97792            swc_visit::Either::Right(visitor) => Fold::fold_true_plus_minus(visitor, node),
97793        }
97794    }
97795
97796    #[inline]
97797    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
97798        match self {
97799            swc_visit::Either::Left(visitor) => Fold::fold_try_stmt(visitor, node),
97800            swc_visit::Either::Right(visitor) => Fold::fold_try_stmt(visitor, node),
97801        }
97802    }
97803
97804    #[inline]
97805    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
97806        match self {
97807            swc_visit::Either::Left(visitor) => Fold::fold_ts_array_type(visitor, node),
97808            swc_visit::Either::Right(visitor) => Fold::fold_ts_array_type(visitor, node),
97809        }
97810    }
97811
97812    #[inline]
97813    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
97814        match self {
97815            swc_visit::Either::Left(visitor) => Fold::fold_ts_as_expr(visitor, node),
97816            swc_visit::Either::Right(visitor) => Fold::fold_ts_as_expr(visitor, node),
97817        }
97818    }
97819
97820    #[inline]
97821    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
97822        match self {
97823            swc_visit::Either::Left(visitor) => Fold::fold_ts_call_signature_decl(visitor, node),
97824            swc_visit::Either::Right(visitor) => Fold::fold_ts_call_signature_decl(visitor, node),
97825        }
97826    }
97827
97828    #[inline]
97829    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
97830        match self {
97831            swc_visit::Either::Left(visitor) => Fold::fold_ts_conditional_type(visitor, node),
97832            swc_visit::Either::Right(visitor) => Fold::fold_ts_conditional_type(visitor, node),
97833        }
97834    }
97835
97836    #[inline]
97837    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
97838        match self {
97839            swc_visit::Either::Left(visitor) => Fold::fold_ts_const_assertion(visitor, node),
97840            swc_visit::Either::Right(visitor) => Fold::fold_ts_const_assertion(visitor, node),
97841        }
97842    }
97843
97844    #[inline]
97845    fn fold_ts_construct_signature_decl(
97846        &mut self,
97847        node: TsConstructSignatureDecl,
97848    ) -> TsConstructSignatureDecl {
97849        match self {
97850            swc_visit::Either::Left(visitor) => {
97851                Fold::fold_ts_construct_signature_decl(visitor, node)
97852            }
97853            swc_visit::Either::Right(visitor) => {
97854                Fold::fold_ts_construct_signature_decl(visitor, node)
97855            }
97856        }
97857    }
97858
97859    #[inline]
97860    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
97861        match self {
97862            swc_visit::Either::Left(visitor) => Fold::fold_ts_constructor_type(visitor, node),
97863            swc_visit::Either::Right(visitor) => Fold::fold_ts_constructor_type(visitor, node),
97864        }
97865    }
97866
97867    #[inline]
97868    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
97869        match self {
97870            swc_visit::Either::Left(visitor) => Fold::fold_ts_entity_name(visitor, node),
97871            swc_visit::Either::Right(visitor) => Fold::fold_ts_entity_name(visitor, node),
97872        }
97873    }
97874
97875    #[inline]
97876    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
97877        match self {
97878            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_decl(visitor, node),
97879            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_decl(visitor, node),
97880        }
97881    }
97882
97883    #[inline]
97884    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
97885        match self {
97886            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_member(visitor, node),
97887            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_member(visitor, node),
97888        }
97889    }
97890
97891    #[inline]
97892    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
97893        match self {
97894            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_member_id(visitor, node),
97895            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_member_id(visitor, node),
97896        }
97897    }
97898
97899    #[inline]
97900    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
97901        match self {
97902            swc_visit::Either::Left(visitor) => Fold::fold_ts_enum_members(visitor, node),
97903            swc_visit::Either::Right(visitor) => Fold::fold_ts_enum_members(visitor, node),
97904        }
97905    }
97906
97907    #[inline]
97908    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
97909        match self {
97910            swc_visit::Either::Left(visitor) => Fold::fold_ts_export_assignment(visitor, node),
97911            swc_visit::Either::Right(visitor) => Fold::fold_ts_export_assignment(visitor, node),
97912        }
97913    }
97914
97915    #[inline]
97916    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
97917        match self {
97918            swc_visit::Either::Left(visitor) => Fold::fold_ts_expr_with_type_args(visitor, node),
97919            swc_visit::Either::Right(visitor) => Fold::fold_ts_expr_with_type_args(visitor, node),
97920        }
97921    }
97922
97923    #[inline]
97924    fn fold_ts_expr_with_type_argss(
97925        &mut self,
97926        node: Vec<TsExprWithTypeArgs>,
97927    ) -> Vec<TsExprWithTypeArgs> {
97928        match self {
97929            swc_visit::Either::Left(visitor) => Fold::fold_ts_expr_with_type_argss(visitor, node),
97930            swc_visit::Either::Right(visitor) => Fold::fold_ts_expr_with_type_argss(visitor, node),
97931        }
97932    }
97933
97934    #[inline]
97935    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
97936        match self {
97937            swc_visit::Either::Left(visitor) => Fold::fold_ts_external_module_ref(visitor, node),
97938            swc_visit::Either::Right(visitor) => Fold::fold_ts_external_module_ref(visitor, node),
97939        }
97940    }
97941
97942    #[inline]
97943    fn fold_ts_fn_or_constructor_type(
97944        &mut self,
97945        node: TsFnOrConstructorType,
97946    ) -> TsFnOrConstructorType {
97947        match self {
97948            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_or_constructor_type(visitor, node),
97949            swc_visit::Either::Right(visitor) => {
97950                Fold::fold_ts_fn_or_constructor_type(visitor, node)
97951            }
97952        }
97953    }
97954
97955    #[inline]
97956    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
97957        match self {
97958            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_param(visitor, node),
97959            swc_visit::Either::Right(visitor) => Fold::fold_ts_fn_param(visitor, node),
97960        }
97961    }
97962
97963    #[inline]
97964    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
97965        match self {
97966            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_params(visitor, node),
97967            swc_visit::Either::Right(visitor) => Fold::fold_ts_fn_params(visitor, node),
97968        }
97969    }
97970
97971    #[inline]
97972    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
97973        match self {
97974            swc_visit::Either::Left(visitor) => Fold::fold_ts_fn_type(visitor, node),
97975            swc_visit::Either::Right(visitor) => Fold::fold_ts_fn_type(visitor, node),
97976        }
97977    }
97978
97979    #[inline]
97980    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
97981        match self {
97982            swc_visit::Either::Left(visitor) => Fold::fold_ts_getter_signature(visitor, node),
97983            swc_visit::Either::Right(visitor) => Fold::fold_ts_getter_signature(visitor, node),
97984        }
97985    }
97986
97987    #[inline]
97988    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
97989        match self {
97990            swc_visit::Either::Left(visitor) => Fold::fold_ts_import_equals_decl(visitor, node),
97991            swc_visit::Either::Right(visitor) => Fold::fold_ts_import_equals_decl(visitor, node),
97992        }
97993    }
97994
97995    #[inline]
97996    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
97997        match self {
97998            swc_visit::Either::Left(visitor) => Fold::fold_ts_import_type(visitor, node),
97999            swc_visit::Either::Right(visitor) => Fold::fold_ts_import_type(visitor, node),
98000        }
98001    }
98002
98003    #[inline]
98004    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
98005        match self {
98006            swc_visit::Either::Left(visitor) => Fold::fold_ts_index_signature(visitor, node),
98007            swc_visit::Either::Right(visitor) => Fold::fold_ts_index_signature(visitor, node),
98008        }
98009    }
98010
98011    #[inline]
98012    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
98013        match self {
98014            swc_visit::Either::Left(visitor) => Fold::fold_ts_indexed_access_type(visitor, node),
98015            swc_visit::Either::Right(visitor) => Fold::fold_ts_indexed_access_type(visitor, node),
98016        }
98017    }
98018
98019    #[inline]
98020    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
98021        match self {
98022            swc_visit::Either::Left(visitor) => Fold::fold_ts_infer_type(visitor, node),
98023            swc_visit::Either::Right(visitor) => Fold::fold_ts_infer_type(visitor, node),
98024        }
98025    }
98026
98027    #[inline]
98028    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
98029        match self {
98030            swc_visit::Either::Left(visitor) => Fold::fold_ts_instantiation(visitor, node),
98031            swc_visit::Either::Right(visitor) => Fold::fold_ts_instantiation(visitor, node),
98032        }
98033    }
98034
98035    #[inline]
98036    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
98037        match self {
98038            swc_visit::Either::Left(visitor) => Fold::fold_ts_interface_body(visitor, node),
98039            swc_visit::Either::Right(visitor) => Fold::fold_ts_interface_body(visitor, node),
98040        }
98041    }
98042
98043    #[inline]
98044    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
98045        match self {
98046            swc_visit::Either::Left(visitor) => Fold::fold_ts_interface_decl(visitor, node),
98047            swc_visit::Either::Right(visitor) => Fold::fold_ts_interface_decl(visitor, node),
98048        }
98049    }
98050
98051    #[inline]
98052    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
98053        match self {
98054            swc_visit::Either::Left(visitor) => Fold::fold_ts_intersection_type(visitor, node),
98055            swc_visit::Either::Right(visitor) => Fold::fold_ts_intersection_type(visitor, node),
98056        }
98057    }
98058
98059    #[inline]
98060    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
98061        match self {
98062            swc_visit::Either::Left(visitor) => Fold::fold_ts_keyword_type(visitor, node),
98063            swc_visit::Either::Right(visitor) => Fold::fold_ts_keyword_type(visitor, node),
98064        }
98065    }
98066
98067    #[inline]
98068    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
98069        match self {
98070            swc_visit::Either::Left(visitor) => Fold::fold_ts_keyword_type_kind(visitor, node),
98071            swc_visit::Either::Right(visitor) => Fold::fold_ts_keyword_type_kind(visitor, node),
98072        }
98073    }
98074
98075    #[inline]
98076    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
98077        match self {
98078            swc_visit::Either::Left(visitor) => Fold::fold_ts_lit(visitor, node),
98079            swc_visit::Either::Right(visitor) => Fold::fold_ts_lit(visitor, node),
98080        }
98081    }
98082
98083    #[inline]
98084    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
98085        match self {
98086            swc_visit::Either::Left(visitor) => Fold::fold_ts_lit_type(visitor, node),
98087            swc_visit::Either::Right(visitor) => Fold::fold_ts_lit_type(visitor, node),
98088        }
98089    }
98090
98091    #[inline]
98092    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
98093        match self {
98094            swc_visit::Either::Left(visitor) => Fold::fold_ts_mapped_type(visitor, node),
98095            swc_visit::Either::Right(visitor) => Fold::fold_ts_mapped_type(visitor, node),
98096        }
98097    }
98098
98099    #[inline]
98100    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
98101        match self {
98102            swc_visit::Either::Left(visitor) => Fold::fold_ts_method_signature(visitor, node),
98103            swc_visit::Either::Right(visitor) => Fold::fold_ts_method_signature(visitor, node),
98104        }
98105    }
98106
98107    #[inline]
98108    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
98109        match self {
98110            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_block(visitor, node),
98111            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_block(visitor, node),
98112        }
98113    }
98114
98115    #[inline]
98116    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
98117        match self {
98118            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_decl(visitor, node),
98119            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_decl(visitor, node),
98120        }
98121    }
98122
98123    #[inline]
98124    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
98125        match self {
98126            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_name(visitor, node),
98127            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_name(visitor, node),
98128        }
98129    }
98130
98131    #[inline]
98132    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
98133        match self {
98134            swc_visit::Either::Left(visitor) => Fold::fold_ts_module_ref(visitor, node),
98135            swc_visit::Either::Right(visitor) => Fold::fold_ts_module_ref(visitor, node),
98136        }
98137    }
98138
98139    #[inline]
98140    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
98141        match self {
98142            swc_visit::Either::Left(visitor) => Fold::fold_ts_namespace_body(visitor, node),
98143            swc_visit::Either::Right(visitor) => Fold::fold_ts_namespace_body(visitor, node),
98144        }
98145    }
98146
98147    #[inline]
98148    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
98149        match self {
98150            swc_visit::Either::Left(visitor) => Fold::fold_ts_namespace_decl(visitor, node),
98151            swc_visit::Either::Right(visitor) => Fold::fold_ts_namespace_decl(visitor, node),
98152        }
98153    }
98154
98155    #[inline]
98156    fn fold_ts_namespace_export_decl(
98157        &mut self,
98158        node: TsNamespaceExportDecl,
98159    ) -> TsNamespaceExportDecl {
98160        match self {
98161            swc_visit::Either::Left(visitor) => Fold::fold_ts_namespace_export_decl(visitor, node),
98162            swc_visit::Either::Right(visitor) => Fold::fold_ts_namespace_export_decl(visitor, node),
98163        }
98164    }
98165
98166    #[inline]
98167    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
98168        match self {
98169            swc_visit::Either::Left(visitor) => Fold::fold_ts_non_null_expr(visitor, node),
98170            swc_visit::Either::Right(visitor) => Fold::fold_ts_non_null_expr(visitor, node),
98171        }
98172    }
98173
98174    #[inline]
98175    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
98176        match self {
98177            swc_visit::Either::Left(visitor) => Fold::fold_ts_optional_type(visitor, node),
98178            swc_visit::Either::Right(visitor) => Fold::fold_ts_optional_type(visitor, node),
98179        }
98180    }
98181
98182    #[inline]
98183    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
98184        match self {
98185            swc_visit::Either::Left(visitor) => Fold::fold_ts_param_prop(visitor, node),
98186            swc_visit::Either::Right(visitor) => Fold::fold_ts_param_prop(visitor, node),
98187        }
98188    }
98189
98190    #[inline]
98191    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
98192        match self {
98193            swc_visit::Either::Left(visitor) => Fold::fold_ts_param_prop_param(visitor, node),
98194            swc_visit::Either::Right(visitor) => Fold::fold_ts_param_prop_param(visitor, node),
98195        }
98196    }
98197
98198    #[inline]
98199    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
98200        match self {
98201            swc_visit::Either::Left(visitor) => Fold::fold_ts_parenthesized_type(visitor, node),
98202            swc_visit::Either::Right(visitor) => Fold::fold_ts_parenthesized_type(visitor, node),
98203        }
98204    }
98205
98206    #[inline]
98207    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
98208        match self {
98209            swc_visit::Either::Left(visitor) => Fold::fold_ts_property_signature(visitor, node),
98210            swc_visit::Either::Right(visitor) => Fold::fold_ts_property_signature(visitor, node),
98211        }
98212    }
98213
98214    #[inline]
98215    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
98216        match self {
98217            swc_visit::Either::Left(visitor) => Fold::fold_ts_qualified_name(visitor, node),
98218            swc_visit::Either::Right(visitor) => Fold::fold_ts_qualified_name(visitor, node),
98219        }
98220    }
98221
98222    #[inline]
98223    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
98224        match self {
98225            swc_visit::Either::Left(visitor) => Fold::fold_ts_rest_type(visitor, node),
98226            swc_visit::Either::Right(visitor) => Fold::fold_ts_rest_type(visitor, node),
98227        }
98228    }
98229
98230    #[inline]
98231    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
98232        match self {
98233            swc_visit::Either::Left(visitor) => Fold::fold_ts_satisfies_expr(visitor, node),
98234            swc_visit::Either::Right(visitor) => Fold::fold_ts_satisfies_expr(visitor, node),
98235        }
98236    }
98237
98238    #[inline]
98239    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
98240        match self {
98241            swc_visit::Either::Left(visitor) => Fold::fold_ts_setter_signature(visitor, node),
98242            swc_visit::Either::Right(visitor) => Fold::fold_ts_setter_signature(visitor, node),
98243        }
98244    }
98245
98246    #[inline]
98247    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
98248        match self {
98249            swc_visit::Either::Left(visitor) => Fold::fold_ts_this_type(visitor, node),
98250            swc_visit::Either::Right(visitor) => Fold::fold_ts_this_type(visitor, node),
98251        }
98252    }
98253
98254    #[inline]
98255    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
98256        match self {
98257            swc_visit::Either::Left(visitor) => Fold::fold_ts_this_type_or_ident(visitor, node),
98258            swc_visit::Either::Right(visitor) => Fold::fold_ts_this_type_or_ident(visitor, node),
98259        }
98260    }
98261
98262    #[inline]
98263    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
98264        match self {
98265            swc_visit::Either::Left(visitor) => Fold::fold_ts_tpl_lit_type(visitor, node),
98266            swc_visit::Either::Right(visitor) => Fold::fold_ts_tpl_lit_type(visitor, node),
98267        }
98268    }
98269
98270    #[inline]
98271    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
98272        match self {
98273            swc_visit::Either::Left(visitor) => Fold::fold_ts_tuple_element(visitor, node),
98274            swc_visit::Either::Right(visitor) => Fold::fold_ts_tuple_element(visitor, node),
98275        }
98276    }
98277
98278    #[inline]
98279    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
98280        match self {
98281            swc_visit::Either::Left(visitor) => Fold::fold_ts_tuple_elements(visitor, node),
98282            swc_visit::Either::Right(visitor) => Fold::fold_ts_tuple_elements(visitor, node),
98283        }
98284    }
98285
98286    #[inline]
98287    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
98288        match self {
98289            swc_visit::Either::Left(visitor) => Fold::fold_ts_tuple_type(visitor, node),
98290            swc_visit::Either::Right(visitor) => Fold::fold_ts_tuple_type(visitor, node),
98291        }
98292    }
98293
98294    #[inline]
98295    fn fold_ts_type(&mut self, node: TsType) -> TsType {
98296        match self {
98297            swc_visit::Either::Left(visitor) => Fold::fold_ts_type(visitor, node),
98298            swc_visit::Either::Right(visitor) => Fold::fold_ts_type(visitor, node),
98299        }
98300    }
98301
98302    #[inline]
98303    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
98304        match self {
98305            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_alias_decl(visitor, node),
98306            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_alias_decl(visitor, node),
98307        }
98308    }
98309
98310    #[inline]
98311    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
98312        match self {
98313            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_ann(visitor, node),
98314            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_ann(visitor, node),
98315        }
98316    }
98317
98318    #[inline]
98319    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
98320        match self {
98321            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_assertion(visitor, node),
98322            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_assertion(visitor, node),
98323        }
98324    }
98325
98326    #[inline]
98327    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
98328        match self {
98329            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_element(visitor, node),
98330            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_element(visitor, node),
98331        }
98332    }
98333
98334    #[inline]
98335    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
98336        match self {
98337            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_elements(visitor, node),
98338            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_elements(visitor, node),
98339        }
98340    }
98341
98342    #[inline]
98343    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
98344        match self {
98345            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_lit(visitor, node),
98346            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_lit(visitor, node),
98347        }
98348    }
98349
98350    #[inline]
98351    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
98352        match self {
98353            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_operator(visitor, node),
98354            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_operator(visitor, node),
98355        }
98356    }
98357
98358    #[inline]
98359    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
98360        match self {
98361            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_operator_op(visitor, node),
98362            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_operator_op(visitor, node),
98363        }
98364    }
98365
98366    #[inline]
98367    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
98368        match self {
98369            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_param(visitor, node),
98370            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_param(visitor, node),
98371        }
98372    }
98373
98374    #[inline]
98375    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
98376        match self {
98377            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_param_decl(visitor, node),
98378            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_param_decl(visitor, node),
98379        }
98380    }
98381
98382    #[inline]
98383    fn fold_ts_type_param_instantiation(
98384        &mut self,
98385        node: TsTypeParamInstantiation,
98386    ) -> TsTypeParamInstantiation {
98387        match self {
98388            swc_visit::Either::Left(visitor) => {
98389                Fold::fold_ts_type_param_instantiation(visitor, node)
98390            }
98391            swc_visit::Either::Right(visitor) => {
98392                Fold::fold_ts_type_param_instantiation(visitor, node)
98393            }
98394        }
98395    }
98396
98397    #[inline]
98398    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
98399        match self {
98400            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_params(visitor, node),
98401            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_params(visitor, node),
98402        }
98403    }
98404
98405    #[inline]
98406    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
98407        match self {
98408            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_predicate(visitor, node),
98409            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_predicate(visitor, node),
98410        }
98411    }
98412
98413    #[inline]
98414    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
98415        match self {
98416            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_query(visitor, node),
98417            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_query(visitor, node),
98418        }
98419    }
98420
98421    #[inline]
98422    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
98423        match self {
98424            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_query_expr(visitor, node),
98425            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_query_expr(visitor, node),
98426        }
98427    }
98428
98429    #[inline]
98430    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
98431        match self {
98432            swc_visit::Either::Left(visitor) => Fold::fold_ts_type_ref(visitor, node),
98433            swc_visit::Either::Right(visitor) => Fold::fold_ts_type_ref(visitor, node),
98434        }
98435    }
98436
98437    #[inline]
98438    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
98439        match self {
98440            swc_visit::Either::Left(visitor) => Fold::fold_ts_types(visitor, node),
98441            swc_visit::Either::Right(visitor) => Fold::fold_ts_types(visitor, node),
98442        }
98443    }
98444
98445    #[inline]
98446    fn fold_ts_union_or_intersection_type(
98447        &mut self,
98448        node: TsUnionOrIntersectionType,
98449    ) -> TsUnionOrIntersectionType {
98450        match self {
98451            swc_visit::Either::Left(visitor) => {
98452                Fold::fold_ts_union_or_intersection_type(visitor, node)
98453            }
98454            swc_visit::Either::Right(visitor) => {
98455                Fold::fold_ts_union_or_intersection_type(visitor, node)
98456            }
98457        }
98458    }
98459
98460    #[inline]
98461    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
98462        match self {
98463            swc_visit::Either::Left(visitor) => Fold::fold_ts_union_type(visitor, node),
98464            swc_visit::Either::Right(visitor) => Fold::fold_ts_union_type(visitor, node),
98465        }
98466    }
98467
98468    #[inline]
98469    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
98470        match self {
98471            swc_visit::Either::Left(visitor) => Fold::fold_unary_expr(visitor, node),
98472            swc_visit::Either::Right(visitor) => Fold::fold_unary_expr(visitor, node),
98473        }
98474    }
98475
98476    #[inline]
98477    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
98478        match self {
98479            swc_visit::Either::Left(visitor) => Fold::fold_unary_op(visitor, node),
98480            swc_visit::Either::Right(visitor) => Fold::fold_unary_op(visitor, node),
98481        }
98482    }
98483
98484    #[inline]
98485    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
98486        match self {
98487            swc_visit::Either::Left(visitor) => Fold::fold_update_expr(visitor, node),
98488            swc_visit::Either::Right(visitor) => Fold::fold_update_expr(visitor, node),
98489        }
98490    }
98491
98492    #[inline]
98493    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
98494        match self {
98495            swc_visit::Either::Left(visitor) => Fold::fold_update_op(visitor, node),
98496            swc_visit::Either::Right(visitor) => Fold::fold_update_op(visitor, node),
98497        }
98498    }
98499
98500    #[inline]
98501    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
98502        match self {
98503            swc_visit::Either::Left(visitor) => Fold::fold_using_decl(visitor, node),
98504            swc_visit::Either::Right(visitor) => Fold::fold_using_decl(visitor, node),
98505        }
98506    }
98507
98508    #[inline]
98509    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
98510        match self {
98511            swc_visit::Either::Left(visitor) => Fold::fold_var_decl(visitor, node),
98512            swc_visit::Either::Right(visitor) => Fold::fold_var_decl(visitor, node),
98513        }
98514    }
98515
98516    #[inline]
98517    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
98518        match self {
98519            swc_visit::Either::Left(visitor) => Fold::fold_var_decl_kind(visitor, node),
98520            swc_visit::Either::Right(visitor) => Fold::fold_var_decl_kind(visitor, node),
98521        }
98522    }
98523
98524    #[inline]
98525    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
98526        match self {
98527            swc_visit::Either::Left(visitor) => Fold::fold_var_decl_or_expr(visitor, node),
98528            swc_visit::Either::Right(visitor) => Fold::fold_var_decl_or_expr(visitor, node),
98529        }
98530    }
98531
98532    #[inline]
98533    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
98534        match self {
98535            swc_visit::Either::Left(visitor) => Fold::fold_var_declarator(visitor, node),
98536            swc_visit::Either::Right(visitor) => Fold::fold_var_declarator(visitor, node),
98537        }
98538    }
98539
98540    #[inline]
98541    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
98542        match self {
98543            swc_visit::Either::Left(visitor) => Fold::fold_var_declarators(visitor, node),
98544            swc_visit::Either::Right(visitor) => Fold::fold_var_declarators(visitor, node),
98545        }
98546    }
98547
98548    #[inline]
98549    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
98550        match self {
98551            swc_visit::Either::Left(visitor) => Fold::fold_while_stmt(visitor, node),
98552            swc_visit::Either::Right(visitor) => Fold::fold_while_stmt(visitor, node),
98553        }
98554    }
98555
98556    #[inline]
98557    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
98558        match self {
98559            swc_visit::Either::Left(visitor) => Fold::fold_with_stmt(visitor, node),
98560            swc_visit::Either::Right(visitor) => Fold::fold_with_stmt(visitor, node),
98561        }
98562    }
98563
98564    #[inline]
98565    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
98566        match self {
98567            swc_visit::Either::Left(visitor) => Fold::fold_yield_expr(visitor, node),
98568            swc_visit::Either::Right(visitor) => Fold::fold_yield_expr(visitor, node),
98569        }
98570    }
98571}
98572impl<V> Fold for ::swc_visit::Optional<V>
98573where
98574    V: Fold,
98575{
98576    #[inline]
98577    fn fold_accessibility(&mut self, node: Accessibility) -> Accessibility {
98578        if self.enabled {
98579            <V as Fold>::fold_accessibility(&mut self.visitor, node)
98580        } else {
98581            node
98582        }
98583    }
98584
98585    #[inline]
98586    fn fold_array_lit(&mut self, node: ArrayLit) -> ArrayLit {
98587        if self.enabled {
98588            <V as Fold>::fold_array_lit(&mut self.visitor, node)
98589        } else {
98590            node
98591        }
98592    }
98593
98594    #[inline]
98595    fn fold_array_pat(&mut self, node: ArrayPat) -> ArrayPat {
98596        if self.enabled {
98597            <V as Fold>::fold_array_pat(&mut self.visitor, node)
98598        } else {
98599            node
98600        }
98601    }
98602
98603    #[inline]
98604    fn fold_arrow_expr(&mut self, node: ArrowExpr) -> ArrowExpr {
98605        if self.enabled {
98606            <V as Fold>::fold_arrow_expr(&mut self.visitor, node)
98607        } else {
98608            node
98609        }
98610    }
98611
98612    #[inline]
98613    fn fold_assign_expr(&mut self, node: AssignExpr) -> AssignExpr {
98614        if self.enabled {
98615            <V as Fold>::fold_assign_expr(&mut self.visitor, node)
98616        } else {
98617            node
98618        }
98619    }
98620
98621    #[inline]
98622    fn fold_assign_op(&mut self, node: AssignOp) -> AssignOp {
98623        if self.enabled {
98624            <V as Fold>::fold_assign_op(&mut self.visitor, node)
98625        } else {
98626            node
98627        }
98628    }
98629
98630    #[inline]
98631    fn fold_assign_pat(&mut self, node: AssignPat) -> AssignPat {
98632        if self.enabled {
98633            <V as Fold>::fold_assign_pat(&mut self.visitor, node)
98634        } else {
98635            node
98636        }
98637    }
98638
98639    #[inline]
98640    fn fold_assign_pat_prop(&mut self, node: AssignPatProp) -> AssignPatProp {
98641        if self.enabled {
98642            <V as Fold>::fold_assign_pat_prop(&mut self.visitor, node)
98643        } else {
98644            node
98645        }
98646    }
98647
98648    #[inline]
98649    fn fold_assign_prop(&mut self, node: AssignProp) -> AssignProp {
98650        if self.enabled {
98651            <V as Fold>::fold_assign_prop(&mut self.visitor, node)
98652        } else {
98653            node
98654        }
98655    }
98656
98657    #[inline]
98658    fn fold_assign_target(&mut self, node: AssignTarget) -> AssignTarget {
98659        if self.enabled {
98660            <V as Fold>::fold_assign_target(&mut self.visitor, node)
98661        } else {
98662            node
98663        }
98664    }
98665
98666    #[inline]
98667    fn fold_assign_target_pat(&mut self, node: AssignTargetPat) -> AssignTargetPat {
98668        if self.enabled {
98669            <V as Fold>::fold_assign_target_pat(&mut self.visitor, node)
98670        } else {
98671            node
98672        }
98673    }
98674
98675    #[inline]
98676    fn fold_atom(&mut self, node: swc_atoms::Atom) -> swc_atoms::Atom {
98677        if self.enabled {
98678            <V as Fold>::fold_atom(&mut self.visitor, node)
98679        } else {
98680            node
98681        }
98682    }
98683
98684    #[inline]
98685    fn fold_auto_accessor(&mut self, node: AutoAccessor) -> AutoAccessor {
98686        if self.enabled {
98687            <V as Fold>::fold_auto_accessor(&mut self.visitor, node)
98688        } else {
98689            node
98690        }
98691    }
98692
98693    #[inline]
98694    fn fold_await_expr(&mut self, node: AwaitExpr) -> AwaitExpr {
98695        if self.enabled {
98696            <V as Fold>::fold_await_expr(&mut self.visitor, node)
98697        } else {
98698            node
98699        }
98700    }
98701
98702    #[inline]
98703    fn fold_big_int(&mut self, node: BigInt) -> BigInt {
98704        if self.enabled {
98705            <V as Fold>::fold_big_int(&mut self.visitor, node)
98706        } else {
98707            node
98708        }
98709    }
98710
98711    #[inline]
98712    fn fold_big_int_value(&mut self, node: BigIntValue) -> BigIntValue {
98713        if self.enabled {
98714            <V as Fold>::fold_big_int_value(&mut self.visitor, node)
98715        } else {
98716            node
98717        }
98718    }
98719
98720    #[inline]
98721    fn fold_bin_expr(&mut self, node: BinExpr) -> BinExpr {
98722        if self.enabled {
98723            <V as Fold>::fold_bin_expr(&mut self.visitor, node)
98724        } else {
98725            node
98726        }
98727    }
98728
98729    #[inline]
98730    fn fold_binary_op(&mut self, node: BinaryOp) -> BinaryOp {
98731        if self.enabled {
98732            <V as Fold>::fold_binary_op(&mut self.visitor, node)
98733        } else {
98734            node
98735        }
98736    }
98737
98738    #[inline]
98739    fn fold_binding_ident(&mut self, node: BindingIdent) -> BindingIdent {
98740        if self.enabled {
98741            <V as Fold>::fold_binding_ident(&mut self.visitor, node)
98742        } else {
98743            node
98744        }
98745    }
98746
98747    #[inline]
98748    fn fold_block_stmt(&mut self, node: BlockStmt) -> BlockStmt {
98749        if self.enabled {
98750            <V as Fold>::fold_block_stmt(&mut self.visitor, node)
98751        } else {
98752            node
98753        }
98754    }
98755
98756    #[inline]
98757    fn fold_block_stmt_or_expr(&mut self, node: BlockStmtOrExpr) -> BlockStmtOrExpr {
98758        if self.enabled {
98759            <V as Fold>::fold_block_stmt_or_expr(&mut self.visitor, node)
98760        } else {
98761            node
98762        }
98763    }
98764
98765    #[inline]
98766    fn fold_bool(&mut self, node: Bool) -> Bool {
98767        if self.enabled {
98768            <V as Fold>::fold_bool(&mut self.visitor, node)
98769        } else {
98770            node
98771        }
98772    }
98773
98774    #[inline]
98775    fn fold_break_stmt(&mut self, node: BreakStmt) -> BreakStmt {
98776        if self.enabled {
98777            <V as Fold>::fold_break_stmt(&mut self.visitor, node)
98778        } else {
98779            node
98780        }
98781    }
98782
98783    #[inline]
98784    fn fold_call_expr(&mut self, node: CallExpr) -> CallExpr {
98785        if self.enabled {
98786            <V as Fold>::fold_call_expr(&mut self.visitor, node)
98787        } else {
98788            node
98789        }
98790    }
98791
98792    #[inline]
98793    fn fold_callee(&mut self, node: Callee) -> Callee {
98794        if self.enabled {
98795            <V as Fold>::fold_callee(&mut self.visitor, node)
98796        } else {
98797            node
98798        }
98799    }
98800
98801    #[inline]
98802    fn fold_catch_clause(&mut self, node: CatchClause) -> CatchClause {
98803        if self.enabled {
98804            <V as Fold>::fold_catch_clause(&mut self.visitor, node)
98805        } else {
98806            node
98807        }
98808    }
98809
98810    #[inline]
98811    fn fold_class(&mut self, node: Class) -> Class {
98812        if self.enabled {
98813            <V as Fold>::fold_class(&mut self.visitor, node)
98814        } else {
98815            node
98816        }
98817    }
98818
98819    #[inline]
98820    fn fold_class_decl(&mut self, node: ClassDecl) -> ClassDecl {
98821        if self.enabled {
98822            <V as Fold>::fold_class_decl(&mut self.visitor, node)
98823        } else {
98824            node
98825        }
98826    }
98827
98828    #[inline]
98829    fn fold_class_expr(&mut self, node: ClassExpr) -> ClassExpr {
98830        if self.enabled {
98831            <V as Fold>::fold_class_expr(&mut self.visitor, node)
98832        } else {
98833            node
98834        }
98835    }
98836
98837    #[inline]
98838    fn fold_class_member(&mut self, node: ClassMember) -> ClassMember {
98839        if self.enabled {
98840            <V as Fold>::fold_class_member(&mut self.visitor, node)
98841        } else {
98842            node
98843        }
98844    }
98845
98846    #[inline]
98847    fn fold_class_members(&mut self, node: Vec<ClassMember>) -> Vec<ClassMember> {
98848        if self.enabled {
98849            <V as Fold>::fold_class_members(&mut self.visitor, node)
98850        } else {
98851            node
98852        }
98853    }
98854
98855    #[inline]
98856    fn fold_class_method(&mut self, node: ClassMethod) -> ClassMethod {
98857        if self.enabled {
98858            <V as Fold>::fold_class_method(&mut self.visitor, node)
98859        } else {
98860            node
98861        }
98862    }
98863
98864    #[inline]
98865    fn fold_class_prop(&mut self, node: ClassProp) -> ClassProp {
98866        if self.enabled {
98867            <V as Fold>::fold_class_prop(&mut self.visitor, node)
98868        } else {
98869            node
98870        }
98871    }
98872
98873    #[inline]
98874    fn fold_computed_prop_name(&mut self, node: ComputedPropName) -> ComputedPropName {
98875        if self.enabled {
98876            <V as Fold>::fold_computed_prop_name(&mut self.visitor, node)
98877        } else {
98878            node
98879        }
98880    }
98881
98882    #[inline]
98883    fn fold_cond_expr(&mut self, node: CondExpr) -> CondExpr {
98884        if self.enabled {
98885            <V as Fold>::fold_cond_expr(&mut self.visitor, node)
98886        } else {
98887            node
98888        }
98889    }
98890
98891    #[inline]
98892    fn fold_constructor(&mut self, node: Constructor) -> Constructor {
98893        if self.enabled {
98894            <V as Fold>::fold_constructor(&mut self.visitor, node)
98895        } else {
98896            node
98897        }
98898    }
98899
98900    #[inline]
98901    fn fold_continue_stmt(&mut self, node: ContinueStmt) -> ContinueStmt {
98902        if self.enabled {
98903            <V as Fold>::fold_continue_stmt(&mut self.visitor, node)
98904        } else {
98905            node
98906        }
98907    }
98908
98909    #[inline]
98910    fn fold_debugger_stmt(&mut self, node: DebuggerStmt) -> DebuggerStmt {
98911        if self.enabled {
98912            <V as Fold>::fold_debugger_stmt(&mut self.visitor, node)
98913        } else {
98914            node
98915        }
98916    }
98917
98918    #[inline]
98919    fn fold_decl(&mut self, node: Decl) -> Decl {
98920        if self.enabled {
98921            <V as Fold>::fold_decl(&mut self.visitor, node)
98922        } else {
98923            node
98924        }
98925    }
98926
98927    #[inline]
98928    fn fold_decorator(&mut self, node: Decorator) -> Decorator {
98929        if self.enabled {
98930            <V as Fold>::fold_decorator(&mut self.visitor, node)
98931        } else {
98932            node
98933        }
98934    }
98935
98936    #[inline]
98937    fn fold_decorators(&mut self, node: Vec<Decorator>) -> Vec<Decorator> {
98938        if self.enabled {
98939            <V as Fold>::fold_decorators(&mut self.visitor, node)
98940        } else {
98941            node
98942        }
98943    }
98944
98945    #[inline]
98946    fn fold_default_decl(&mut self, node: DefaultDecl) -> DefaultDecl {
98947        if self.enabled {
98948            <V as Fold>::fold_default_decl(&mut self.visitor, node)
98949        } else {
98950            node
98951        }
98952    }
98953
98954    #[inline]
98955    fn fold_do_while_stmt(&mut self, node: DoWhileStmt) -> DoWhileStmt {
98956        if self.enabled {
98957            <V as Fold>::fold_do_while_stmt(&mut self.visitor, node)
98958        } else {
98959            node
98960        }
98961    }
98962
98963    #[inline]
98964    fn fold_empty_stmt(&mut self, node: EmptyStmt) -> EmptyStmt {
98965        if self.enabled {
98966            <V as Fold>::fold_empty_stmt(&mut self.visitor, node)
98967        } else {
98968            node
98969        }
98970    }
98971
98972    #[inline]
98973    fn fold_export_all(&mut self, node: ExportAll) -> ExportAll {
98974        if self.enabled {
98975            <V as Fold>::fold_export_all(&mut self.visitor, node)
98976        } else {
98977            node
98978        }
98979    }
98980
98981    #[inline]
98982    fn fold_export_decl(&mut self, node: ExportDecl) -> ExportDecl {
98983        if self.enabled {
98984            <V as Fold>::fold_export_decl(&mut self.visitor, node)
98985        } else {
98986            node
98987        }
98988    }
98989
98990    #[inline]
98991    fn fold_export_default_decl(&mut self, node: ExportDefaultDecl) -> ExportDefaultDecl {
98992        if self.enabled {
98993            <V as Fold>::fold_export_default_decl(&mut self.visitor, node)
98994        } else {
98995            node
98996        }
98997    }
98998
98999    #[inline]
99000    fn fold_export_default_expr(&mut self, node: ExportDefaultExpr) -> ExportDefaultExpr {
99001        if self.enabled {
99002            <V as Fold>::fold_export_default_expr(&mut self.visitor, node)
99003        } else {
99004            node
99005        }
99006    }
99007
99008    #[inline]
99009    fn fold_export_default_specifier(
99010        &mut self,
99011        node: ExportDefaultSpecifier,
99012    ) -> ExportDefaultSpecifier {
99013        if self.enabled {
99014            <V as Fold>::fold_export_default_specifier(&mut self.visitor, node)
99015        } else {
99016            node
99017        }
99018    }
99019
99020    #[inline]
99021    fn fold_export_named_specifier(&mut self, node: ExportNamedSpecifier) -> ExportNamedSpecifier {
99022        if self.enabled {
99023            <V as Fold>::fold_export_named_specifier(&mut self.visitor, node)
99024        } else {
99025            node
99026        }
99027    }
99028
99029    #[inline]
99030    fn fold_export_namespace_specifier(
99031        &mut self,
99032        node: ExportNamespaceSpecifier,
99033    ) -> ExportNamespaceSpecifier {
99034        if self.enabled {
99035            <V as Fold>::fold_export_namespace_specifier(&mut self.visitor, node)
99036        } else {
99037            node
99038        }
99039    }
99040
99041    #[inline]
99042    fn fold_export_specifier(&mut self, node: ExportSpecifier) -> ExportSpecifier {
99043        if self.enabled {
99044            <V as Fold>::fold_export_specifier(&mut self.visitor, node)
99045        } else {
99046            node
99047        }
99048    }
99049
99050    #[inline]
99051    fn fold_export_specifiers(&mut self, node: Vec<ExportSpecifier>) -> Vec<ExportSpecifier> {
99052        if self.enabled {
99053            <V as Fold>::fold_export_specifiers(&mut self.visitor, node)
99054        } else {
99055            node
99056        }
99057    }
99058
99059    #[inline]
99060    fn fold_expr(&mut self, node: Expr) -> Expr {
99061        if self.enabled {
99062            <V as Fold>::fold_expr(&mut self.visitor, node)
99063        } else {
99064            node
99065        }
99066    }
99067
99068    #[inline]
99069    fn fold_expr_or_spread(&mut self, node: ExprOrSpread) -> ExprOrSpread {
99070        if self.enabled {
99071            <V as Fold>::fold_expr_or_spread(&mut self.visitor, node)
99072        } else {
99073            node
99074        }
99075    }
99076
99077    #[inline]
99078    fn fold_expr_or_spreads(&mut self, node: Vec<ExprOrSpread>) -> Vec<ExprOrSpread> {
99079        if self.enabled {
99080            <V as Fold>::fold_expr_or_spreads(&mut self.visitor, node)
99081        } else {
99082            node
99083        }
99084    }
99085
99086    #[inline]
99087    fn fold_expr_stmt(&mut self, node: ExprStmt) -> ExprStmt {
99088        if self.enabled {
99089            <V as Fold>::fold_expr_stmt(&mut self.visitor, node)
99090        } else {
99091            node
99092        }
99093    }
99094
99095    #[inline]
99096    fn fold_exprs(&mut self, node: Vec<Box<Expr>>) -> Vec<Box<Expr>> {
99097        if self.enabled {
99098            <V as Fold>::fold_exprs(&mut self.visitor, node)
99099        } else {
99100            node
99101        }
99102    }
99103
99104    #[inline]
99105    fn fold_fn_decl(&mut self, node: FnDecl) -> FnDecl {
99106        if self.enabled {
99107            <V as Fold>::fold_fn_decl(&mut self.visitor, node)
99108        } else {
99109            node
99110        }
99111    }
99112
99113    #[inline]
99114    fn fold_fn_expr(&mut self, node: FnExpr) -> FnExpr {
99115        if self.enabled {
99116            <V as Fold>::fold_fn_expr(&mut self.visitor, node)
99117        } else {
99118            node
99119        }
99120    }
99121
99122    #[inline]
99123    fn fold_for_head(&mut self, node: ForHead) -> ForHead {
99124        if self.enabled {
99125            <V as Fold>::fold_for_head(&mut self.visitor, node)
99126        } else {
99127            node
99128        }
99129    }
99130
99131    #[inline]
99132    fn fold_for_in_stmt(&mut self, node: ForInStmt) -> ForInStmt {
99133        if self.enabled {
99134            <V as Fold>::fold_for_in_stmt(&mut self.visitor, node)
99135        } else {
99136            node
99137        }
99138    }
99139
99140    #[inline]
99141    fn fold_for_of_stmt(&mut self, node: ForOfStmt) -> ForOfStmt {
99142        if self.enabled {
99143            <V as Fold>::fold_for_of_stmt(&mut self.visitor, node)
99144        } else {
99145            node
99146        }
99147    }
99148
99149    #[inline]
99150    fn fold_for_stmt(&mut self, node: ForStmt) -> ForStmt {
99151        if self.enabled {
99152            <V as Fold>::fold_for_stmt(&mut self.visitor, node)
99153        } else {
99154            node
99155        }
99156    }
99157
99158    #[inline]
99159    fn fold_function(&mut self, node: Function) -> Function {
99160        if self.enabled {
99161            <V as Fold>::fold_function(&mut self.visitor, node)
99162        } else {
99163            node
99164        }
99165    }
99166
99167    #[inline]
99168    fn fold_getter_prop(&mut self, node: GetterProp) -> GetterProp {
99169        if self.enabled {
99170            <V as Fold>::fold_getter_prop(&mut self.visitor, node)
99171        } else {
99172            node
99173        }
99174    }
99175
99176    #[inline]
99177    fn fold_ident(&mut self, node: Ident) -> Ident {
99178        if self.enabled {
99179            <V as Fold>::fold_ident(&mut self.visitor, node)
99180        } else {
99181            node
99182        }
99183    }
99184
99185    #[inline]
99186    fn fold_ident_name(&mut self, node: IdentName) -> IdentName {
99187        if self.enabled {
99188            <V as Fold>::fold_ident_name(&mut self.visitor, node)
99189        } else {
99190            node
99191        }
99192    }
99193
99194    #[inline]
99195    fn fold_if_stmt(&mut self, node: IfStmt) -> IfStmt {
99196        if self.enabled {
99197            <V as Fold>::fold_if_stmt(&mut self.visitor, node)
99198        } else {
99199            node
99200        }
99201    }
99202
99203    #[inline]
99204    fn fold_import(&mut self, node: Import) -> Import {
99205        if self.enabled {
99206            <V as Fold>::fold_import(&mut self.visitor, node)
99207        } else {
99208            node
99209        }
99210    }
99211
99212    #[inline]
99213    fn fold_import_decl(&mut self, node: ImportDecl) -> ImportDecl {
99214        if self.enabled {
99215            <V as Fold>::fold_import_decl(&mut self.visitor, node)
99216        } else {
99217            node
99218        }
99219    }
99220
99221    #[inline]
99222    fn fold_import_default_specifier(
99223        &mut self,
99224        node: ImportDefaultSpecifier,
99225    ) -> ImportDefaultSpecifier {
99226        if self.enabled {
99227            <V as Fold>::fold_import_default_specifier(&mut self.visitor, node)
99228        } else {
99229            node
99230        }
99231    }
99232
99233    #[inline]
99234    fn fold_import_named_specifier(&mut self, node: ImportNamedSpecifier) -> ImportNamedSpecifier {
99235        if self.enabled {
99236            <V as Fold>::fold_import_named_specifier(&mut self.visitor, node)
99237        } else {
99238            node
99239        }
99240    }
99241
99242    #[inline]
99243    fn fold_import_phase(&mut self, node: ImportPhase) -> ImportPhase {
99244        if self.enabled {
99245            <V as Fold>::fold_import_phase(&mut self.visitor, node)
99246        } else {
99247            node
99248        }
99249    }
99250
99251    #[inline]
99252    fn fold_import_specifier(&mut self, node: ImportSpecifier) -> ImportSpecifier {
99253        if self.enabled {
99254            <V as Fold>::fold_import_specifier(&mut self.visitor, node)
99255        } else {
99256            node
99257        }
99258    }
99259
99260    #[inline]
99261    fn fold_import_specifiers(&mut self, node: Vec<ImportSpecifier>) -> Vec<ImportSpecifier> {
99262        if self.enabled {
99263            <V as Fold>::fold_import_specifiers(&mut self.visitor, node)
99264        } else {
99265            node
99266        }
99267    }
99268
99269    #[inline]
99270    fn fold_import_star_as_specifier(
99271        &mut self,
99272        node: ImportStarAsSpecifier,
99273    ) -> ImportStarAsSpecifier {
99274        if self.enabled {
99275            <V as Fold>::fold_import_star_as_specifier(&mut self.visitor, node)
99276        } else {
99277            node
99278        }
99279    }
99280
99281    #[inline]
99282    fn fold_import_with(&mut self, node: ImportWith) -> ImportWith {
99283        if self.enabled {
99284            <V as Fold>::fold_import_with(&mut self.visitor, node)
99285        } else {
99286            node
99287        }
99288    }
99289
99290    #[inline]
99291    fn fold_import_with_item(&mut self, node: ImportWithItem) -> ImportWithItem {
99292        if self.enabled {
99293            <V as Fold>::fold_import_with_item(&mut self.visitor, node)
99294        } else {
99295            node
99296        }
99297    }
99298
99299    #[inline]
99300    fn fold_import_with_items(&mut self, node: Vec<ImportWithItem>) -> Vec<ImportWithItem> {
99301        if self.enabled {
99302            <V as Fold>::fold_import_with_items(&mut self.visitor, node)
99303        } else {
99304            node
99305        }
99306    }
99307
99308    #[inline]
99309    fn fold_invalid(&mut self, node: Invalid) -> Invalid {
99310        if self.enabled {
99311            <V as Fold>::fold_invalid(&mut self.visitor, node)
99312        } else {
99313            node
99314        }
99315    }
99316
99317    #[inline]
99318    fn fold_jsx_attr(&mut self, node: JSXAttr) -> JSXAttr {
99319        if self.enabled {
99320            <V as Fold>::fold_jsx_attr(&mut self.visitor, node)
99321        } else {
99322            node
99323        }
99324    }
99325
99326    #[inline]
99327    fn fold_jsx_attr_name(&mut self, node: JSXAttrName) -> JSXAttrName {
99328        if self.enabled {
99329            <V as Fold>::fold_jsx_attr_name(&mut self.visitor, node)
99330        } else {
99331            node
99332        }
99333    }
99334
99335    #[inline]
99336    fn fold_jsx_attr_or_spread(&mut self, node: JSXAttrOrSpread) -> JSXAttrOrSpread {
99337        if self.enabled {
99338            <V as Fold>::fold_jsx_attr_or_spread(&mut self.visitor, node)
99339        } else {
99340            node
99341        }
99342    }
99343
99344    #[inline]
99345    fn fold_jsx_attr_or_spreads(&mut self, node: Vec<JSXAttrOrSpread>) -> Vec<JSXAttrOrSpread> {
99346        if self.enabled {
99347            <V as Fold>::fold_jsx_attr_or_spreads(&mut self.visitor, node)
99348        } else {
99349            node
99350        }
99351    }
99352
99353    #[inline]
99354    fn fold_jsx_attr_value(&mut self, node: JSXAttrValue) -> JSXAttrValue {
99355        if self.enabled {
99356            <V as Fold>::fold_jsx_attr_value(&mut self.visitor, node)
99357        } else {
99358            node
99359        }
99360    }
99361
99362    #[inline]
99363    fn fold_jsx_closing_element(&mut self, node: JSXClosingElement) -> JSXClosingElement {
99364        if self.enabled {
99365            <V as Fold>::fold_jsx_closing_element(&mut self.visitor, node)
99366        } else {
99367            node
99368        }
99369    }
99370
99371    #[inline]
99372    fn fold_jsx_closing_fragment(&mut self, node: JSXClosingFragment) -> JSXClosingFragment {
99373        if self.enabled {
99374            <V as Fold>::fold_jsx_closing_fragment(&mut self.visitor, node)
99375        } else {
99376            node
99377        }
99378    }
99379
99380    #[inline]
99381    fn fold_jsx_element(&mut self, node: JSXElement) -> JSXElement {
99382        if self.enabled {
99383            <V as Fold>::fold_jsx_element(&mut self.visitor, node)
99384        } else {
99385            node
99386        }
99387    }
99388
99389    #[inline]
99390    fn fold_jsx_element_child(&mut self, node: JSXElementChild) -> JSXElementChild {
99391        if self.enabled {
99392            <V as Fold>::fold_jsx_element_child(&mut self.visitor, node)
99393        } else {
99394            node
99395        }
99396    }
99397
99398    #[inline]
99399    fn fold_jsx_element_childs(&mut self, node: Vec<JSXElementChild>) -> Vec<JSXElementChild> {
99400        if self.enabled {
99401            <V as Fold>::fold_jsx_element_childs(&mut self.visitor, node)
99402        } else {
99403            node
99404        }
99405    }
99406
99407    #[inline]
99408    fn fold_jsx_element_name(&mut self, node: JSXElementName) -> JSXElementName {
99409        if self.enabled {
99410            <V as Fold>::fold_jsx_element_name(&mut self.visitor, node)
99411        } else {
99412            node
99413        }
99414    }
99415
99416    #[inline]
99417    fn fold_jsx_empty_expr(&mut self, node: JSXEmptyExpr) -> JSXEmptyExpr {
99418        if self.enabled {
99419            <V as Fold>::fold_jsx_empty_expr(&mut self.visitor, node)
99420        } else {
99421            node
99422        }
99423    }
99424
99425    #[inline]
99426    fn fold_jsx_expr(&mut self, node: JSXExpr) -> JSXExpr {
99427        if self.enabled {
99428            <V as Fold>::fold_jsx_expr(&mut self.visitor, node)
99429        } else {
99430            node
99431        }
99432    }
99433
99434    #[inline]
99435    fn fold_jsx_expr_container(&mut self, node: JSXExprContainer) -> JSXExprContainer {
99436        if self.enabled {
99437            <V as Fold>::fold_jsx_expr_container(&mut self.visitor, node)
99438        } else {
99439            node
99440        }
99441    }
99442
99443    #[inline]
99444    fn fold_jsx_fragment(&mut self, node: JSXFragment) -> JSXFragment {
99445        if self.enabled {
99446            <V as Fold>::fold_jsx_fragment(&mut self.visitor, node)
99447        } else {
99448            node
99449        }
99450    }
99451
99452    #[inline]
99453    fn fold_jsx_member_expr(&mut self, node: JSXMemberExpr) -> JSXMemberExpr {
99454        if self.enabled {
99455            <V as Fold>::fold_jsx_member_expr(&mut self.visitor, node)
99456        } else {
99457            node
99458        }
99459    }
99460
99461    #[inline]
99462    fn fold_jsx_namespaced_name(&mut self, node: JSXNamespacedName) -> JSXNamespacedName {
99463        if self.enabled {
99464            <V as Fold>::fold_jsx_namespaced_name(&mut self.visitor, node)
99465        } else {
99466            node
99467        }
99468    }
99469
99470    #[inline]
99471    fn fold_jsx_object(&mut self, node: JSXObject) -> JSXObject {
99472        if self.enabled {
99473            <V as Fold>::fold_jsx_object(&mut self.visitor, node)
99474        } else {
99475            node
99476        }
99477    }
99478
99479    #[inline]
99480    fn fold_jsx_opening_element(&mut self, node: JSXOpeningElement) -> JSXOpeningElement {
99481        if self.enabled {
99482            <V as Fold>::fold_jsx_opening_element(&mut self.visitor, node)
99483        } else {
99484            node
99485        }
99486    }
99487
99488    #[inline]
99489    fn fold_jsx_opening_fragment(&mut self, node: JSXOpeningFragment) -> JSXOpeningFragment {
99490        if self.enabled {
99491            <V as Fold>::fold_jsx_opening_fragment(&mut self.visitor, node)
99492        } else {
99493            node
99494        }
99495    }
99496
99497    #[inline]
99498    fn fold_jsx_spread_child(&mut self, node: JSXSpreadChild) -> JSXSpreadChild {
99499        if self.enabled {
99500            <V as Fold>::fold_jsx_spread_child(&mut self.visitor, node)
99501        } else {
99502            node
99503        }
99504    }
99505
99506    #[inline]
99507    fn fold_jsx_text(&mut self, node: JSXText) -> JSXText {
99508        if self.enabled {
99509            <V as Fold>::fold_jsx_text(&mut self.visitor, node)
99510        } else {
99511            node
99512        }
99513    }
99514
99515    #[inline]
99516    fn fold_key(&mut self, node: Key) -> Key {
99517        if self.enabled {
99518            <V as Fold>::fold_key(&mut self.visitor, node)
99519        } else {
99520            node
99521        }
99522    }
99523
99524    #[inline]
99525    fn fold_key_value_pat_prop(&mut self, node: KeyValuePatProp) -> KeyValuePatProp {
99526        if self.enabled {
99527            <V as Fold>::fold_key_value_pat_prop(&mut self.visitor, node)
99528        } else {
99529            node
99530        }
99531    }
99532
99533    #[inline]
99534    fn fold_key_value_prop(&mut self, node: KeyValueProp) -> KeyValueProp {
99535        if self.enabled {
99536            <V as Fold>::fold_key_value_prop(&mut self.visitor, node)
99537        } else {
99538            node
99539        }
99540    }
99541
99542    #[inline]
99543    fn fold_labeled_stmt(&mut self, node: LabeledStmt) -> LabeledStmt {
99544        if self.enabled {
99545            <V as Fold>::fold_labeled_stmt(&mut self.visitor, node)
99546        } else {
99547            node
99548        }
99549    }
99550
99551    #[inline]
99552    fn fold_lit(&mut self, node: Lit) -> Lit {
99553        if self.enabled {
99554            <V as Fold>::fold_lit(&mut self.visitor, node)
99555        } else {
99556            node
99557        }
99558    }
99559
99560    #[inline]
99561    fn fold_member_expr(&mut self, node: MemberExpr) -> MemberExpr {
99562        if self.enabled {
99563            <V as Fold>::fold_member_expr(&mut self.visitor, node)
99564        } else {
99565            node
99566        }
99567    }
99568
99569    #[inline]
99570    fn fold_member_prop(&mut self, node: MemberProp) -> MemberProp {
99571        if self.enabled {
99572            <V as Fold>::fold_member_prop(&mut self.visitor, node)
99573        } else {
99574            node
99575        }
99576    }
99577
99578    #[inline]
99579    fn fold_meta_prop_expr(&mut self, node: MetaPropExpr) -> MetaPropExpr {
99580        if self.enabled {
99581            <V as Fold>::fold_meta_prop_expr(&mut self.visitor, node)
99582        } else {
99583            node
99584        }
99585    }
99586
99587    #[inline]
99588    fn fold_meta_prop_kind(&mut self, node: MetaPropKind) -> MetaPropKind {
99589        if self.enabled {
99590            <V as Fold>::fold_meta_prop_kind(&mut self.visitor, node)
99591        } else {
99592            node
99593        }
99594    }
99595
99596    #[inline]
99597    fn fold_method_kind(&mut self, node: MethodKind) -> MethodKind {
99598        if self.enabled {
99599            <V as Fold>::fold_method_kind(&mut self.visitor, node)
99600        } else {
99601            node
99602        }
99603    }
99604
99605    #[inline]
99606    fn fold_method_prop(&mut self, node: MethodProp) -> MethodProp {
99607        if self.enabled {
99608            <V as Fold>::fold_method_prop(&mut self.visitor, node)
99609        } else {
99610            node
99611        }
99612    }
99613
99614    #[inline]
99615    fn fold_module(&mut self, node: Module) -> Module {
99616        if self.enabled {
99617            <V as Fold>::fold_module(&mut self.visitor, node)
99618        } else {
99619            node
99620        }
99621    }
99622
99623    #[inline]
99624    fn fold_module_decl(&mut self, node: ModuleDecl) -> ModuleDecl {
99625        if self.enabled {
99626            <V as Fold>::fold_module_decl(&mut self.visitor, node)
99627        } else {
99628            node
99629        }
99630    }
99631
99632    #[inline]
99633    fn fold_module_export_name(&mut self, node: ModuleExportName) -> ModuleExportName {
99634        if self.enabled {
99635            <V as Fold>::fold_module_export_name(&mut self.visitor, node)
99636        } else {
99637            node
99638        }
99639    }
99640
99641    #[inline]
99642    fn fold_module_item(&mut self, node: ModuleItem) -> ModuleItem {
99643        if self.enabled {
99644            <V as Fold>::fold_module_item(&mut self.visitor, node)
99645        } else {
99646            node
99647        }
99648    }
99649
99650    #[inline]
99651    fn fold_module_items(&mut self, node: Vec<ModuleItem>) -> Vec<ModuleItem> {
99652        if self.enabled {
99653            <V as Fold>::fold_module_items(&mut self.visitor, node)
99654        } else {
99655            node
99656        }
99657    }
99658
99659    #[inline]
99660    fn fold_named_export(&mut self, node: NamedExport) -> NamedExport {
99661        if self.enabled {
99662            <V as Fold>::fold_named_export(&mut self.visitor, node)
99663        } else {
99664            node
99665        }
99666    }
99667
99668    #[inline]
99669    fn fold_new_expr(&mut self, node: NewExpr) -> NewExpr {
99670        if self.enabled {
99671            <V as Fold>::fold_new_expr(&mut self.visitor, node)
99672        } else {
99673            node
99674        }
99675    }
99676
99677    #[inline]
99678    fn fold_null(&mut self, node: Null) -> Null {
99679        if self.enabled {
99680            <V as Fold>::fold_null(&mut self.visitor, node)
99681        } else {
99682            node
99683        }
99684    }
99685
99686    #[inline]
99687    fn fold_number(&mut self, node: Number) -> Number {
99688        if self.enabled {
99689            <V as Fold>::fold_number(&mut self.visitor, node)
99690        } else {
99691            node
99692        }
99693    }
99694
99695    #[inline]
99696    fn fold_object_lit(&mut self, node: ObjectLit) -> ObjectLit {
99697        if self.enabled {
99698            <V as Fold>::fold_object_lit(&mut self.visitor, node)
99699        } else {
99700            node
99701        }
99702    }
99703
99704    #[inline]
99705    fn fold_object_pat(&mut self, node: ObjectPat) -> ObjectPat {
99706        if self.enabled {
99707            <V as Fold>::fold_object_pat(&mut self.visitor, node)
99708        } else {
99709            node
99710        }
99711    }
99712
99713    #[inline]
99714    fn fold_object_pat_prop(&mut self, node: ObjectPatProp) -> ObjectPatProp {
99715        if self.enabled {
99716            <V as Fold>::fold_object_pat_prop(&mut self.visitor, node)
99717        } else {
99718            node
99719        }
99720    }
99721
99722    #[inline]
99723    fn fold_object_pat_props(&mut self, node: Vec<ObjectPatProp>) -> Vec<ObjectPatProp> {
99724        if self.enabled {
99725            <V as Fold>::fold_object_pat_props(&mut self.visitor, node)
99726        } else {
99727            node
99728        }
99729    }
99730
99731    #[inline]
99732    fn fold_opt_accessibility(&mut self, node: Option<Accessibility>) -> Option<Accessibility> {
99733        if self.enabled {
99734            <V as Fold>::fold_opt_accessibility(&mut self.visitor, node)
99735        } else {
99736            node
99737        }
99738    }
99739
99740    #[inline]
99741    fn fold_opt_atom(&mut self, node: Option<swc_atoms::Atom>) -> Option<swc_atoms::Atom> {
99742        if self.enabled {
99743            <V as Fold>::fold_opt_atom(&mut self.visitor, node)
99744        } else {
99745            node
99746        }
99747    }
99748
99749    #[inline]
99750    fn fold_opt_block_stmt(&mut self, node: Option<BlockStmt>) -> Option<BlockStmt> {
99751        if self.enabled {
99752            <V as Fold>::fold_opt_block_stmt(&mut self.visitor, node)
99753        } else {
99754            node
99755        }
99756    }
99757
99758    #[inline]
99759    fn fold_opt_call(&mut self, node: OptCall) -> OptCall {
99760        if self.enabled {
99761            <V as Fold>::fold_opt_call(&mut self.visitor, node)
99762        } else {
99763            node
99764        }
99765    }
99766
99767    #[inline]
99768    fn fold_opt_catch_clause(&mut self, node: Option<CatchClause>) -> Option<CatchClause> {
99769        if self.enabled {
99770            <V as Fold>::fold_opt_catch_clause(&mut self.visitor, node)
99771        } else {
99772            node
99773        }
99774    }
99775
99776    #[inline]
99777    fn fold_opt_chain_base(&mut self, node: OptChainBase) -> OptChainBase {
99778        if self.enabled {
99779            <V as Fold>::fold_opt_chain_base(&mut self.visitor, node)
99780        } else {
99781            node
99782        }
99783    }
99784
99785    #[inline]
99786    fn fold_opt_chain_expr(&mut self, node: OptChainExpr) -> OptChainExpr {
99787        if self.enabled {
99788            <V as Fold>::fold_opt_chain_expr(&mut self.visitor, node)
99789        } else {
99790            node
99791        }
99792    }
99793
99794    #[inline]
99795    fn fold_opt_expr(&mut self, node: Option<Box<Expr>>) -> Option<Box<Expr>> {
99796        if self.enabled {
99797            <V as Fold>::fold_opt_expr(&mut self.visitor, node)
99798        } else {
99799            node
99800        }
99801    }
99802
99803    #[inline]
99804    fn fold_opt_expr_or_spread(&mut self, node: Option<ExprOrSpread>) -> Option<ExprOrSpread> {
99805        if self.enabled {
99806            <V as Fold>::fold_opt_expr_or_spread(&mut self.visitor, node)
99807        } else {
99808            node
99809        }
99810    }
99811
99812    #[inline]
99813    fn fold_opt_expr_or_spreads(
99814        &mut self,
99815        node: Option<Vec<ExprOrSpread>>,
99816    ) -> Option<Vec<ExprOrSpread>> {
99817        if self.enabled {
99818            <V as Fold>::fold_opt_expr_or_spreads(&mut self.visitor, node)
99819        } else {
99820            node
99821        }
99822    }
99823
99824    #[inline]
99825    fn fold_opt_ident(&mut self, node: Option<Ident>) -> Option<Ident> {
99826        if self.enabled {
99827            <V as Fold>::fold_opt_ident(&mut self.visitor, node)
99828        } else {
99829            node
99830        }
99831    }
99832
99833    #[inline]
99834    fn fold_opt_jsx_attr_value(&mut self, node: Option<JSXAttrValue>) -> Option<JSXAttrValue> {
99835        if self.enabled {
99836            <V as Fold>::fold_opt_jsx_attr_value(&mut self.visitor, node)
99837        } else {
99838            node
99839        }
99840    }
99841
99842    #[inline]
99843    fn fold_opt_jsx_closing_element(
99844        &mut self,
99845        node: Option<JSXClosingElement>,
99846    ) -> Option<JSXClosingElement> {
99847        if self.enabled {
99848            <V as Fold>::fold_opt_jsx_closing_element(&mut self.visitor, node)
99849        } else {
99850            node
99851        }
99852    }
99853
99854    #[inline]
99855    fn fold_opt_module_export_name(
99856        &mut self,
99857        node: Option<ModuleExportName>,
99858    ) -> Option<ModuleExportName> {
99859        if self.enabled {
99860            <V as Fold>::fold_opt_module_export_name(&mut self.visitor, node)
99861        } else {
99862            node
99863        }
99864    }
99865
99866    #[inline]
99867    fn fold_opt_object_lit(&mut self, node: Option<Box<ObjectLit>>) -> Option<Box<ObjectLit>> {
99868        if self.enabled {
99869            <V as Fold>::fold_opt_object_lit(&mut self.visitor, node)
99870        } else {
99871            node
99872        }
99873    }
99874
99875    #[inline]
99876    fn fold_opt_pat(&mut self, node: Option<Pat>) -> Option<Pat> {
99877        if self.enabled {
99878            <V as Fold>::fold_opt_pat(&mut self.visitor, node)
99879        } else {
99880            node
99881        }
99882    }
99883
99884    #[inline]
99885    fn fold_opt_span(&mut self, node: Option<swc_common::Span>) -> Option<swc_common::Span> {
99886        if self.enabled {
99887            <V as Fold>::fold_opt_span(&mut self.visitor, node)
99888        } else {
99889            node
99890        }
99891    }
99892
99893    #[inline]
99894    fn fold_opt_stmt(&mut self, node: Option<Box<Stmt>>) -> Option<Box<Stmt>> {
99895        if self.enabled {
99896            <V as Fold>::fold_opt_stmt(&mut self.visitor, node)
99897        } else {
99898            node
99899        }
99900    }
99901
99902    #[inline]
99903    fn fold_opt_str(&mut self, node: Option<Box<Str>>) -> Option<Box<Str>> {
99904        if self.enabled {
99905            <V as Fold>::fold_opt_str(&mut self.visitor, node)
99906        } else {
99907            node
99908        }
99909    }
99910
99911    #[inline]
99912    fn fold_opt_true_plus_minus(&mut self, node: Option<TruePlusMinus>) -> Option<TruePlusMinus> {
99913        if self.enabled {
99914            <V as Fold>::fold_opt_true_plus_minus(&mut self.visitor, node)
99915        } else {
99916            node
99917        }
99918    }
99919
99920    #[inline]
99921    fn fold_opt_ts_entity_name(&mut self, node: Option<TsEntityName>) -> Option<TsEntityName> {
99922        if self.enabled {
99923            <V as Fold>::fold_opt_ts_entity_name(&mut self.visitor, node)
99924        } else {
99925            node
99926        }
99927    }
99928
99929    #[inline]
99930    fn fold_opt_ts_namespace_body(
99931        &mut self,
99932        node: Option<TsNamespaceBody>,
99933    ) -> Option<TsNamespaceBody> {
99934        if self.enabled {
99935            <V as Fold>::fold_opt_ts_namespace_body(&mut self.visitor, node)
99936        } else {
99937            node
99938        }
99939    }
99940
99941    #[inline]
99942    fn fold_opt_ts_type(&mut self, node: Option<Box<TsType>>) -> Option<Box<TsType>> {
99943        if self.enabled {
99944            <V as Fold>::fold_opt_ts_type(&mut self.visitor, node)
99945        } else {
99946            node
99947        }
99948    }
99949
99950    #[inline]
99951    fn fold_opt_ts_type_ann(&mut self, node: Option<Box<TsTypeAnn>>) -> Option<Box<TsTypeAnn>> {
99952        if self.enabled {
99953            <V as Fold>::fold_opt_ts_type_ann(&mut self.visitor, node)
99954        } else {
99955            node
99956        }
99957    }
99958
99959    #[inline]
99960    fn fold_opt_ts_type_param_decl(
99961        &mut self,
99962        node: Option<Box<TsTypeParamDecl>>,
99963    ) -> Option<Box<TsTypeParamDecl>> {
99964        if self.enabled {
99965            <V as Fold>::fold_opt_ts_type_param_decl(&mut self.visitor, node)
99966        } else {
99967            node
99968        }
99969    }
99970
99971    #[inline]
99972    fn fold_opt_ts_type_param_instantiation(
99973        &mut self,
99974        node: Option<Box<TsTypeParamInstantiation>>,
99975    ) -> Option<Box<TsTypeParamInstantiation>> {
99976        if self.enabled {
99977            <V as Fold>::fold_opt_ts_type_param_instantiation(&mut self.visitor, node)
99978        } else {
99979            node
99980        }
99981    }
99982
99983    #[inline]
99984    fn fold_opt_var_decl_or_expr(&mut self, node: Option<VarDeclOrExpr>) -> Option<VarDeclOrExpr> {
99985        if self.enabled {
99986            <V as Fold>::fold_opt_var_decl_or_expr(&mut self.visitor, node)
99987        } else {
99988            node
99989        }
99990    }
99991
99992    #[inline]
99993    fn fold_opt_vec_expr_or_spreads(
99994        &mut self,
99995        node: Vec<Option<ExprOrSpread>>,
99996    ) -> Vec<Option<ExprOrSpread>> {
99997        if self.enabled {
99998            <V as Fold>::fold_opt_vec_expr_or_spreads(&mut self.visitor, node)
99999        } else {
100000            node
100001        }
100002    }
100003
100004    #[inline]
100005    fn fold_opt_vec_pats(&mut self, node: Vec<Option<Pat>>) -> Vec<Option<Pat>> {
100006        if self.enabled {
100007            <V as Fold>::fold_opt_vec_pats(&mut self.visitor, node)
100008        } else {
100009            node
100010        }
100011    }
100012
100013    #[inline]
100014    fn fold_param(&mut self, node: Param) -> Param {
100015        if self.enabled {
100016            <V as Fold>::fold_param(&mut self.visitor, node)
100017        } else {
100018            node
100019        }
100020    }
100021
100022    #[inline]
100023    fn fold_param_or_ts_param_prop(&mut self, node: ParamOrTsParamProp) -> ParamOrTsParamProp {
100024        if self.enabled {
100025            <V as Fold>::fold_param_or_ts_param_prop(&mut self.visitor, node)
100026        } else {
100027            node
100028        }
100029    }
100030
100031    #[inline]
100032    fn fold_param_or_ts_param_props(
100033        &mut self,
100034        node: Vec<ParamOrTsParamProp>,
100035    ) -> Vec<ParamOrTsParamProp> {
100036        if self.enabled {
100037            <V as Fold>::fold_param_or_ts_param_props(&mut self.visitor, node)
100038        } else {
100039            node
100040        }
100041    }
100042
100043    #[inline]
100044    fn fold_params(&mut self, node: Vec<Param>) -> Vec<Param> {
100045        if self.enabled {
100046            <V as Fold>::fold_params(&mut self.visitor, node)
100047        } else {
100048            node
100049        }
100050    }
100051
100052    #[inline]
100053    fn fold_paren_expr(&mut self, node: ParenExpr) -> ParenExpr {
100054        if self.enabled {
100055            <V as Fold>::fold_paren_expr(&mut self.visitor, node)
100056        } else {
100057            node
100058        }
100059    }
100060
100061    #[inline]
100062    fn fold_pat(&mut self, node: Pat) -> Pat {
100063        if self.enabled {
100064            <V as Fold>::fold_pat(&mut self.visitor, node)
100065        } else {
100066            node
100067        }
100068    }
100069
100070    #[inline]
100071    fn fold_pats(&mut self, node: Vec<Pat>) -> Vec<Pat> {
100072        if self.enabled {
100073            <V as Fold>::fold_pats(&mut self.visitor, node)
100074        } else {
100075            node
100076        }
100077    }
100078
100079    #[inline]
100080    fn fold_private_method(&mut self, node: PrivateMethod) -> PrivateMethod {
100081        if self.enabled {
100082            <V as Fold>::fold_private_method(&mut self.visitor, node)
100083        } else {
100084            node
100085        }
100086    }
100087
100088    #[inline]
100089    fn fold_private_name(&mut self, node: PrivateName) -> PrivateName {
100090        if self.enabled {
100091            <V as Fold>::fold_private_name(&mut self.visitor, node)
100092        } else {
100093            node
100094        }
100095    }
100096
100097    #[inline]
100098    fn fold_private_prop(&mut self, node: PrivateProp) -> PrivateProp {
100099        if self.enabled {
100100            <V as Fold>::fold_private_prop(&mut self.visitor, node)
100101        } else {
100102            node
100103        }
100104    }
100105
100106    #[inline]
100107    fn fold_program(&mut self, node: Program) -> Program {
100108        if self.enabled {
100109            <V as Fold>::fold_program(&mut self.visitor, node)
100110        } else {
100111            node
100112        }
100113    }
100114
100115    #[inline]
100116    fn fold_prop(&mut self, node: Prop) -> Prop {
100117        if self.enabled {
100118            <V as Fold>::fold_prop(&mut self.visitor, node)
100119        } else {
100120            node
100121        }
100122    }
100123
100124    #[inline]
100125    fn fold_prop_name(&mut self, node: PropName) -> PropName {
100126        if self.enabled {
100127            <V as Fold>::fold_prop_name(&mut self.visitor, node)
100128        } else {
100129            node
100130        }
100131    }
100132
100133    #[inline]
100134    fn fold_prop_or_spread(&mut self, node: PropOrSpread) -> PropOrSpread {
100135        if self.enabled {
100136            <V as Fold>::fold_prop_or_spread(&mut self.visitor, node)
100137        } else {
100138            node
100139        }
100140    }
100141
100142    #[inline]
100143    fn fold_prop_or_spreads(&mut self, node: Vec<PropOrSpread>) -> Vec<PropOrSpread> {
100144        if self.enabled {
100145            <V as Fold>::fold_prop_or_spreads(&mut self.visitor, node)
100146        } else {
100147            node
100148        }
100149    }
100150
100151    #[inline]
100152    fn fold_regex(&mut self, node: Regex) -> Regex {
100153        if self.enabled {
100154            <V as Fold>::fold_regex(&mut self.visitor, node)
100155        } else {
100156            node
100157        }
100158    }
100159
100160    #[inline]
100161    fn fold_rest_pat(&mut self, node: RestPat) -> RestPat {
100162        if self.enabled {
100163            <V as Fold>::fold_rest_pat(&mut self.visitor, node)
100164        } else {
100165            node
100166        }
100167    }
100168
100169    #[inline]
100170    fn fold_return_stmt(&mut self, node: ReturnStmt) -> ReturnStmt {
100171        if self.enabled {
100172            <V as Fold>::fold_return_stmt(&mut self.visitor, node)
100173        } else {
100174            node
100175        }
100176    }
100177
100178    #[inline]
100179    fn fold_script(&mut self, node: Script) -> Script {
100180        if self.enabled {
100181            <V as Fold>::fold_script(&mut self.visitor, node)
100182        } else {
100183            node
100184        }
100185    }
100186
100187    #[inline]
100188    fn fold_seq_expr(&mut self, node: SeqExpr) -> SeqExpr {
100189        if self.enabled {
100190            <V as Fold>::fold_seq_expr(&mut self.visitor, node)
100191        } else {
100192            node
100193        }
100194    }
100195
100196    #[inline]
100197    fn fold_setter_prop(&mut self, node: SetterProp) -> SetterProp {
100198        if self.enabled {
100199            <V as Fold>::fold_setter_prop(&mut self.visitor, node)
100200        } else {
100201            node
100202        }
100203    }
100204
100205    #[inline]
100206    fn fold_simple_assign_target(&mut self, node: SimpleAssignTarget) -> SimpleAssignTarget {
100207        if self.enabled {
100208            <V as Fold>::fold_simple_assign_target(&mut self.visitor, node)
100209        } else {
100210            node
100211        }
100212    }
100213
100214    #[inline]
100215    fn fold_span(&mut self, node: swc_common::Span) -> swc_common::Span {
100216        if self.enabled {
100217            <V as Fold>::fold_span(&mut self.visitor, node)
100218        } else {
100219            node
100220        }
100221    }
100222
100223    #[inline]
100224    fn fold_spread_element(&mut self, node: SpreadElement) -> SpreadElement {
100225        if self.enabled {
100226            <V as Fold>::fold_spread_element(&mut self.visitor, node)
100227        } else {
100228            node
100229        }
100230    }
100231
100232    #[inline]
100233    fn fold_static_block(&mut self, node: StaticBlock) -> StaticBlock {
100234        if self.enabled {
100235            <V as Fold>::fold_static_block(&mut self.visitor, node)
100236        } else {
100237            node
100238        }
100239    }
100240
100241    #[inline]
100242    fn fold_stmt(&mut self, node: Stmt) -> Stmt {
100243        if self.enabled {
100244            <V as Fold>::fold_stmt(&mut self.visitor, node)
100245        } else {
100246            node
100247        }
100248    }
100249
100250    #[inline]
100251    fn fold_stmts(&mut self, node: Vec<Stmt>) -> Vec<Stmt> {
100252        if self.enabled {
100253            <V as Fold>::fold_stmts(&mut self.visitor, node)
100254        } else {
100255            node
100256        }
100257    }
100258
100259    #[inline]
100260    fn fold_str(&mut self, node: Str) -> Str {
100261        if self.enabled {
100262            <V as Fold>::fold_str(&mut self.visitor, node)
100263        } else {
100264            node
100265        }
100266    }
100267
100268    #[inline]
100269    fn fold_super(&mut self, node: Super) -> Super {
100270        if self.enabled {
100271            <V as Fold>::fold_super(&mut self.visitor, node)
100272        } else {
100273            node
100274        }
100275    }
100276
100277    #[inline]
100278    fn fold_super_prop(&mut self, node: SuperProp) -> SuperProp {
100279        if self.enabled {
100280            <V as Fold>::fold_super_prop(&mut self.visitor, node)
100281        } else {
100282            node
100283        }
100284    }
100285
100286    #[inline]
100287    fn fold_super_prop_expr(&mut self, node: SuperPropExpr) -> SuperPropExpr {
100288        if self.enabled {
100289            <V as Fold>::fold_super_prop_expr(&mut self.visitor, node)
100290        } else {
100291            node
100292        }
100293    }
100294
100295    #[inline]
100296    fn fold_switch_case(&mut self, node: SwitchCase) -> SwitchCase {
100297        if self.enabled {
100298            <V as Fold>::fold_switch_case(&mut self.visitor, node)
100299        } else {
100300            node
100301        }
100302    }
100303
100304    #[inline]
100305    fn fold_switch_cases(&mut self, node: Vec<SwitchCase>) -> Vec<SwitchCase> {
100306        if self.enabled {
100307            <V as Fold>::fold_switch_cases(&mut self.visitor, node)
100308        } else {
100309            node
100310        }
100311    }
100312
100313    #[inline]
100314    fn fold_switch_stmt(&mut self, node: SwitchStmt) -> SwitchStmt {
100315        if self.enabled {
100316            <V as Fold>::fold_switch_stmt(&mut self.visitor, node)
100317        } else {
100318            node
100319        }
100320    }
100321
100322    #[inline]
100323    fn fold_syntax_context(
100324        &mut self,
100325        node: swc_common::SyntaxContext,
100326    ) -> swc_common::SyntaxContext {
100327        if self.enabled {
100328            <V as Fold>::fold_syntax_context(&mut self.visitor, node)
100329        } else {
100330            node
100331        }
100332    }
100333
100334    #[inline]
100335    fn fold_tagged_tpl(&mut self, node: TaggedTpl) -> TaggedTpl {
100336        if self.enabled {
100337            <V as Fold>::fold_tagged_tpl(&mut self.visitor, node)
100338        } else {
100339            node
100340        }
100341    }
100342
100343    #[inline]
100344    fn fold_this_expr(&mut self, node: ThisExpr) -> ThisExpr {
100345        if self.enabled {
100346            <V as Fold>::fold_this_expr(&mut self.visitor, node)
100347        } else {
100348            node
100349        }
100350    }
100351
100352    #[inline]
100353    fn fold_throw_stmt(&mut self, node: ThrowStmt) -> ThrowStmt {
100354        if self.enabled {
100355            <V as Fold>::fold_throw_stmt(&mut self.visitor, node)
100356        } else {
100357            node
100358        }
100359    }
100360
100361    #[inline]
100362    fn fold_tpl(&mut self, node: Tpl) -> Tpl {
100363        if self.enabled {
100364            <V as Fold>::fold_tpl(&mut self.visitor, node)
100365        } else {
100366            node
100367        }
100368    }
100369
100370    #[inline]
100371    fn fold_tpl_element(&mut self, node: TplElement) -> TplElement {
100372        if self.enabled {
100373            <V as Fold>::fold_tpl_element(&mut self.visitor, node)
100374        } else {
100375            node
100376        }
100377    }
100378
100379    #[inline]
100380    fn fold_tpl_elements(&mut self, node: Vec<TplElement>) -> Vec<TplElement> {
100381        if self.enabled {
100382            <V as Fold>::fold_tpl_elements(&mut self.visitor, node)
100383        } else {
100384            node
100385        }
100386    }
100387
100388    #[inline]
100389    fn fold_true_plus_minus(&mut self, node: TruePlusMinus) -> TruePlusMinus {
100390        if self.enabled {
100391            <V as Fold>::fold_true_plus_minus(&mut self.visitor, node)
100392        } else {
100393            node
100394        }
100395    }
100396
100397    #[inline]
100398    fn fold_try_stmt(&mut self, node: TryStmt) -> TryStmt {
100399        if self.enabled {
100400            <V as Fold>::fold_try_stmt(&mut self.visitor, node)
100401        } else {
100402            node
100403        }
100404    }
100405
100406    #[inline]
100407    fn fold_ts_array_type(&mut self, node: TsArrayType) -> TsArrayType {
100408        if self.enabled {
100409            <V as Fold>::fold_ts_array_type(&mut self.visitor, node)
100410        } else {
100411            node
100412        }
100413    }
100414
100415    #[inline]
100416    fn fold_ts_as_expr(&mut self, node: TsAsExpr) -> TsAsExpr {
100417        if self.enabled {
100418            <V as Fold>::fold_ts_as_expr(&mut self.visitor, node)
100419        } else {
100420            node
100421        }
100422    }
100423
100424    #[inline]
100425    fn fold_ts_call_signature_decl(&mut self, node: TsCallSignatureDecl) -> TsCallSignatureDecl {
100426        if self.enabled {
100427            <V as Fold>::fold_ts_call_signature_decl(&mut self.visitor, node)
100428        } else {
100429            node
100430        }
100431    }
100432
100433    #[inline]
100434    fn fold_ts_conditional_type(&mut self, node: TsConditionalType) -> TsConditionalType {
100435        if self.enabled {
100436            <V as Fold>::fold_ts_conditional_type(&mut self.visitor, node)
100437        } else {
100438            node
100439        }
100440    }
100441
100442    #[inline]
100443    fn fold_ts_const_assertion(&mut self, node: TsConstAssertion) -> TsConstAssertion {
100444        if self.enabled {
100445            <V as Fold>::fold_ts_const_assertion(&mut self.visitor, node)
100446        } else {
100447            node
100448        }
100449    }
100450
100451    #[inline]
100452    fn fold_ts_construct_signature_decl(
100453        &mut self,
100454        node: TsConstructSignatureDecl,
100455    ) -> TsConstructSignatureDecl {
100456        if self.enabled {
100457            <V as Fold>::fold_ts_construct_signature_decl(&mut self.visitor, node)
100458        } else {
100459            node
100460        }
100461    }
100462
100463    #[inline]
100464    fn fold_ts_constructor_type(&mut self, node: TsConstructorType) -> TsConstructorType {
100465        if self.enabled {
100466            <V as Fold>::fold_ts_constructor_type(&mut self.visitor, node)
100467        } else {
100468            node
100469        }
100470    }
100471
100472    #[inline]
100473    fn fold_ts_entity_name(&mut self, node: TsEntityName) -> TsEntityName {
100474        if self.enabled {
100475            <V as Fold>::fold_ts_entity_name(&mut self.visitor, node)
100476        } else {
100477            node
100478        }
100479    }
100480
100481    #[inline]
100482    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl) -> TsEnumDecl {
100483        if self.enabled {
100484            <V as Fold>::fold_ts_enum_decl(&mut self.visitor, node)
100485        } else {
100486            node
100487        }
100488    }
100489
100490    #[inline]
100491    fn fold_ts_enum_member(&mut self, node: TsEnumMember) -> TsEnumMember {
100492        if self.enabled {
100493            <V as Fold>::fold_ts_enum_member(&mut self.visitor, node)
100494        } else {
100495            node
100496        }
100497    }
100498
100499    #[inline]
100500    fn fold_ts_enum_member_id(&mut self, node: TsEnumMemberId) -> TsEnumMemberId {
100501        if self.enabled {
100502            <V as Fold>::fold_ts_enum_member_id(&mut self.visitor, node)
100503        } else {
100504            node
100505        }
100506    }
100507
100508    #[inline]
100509    fn fold_ts_enum_members(&mut self, node: Vec<TsEnumMember>) -> Vec<TsEnumMember> {
100510        if self.enabled {
100511            <V as Fold>::fold_ts_enum_members(&mut self.visitor, node)
100512        } else {
100513            node
100514        }
100515    }
100516
100517    #[inline]
100518    fn fold_ts_export_assignment(&mut self, node: TsExportAssignment) -> TsExportAssignment {
100519        if self.enabled {
100520            <V as Fold>::fold_ts_export_assignment(&mut self.visitor, node)
100521        } else {
100522            node
100523        }
100524    }
100525
100526    #[inline]
100527    fn fold_ts_expr_with_type_args(&mut self, node: TsExprWithTypeArgs) -> TsExprWithTypeArgs {
100528        if self.enabled {
100529            <V as Fold>::fold_ts_expr_with_type_args(&mut self.visitor, node)
100530        } else {
100531            node
100532        }
100533    }
100534
100535    #[inline]
100536    fn fold_ts_expr_with_type_argss(
100537        &mut self,
100538        node: Vec<TsExprWithTypeArgs>,
100539    ) -> Vec<TsExprWithTypeArgs> {
100540        if self.enabled {
100541            <V as Fold>::fold_ts_expr_with_type_argss(&mut self.visitor, node)
100542        } else {
100543            node
100544        }
100545    }
100546
100547    #[inline]
100548    fn fold_ts_external_module_ref(&mut self, node: TsExternalModuleRef) -> TsExternalModuleRef {
100549        if self.enabled {
100550            <V as Fold>::fold_ts_external_module_ref(&mut self.visitor, node)
100551        } else {
100552            node
100553        }
100554    }
100555
100556    #[inline]
100557    fn fold_ts_fn_or_constructor_type(
100558        &mut self,
100559        node: TsFnOrConstructorType,
100560    ) -> TsFnOrConstructorType {
100561        if self.enabled {
100562            <V as Fold>::fold_ts_fn_or_constructor_type(&mut self.visitor, node)
100563        } else {
100564            node
100565        }
100566    }
100567
100568    #[inline]
100569    fn fold_ts_fn_param(&mut self, node: TsFnParam) -> TsFnParam {
100570        if self.enabled {
100571            <V as Fold>::fold_ts_fn_param(&mut self.visitor, node)
100572        } else {
100573            node
100574        }
100575    }
100576
100577    #[inline]
100578    fn fold_ts_fn_params(&mut self, node: Vec<TsFnParam>) -> Vec<TsFnParam> {
100579        if self.enabled {
100580            <V as Fold>::fold_ts_fn_params(&mut self.visitor, node)
100581        } else {
100582            node
100583        }
100584    }
100585
100586    #[inline]
100587    fn fold_ts_fn_type(&mut self, node: TsFnType) -> TsFnType {
100588        if self.enabled {
100589            <V as Fold>::fold_ts_fn_type(&mut self.visitor, node)
100590        } else {
100591            node
100592        }
100593    }
100594
100595    #[inline]
100596    fn fold_ts_getter_signature(&mut self, node: TsGetterSignature) -> TsGetterSignature {
100597        if self.enabled {
100598            <V as Fold>::fold_ts_getter_signature(&mut self.visitor, node)
100599        } else {
100600            node
100601        }
100602    }
100603
100604    #[inline]
100605    fn fold_ts_import_equals_decl(&mut self, node: TsImportEqualsDecl) -> TsImportEqualsDecl {
100606        if self.enabled {
100607            <V as Fold>::fold_ts_import_equals_decl(&mut self.visitor, node)
100608        } else {
100609            node
100610        }
100611    }
100612
100613    #[inline]
100614    fn fold_ts_import_type(&mut self, node: TsImportType) -> TsImportType {
100615        if self.enabled {
100616            <V as Fold>::fold_ts_import_type(&mut self.visitor, node)
100617        } else {
100618            node
100619        }
100620    }
100621
100622    #[inline]
100623    fn fold_ts_index_signature(&mut self, node: TsIndexSignature) -> TsIndexSignature {
100624        if self.enabled {
100625            <V as Fold>::fold_ts_index_signature(&mut self.visitor, node)
100626        } else {
100627            node
100628        }
100629    }
100630
100631    #[inline]
100632    fn fold_ts_indexed_access_type(&mut self, node: TsIndexedAccessType) -> TsIndexedAccessType {
100633        if self.enabled {
100634            <V as Fold>::fold_ts_indexed_access_type(&mut self.visitor, node)
100635        } else {
100636            node
100637        }
100638    }
100639
100640    #[inline]
100641    fn fold_ts_infer_type(&mut self, node: TsInferType) -> TsInferType {
100642        if self.enabled {
100643            <V as Fold>::fold_ts_infer_type(&mut self.visitor, node)
100644        } else {
100645            node
100646        }
100647    }
100648
100649    #[inline]
100650    fn fold_ts_instantiation(&mut self, node: TsInstantiation) -> TsInstantiation {
100651        if self.enabled {
100652            <V as Fold>::fold_ts_instantiation(&mut self.visitor, node)
100653        } else {
100654            node
100655        }
100656    }
100657
100658    #[inline]
100659    fn fold_ts_interface_body(&mut self, node: TsInterfaceBody) -> TsInterfaceBody {
100660        if self.enabled {
100661            <V as Fold>::fold_ts_interface_body(&mut self.visitor, node)
100662        } else {
100663            node
100664        }
100665    }
100666
100667    #[inline]
100668    fn fold_ts_interface_decl(&mut self, node: TsInterfaceDecl) -> TsInterfaceDecl {
100669        if self.enabled {
100670            <V as Fold>::fold_ts_interface_decl(&mut self.visitor, node)
100671        } else {
100672            node
100673        }
100674    }
100675
100676    #[inline]
100677    fn fold_ts_intersection_type(&mut self, node: TsIntersectionType) -> TsIntersectionType {
100678        if self.enabled {
100679            <V as Fold>::fold_ts_intersection_type(&mut self.visitor, node)
100680        } else {
100681            node
100682        }
100683    }
100684
100685    #[inline]
100686    fn fold_ts_keyword_type(&mut self, node: TsKeywordType) -> TsKeywordType {
100687        if self.enabled {
100688            <V as Fold>::fold_ts_keyword_type(&mut self.visitor, node)
100689        } else {
100690            node
100691        }
100692    }
100693
100694    #[inline]
100695    fn fold_ts_keyword_type_kind(&mut self, node: TsKeywordTypeKind) -> TsKeywordTypeKind {
100696        if self.enabled {
100697            <V as Fold>::fold_ts_keyword_type_kind(&mut self.visitor, node)
100698        } else {
100699            node
100700        }
100701    }
100702
100703    #[inline]
100704    fn fold_ts_lit(&mut self, node: TsLit) -> TsLit {
100705        if self.enabled {
100706            <V as Fold>::fold_ts_lit(&mut self.visitor, node)
100707        } else {
100708            node
100709        }
100710    }
100711
100712    #[inline]
100713    fn fold_ts_lit_type(&mut self, node: TsLitType) -> TsLitType {
100714        if self.enabled {
100715            <V as Fold>::fold_ts_lit_type(&mut self.visitor, node)
100716        } else {
100717            node
100718        }
100719    }
100720
100721    #[inline]
100722    fn fold_ts_mapped_type(&mut self, node: TsMappedType) -> TsMappedType {
100723        if self.enabled {
100724            <V as Fold>::fold_ts_mapped_type(&mut self.visitor, node)
100725        } else {
100726            node
100727        }
100728    }
100729
100730    #[inline]
100731    fn fold_ts_method_signature(&mut self, node: TsMethodSignature) -> TsMethodSignature {
100732        if self.enabled {
100733            <V as Fold>::fold_ts_method_signature(&mut self.visitor, node)
100734        } else {
100735            node
100736        }
100737    }
100738
100739    #[inline]
100740    fn fold_ts_module_block(&mut self, node: TsModuleBlock) -> TsModuleBlock {
100741        if self.enabled {
100742            <V as Fold>::fold_ts_module_block(&mut self.visitor, node)
100743        } else {
100744            node
100745        }
100746    }
100747
100748    #[inline]
100749    fn fold_ts_module_decl(&mut self, node: TsModuleDecl) -> TsModuleDecl {
100750        if self.enabled {
100751            <V as Fold>::fold_ts_module_decl(&mut self.visitor, node)
100752        } else {
100753            node
100754        }
100755    }
100756
100757    #[inline]
100758    fn fold_ts_module_name(&mut self, node: TsModuleName) -> TsModuleName {
100759        if self.enabled {
100760            <V as Fold>::fold_ts_module_name(&mut self.visitor, node)
100761        } else {
100762            node
100763        }
100764    }
100765
100766    #[inline]
100767    fn fold_ts_module_ref(&mut self, node: TsModuleRef) -> TsModuleRef {
100768        if self.enabled {
100769            <V as Fold>::fold_ts_module_ref(&mut self.visitor, node)
100770        } else {
100771            node
100772        }
100773    }
100774
100775    #[inline]
100776    fn fold_ts_namespace_body(&mut self, node: TsNamespaceBody) -> TsNamespaceBody {
100777        if self.enabled {
100778            <V as Fold>::fold_ts_namespace_body(&mut self.visitor, node)
100779        } else {
100780            node
100781        }
100782    }
100783
100784    #[inline]
100785    fn fold_ts_namespace_decl(&mut self, node: TsNamespaceDecl) -> TsNamespaceDecl {
100786        if self.enabled {
100787            <V as Fold>::fold_ts_namespace_decl(&mut self.visitor, node)
100788        } else {
100789            node
100790        }
100791    }
100792
100793    #[inline]
100794    fn fold_ts_namespace_export_decl(
100795        &mut self,
100796        node: TsNamespaceExportDecl,
100797    ) -> TsNamespaceExportDecl {
100798        if self.enabled {
100799            <V as Fold>::fold_ts_namespace_export_decl(&mut self.visitor, node)
100800        } else {
100801            node
100802        }
100803    }
100804
100805    #[inline]
100806    fn fold_ts_non_null_expr(&mut self, node: TsNonNullExpr) -> TsNonNullExpr {
100807        if self.enabled {
100808            <V as Fold>::fold_ts_non_null_expr(&mut self.visitor, node)
100809        } else {
100810            node
100811        }
100812    }
100813
100814    #[inline]
100815    fn fold_ts_optional_type(&mut self, node: TsOptionalType) -> TsOptionalType {
100816        if self.enabled {
100817            <V as Fold>::fold_ts_optional_type(&mut self.visitor, node)
100818        } else {
100819            node
100820        }
100821    }
100822
100823    #[inline]
100824    fn fold_ts_param_prop(&mut self, node: TsParamProp) -> TsParamProp {
100825        if self.enabled {
100826            <V as Fold>::fold_ts_param_prop(&mut self.visitor, node)
100827        } else {
100828            node
100829        }
100830    }
100831
100832    #[inline]
100833    fn fold_ts_param_prop_param(&mut self, node: TsParamPropParam) -> TsParamPropParam {
100834        if self.enabled {
100835            <V as Fold>::fold_ts_param_prop_param(&mut self.visitor, node)
100836        } else {
100837            node
100838        }
100839    }
100840
100841    #[inline]
100842    fn fold_ts_parenthesized_type(&mut self, node: TsParenthesizedType) -> TsParenthesizedType {
100843        if self.enabled {
100844            <V as Fold>::fold_ts_parenthesized_type(&mut self.visitor, node)
100845        } else {
100846            node
100847        }
100848    }
100849
100850    #[inline]
100851    fn fold_ts_property_signature(&mut self, node: TsPropertySignature) -> TsPropertySignature {
100852        if self.enabled {
100853            <V as Fold>::fold_ts_property_signature(&mut self.visitor, node)
100854        } else {
100855            node
100856        }
100857    }
100858
100859    #[inline]
100860    fn fold_ts_qualified_name(&mut self, node: TsQualifiedName) -> TsQualifiedName {
100861        if self.enabled {
100862            <V as Fold>::fold_ts_qualified_name(&mut self.visitor, node)
100863        } else {
100864            node
100865        }
100866    }
100867
100868    #[inline]
100869    fn fold_ts_rest_type(&mut self, node: TsRestType) -> TsRestType {
100870        if self.enabled {
100871            <V as Fold>::fold_ts_rest_type(&mut self.visitor, node)
100872        } else {
100873            node
100874        }
100875    }
100876
100877    #[inline]
100878    fn fold_ts_satisfies_expr(&mut self, node: TsSatisfiesExpr) -> TsSatisfiesExpr {
100879        if self.enabled {
100880            <V as Fold>::fold_ts_satisfies_expr(&mut self.visitor, node)
100881        } else {
100882            node
100883        }
100884    }
100885
100886    #[inline]
100887    fn fold_ts_setter_signature(&mut self, node: TsSetterSignature) -> TsSetterSignature {
100888        if self.enabled {
100889            <V as Fold>::fold_ts_setter_signature(&mut self.visitor, node)
100890        } else {
100891            node
100892        }
100893    }
100894
100895    #[inline]
100896    fn fold_ts_this_type(&mut self, node: TsThisType) -> TsThisType {
100897        if self.enabled {
100898            <V as Fold>::fold_ts_this_type(&mut self.visitor, node)
100899        } else {
100900            node
100901        }
100902    }
100903
100904    #[inline]
100905    fn fold_ts_this_type_or_ident(&mut self, node: TsThisTypeOrIdent) -> TsThisTypeOrIdent {
100906        if self.enabled {
100907            <V as Fold>::fold_ts_this_type_or_ident(&mut self.visitor, node)
100908        } else {
100909            node
100910        }
100911    }
100912
100913    #[inline]
100914    fn fold_ts_tpl_lit_type(&mut self, node: TsTplLitType) -> TsTplLitType {
100915        if self.enabled {
100916            <V as Fold>::fold_ts_tpl_lit_type(&mut self.visitor, node)
100917        } else {
100918            node
100919        }
100920    }
100921
100922    #[inline]
100923    fn fold_ts_tuple_element(&mut self, node: TsTupleElement) -> TsTupleElement {
100924        if self.enabled {
100925            <V as Fold>::fold_ts_tuple_element(&mut self.visitor, node)
100926        } else {
100927            node
100928        }
100929    }
100930
100931    #[inline]
100932    fn fold_ts_tuple_elements(&mut self, node: Vec<TsTupleElement>) -> Vec<TsTupleElement> {
100933        if self.enabled {
100934            <V as Fold>::fold_ts_tuple_elements(&mut self.visitor, node)
100935        } else {
100936            node
100937        }
100938    }
100939
100940    #[inline]
100941    fn fold_ts_tuple_type(&mut self, node: TsTupleType) -> TsTupleType {
100942        if self.enabled {
100943            <V as Fold>::fold_ts_tuple_type(&mut self.visitor, node)
100944        } else {
100945            node
100946        }
100947    }
100948
100949    #[inline]
100950    fn fold_ts_type(&mut self, node: TsType) -> TsType {
100951        if self.enabled {
100952            <V as Fold>::fold_ts_type(&mut self.visitor, node)
100953        } else {
100954            node
100955        }
100956    }
100957
100958    #[inline]
100959    fn fold_ts_type_alias_decl(&mut self, node: TsTypeAliasDecl) -> TsTypeAliasDecl {
100960        if self.enabled {
100961            <V as Fold>::fold_ts_type_alias_decl(&mut self.visitor, node)
100962        } else {
100963            node
100964        }
100965    }
100966
100967    #[inline]
100968    fn fold_ts_type_ann(&mut self, node: TsTypeAnn) -> TsTypeAnn {
100969        if self.enabled {
100970            <V as Fold>::fold_ts_type_ann(&mut self.visitor, node)
100971        } else {
100972            node
100973        }
100974    }
100975
100976    #[inline]
100977    fn fold_ts_type_assertion(&mut self, node: TsTypeAssertion) -> TsTypeAssertion {
100978        if self.enabled {
100979            <V as Fold>::fold_ts_type_assertion(&mut self.visitor, node)
100980        } else {
100981            node
100982        }
100983    }
100984
100985    #[inline]
100986    fn fold_ts_type_element(&mut self, node: TsTypeElement) -> TsTypeElement {
100987        if self.enabled {
100988            <V as Fold>::fold_ts_type_element(&mut self.visitor, node)
100989        } else {
100990            node
100991        }
100992    }
100993
100994    #[inline]
100995    fn fold_ts_type_elements(&mut self, node: Vec<TsTypeElement>) -> Vec<TsTypeElement> {
100996        if self.enabled {
100997            <V as Fold>::fold_ts_type_elements(&mut self.visitor, node)
100998        } else {
100999            node
101000        }
101001    }
101002
101003    #[inline]
101004    fn fold_ts_type_lit(&mut self, node: TsTypeLit) -> TsTypeLit {
101005        if self.enabled {
101006            <V as Fold>::fold_ts_type_lit(&mut self.visitor, node)
101007        } else {
101008            node
101009        }
101010    }
101011
101012    #[inline]
101013    fn fold_ts_type_operator(&mut self, node: TsTypeOperator) -> TsTypeOperator {
101014        if self.enabled {
101015            <V as Fold>::fold_ts_type_operator(&mut self.visitor, node)
101016        } else {
101017            node
101018        }
101019    }
101020
101021    #[inline]
101022    fn fold_ts_type_operator_op(&mut self, node: TsTypeOperatorOp) -> TsTypeOperatorOp {
101023        if self.enabled {
101024            <V as Fold>::fold_ts_type_operator_op(&mut self.visitor, node)
101025        } else {
101026            node
101027        }
101028    }
101029
101030    #[inline]
101031    fn fold_ts_type_param(&mut self, node: TsTypeParam) -> TsTypeParam {
101032        if self.enabled {
101033            <V as Fold>::fold_ts_type_param(&mut self.visitor, node)
101034        } else {
101035            node
101036        }
101037    }
101038
101039    #[inline]
101040    fn fold_ts_type_param_decl(&mut self, node: TsTypeParamDecl) -> TsTypeParamDecl {
101041        if self.enabled {
101042            <V as Fold>::fold_ts_type_param_decl(&mut self.visitor, node)
101043        } else {
101044            node
101045        }
101046    }
101047
101048    #[inline]
101049    fn fold_ts_type_param_instantiation(
101050        &mut self,
101051        node: TsTypeParamInstantiation,
101052    ) -> TsTypeParamInstantiation {
101053        if self.enabled {
101054            <V as Fold>::fold_ts_type_param_instantiation(&mut self.visitor, node)
101055        } else {
101056            node
101057        }
101058    }
101059
101060    #[inline]
101061    fn fold_ts_type_params(&mut self, node: Vec<TsTypeParam>) -> Vec<TsTypeParam> {
101062        if self.enabled {
101063            <V as Fold>::fold_ts_type_params(&mut self.visitor, node)
101064        } else {
101065            node
101066        }
101067    }
101068
101069    #[inline]
101070    fn fold_ts_type_predicate(&mut self, node: TsTypePredicate) -> TsTypePredicate {
101071        if self.enabled {
101072            <V as Fold>::fold_ts_type_predicate(&mut self.visitor, node)
101073        } else {
101074            node
101075        }
101076    }
101077
101078    #[inline]
101079    fn fold_ts_type_query(&mut self, node: TsTypeQuery) -> TsTypeQuery {
101080        if self.enabled {
101081            <V as Fold>::fold_ts_type_query(&mut self.visitor, node)
101082        } else {
101083            node
101084        }
101085    }
101086
101087    #[inline]
101088    fn fold_ts_type_query_expr(&mut self, node: TsTypeQueryExpr) -> TsTypeQueryExpr {
101089        if self.enabled {
101090            <V as Fold>::fold_ts_type_query_expr(&mut self.visitor, node)
101091        } else {
101092            node
101093        }
101094    }
101095
101096    #[inline]
101097    fn fold_ts_type_ref(&mut self, node: TsTypeRef) -> TsTypeRef {
101098        if self.enabled {
101099            <V as Fold>::fold_ts_type_ref(&mut self.visitor, node)
101100        } else {
101101            node
101102        }
101103    }
101104
101105    #[inline]
101106    fn fold_ts_types(&mut self, node: Vec<Box<TsType>>) -> Vec<Box<TsType>> {
101107        if self.enabled {
101108            <V as Fold>::fold_ts_types(&mut self.visitor, node)
101109        } else {
101110            node
101111        }
101112    }
101113
101114    #[inline]
101115    fn fold_ts_union_or_intersection_type(
101116        &mut self,
101117        node: TsUnionOrIntersectionType,
101118    ) -> TsUnionOrIntersectionType {
101119        if self.enabled {
101120            <V as Fold>::fold_ts_union_or_intersection_type(&mut self.visitor, node)
101121        } else {
101122            node
101123        }
101124    }
101125
101126    #[inline]
101127    fn fold_ts_union_type(&mut self, node: TsUnionType) -> TsUnionType {
101128        if self.enabled {
101129            <V as Fold>::fold_ts_union_type(&mut self.visitor, node)
101130        } else {
101131            node
101132        }
101133    }
101134
101135    #[inline]
101136    fn fold_unary_expr(&mut self, node: UnaryExpr) -> UnaryExpr {
101137        if self.enabled {
101138            <V as Fold>::fold_unary_expr(&mut self.visitor, node)
101139        } else {
101140            node
101141        }
101142    }
101143
101144    #[inline]
101145    fn fold_unary_op(&mut self, node: UnaryOp) -> UnaryOp {
101146        if self.enabled {
101147            <V as Fold>::fold_unary_op(&mut self.visitor, node)
101148        } else {
101149            node
101150        }
101151    }
101152
101153    #[inline]
101154    fn fold_update_expr(&mut self, node: UpdateExpr) -> UpdateExpr {
101155        if self.enabled {
101156            <V as Fold>::fold_update_expr(&mut self.visitor, node)
101157        } else {
101158            node
101159        }
101160    }
101161
101162    #[inline]
101163    fn fold_update_op(&mut self, node: UpdateOp) -> UpdateOp {
101164        if self.enabled {
101165            <V as Fold>::fold_update_op(&mut self.visitor, node)
101166        } else {
101167            node
101168        }
101169    }
101170
101171    #[inline]
101172    fn fold_using_decl(&mut self, node: UsingDecl) -> UsingDecl {
101173        if self.enabled {
101174            <V as Fold>::fold_using_decl(&mut self.visitor, node)
101175        } else {
101176            node
101177        }
101178    }
101179
101180    #[inline]
101181    fn fold_var_decl(&mut self, node: VarDecl) -> VarDecl {
101182        if self.enabled {
101183            <V as Fold>::fold_var_decl(&mut self.visitor, node)
101184        } else {
101185            node
101186        }
101187    }
101188
101189    #[inline]
101190    fn fold_var_decl_kind(&mut self, node: VarDeclKind) -> VarDeclKind {
101191        if self.enabled {
101192            <V as Fold>::fold_var_decl_kind(&mut self.visitor, node)
101193        } else {
101194            node
101195        }
101196    }
101197
101198    #[inline]
101199    fn fold_var_decl_or_expr(&mut self, node: VarDeclOrExpr) -> VarDeclOrExpr {
101200        if self.enabled {
101201            <V as Fold>::fold_var_decl_or_expr(&mut self.visitor, node)
101202        } else {
101203            node
101204        }
101205    }
101206
101207    #[inline]
101208    fn fold_var_declarator(&mut self, node: VarDeclarator) -> VarDeclarator {
101209        if self.enabled {
101210            <V as Fold>::fold_var_declarator(&mut self.visitor, node)
101211        } else {
101212            node
101213        }
101214    }
101215
101216    #[inline]
101217    fn fold_var_declarators(&mut self, node: Vec<VarDeclarator>) -> Vec<VarDeclarator> {
101218        if self.enabled {
101219            <V as Fold>::fold_var_declarators(&mut self.visitor, node)
101220        } else {
101221            node
101222        }
101223    }
101224
101225    #[inline]
101226    fn fold_while_stmt(&mut self, node: WhileStmt) -> WhileStmt {
101227        if self.enabled {
101228            <V as Fold>::fold_while_stmt(&mut self.visitor, node)
101229        } else {
101230            node
101231        }
101232    }
101233
101234    #[inline]
101235    fn fold_with_stmt(&mut self, node: WithStmt) -> WithStmt {
101236        if self.enabled {
101237            <V as Fold>::fold_with_stmt(&mut self.visitor, node)
101238        } else {
101239            node
101240        }
101241    }
101242
101243    #[inline]
101244    fn fold_yield_expr(&mut self, node: YieldExpr) -> YieldExpr {
101245        if self.enabled {
101246            <V as Fold>::fold_yield_expr(&mut self.visitor, node)
101247        } else {
101248            node
101249        }
101250    }
101251}
101252#[doc = r" A trait implemented for types that can be visited using a visitor."]
101253pub trait FoldWith<V: ?Sized + Fold> {
101254    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
101255    fn fold_with(self, visitor: &mut V) -> Self;
101256    #[doc = r" Visit children nodes of `self`` with `visitor`."]
101257    fn fold_children_with(self, visitor: &mut V) -> Self;
101258}
101259impl<V: ?Sized + Fold> FoldWith<V> for Accessibility {
101260    #[doc = "Calls [Fold`::fold_accessibility`] with `self`."]
101261    fn fold_with(self, visitor: &mut V) -> Self {
101262        <V as Fold>::fold_accessibility(visitor, self)
101263    }
101264
101265    fn fold_children_with(self, visitor: &mut V) -> Self {
101266        match self {
101267            Accessibility::Public => Accessibility::Public,
101268            Accessibility::Protected => Accessibility::Protected,
101269            Accessibility::Private => Accessibility::Private,
101270        }
101271    }
101272}
101273impl<V: ?Sized + Fold> FoldWith<V> for ArrayLit {
101274    #[doc = "Calls [Fold`::fold_array_lit`] with `self`."]
101275    fn fold_with(self, visitor: &mut V) -> Self {
101276        <V as Fold>::fold_array_lit(visitor, self)
101277    }
101278
101279    fn fold_children_with(self, visitor: &mut V) -> Self {
101280        match self {
101281            ArrayLit { span, elems } => {
101282                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101283                let elems =
101284                    { <Vec<Option<ExprOrSpread>> as FoldWith<V>>::fold_with(elems, visitor) };
101285                ArrayLit { span, elems }
101286            }
101287        }
101288    }
101289}
101290impl<V: ?Sized + Fold> FoldWith<V> for ArrayPat {
101291    #[doc = "Calls [Fold`::fold_array_pat`] with `self`."]
101292    fn fold_with(self, visitor: &mut V) -> Self {
101293        <V as Fold>::fold_array_pat(visitor, self)
101294    }
101295
101296    fn fold_children_with(self, visitor: &mut V) -> Self {
101297        match self {
101298            ArrayPat {
101299                span,
101300                elems,
101301                optional,
101302                type_ann,
101303            } => {
101304                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101305                let elems = { <Vec<Option<Pat>> as FoldWith<V>>::fold_with(elems, visitor) };
101306                let type_ann =
101307                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
101308                ArrayPat {
101309                    span,
101310                    elems,
101311                    optional,
101312                    type_ann,
101313                }
101314            }
101315        }
101316    }
101317}
101318impl<V: ?Sized + Fold> FoldWith<V> for ArrowExpr {
101319    #[doc = "Calls [Fold`::fold_arrow_expr`] with `self`."]
101320    fn fold_with(self, visitor: &mut V) -> Self {
101321        <V as Fold>::fold_arrow_expr(visitor, self)
101322    }
101323
101324    fn fold_children_with(self, visitor: &mut V) -> Self {
101325        match self {
101326            ArrowExpr {
101327                span,
101328                ctxt,
101329                params,
101330                body,
101331                is_async,
101332                is_generator,
101333                type_params,
101334                return_type,
101335            } => {
101336                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101337                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
101338                let params = { <Vec<Pat> as FoldWith<V>>::fold_with(params, visitor) };
101339                let body = { <Box<BlockStmtOrExpr> as FoldWith<V>>::fold_with(body, visitor) };
101340                let type_params = {
101341                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
101342                };
101343                let return_type =
101344                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(return_type, visitor) };
101345                ArrowExpr {
101346                    span,
101347                    ctxt,
101348                    params,
101349                    body,
101350                    is_async,
101351                    is_generator,
101352                    type_params,
101353                    return_type,
101354                }
101355            }
101356        }
101357    }
101358}
101359impl<V: ?Sized + Fold> FoldWith<V> for AssignExpr {
101360    #[doc = "Calls [Fold`::fold_assign_expr`] with `self`."]
101361    fn fold_with(self, visitor: &mut V) -> Self {
101362        <V as Fold>::fold_assign_expr(visitor, self)
101363    }
101364
101365    fn fold_children_with(self, visitor: &mut V) -> Self {
101366        match self {
101367            AssignExpr {
101368                span,
101369                op,
101370                left,
101371                right,
101372            } => {
101373                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101374                let op = { <AssignOp as FoldWith<V>>::fold_with(op, visitor) };
101375                let left = { <AssignTarget as FoldWith<V>>::fold_with(left, visitor) };
101376                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
101377                AssignExpr {
101378                    span,
101379                    op,
101380                    left,
101381                    right,
101382                }
101383            }
101384        }
101385    }
101386}
101387impl<V: ?Sized + Fold> FoldWith<V> for AssignOp {
101388    #[doc = "Calls [Fold`::fold_assign_op`] with `self`."]
101389    fn fold_with(self, visitor: &mut V) -> Self {
101390        <V as Fold>::fold_assign_op(visitor, self)
101391    }
101392
101393    fn fold_children_with(self, visitor: &mut V) -> Self {
101394        match self {
101395            AssignOp::Assign => AssignOp::Assign,
101396            AssignOp::AddAssign => AssignOp::AddAssign,
101397            AssignOp::SubAssign => AssignOp::SubAssign,
101398            AssignOp::MulAssign => AssignOp::MulAssign,
101399            AssignOp::DivAssign => AssignOp::DivAssign,
101400            AssignOp::ModAssign => AssignOp::ModAssign,
101401            AssignOp::LShiftAssign => AssignOp::LShiftAssign,
101402            AssignOp::RShiftAssign => AssignOp::RShiftAssign,
101403            AssignOp::ZeroFillRShiftAssign => AssignOp::ZeroFillRShiftAssign,
101404            AssignOp::BitOrAssign => AssignOp::BitOrAssign,
101405            AssignOp::BitXorAssign => AssignOp::BitXorAssign,
101406            AssignOp::BitAndAssign => AssignOp::BitAndAssign,
101407            AssignOp::ExpAssign => AssignOp::ExpAssign,
101408            AssignOp::AndAssign => AssignOp::AndAssign,
101409            AssignOp::OrAssign => AssignOp::OrAssign,
101410            AssignOp::NullishAssign => AssignOp::NullishAssign,
101411        }
101412    }
101413}
101414impl<V: ?Sized + Fold> FoldWith<V> for AssignPat {
101415    #[doc = "Calls [Fold`::fold_assign_pat`] with `self`."]
101416    fn fold_with(self, visitor: &mut V) -> Self {
101417        <V as Fold>::fold_assign_pat(visitor, self)
101418    }
101419
101420    fn fold_children_with(self, visitor: &mut V) -> Self {
101421        match self {
101422            AssignPat { span, left, right } => {
101423                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101424                let left = { <Box<Pat> as FoldWith<V>>::fold_with(left, visitor) };
101425                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
101426                AssignPat { span, left, right }
101427            }
101428        }
101429    }
101430}
101431impl<V: ?Sized + Fold> FoldWith<V> for AssignPatProp {
101432    #[doc = "Calls [Fold`::fold_assign_pat_prop`] with `self`."]
101433    fn fold_with(self, visitor: &mut V) -> Self {
101434        <V as Fold>::fold_assign_pat_prop(visitor, self)
101435    }
101436
101437    fn fold_children_with(self, visitor: &mut V) -> Self {
101438        match self {
101439            AssignPatProp { span, key, value } => {
101440                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101441                let key = { <BindingIdent as FoldWith<V>>::fold_with(key, visitor) };
101442                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
101443                AssignPatProp { span, key, value }
101444            }
101445        }
101446    }
101447}
101448impl<V: ?Sized + Fold> FoldWith<V> for AssignProp {
101449    #[doc = "Calls [Fold`::fold_assign_prop`] with `self`."]
101450    fn fold_with(self, visitor: &mut V) -> Self {
101451        <V as Fold>::fold_assign_prop(visitor, self)
101452    }
101453
101454    fn fold_children_with(self, visitor: &mut V) -> Self {
101455        match self {
101456            AssignProp { span, key, value } => {
101457                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101458                let key = { <Ident as FoldWith<V>>::fold_with(key, visitor) };
101459                let value = { <Box<Expr> as FoldWith<V>>::fold_with(value, visitor) };
101460                AssignProp { span, key, value }
101461            }
101462        }
101463    }
101464}
101465impl<V: ?Sized + Fold> FoldWith<V> for AssignTarget {
101466    #[doc = "Calls [Fold`::fold_assign_target`] with `self`."]
101467    fn fold_with(self, visitor: &mut V) -> Self {
101468        <V as Fold>::fold_assign_target(visitor, self)
101469    }
101470
101471    fn fold_children_with(self, visitor: &mut V) -> Self {
101472        match self {
101473            AssignTarget::Simple { 0: _field_0 } => {
101474                let _field_0 = <SimpleAssignTarget as FoldWith<V>>::fold_with(_field_0, visitor);
101475                AssignTarget::Simple { 0: _field_0 }
101476            }
101477            AssignTarget::Pat { 0: _field_0 } => {
101478                let _field_0 = <AssignTargetPat as FoldWith<V>>::fold_with(_field_0, visitor);
101479                AssignTarget::Pat { 0: _field_0 }
101480            }
101481        }
101482    }
101483}
101484impl<V: ?Sized + Fold> FoldWith<V> for AssignTargetPat {
101485    #[doc = "Calls [Fold`::fold_assign_target_pat`] with `self`."]
101486    fn fold_with(self, visitor: &mut V) -> Self {
101487        <V as Fold>::fold_assign_target_pat(visitor, self)
101488    }
101489
101490    fn fold_children_with(self, visitor: &mut V) -> Self {
101491        match self {
101492            AssignTargetPat::Array { 0: _field_0 } => {
101493                let _field_0 = <ArrayPat as FoldWith<V>>::fold_with(_field_0, visitor);
101494                AssignTargetPat::Array { 0: _field_0 }
101495            }
101496            AssignTargetPat::Object { 0: _field_0 } => {
101497                let _field_0 = <ObjectPat as FoldWith<V>>::fold_with(_field_0, visitor);
101498                AssignTargetPat::Object { 0: _field_0 }
101499            }
101500            AssignTargetPat::Invalid { 0: _field_0 } => {
101501                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
101502                AssignTargetPat::Invalid { 0: _field_0 }
101503            }
101504        }
101505    }
101506}
101507impl<V: ?Sized + Fold> FoldWith<V> for AutoAccessor {
101508    #[doc = "Calls [Fold`::fold_auto_accessor`] with `self`."]
101509    fn fold_with(self, visitor: &mut V) -> Self {
101510        <V as Fold>::fold_auto_accessor(visitor, self)
101511    }
101512
101513    fn fold_children_with(self, visitor: &mut V) -> Self {
101514        match self {
101515            AutoAccessor {
101516                span,
101517                key,
101518                value,
101519                type_ann,
101520                is_static,
101521                decorators,
101522                accessibility,
101523                is_abstract,
101524                is_override,
101525                definite,
101526            } => {
101527                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101528                let key = { <Key as FoldWith<V>>::fold_with(key, visitor) };
101529                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
101530                let type_ann =
101531                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
101532                let decorators =
101533                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
101534                let accessibility =
101535                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
101536                AutoAccessor {
101537                    span,
101538                    key,
101539                    value,
101540                    type_ann,
101541                    is_static,
101542                    decorators,
101543                    accessibility,
101544                    is_abstract,
101545                    is_override,
101546                    definite,
101547                }
101548            }
101549        }
101550    }
101551}
101552impl<V: ?Sized + Fold> FoldWith<V> for AwaitExpr {
101553    #[doc = "Calls [Fold`::fold_await_expr`] with `self`."]
101554    fn fold_with(self, visitor: &mut V) -> Self {
101555        <V as Fold>::fold_await_expr(visitor, self)
101556    }
101557
101558    fn fold_children_with(self, visitor: &mut V) -> Self {
101559        match self {
101560            AwaitExpr { span, arg } => {
101561                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101562                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
101563                AwaitExpr { span, arg }
101564            }
101565        }
101566    }
101567}
101568impl<V: ?Sized + Fold> FoldWith<V> for BigInt {
101569    #[doc = "Calls [Fold`::fold_big_int`] with `self`."]
101570    fn fold_with(self, visitor: &mut V) -> Self {
101571        <V as Fold>::fold_big_int(visitor, self)
101572    }
101573
101574    fn fold_children_with(self, visitor: &mut V) -> Self {
101575        match self {
101576            BigInt { span, value, raw } => {
101577                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101578                let value = { <Box<BigIntValue> as FoldWith<V>>::fold_with(value, visitor) };
101579                let raw = { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(raw, visitor) };
101580                BigInt { span, value, raw }
101581            }
101582        }
101583    }
101584}
101585impl<V: ?Sized + Fold> FoldWith<V> for BinExpr {
101586    #[doc = "Calls [Fold`::fold_bin_expr`] with `self`."]
101587    fn fold_with(self, visitor: &mut V) -> Self {
101588        <V as Fold>::fold_bin_expr(visitor, self)
101589    }
101590
101591    fn fold_children_with(self, visitor: &mut V) -> Self {
101592        match self {
101593            BinExpr {
101594                span,
101595                op,
101596                left,
101597                right,
101598            } => {
101599                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101600                let op = { <BinaryOp as FoldWith<V>>::fold_with(op, visitor) };
101601                let left = { <Box<Expr> as FoldWith<V>>::fold_with(left, visitor) };
101602                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
101603                BinExpr {
101604                    span,
101605                    op,
101606                    left,
101607                    right,
101608                }
101609            }
101610        }
101611    }
101612}
101613impl<V: ?Sized + Fold> FoldWith<V> for BinaryOp {
101614    #[doc = "Calls [Fold`::fold_binary_op`] with `self`."]
101615    fn fold_with(self, visitor: &mut V) -> Self {
101616        <V as Fold>::fold_binary_op(visitor, self)
101617    }
101618
101619    fn fold_children_with(self, visitor: &mut V) -> Self {
101620        match self {
101621            BinaryOp::EqEq => BinaryOp::EqEq,
101622            BinaryOp::NotEq => BinaryOp::NotEq,
101623            BinaryOp::EqEqEq => BinaryOp::EqEqEq,
101624            BinaryOp::NotEqEq => BinaryOp::NotEqEq,
101625            BinaryOp::Lt => BinaryOp::Lt,
101626            BinaryOp::LtEq => BinaryOp::LtEq,
101627            BinaryOp::Gt => BinaryOp::Gt,
101628            BinaryOp::GtEq => BinaryOp::GtEq,
101629            BinaryOp::LShift => BinaryOp::LShift,
101630            BinaryOp::RShift => BinaryOp::RShift,
101631            BinaryOp::ZeroFillRShift => BinaryOp::ZeroFillRShift,
101632            BinaryOp::Add => BinaryOp::Add,
101633            BinaryOp::Sub => BinaryOp::Sub,
101634            BinaryOp::Mul => BinaryOp::Mul,
101635            BinaryOp::Div => BinaryOp::Div,
101636            BinaryOp::Mod => BinaryOp::Mod,
101637            BinaryOp::BitOr => BinaryOp::BitOr,
101638            BinaryOp::BitXor => BinaryOp::BitXor,
101639            BinaryOp::BitAnd => BinaryOp::BitAnd,
101640            BinaryOp::LogicalOr => BinaryOp::LogicalOr,
101641            BinaryOp::LogicalAnd => BinaryOp::LogicalAnd,
101642            BinaryOp::In => BinaryOp::In,
101643            BinaryOp::InstanceOf => BinaryOp::InstanceOf,
101644            BinaryOp::Exp => BinaryOp::Exp,
101645            BinaryOp::NullishCoalescing => BinaryOp::NullishCoalescing,
101646        }
101647    }
101648}
101649impl<V: ?Sized + Fold> FoldWith<V> for BindingIdent {
101650    #[doc = "Calls [Fold`::fold_binding_ident`] with `self`."]
101651    fn fold_with(self, visitor: &mut V) -> Self {
101652        <V as Fold>::fold_binding_ident(visitor, self)
101653    }
101654
101655    fn fold_children_with(self, visitor: &mut V) -> Self {
101656        match self {
101657            BindingIdent { id, type_ann } => {
101658                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
101659                let type_ann =
101660                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
101661                BindingIdent { id, type_ann }
101662            }
101663        }
101664    }
101665}
101666impl<V: ?Sized + Fold> FoldWith<V> for BlockStmt {
101667    #[doc = "Calls [Fold`::fold_block_stmt`] with `self`."]
101668    fn fold_with(self, visitor: &mut V) -> Self {
101669        <V as Fold>::fold_block_stmt(visitor, self)
101670    }
101671
101672    fn fold_children_with(self, visitor: &mut V) -> Self {
101673        match self {
101674            BlockStmt { span, ctxt, stmts } => {
101675                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101676                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
101677                let stmts = { <Vec<Stmt> as FoldWith<V>>::fold_with(stmts, visitor) };
101678                BlockStmt { span, ctxt, stmts }
101679            }
101680        }
101681    }
101682}
101683impl<V: ?Sized + Fold> FoldWith<V> for BlockStmtOrExpr {
101684    #[doc = "Calls [Fold`::fold_block_stmt_or_expr`] with `self`."]
101685    fn fold_with(self, visitor: &mut V) -> Self {
101686        <V as Fold>::fold_block_stmt_or_expr(visitor, self)
101687    }
101688
101689    fn fold_children_with(self, visitor: &mut V) -> Self {
101690        match self {
101691            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
101692                let _field_0 = <BlockStmt as FoldWith<V>>::fold_with(_field_0, visitor);
101693                BlockStmtOrExpr::BlockStmt { 0: _field_0 }
101694            }
101695            BlockStmtOrExpr::Expr { 0: _field_0 } => {
101696                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
101697                BlockStmtOrExpr::Expr { 0: _field_0 }
101698            }
101699        }
101700    }
101701}
101702impl<V: ?Sized + Fold> FoldWith<V> for Bool {
101703    #[doc = "Calls [Fold`::fold_bool`] with `self`."]
101704    fn fold_with(self, visitor: &mut V) -> Self {
101705        <V as Fold>::fold_bool(visitor, self)
101706    }
101707
101708    fn fold_children_with(self, visitor: &mut V) -> Self {
101709        match self {
101710            Bool { span, value } => {
101711                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101712                Bool { span, value }
101713            }
101714        }
101715    }
101716}
101717impl<V: ?Sized + Fold> FoldWith<V> for BreakStmt {
101718    #[doc = "Calls [Fold`::fold_break_stmt`] with `self`."]
101719    fn fold_with(self, visitor: &mut V) -> Self {
101720        <V as Fold>::fold_break_stmt(visitor, self)
101721    }
101722
101723    fn fold_children_with(self, visitor: &mut V) -> Self {
101724        match self {
101725            BreakStmt { span, label } => {
101726                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101727                let label = { <Option<Ident> as FoldWith<V>>::fold_with(label, visitor) };
101728                BreakStmt { span, label }
101729            }
101730        }
101731    }
101732}
101733impl<V: ?Sized + Fold> FoldWith<V> for CallExpr {
101734    #[doc = "Calls [Fold`::fold_call_expr`] with `self`."]
101735    fn fold_with(self, visitor: &mut V) -> Self {
101736        <V as Fold>::fold_call_expr(visitor, self)
101737    }
101738
101739    fn fold_children_with(self, visitor: &mut V) -> Self {
101740        match self {
101741            CallExpr {
101742                span,
101743                ctxt,
101744                callee,
101745                args,
101746                type_args,
101747            } => {
101748                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101749                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
101750                let callee = { <Callee as FoldWith<V>>::fold_with(callee, visitor) };
101751                let args = { <Vec<ExprOrSpread> as FoldWith<V>>::fold_with(args, visitor) };
101752                let type_args = {
101753                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
101754                        type_args, visitor,
101755                    )
101756                };
101757                CallExpr {
101758                    span,
101759                    ctxt,
101760                    callee,
101761                    args,
101762                    type_args,
101763                }
101764            }
101765        }
101766    }
101767}
101768impl<V: ?Sized + Fold> FoldWith<V> for Callee {
101769    #[doc = "Calls [Fold`::fold_callee`] with `self`."]
101770    fn fold_with(self, visitor: &mut V) -> Self {
101771        <V as Fold>::fold_callee(visitor, self)
101772    }
101773
101774    fn fold_children_with(self, visitor: &mut V) -> Self {
101775        match self {
101776            Callee::Super { 0: _field_0 } => {
101777                let _field_0 = <Super as FoldWith<V>>::fold_with(_field_0, visitor);
101778                Callee::Super { 0: _field_0 }
101779            }
101780            Callee::Import { 0: _field_0 } => {
101781                let _field_0 = <Import as FoldWith<V>>::fold_with(_field_0, visitor);
101782                Callee::Import { 0: _field_0 }
101783            }
101784            Callee::Expr { 0: _field_0 } => {
101785                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
101786                Callee::Expr { 0: _field_0 }
101787            }
101788        }
101789    }
101790}
101791impl<V: ?Sized + Fold> FoldWith<V> for CatchClause {
101792    #[doc = "Calls [Fold`::fold_catch_clause`] with `self`."]
101793    fn fold_with(self, visitor: &mut V) -> Self {
101794        <V as Fold>::fold_catch_clause(visitor, self)
101795    }
101796
101797    fn fold_children_with(self, visitor: &mut V) -> Self {
101798        match self {
101799            CatchClause { span, param, body } => {
101800                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101801                let param = { <Option<Pat> as FoldWith<V>>::fold_with(param, visitor) };
101802                let body = { <BlockStmt as FoldWith<V>>::fold_with(body, visitor) };
101803                CatchClause { span, param, body }
101804            }
101805        }
101806    }
101807}
101808impl<V: ?Sized + Fold> FoldWith<V> for Class {
101809    #[doc = "Calls [Fold`::fold_class`] with `self`."]
101810    fn fold_with(self, visitor: &mut V) -> Self {
101811        <V as Fold>::fold_class(visitor, self)
101812    }
101813
101814    fn fold_children_with(self, visitor: &mut V) -> Self {
101815        match self {
101816            Class {
101817                span,
101818                ctxt,
101819                decorators,
101820                body,
101821                super_class,
101822                is_abstract,
101823                type_params,
101824                super_type_params,
101825                implements,
101826            } => {
101827                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101828                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
101829                let decorators =
101830                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
101831                let body = { <Vec<ClassMember> as FoldWith<V>>::fold_with(body, visitor) };
101832                let super_class =
101833                    { <Option<Box<Expr>> as FoldWith<V>>::fold_with(super_class, visitor) };
101834                let type_params = {
101835                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
101836                };
101837                let super_type_params = {
101838                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
101839                        super_type_params,
101840                        visitor,
101841                    )
101842                };
101843                let implements =
101844                    { <Vec<TsExprWithTypeArgs> as FoldWith<V>>::fold_with(implements, visitor) };
101845                Class {
101846                    span,
101847                    ctxt,
101848                    decorators,
101849                    body,
101850                    super_class,
101851                    is_abstract,
101852                    type_params,
101853                    super_type_params,
101854                    implements,
101855                }
101856            }
101857        }
101858    }
101859}
101860impl<V: ?Sized + Fold> FoldWith<V> for ClassDecl {
101861    #[doc = "Calls [Fold`::fold_class_decl`] with `self`."]
101862    fn fold_with(self, visitor: &mut V) -> Self {
101863        <V as Fold>::fold_class_decl(visitor, self)
101864    }
101865
101866    fn fold_children_with(self, visitor: &mut V) -> Self {
101867        match self {
101868            ClassDecl {
101869                ident,
101870                declare,
101871                class,
101872            } => {
101873                let ident = { <Ident as FoldWith<V>>::fold_with(ident, visitor) };
101874                let class = { <Box<Class> as FoldWith<V>>::fold_with(class, visitor) };
101875                ClassDecl {
101876                    ident,
101877                    declare,
101878                    class,
101879                }
101880            }
101881        }
101882    }
101883}
101884impl<V: ?Sized + Fold> FoldWith<V> for ClassExpr {
101885    #[doc = "Calls [Fold`::fold_class_expr`] with `self`."]
101886    fn fold_with(self, visitor: &mut V) -> Self {
101887        <V as Fold>::fold_class_expr(visitor, self)
101888    }
101889
101890    fn fold_children_with(self, visitor: &mut V) -> Self {
101891        match self {
101892            ClassExpr { ident, class } => {
101893                let ident = { <Option<Ident> as FoldWith<V>>::fold_with(ident, visitor) };
101894                let class = { <Box<Class> as FoldWith<V>>::fold_with(class, visitor) };
101895                ClassExpr { ident, class }
101896            }
101897        }
101898    }
101899}
101900impl<V: ?Sized + Fold> FoldWith<V> for ClassMember {
101901    #[doc = "Calls [Fold`::fold_class_member`] with `self`."]
101902    fn fold_with(self, visitor: &mut V) -> Self {
101903        <V as Fold>::fold_class_member(visitor, self)
101904    }
101905
101906    fn fold_children_with(self, visitor: &mut V) -> Self {
101907        match self {
101908            ClassMember::Constructor { 0: _field_0 } => {
101909                let _field_0 = <Constructor as FoldWith<V>>::fold_with(_field_0, visitor);
101910                ClassMember::Constructor { 0: _field_0 }
101911            }
101912            ClassMember::Method { 0: _field_0 } => {
101913                let _field_0 = <ClassMethod as FoldWith<V>>::fold_with(_field_0, visitor);
101914                ClassMember::Method { 0: _field_0 }
101915            }
101916            ClassMember::PrivateMethod { 0: _field_0 } => {
101917                let _field_0 = <PrivateMethod as FoldWith<V>>::fold_with(_field_0, visitor);
101918                ClassMember::PrivateMethod { 0: _field_0 }
101919            }
101920            ClassMember::ClassProp { 0: _field_0 } => {
101921                let _field_0 = <ClassProp as FoldWith<V>>::fold_with(_field_0, visitor);
101922                ClassMember::ClassProp { 0: _field_0 }
101923            }
101924            ClassMember::PrivateProp { 0: _field_0 } => {
101925                let _field_0 = <PrivateProp as FoldWith<V>>::fold_with(_field_0, visitor);
101926                ClassMember::PrivateProp { 0: _field_0 }
101927            }
101928            ClassMember::TsIndexSignature { 0: _field_0 } => {
101929                let _field_0 = <TsIndexSignature as FoldWith<V>>::fold_with(_field_0, visitor);
101930                ClassMember::TsIndexSignature { 0: _field_0 }
101931            }
101932            ClassMember::Empty { 0: _field_0 } => {
101933                let _field_0 = <EmptyStmt as FoldWith<V>>::fold_with(_field_0, visitor);
101934                ClassMember::Empty { 0: _field_0 }
101935            }
101936            ClassMember::StaticBlock { 0: _field_0 } => {
101937                let _field_0 = <StaticBlock as FoldWith<V>>::fold_with(_field_0, visitor);
101938                ClassMember::StaticBlock { 0: _field_0 }
101939            }
101940            ClassMember::AutoAccessor { 0: _field_0 } => {
101941                let _field_0 = <AutoAccessor as FoldWith<V>>::fold_with(_field_0, visitor);
101942                ClassMember::AutoAccessor { 0: _field_0 }
101943            }
101944        }
101945    }
101946}
101947impl<V: ?Sized + Fold> FoldWith<V> for ClassMethod {
101948    #[doc = "Calls [Fold`::fold_class_method`] with `self`."]
101949    fn fold_with(self, visitor: &mut V) -> Self {
101950        <V as Fold>::fold_class_method(visitor, self)
101951    }
101952
101953    fn fold_children_with(self, visitor: &mut V) -> Self {
101954        match self {
101955            ClassMethod {
101956                span,
101957                key,
101958                function,
101959                kind,
101960                is_static,
101961                accessibility,
101962                is_abstract,
101963                is_optional,
101964                is_override,
101965            } => {
101966                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
101967                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
101968                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
101969                let kind = { <MethodKind as FoldWith<V>>::fold_with(kind, visitor) };
101970                let accessibility =
101971                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
101972                ClassMethod {
101973                    span,
101974                    key,
101975                    function,
101976                    kind,
101977                    is_static,
101978                    accessibility,
101979                    is_abstract,
101980                    is_optional,
101981                    is_override,
101982                }
101983            }
101984        }
101985    }
101986}
101987impl<V: ?Sized + Fold> FoldWith<V> for ClassProp {
101988    #[doc = "Calls [Fold`::fold_class_prop`] with `self`."]
101989    fn fold_with(self, visitor: &mut V) -> Self {
101990        <V as Fold>::fold_class_prop(visitor, self)
101991    }
101992
101993    fn fold_children_with(self, visitor: &mut V) -> Self {
101994        match self {
101995            ClassProp {
101996                span,
101997                key,
101998                value,
101999                type_ann,
102000                is_static,
102001                decorators,
102002                accessibility,
102003                is_abstract,
102004                is_optional,
102005                is_override,
102006                readonly,
102007                declare,
102008                definite,
102009            } => {
102010                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102011                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
102012                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
102013                let type_ann =
102014                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
102015                let decorators =
102016                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
102017                let accessibility =
102018                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
102019                ClassProp {
102020                    span,
102021                    key,
102022                    value,
102023                    type_ann,
102024                    is_static,
102025                    decorators,
102026                    accessibility,
102027                    is_abstract,
102028                    is_optional,
102029                    is_override,
102030                    readonly,
102031                    declare,
102032                    definite,
102033                }
102034            }
102035        }
102036    }
102037}
102038impl<V: ?Sized + Fold> FoldWith<V> for ComputedPropName {
102039    #[doc = "Calls [Fold`::fold_computed_prop_name`] with `self`."]
102040    fn fold_with(self, visitor: &mut V) -> Self {
102041        <V as Fold>::fold_computed_prop_name(visitor, self)
102042    }
102043
102044    fn fold_children_with(self, visitor: &mut V) -> Self {
102045        match self {
102046            ComputedPropName { span, expr } => {
102047                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102048                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102049                ComputedPropName { span, expr }
102050            }
102051        }
102052    }
102053}
102054impl<V: ?Sized + Fold> FoldWith<V> for CondExpr {
102055    #[doc = "Calls [Fold`::fold_cond_expr`] with `self`."]
102056    fn fold_with(self, visitor: &mut V) -> Self {
102057        <V as Fold>::fold_cond_expr(visitor, self)
102058    }
102059
102060    fn fold_children_with(self, visitor: &mut V) -> Self {
102061        match self {
102062            CondExpr {
102063                span,
102064                test,
102065                cons,
102066                alt,
102067            } => {
102068                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102069                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
102070                let cons = { <Box<Expr> as FoldWith<V>>::fold_with(cons, visitor) };
102071                let alt = { <Box<Expr> as FoldWith<V>>::fold_with(alt, visitor) };
102072                CondExpr {
102073                    span,
102074                    test,
102075                    cons,
102076                    alt,
102077                }
102078            }
102079        }
102080    }
102081}
102082impl<V: ?Sized + Fold> FoldWith<V> for Constructor {
102083    #[doc = "Calls [Fold`::fold_constructor`] with `self`."]
102084    fn fold_with(self, visitor: &mut V) -> Self {
102085        <V as Fold>::fold_constructor(visitor, self)
102086    }
102087
102088    fn fold_children_with(self, visitor: &mut V) -> Self {
102089        match self {
102090            Constructor {
102091                span,
102092                ctxt,
102093                key,
102094                params,
102095                body,
102096                accessibility,
102097                is_optional,
102098            } => {
102099                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102100                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102101                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
102102                let params =
102103                    { <Vec<ParamOrTsParamProp> as FoldWith<V>>::fold_with(params, visitor) };
102104                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
102105                let accessibility =
102106                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
102107                Constructor {
102108                    span,
102109                    ctxt,
102110                    key,
102111                    params,
102112                    body,
102113                    accessibility,
102114                    is_optional,
102115                }
102116            }
102117        }
102118    }
102119}
102120impl<V: ?Sized + Fold> FoldWith<V> for ContinueStmt {
102121    #[doc = "Calls [Fold`::fold_continue_stmt`] with `self`."]
102122    fn fold_with(self, visitor: &mut V) -> Self {
102123        <V as Fold>::fold_continue_stmt(visitor, self)
102124    }
102125
102126    fn fold_children_with(self, visitor: &mut V) -> Self {
102127        match self {
102128            ContinueStmt { span, label } => {
102129                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102130                let label = { <Option<Ident> as FoldWith<V>>::fold_with(label, visitor) };
102131                ContinueStmt { span, label }
102132            }
102133        }
102134    }
102135}
102136impl<V: ?Sized + Fold> FoldWith<V> for DebuggerStmt {
102137    #[doc = "Calls [Fold`::fold_debugger_stmt`] with `self`."]
102138    fn fold_with(self, visitor: &mut V) -> Self {
102139        <V as Fold>::fold_debugger_stmt(visitor, self)
102140    }
102141
102142    fn fold_children_with(self, visitor: &mut V) -> Self {
102143        match self {
102144            DebuggerStmt { span } => {
102145                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102146                DebuggerStmt { span }
102147            }
102148        }
102149    }
102150}
102151impl<V: ?Sized + Fold> FoldWith<V> for Decl {
102152    #[doc = "Calls [Fold`::fold_decl`] with `self`."]
102153    fn fold_with(self, visitor: &mut V) -> Self {
102154        <V as Fold>::fold_decl(visitor, self)
102155    }
102156
102157    fn fold_children_with(self, visitor: &mut V) -> Self {
102158        match self {
102159            Decl::Class { 0: _field_0 } => {
102160                let _field_0 = <ClassDecl as FoldWith<V>>::fold_with(_field_0, visitor);
102161                Decl::Class { 0: _field_0 }
102162            }
102163            Decl::Fn { 0: _field_0 } => {
102164                let _field_0 = <FnDecl as FoldWith<V>>::fold_with(_field_0, visitor);
102165                Decl::Fn { 0: _field_0 }
102166            }
102167            Decl::Var { 0: _field_0 } => {
102168                let _field_0 = <Box<VarDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102169                Decl::Var { 0: _field_0 }
102170            }
102171            Decl::Using { 0: _field_0 } => {
102172                let _field_0 = <Box<UsingDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102173                Decl::Using { 0: _field_0 }
102174            }
102175            Decl::TsInterface { 0: _field_0 } => {
102176                let _field_0 = <Box<TsInterfaceDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102177                Decl::TsInterface { 0: _field_0 }
102178            }
102179            Decl::TsTypeAlias { 0: _field_0 } => {
102180                let _field_0 = <Box<TsTypeAliasDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102181                Decl::TsTypeAlias { 0: _field_0 }
102182            }
102183            Decl::TsEnum { 0: _field_0 } => {
102184                let _field_0 = <Box<TsEnumDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102185                Decl::TsEnum { 0: _field_0 }
102186            }
102187            Decl::TsModule { 0: _field_0 } => {
102188                let _field_0 = <Box<TsModuleDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102189                Decl::TsModule { 0: _field_0 }
102190            }
102191        }
102192    }
102193}
102194impl<V: ?Sized + Fold> FoldWith<V> for Decorator {
102195    #[doc = "Calls [Fold`::fold_decorator`] with `self`."]
102196    fn fold_with(self, visitor: &mut V) -> Self {
102197        <V as Fold>::fold_decorator(visitor, self)
102198    }
102199
102200    fn fold_children_with(self, visitor: &mut V) -> Self {
102201        match self {
102202            Decorator { span, expr } => {
102203                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102204                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102205                Decorator { span, expr }
102206            }
102207        }
102208    }
102209}
102210impl<V: ?Sized + Fold> FoldWith<V> for DefaultDecl {
102211    #[doc = "Calls [Fold`::fold_default_decl`] with `self`."]
102212    fn fold_with(self, visitor: &mut V) -> Self {
102213        <V as Fold>::fold_default_decl(visitor, self)
102214    }
102215
102216    fn fold_children_with(self, visitor: &mut V) -> Self {
102217        match self {
102218            DefaultDecl::Class { 0: _field_0 } => {
102219                let _field_0 = <ClassExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102220                DefaultDecl::Class { 0: _field_0 }
102221            }
102222            DefaultDecl::Fn { 0: _field_0 } => {
102223                let _field_0 = <FnExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102224                DefaultDecl::Fn { 0: _field_0 }
102225            }
102226            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
102227                let _field_0 = <Box<TsInterfaceDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102228                DefaultDecl::TsInterfaceDecl { 0: _field_0 }
102229            }
102230        }
102231    }
102232}
102233impl<V: ?Sized + Fold> FoldWith<V> for DoWhileStmt {
102234    #[doc = "Calls [Fold`::fold_do_while_stmt`] with `self`."]
102235    fn fold_with(self, visitor: &mut V) -> Self {
102236        <V as Fold>::fold_do_while_stmt(visitor, self)
102237    }
102238
102239    fn fold_children_with(self, visitor: &mut V) -> Self {
102240        match self {
102241            DoWhileStmt { span, test, body } => {
102242                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102243                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
102244                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
102245                DoWhileStmt { span, test, body }
102246            }
102247        }
102248    }
102249}
102250impl<V: ?Sized + Fold> FoldWith<V> for EmptyStmt {
102251    #[doc = "Calls [Fold`::fold_empty_stmt`] with `self`."]
102252    fn fold_with(self, visitor: &mut V) -> Self {
102253        <V as Fold>::fold_empty_stmt(visitor, self)
102254    }
102255
102256    fn fold_children_with(self, visitor: &mut V) -> Self {
102257        match self {
102258            EmptyStmt { span } => {
102259                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102260                EmptyStmt { span }
102261            }
102262        }
102263    }
102264}
102265impl<V: ?Sized + Fold> FoldWith<V> for ExportAll {
102266    #[doc = "Calls [Fold`::fold_export_all`] with `self`."]
102267    fn fold_with(self, visitor: &mut V) -> Self {
102268        <V as Fold>::fold_export_all(visitor, self)
102269    }
102270
102271    fn fold_children_with(self, visitor: &mut V) -> Self {
102272        match self {
102273            ExportAll {
102274                span,
102275                src,
102276                type_only,
102277                with,
102278            } => {
102279                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102280                let src = { <Box<Str> as FoldWith<V>>::fold_with(src, visitor) };
102281                let with = { <Option<Box<ObjectLit>> as FoldWith<V>>::fold_with(with, visitor) };
102282                ExportAll {
102283                    span,
102284                    src,
102285                    type_only,
102286                    with,
102287                }
102288            }
102289        }
102290    }
102291}
102292impl<V: ?Sized + Fold> FoldWith<V> for ExportDecl {
102293    #[doc = "Calls [Fold`::fold_export_decl`] with `self`."]
102294    fn fold_with(self, visitor: &mut V) -> Self {
102295        <V as Fold>::fold_export_decl(visitor, self)
102296    }
102297
102298    fn fold_children_with(self, visitor: &mut V) -> Self {
102299        match self {
102300            ExportDecl { span, decl } => {
102301                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102302                let decl = { <Decl as FoldWith<V>>::fold_with(decl, visitor) };
102303                ExportDecl { span, decl }
102304            }
102305        }
102306    }
102307}
102308impl<V: ?Sized + Fold> FoldWith<V> for ExportDefaultDecl {
102309    #[doc = "Calls [Fold`::fold_export_default_decl`] with `self`."]
102310    fn fold_with(self, visitor: &mut V) -> Self {
102311        <V as Fold>::fold_export_default_decl(visitor, self)
102312    }
102313
102314    fn fold_children_with(self, visitor: &mut V) -> Self {
102315        match self {
102316            ExportDefaultDecl { span, decl } => {
102317                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102318                let decl = { <DefaultDecl as FoldWith<V>>::fold_with(decl, visitor) };
102319                ExportDefaultDecl { span, decl }
102320            }
102321        }
102322    }
102323}
102324impl<V: ?Sized + Fold> FoldWith<V> for ExportDefaultExpr {
102325    #[doc = "Calls [Fold`::fold_export_default_expr`] with `self`."]
102326    fn fold_with(self, visitor: &mut V) -> Self {
102327        <V as Fold>::fold_export_default_expr(visitor, self)
102328    }
102329
102330    fn fold_children_with(self, visitor: &mut V) -> Self {
102331        match self {
102332            ExportDefaultExpr { span, expr } => {
102333                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102334                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102335                ExportDefaultExpr { span, expr }
102336            }
102337        }
102338    }
102339}
102340impl<V: ?Sized + Fold> FoldWith<V> for ExportDefaultSpecifier {
102341    #[doc = "Calls [Fold`::fold_export_default_specifier`] with `self`."]
102342    fn fold_with(self, visitor: &mut V) -> Self {
102343        <V as Fold>::fold_export_default_specifier(visitor, self)
102344    }
102345
102346    fn fold_children_with(self, visitor: &mut V) -> Self {
102347        match self {
102348            ExportDefaultSpecifier { exported } => {
102349                let exported = { <Ident as FoldWith<V>>::fold_with(exported, visitor) };
102350                ExportDefaultSpecifier { exported }
102351            }
102352        }
102353    }
102354}
102355impl<V: ?Sized + Fold> FoldWith<V> for ExportNamedSpecifier {
102356    #[doc = "Calls [Fold`::fold_export_named_specifier`] with `self`."]
102357    fn fold_with(self, visitor: &mut V) -> Self {
102358        <V as Fold>::fold_export_named_specifier(visitor, self)
102359    }
102360
102361    fn fold_children_with(self, visitor: &mut V) -> Self {
102362        match self {
102363            ExportNamedSpecifier {
102364                span,
102365                orig,
102366                exported,
102367                is_type_only,
102368            } => {
102369                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102370                let orig = { <ModuleExportName as FoldWith<V>>::fold_with(orig, visitor) };
102371                let exported =
102372                    { <Option<ModuleExportName> as FoldWith<V>>::fold_with(exported, visitor) };
102373                ExportNamedSpecifier {
102374                    span,
102375                    orig,
102376                    exported,
102377                    is_type_only,
102378                }
102379            }
102380        }
102381    }
102382}
102383impl<V: ?Sized + Fold> FoldWith<V> for ExportNamespaceSpecifier {
102384    #[doc = "Calls [Fold`::fold_export_namespace_specifier`] with `self`."]
102385    fn fold_with(self, visitor: &mut V) -> Self {
102386        <V as Fold>::fold_export_namespace_specifier(visitor, self)
102387    }
102388
102389    fn fold_children_with(self, visitor: &mut V) -> Self {
102390        match self {
102391            ExportNamespaceSpecifier { span, name } => {
102392                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102393                let name = { <ModuleExportName as FoldWith<V>>::fold_with(name, visitor) };
102394                ExportNamespaceSpecifier { span, name }
102395            }
102396        }
102397    }
102398}
102399impl<V: ?Sized + Fold> FoldWith<V> for ExportSpecifier {
102400    #[doc = "Calls [Fold`::fold_export_specifier`] with `self`."]
102401    fn fold_with(self, visitor: &mut V) -> Self {
102402        <V as Fold>::fold_export_specifier(visitor, self)
102403    }
102404
102405    fn fold_children_with(self, visitor: &mut V) -> Self {
102406        match self {
102407            ExportSpecifier::Namespace { 0: _field_0 } => {
102408                let _field_0 =
102409                    <ExportNamespaceSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
102410                ExportSpecifier::Namespace { 0: _field_0 }
102411            }
102412            ExportSpecifier::Default { 0: _field_0 } => {
102413                let _field_0 =
102414                    <ExportDefaultSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
102415                ExportSpecifier::Default { 0: _field_0 }
102416            }
102417            ExportSpecifier::Named { 0: _field_0 } => {
102418                let _field_0 = <ExportNamedSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
102419                ExportSpecifier::Named { 0: _field_0 }
102420            }
102421        }
102422    }
102423}
102424impl<V: ?Sized + Fold> FoldWith<V> for Expr {
102425    #[doc = "Calls [Fold`::fold_expr`] with `self`."]
102426    fn fold_with(self, visitor: &mut V) -> Self {
102427        <V as Fold>::fold_expr(visitor, self)
102428    }
102429
102430    fn fold_children_with(self, visitor: &mut V) -> Self {
102431        match self {
102432            Expr::This { 0: _field_0 } => {
102433                let _field_0 = <ThisExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102434                Expr::This { 0: _field_0 }
102435            }
102436            Expr::Array { 0: _field_0 } => {
102437                let _field_0 = <ArrayLit as FoldWith<V>>::fold_with(_field_0, visitor);
102438                Expr::Array { 0: _field_0 }
102439            }
102440            Expr::Object { 0: _field_0 } => {
102441                let _field_0 = <ObjectLit as FoldWith<V>>::fold_with(_field_0, visitor);
102442                Expr::Object { 0: _field_0 }
102443            }
102444            Expr::Fn { 0: _field_0 } => {
102445                let _field_0 = <FnExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102446                Expr::Fn { 0: _field_0 }
102447            }
102448            Expr::Unary { 0: _field_0 } => {
102449                let _field_0 = <UnaryExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102450                Expr::Unary { 0: _field_0 }
102451            }
102452            Expr::Update { 0: _field_0 } => {
102453                let _field_0 = <UpdateExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102454                Expr::Update { 0: _field_0 }
102455            }
102456            Expr::Bin { 0: _field_0 } => {
102457                let _field_0 = <BinExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102458                Expr::Bin { 0: _field_0 }
102459            }
102460            Expr::Assign { 0: _field_0 } => {
102461                let _field_0 = <AssignExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102462                Expr::Assign { 0: _field_0 }
102463            }
102464            Expr::Member { 0: _field_0 } => {
102465                let _field_0 = <MemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102466                Expr::Member { 0: _field_0 }
102467            }
102468            Expr::SuperProp { 0: _field_0 } => {
102469                let _field_0 = <SuperPropExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102470                Expr::SuperProp { 0: _field_0 }
102471            }
102472            Expr::Cond { 0: _field_0 } => {
102473                let _field_0 = <CondExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102474                Expr::Cond { 0: _field_0 }
102475            }
102476            Expr::Call { 0: _field_0 } => {
102477                let _field_0 = <CallExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102478                Expr::Call { 0: _field_0 }
102479            }
102480            Expr::New { 0: _field_0 } => {
102481                let _field_0 = <NewExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102482                Expr::New { 0: _field_0 }
102483            }
102484            Expr::Seq { 0: _field_0 } => {
102485                let _field_0 = <SeqExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102486                Expr::Seq { 0: _field_0 }
102487            }
102488            Expr::Ident { 0: _field_0 } => {
102489                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
102490                Expr::Ident { 0: _field_0 }
102491            }
102492            Expr::Lit { 0: _field_0 } => {
102493                let _field_0 = <Lit as FoldWith<V>>::fold_with(_field_0, visitor);
102494                Expr::Lit { 0: _field_0 }
102495            }
102496            Expr::Tpl { 0: _field_0 } => {
102497                let _field_0 = <Tpl as FoldWith<V>>::fold_with(_field_0, visitor);
102498                Expr::Tpl { 0: _field_0 }
102499            }
102500            Expr::TaggedTpl { 0: _field_0 } => {
102501                let _field_0 = <TaggedTpl as FoldWith<V>>::fold_with(_field_0, visitor);
102502                Expr::TaggedTpl { 0: _field_0 }
102503            }
102504            Expr::Arrow { 0: _field_0 } => {
102505                let _field_0 = <ArrowExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102506                Expr::Arrow { 0: _field_0 }
102507            }
102508            Expr::Class { 0: _field_0 } => {
102509                let _field_0 = <ClassExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102510                Expr::Class { 0: _field_0 }
102511            }
102512            Expr::Yield { 0: _field_0 } => {
102513                let _field_0 = <YieldExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102514                Expr::Yield { 0: _field_0 }
102515            }
102516            Expr::MetaProp { 0: _field_0 } => {
102517                let _field_0 = <MetaPropExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102518                Expr::MetaProp { 0: _field_0 }
102519            }
102520            Expr::Await { 0: _field_0 } => {
102521                let _field_0 = <AwaitExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102522                Expr::Await { 0: _field_0 }
102523            }
102524            Expr::Paren { 0: _field_0 } => {
102525                let _field_0 = <ParenExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102526                Expr::Paren { 0: _field_0 }
102527            }
102528            Expr::JSXMember { 0: _field_0 } => {
102529                let _field_0 = <JSXMemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102530                Expr::JSXMember { 0: _field_0 }
102531            }
102532            Expr::JSXNamespacedName { 0: _field_0 } => {
102533                let _field_0 = <JSXNamespacedName as FoldWith<V>>::fold_with(_field_0, visitor);
102534                Expr::JSXNamespacedName { 0: _field_0 }
102535            }
102536            Expr::JSXEmpty { 0: _field_0 } => {
102537                let _field_0 = <JSXEmptyExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102538                Expr::JSXEmpty { 0: _field_0 }
102539            }
102540            Expr::JSXElement { 0: _field_0 } => {
102541                let _field_0 = <Box<JSXElement> as FoldWith<V>>::fold_with(_field_0, visitor);
102542                Expr::JSXElement { 0: _field_0 }
102543            }
102544            Expr::JSXFragment { 0: _field_0 } => {
102545                let _field_0 = <JSXFragment as FoldWith<V>>::fold_with(_field_0, visitor);
102546                Expr::JSXFragment { 0: _field_0 }
102547            }
102548            Expr::TsTypeAssertion { 0: _field_0 } => {
102549                let _field_0 = <TsTypeAssertion as FoldWith<V>>::fold_with(_field_0, visitor);
102550                Expr::TsTypeAssertion { 0: _field_0 }
102551            }
102552            Expr::TsConstAssertion { 0: _field_0 } => {
102553                let _field_0 = <TsConstAssertion as FoldWith<V>>::fold_with(_field_0, visitor);
102554                Expr::TsConstAssertion { 0: _field_0 }
102555            }
102556            Expr::TsNonNull { 0: _field_0 } => {
102557                let _field_0 = <TsNonNullExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102558                Expr::TsNonNull { 0: _field_0 }
102559            }
102560            Expr::TsAs { 0: _field_0 } => {
102561                let _field_0 = <TsAsExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102562                Expr::TsAs { 0: _field_0 }
102563            }
102564            Expr::TsInstantiation { 0: _field_0 } => {
102565                let _field_0 = <TsInstantiation as FoldWith<V>>::fold_with(_field_0, visitor);
102566                Expr::TsInstantiation { 0: _field_0 }
102567            }
102568            Expr::TsSatisfies { 0: _field_0 } => {
102569                let _field_0 = <TsSatisfiesExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102570                Expr::TsSatisfies { 0: _field_0 }
102571            }
102572            Expr::PrivateName { 0: _field_0 } => {
102573                let _field_0 = <PrivateName as FoldWith<V>>::fold_with(_field_0, visitor);
102574                Expr::PrivateName { 0: _field_0 }
102575            }
102576            Expr::OptChain { 0: _field_0 } => {
102577                let _field_0 = <OptChainExpr as FoldWith<V>>::fold_with(_field_0, visitor);
102578                Expr::OptChain { 0: _field_0 }
102579            }
102580            Expr::Invalid { 0: _field_0 } => {
102581                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
102582                Expr::Invalid { 0: _field_0 }
102583            }
102584        }
102585    }
102586}
102587impl<V: ?Sized + Fold> FoldWith<V> for ExprOrSpread {
102588    #[doc = "Calls [Fold`::fold_expr_or_spread`] with `self`."]
102589    fn fold_with(self, visitor: &mut V) -> Self {
102590        <V as Fold>::fold_expr_or_spread(visitor, self)
102591    }
102592
102593    fn fold_children_with(self, visitor: &mut V) -> Self {
102594        match self {
102595            ExprOrSpread { spread, expr } => {
102596                let spread =
102597                    { <Option<swc_common::Span> as FoldWith<V>>::fold_with(spread, visitor) };
102598                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102599                ExprOrSpread { spread, expr }
102600            }
102601        }
102602    }
102603}
102604impl<V: ?Sized + Fold> FoldWith<V> for ExprStmt {
102605    #[doc = "Calls [Fold`::fold_expr_stmt`] with `self`."]
102606    fn fold_with(self, visitor: &mut V) -> Self {
102607        <V as Fold>::fold_expr_stmt(visitor, self)
102608    }
102609
102610    fn fold_children_with(self, visitor: &mut V) -> Self {
102611        match self {
102612            ExprStmt { span, expr } => {
102613                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102614                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
102615                ExprStmt { span, expr }
102616            }
102617        }
102618    }
102619}
102620impl<V: ?Sized + Fold> FoldWith<V> for FnDecl {
102621    #[doc = "Calls [Fold`::fold_fn_decl`] with `self`."]
102622    fn fold_with(self, visitor: &mut V) -> Self {
102623        <V as Fold>::fold_fn_decl(visitor, self)
102624    }
102625
102626    fn fold_children_with(self, visitor: &mut V) -> Self {
102627        match self {
102628            FnDecl {
102629                ident,
102630                declare,
102631                function,
102632            } => {
102633                let ident = { <Ident as FoldWith<V>>::fold_with(ident, visitor) };
102634                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
102635                FnDecl {
102636                    ident,
102637                    declare,
102638                    function,
102639                }
102640            }
102641        }
102642    }
102643}
102644impl<V: ?Sized + Fold> FoldWith<V> for FnExpr {
102645    #[doc = "Calls [Fold`::fold_fn_expr`] with `self`."]
102646    fn fold_with(self, visitor: &mut V) -> Self {
102647        <V as Fold>::fold_fn_expr(visitor, self)
102648    }
102649
102650    fn fold_children_with(self, visitor: &mut V) -> Self {
102651        match self {
102652            FnExpr { ident, function } => {
102653                let ident = { <Option<Ident> as FoldWith<V>>::fold_with(ident, visitor) };
102654                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
102655                FnExpr { ident, function }
102656            }
102657        }
102658    }
102659}
102660impl<V: ?Sized + Fold> FoldWith<V> for ForHead {
102661    #[doc = "Calls [Fold`::fold_for_head`] with `self`."]
102662    fn fold_with(self, visitor: &mut V) -> Self {
102663        <V as Fold>::fold_for_head(visitor, self)
102664    }
102665
102666    fn fold_children_with(self, visitor: &mut V) -> Self {
102667        match self {
102668            ForHead::VarDecl { 0: _field_0 } => {
102669                let _field_0 = <Box<VarDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102670                ForHead::VarDecl { 0: _field_0 }
102671            }
102672            ForHead::UsingDecl { 0: _field_0 } => {
102673                let _field_0 = <Box<UsingDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
102674                ForHead::UsingDecl { 0: _field_0 }
102675            }
102676            ForHead::Pat { 0: _field_0 } => {
102677                let _field_0 = <Box<Pat> as FoldWith<V>>::fold_with(_field_0, visitor);
102678                ForHead::Pat { 0: _field_0 }
102679            }
102680        }
102681    }
102682}
102683impl<V: ?Sized + Fold> FoldWith<V> for ForInStmt {
102684    #[doc = "Calls [Fold`::fold_for_in_stmt`] with `self`."]
102685    fn fold_with(self, visitor: &mut V) -> Self {
102686        <V as Fold>::fold_for_in_stmt(visitor, self)
102687    }
102688
102689    fn fold_children_with(self, visitor: &mut V) -> Self {
102690        match self {
102691            ForInStmt {
102692                span,
102693                left,
102694                right,
102695                body,
102696            } => {
102697                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102698                let left = { <ForHead as FoldWith<V>>::fold_with(left, visitor) };
102699                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
102700                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
102701                ForInStmt {
102702                    span,
102703                    left,
102704                    right,
102705                    body,
102706                }
102707            }
102708        }
102709    }
102710}
102711impl<V: ?Sized + Fold> FoldWith<V> for ForOfStmt {
102712    #[doc = "Calls [Fold`::fold_for_of_stmt`] with `self`."]
102713    fn fold_with(self, visitor: &mut V) -> Self {
102714        <V as Fold>::fold_for_of_stmt(visitor, self)
102715    }
102716
102717    fn fold_children_with(self, visitor: &mut V) -> Self {
102718        match self {
102719            ForOfStmt {
102720                span,
102721                is_await,
102722                left,
102723                right,
102724                body,
102725            } => {
102726                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102727                let left = { <ForHead as FoldWith<V>>::fold_with(left, visitor) };
102728                let right = { <Box<Expr> as FoldWith<V>>::fold_with(right, visitor) };
102729                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
102730                ForOfStmt {
102731                    span,
102732                    is_await,
102733                    left,
102734                    right,
102735                    body,
102736                }
102737            }
102738        }
102739    }
102740}
102741impl<V: ?Sized + Fold> FoldWith<V> for ForStmt {
102742    #[doc = "Calls [Fold`::fold_for_stmt`] with `self`."]
102743    fn fold_with(self, visitor: &mut V) -> Self {
102744        <V as Fold>::fold_for_stmt(visitor, self)
102745    }
102746
102747    fn fold_children_with(self, visitor: &mut V) -> Self {
102748        match self {
102749            ForStmt {
102750                span,
102751                init,
102752                test,
102753                update,
102754                body,
102755            } => {
102756                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102757                let init = { <Option<VarDeclOrExpr> as FoldWith<V>>::fold_with(init, visitor) };
102758                let test = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(test, visitor) };
102759                let update = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(update, visitor) };
102760                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
102761                ForStmt {
102762                    span,
102763                    init,
102764                    test,
102765                    update,
102766                    body,
102767                }
102768            }
102769        }
102770    }
102771}
102772impl<V: ?Sized + Fold> FoldWith<V> for Function {
102773    #[doc = "Calls [Fold`::fold_function`] with `self`."]
102774    fn fold_with(self, visitor: &mut V) -> Self {
102775        <V as Fold>::fold_function(visitor, self)
102776    }
102777
102778    fn fold_children_with(self, visitor: &mut V) -> Self {
102779        match self {
102780            Function {
102781                params,
102782                decorators,
102783                span,
102784                ctxt,
102785                body,
102786                is_generator,
102787                is_async,
102788                type_params,
102789                return_type,
102790            } => {
102791                let params = { <Vec<Param> as FoldWith<V>>::fold_with(params, visitor) };
102792                let decorators =
102793                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
102794                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102795                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102796                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
102797                let type_params = {
102798                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
102799                };
102800                let return_type =
102801                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(return_type, visitor) };
102802                Function {
102803                    params,
102804                    decorators,
102805                    span,
102806                    ctxt,
102807                    body,
102808                    is_generator,
102809                    is_async,
102810                    type_params,
102811                    return_type,
102812                }
102813            }
102814        }
102815    }
102816}
102817impl<V: ?Sized + Fold> FoldWith<V> for GetterProp {
102818    #[doc = "Calls [Fold`::fold_getter_prop`] with `self`."]
102819    fn fold_with(self, visitor: &mut V) -> Self {
102820        <V as Fold>::fold_getter_prop(visitor, self)
102821    }
102822
102823    fn fold_children_with(self, visitor: &mut V) -> Self {
102824        match self {
102825            GetterProp {
102826                span,
102827                key,
102828                type_ann,
102829                body,
102830            } => {
102831                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102832                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
102833                let type_ann =
102834                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
102835                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
102836                GetterProp {
102837                    span,
102838                    key,
102839                    type_ann,
102840                    body,
102841                }
102842            }
102843        }
102844    }
102845}
102846impl<V: ?Sized + Fold> FoldWith<V> for Ident {
102847    #[doc = "Calls [Fold`::fold_ident`] with `self`."]
102848    fn fold_with(self, visitor: &mut V) -> Self {
102849        <V as Fold>::fold_ident(visitor, self)
102850    }
102851
102852    fn fold_children_with(self, visitor: &mut V) -> Self {
102853        match self {
102854            Ident {
102855                span,
102856                ctxt,
102857                sym,
102858                optional,
102859            } => {
102860                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102861                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
102862                let sym = { <swc_atoms::Atom as FoldWith<V>>::fold_with(sym, visitor) };
102863                Ident {
102864                    span,
102865                    ctxt,
102866                    sym,
102867                    optional,
102868                }
102869            }
102870        }
102871    }
102872}
102873impl<V: ?Sized + Fold> FoldWith<V> for IdentName {
102874    #[doc = "Calls [Fold`::fold_ident_name`] with `self`."]
102875    fn fold_with(self, visitor: &mut V) -> Self {
102876        <V as Fold>::fold_ident_name(visitor, self)
102877    }
102878
102879    fn fold_children_with(self, visitor: &mut V) -> Self {
102880        match self {
102881            IdentName { span, sym } => {
102882                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102883                let sym = { <swc_atoms::Atom as FoldWith<V>>::fold_with(sym, visitor) };
102884                IdentName { span, sym }
102885            }
102886        }
102887    }
102888}
102889impl<V: ?Sized + Fold> FoldWith<V> for IfStmt {
102890    #[doc = "Calls [Fold`::fold_if_stmt`] with `self`."]
102891    fn fold_with(self, visitor: &mut V) -> Self {
102892        <V as Fold>::fold_if_stmt(visitor, self)
102893    }
102894
102895    fn fold_children_with(self, visitor: &mut V) -> Self {
102896        match self {
102897            IfStmt {
102898                span,
102899                test,
102900                cons,
102901                alt,
102902            } => {
102903                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102904                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
102905                let cons = { <Box<Stmt> as FoldWith<V>>::fold_with(cons, visitor) };
102906                let alt = { <Option<Box<Stmt>> as FoldWith<V>>::fold_with(alt, visitor) };
102907                IfStmt {
102908                    span,
102909                    test,
102910                    cons,
102911                    alt,
102912                }
102913            }
102914        }
102915    }
102916}
102917impl<V: ?Sized + Fold> FoldWith<V> for Import {
102918    #[doc = "Calls [Fold`::fold_import`] with `self`."]
102919    fn fold_with(self, visitor: &mut V) -> Self {
102920        <V as Fold>::fold_import(visitor, self)
102921    }
102922
102923    fn fold_children_with(self, visitor: &mut V) -> Self {
102924        match self {
102925            Import { span, phase } => {
102926                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102927                let phase = { <ImportPhase as FoldWith<V>>::fold_with(phase, visitor) };
102928                Import { span, phase }
102929            }
102930        }
102931    }
102932}
102933impl<V: ?Sized + Fold> FoldWith<V> for ImportDecl {
102934    #[doc = "Calls [Fold`::fold_import_decl`] with `self`."]
102935    fn fold_with(self, visitor: &mut V) -> Self {
102936        <V as Fold>::fold_import_decl(visitor, self)
102937    }
102938
102939    fn fold_children_with(self, visitor: &mut V) -> Self {
102940        match self {
102941            ImportDecl {
102942                span,
102943                specifiers,
102944                src,
102945                type_only,
102946                with,
102947                phase,
102948            } => {
102949                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102950                let specifiers =
102951                    { <Vec<ImportSpecifier> as FoldWith<V>>::fold_with(specifiers, visitor) };
102952                let src = { <Box<Str> as FoldWith<V>>::fold_with(src, visitor) };
102953                let with = { <Option<Box<ObjectLit>> as FoldWith<V>>::fold_with(with, visitor) };
102954                let phase = { <ImportPhase as FoldWith<V>>::fold_with(phase, visitor) };
102955                ImportDecl {
102956                    span,
102957                    specifiers,
102958                    src,
102959                    type_only,
102960                    with,
102961                    phase,
102962                }
102963            }
102964        }
102965    }
102966}
102967impl<V: ?Sized + Fold> FoldWith<V> for ImportDefaultSpecifier {
102968    #[doc = "Calls [Fold`::fold_import_default_specifier`] with `self`."]
102969    fn fold_with(self, visitor: &mut V) -> Self {
102970        <V as Fold>::fold_import_default_specifier(visitor, self)
102971    }
102972
102973    fn fold_children_with(self, visitor: &mut V) -> Self {
102974        match self {
102975            ImportDefaultSpecifier { span, local } => {
102976                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102977                let local = { <Ident as FoldWith<V>>::fold_with(local, visitor) };
102978                ImportDefaultSpecifier { span, local }
102979            }
102980        }
102981    }
102982}
102983impl<V: ?Sized + Fold> FoldWith<V> for ImportNamedSpecifier {
102984    #[doc = "Calls [Fold`::fold_import_named_specifier`] with `self`."]
102985    fn fold_with(self, visitor: &mut V) -> Self {
102986        <V as Fold>::fold_import_named_specifier(visitor, self)
102987    }
102988
102989    fn fold_children_with(self, visitor: &mut V) -> Self {
102990        match self {
102991            ImportNamedSpecifier {
102992                span,
102993                local,
102994                imported,
102995                is_type_only,
102996            } => {
102997                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
102998                let local = { <Ident as FoldWith<V>>::fold_with(local, visitor) };
102999                let imported =
103000                    { <Option<ModuleExportName> as FoldWith<V>>::fold_with(imported, visitor) };
103001                ImportNamedSpecifier {
103002                    span,
103003                    local,
103004                    imported,
103005                    is_type_only,
103006                }
103007            }
103008        }
103009    }
103010}
103011impl<V: ?Sized + Fold> FoldWith<V> for ImportPhase {
103012    #[doc = "Calls [Fold`::fold_import_phase`] with `self`."]
103013    fn fold_with(self, visitor: &mut V) -> Self {
103014        <V as Fold>::fold_import_phase(visitor, self)
103015    }
103016
103017    fn fold_children_with(self, visitor: &mut V) -> Self {
103018        match self {
103019            ImportPhase::Evaluation => ImportPhase::Evaluation,
103020            ImportPhase::Source => ImportPhase::Source,
103021            ImportPhase::Defer => ImportPhase::Defer,
103022        }
103023    }
103024}
103025impl<V: ?Sized + Fold> FoldWith<V> for ImportSpecifier {
103026    #[doc = "Calls [Fold`::fold_import_specifier`] with `self`."]
103027    fn fold_with(self, visitor: &mut V) -> Self {
103028        <V as Fold>::fold_import_specifier(visitor, self)
103029    }
103030
103031    fn fold_children_with(self, visitor: &mut V) -> Self {
103032        match self {
103033            ImportSpecifier::Named { 0: _field_0 } => {
103034                let _field_0 = <ImportNamedSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103035                ImportSpecifier::Named { 0: _field_0 }
103036            }
103037            ImportSpecifier::Default { 0: _field_0 } => {
103038                let _field_0 =
103039                    <ImportDefaultSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103040                ImportSpecifier::Default { 0: _field_0 }
103041            }
103042            ImportSpecifier::Namespace { 0: _field_0 } => {
103043                let _field_0 = <ImportStarAsSpecifier as FoldWith<V>>::fold_with(_field_0, visitor);
103044                ImportSpecifier::Namespace { 0: _field_0 }
103045            }
103046        }
103047    }
103048}
103049impl<V: ?Sized + Fold> FoldWith<V> for ImportStarAsSpecifier {
103050    #[doc = "Calls [Fold`::fold_import_star_as_specifier`] with `self`."]
103051    fn fold_with(self, visitor: &mut V) -> Self {
103052        <V as Fold>::fold_import_star_as_specifier(visitor, self)
103053    }
103054
103055    fn fold_children_with(self, visitor: &mut V) -> Self {
103056        match self {
103057            ImportStarAsSpecifier { span, local } => {
103058                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103059                let local = { <Ident as FoldWith<V>>::fold_with(local, visitor) };
103060                ImportStarAsSpecifier { span, local }
103061            }
103062        }
103063    }
103064}
103065impl<V: ?Sized + Fold> FoldWith<V> for ImportWith {
103066    #[doc = "Calls [Fold`::fold_import_with`] with `self`."]
103067    fn fold_with(self, visitor: &mut V) -> Self {
103068        <V as Fold>::fold_import_with(visitor, self)
103069    }
103070
103071    fn fold_children_with(self, visitor: &mut V) -> Self {
103072        match self {
103073            ImportWith { span, values } => {
103074                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103075                let values = { <Vec<ImportWithItem> as FoldWith<V>>::fold_with(values, visitor) };
103076                ImportWith { span, values }
103077            }
103078        }
103079    }
103080}
103081impl<V: ?Sized + Fold> FoldWith<V> for ImportWithItem {
103082    #[doc = "Calls [Fold`::fold_import_with_item`] with `self`."]
103083    fn fold_with(self, visitor: &mut V) -> Self {
103084        <V as Fold>::fold_import_with_item(visitor, self)
103085    }
103086
103087    fn fold_children_with(self, visitor: &mut V) -> Self {
103088        match self {
103089            ImportWithItem { key, value } => {
103090                let key = { <IdentName as FoldWith<V>>::fold_with(key, visitor) };
103091                let value = { <Str as FoldWith<V>>::fold_with(value, visitor) };
103092                ImportWithItem { key, value }
103093            }
103094        }
103095    }
103096}
103097impl<V: ?Sized + Fold> FoldWith<V> for Invalid {
103098    #[doc = "Calls [Fold`::fold_invalid`] with `self`."]
103099    fn fold_with(self, visitor: &mut V) -> Self {
103100        <V as Fold>::fold_invalid(visitor, self)
103101    }
103102
103103    fn fold_children_with(self, visitor: &mut V) -> Self {
103104        match self {
103105            Invalid { span } => {
103106                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103107                Invalid { span }
103108            }
103109        }
103110    }
103111}
103112impl<V: ?Sized + Fold> FoldWith<V> for JSXAttr {
103113    #[doc = "Calls [Fold`::fold_jsx_attr`] with `self`."]
103114    fn fold_with(self, visitor: &mut V) -> Self {
103115        <V as Fold>::fold_jsx_attr(visitor, self)
103116    }
103117
103118    fn fold_children_with(self, visitor: &mut V) -> Self {
103119        match self {
103120            JSXAttr { span, name, value } => {
103121                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103122                let name = { <JSXAttrName as FoldWith<V>>::fold_with(name, visitor) };
103123                let value = { <Option<JSXAttrValue> as FoldWith<V>>::fold_with(value, visitor) };
103124                JSXAttr { span, name, value }
103125            }
103126        }
103127    }
103128}
103129impl<V: ?Sized + Fold> FoldWith<V> for JSXAttrName {
103130    #[doc = "Calls [Fold`::fold_jsx_attr_name`] with `self`."]
103131    fn fold_with(self, visitor: &mut V) -> Self {
103132        <V as Fold>::fold_jsx_attr_name(visitor, self)
103133    }
103134
103135    fn fold_children_with(self, visitor: &mut V) -> Self {
103136        match self {
103137            JSXAttrName::Ident { 0: _field_0 } => {
103138                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
103139                JSXAttrName::Ident { 0: _field_0 }
103140            }
103141            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
103142                let _field_0 = <JSXNamespacedName as FoldWith<V>>::fold_with(_field_0, visitor);
103143                JSXAttrName::JSXNamespacedName { 0: _field_0 }
103144            }
103145        }
103146    }
103147}
103148impl<V: ?Sized + Fold> FoldWith<V> for JSXAttrOrSpread {
103149    #[doc = "Calls [Fold`::fold_jsx_attr_or_spread`] with `self`."]
103150    fn fold_with(self, visitor: &mut V) -> Self {
103151        <V as Fold>::fold_jsx_attr_or_spread(visitor, self)
103152    }
103153
103154    fn fold_children_with(self, visitor: &mut V) -> Self {
103155        match self {
103156            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
103157                let _field_0 = <JSXAttr as FoldWith<V>>::fold_with(_field_0, visitor);
103158                JSXAttrOrSpread::JSXAttr { 0: _field_0 }
103159            }
103160            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
103161                let _field_0 = <SpreadElement as FoldWith<V>>::fold_with(_field_0, visitor);
103162                JSXAttrOrSpread::SpreadElement { 0: _field_0 }
103163            }
103164        }
103165    }
103166}
103167impl<V: ?Sized + Fold> FoldWith<V> for JSXAttrValue {
103168    #[doc = "Calls [Fold`::fold_jsx_attr_value`] with `self`."]
103169    fn fold_with(self, visitor: &mut V) -> Self {
103170        <V as Fold>::fold_jsx_attr_value(visitor, self)
103171    }
103172
103173    fn fold_children_with(self, visitor: &mut V) -> Self {
103174        match self {
103175            JSXAttrValue::Lit { 0: _field_0 } => {
103176                let _field_0 = <Lit as FoldWith<V>>::fold_with(_field_0, visitor);
103177                JSXAttrValue::Lit { 0: _field_0 }
103178            }
103179            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
103180                let _field_0 = <JSXExprContainer as FoldWith<V>>::fold_with(_field_0, visitor);
103181                JSXAttrValue::JSXExprContainer { 0: _field_0 }
103182            }
103183            JSXAttrValue::JSXElement { 0: _field_0 } => {
103184                let _field_0 = <Box<JSXElement> as FoldWith<V>>::fold_with(_field_0, visitor);
103185                JSXAttrValue::JSXElement { 0: _field_0 }
103186            }
103187            JSXAttrValue::JSXFragment { 0: _field_0 } => {
103188                let _field_0 = <JSXFragment as FoldWith<V>>::fold_with(_field_0, visitor);
103189                JSXAttrValue::JSXFragment { 0: _field_0 }
103190            }
103191        }
103192    }
103193}
103194impl<V: ?Sized + Fold> FoldWith<V> for JSXClosingElement {
103195    #[doc = "Calls [Fold`::fold_jsx_closing_element`] with `self`."]
103196    fn fold_with(self, visitor: &mut V) -> Self {
103197        <V as Fold>::fold_jsx_closing_element(visitor, self)
103198    }
103199
103200    fn fold_children_with(self, visitor: &mut V) -> Self {
103201        match self {
103202            JSXClosingElement { span, name } => {
103203                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103204                let name = { <JSXElementName as FoldWith<V>>::fold_with(name, visitor) };
103205                JSXClosingElement { span, name }
103206            }
103207        }
103208    }
103209}
103210impl<V: ?Sized + Fold> FoldWith<V> for JSXClosingFragment {
103211    #[doc = "Calls [Fold`::fold_jsx_closing_fragment`] with `self`."]
103212    fn fold_with(self, visitor: &mut V) -> Self {
103213        <V as Fold>::fold_jsx_closing_fragment(visitor, self)
103214    }
103215
103216    fn fold_children_with(self, visitor: &mut V) -> Self {
103217        match self {
103218            JSXClosingFragment { span } => {
103219                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103220                JSXClosingFragment { span }
103221            }
103222        }
103223    }
103224}
103225impl<V: ?Sized + Fold> FoldWith<V> for JSXElement {
103226    #[doc = "Calls [Fold`::fold_jsx_element`] with `self`."]
103227    fn fold_with(self, visitor: &mut V) -> Self {
103228        <V as Fold>::fold_jsx_element(visitor, self)
103229    }
103230
103231    fn fold_children_with(self, visitor: &mut V) -> Self {
103232        match self {
103233            JSXElement {
103234                span,
103235                opening,
103236                children,
103237                closing,
103238            } => {
103239                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103240                let opening = { <JSXOpeningElement as FoldWith<V>>::fold_with(opening, visitor) };
103241                let children =
103242                    { <Vec<JSXElementChild> as FoldWith<V>>::fold_with(children, visitor) };
103243                let closing =
103244                    { <Option<JSXClosingElement> as FoldWith<V>>::fold_with(closing, visitor) };
103245                JSXElement {
103246                    span,
103247                    opening,
103248                    children,
103249                    closing,
103250                }
103251            }
103252        }
103253    }
103254}
103255impl<V: ?Sized + Fold> FoldWith<V> for JSXElementChild {
103256    #[doc = "Calls [Fold`::fold_jsx_element_child`] with `self`."]
103257    fn fold_with(self, visitor: &mut V) -> Self {
103258        <V as Fold>::fold_jsx_element_child(visitor, self)
103259    }
103260
103261    fn fold_children_with(self, visitor: &mut V) -> Self {
103262        match self {
103263            JSXElementChild::JSXText { 0: _field_0 } => {
103264                let _field_0 = <JSXText as FoldWith<V>>::fold_with(_field_0, visitor);
103265                JSXElementChild::JSXText { 0: _field_0 }
103266            }
103267            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
103268                let _field_0 = <JSXExprContainer as FoldWith<V>>::fold_with(_field_0, visitor);
103269                JSXElementChild::JSXExprContainer { 0: _field_0 }
103270            }
103271            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
103272                let _field_0 = <JSXSpreadChild as FoldWith<V>>::fold_with(_field_0, visitor);
103273                JSXElementChild::JSXSpreadChild { 0: _field_0 }
103274            }
103275            JSXElementChild::JSXElement { 0: _field_0 } => {
103276                let _field_0 = <Box<JSXElement> as FoldWith<V>>::fold_with(_field_0, visitor);
103277                JSXElementChild::JSXElement { 0: _field_0 }
103278            }
103279            JSXElementChild::JSXFragment { 0: _field_0 } => {
103280                let _field_0 = <JSXFragment as FoldWith<V>>::fold_with(_field_0, visitor);
103281                JSXElementChild::JSXFragment { 0: _field_0 }
103282            }
103283        }
103284    }
103285}
103286impl<V: ?Sized + Fold> FoldWith<V> for JSXElementName {
103287    #[doc = "Calls [Fold`::fold_jsx_element_name`] with `self`."]
103288    fn fold_with(self, visitor: &mut V) -> Self {
103289        <V as Fold>::fold_jsx_element_name(visitor, self)
103290    }
103291
103292    fn fold_children_with(self, visitor: &mut V) -> Self {
103293        match self {
103294            JSXElementName::Ident { 0: _field_0 } => {
103295                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
103296                JSXElementName::Ident { 0: _field_0 }
103297            }
103298            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
103299                let _field_0 = <JSXMemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103300                JSXElementName::JSXMemberExpr { 0: _field_0 }
103301            }
103302            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
103303                let _field_0 = <JSXNamespacedName as FoldWith<V>>::fold_with(_field_0, visitor);
103304                JSXElementName::JSXNamespacedName { 0: _field_0 }
103305            }
103306        }
103307    }
103308}
103309impl<V: ?Sized + Fold> FoldWith<V> for JSXEmptyExpr {
103310    #[doc = "Calls [Fold`::fold_jsx_empty_expr`] with `self`."]
103311    fn fold_with(self, visitor: &mut V) -> Self {
103312        <V as Fold>::fold_jsx_empty_expr(visitor, self)
103313    }
103314
103315    fn fold_children_with(self, visitor: &mut V) -> Self {
103316        match self {
103317            JSXEmptyExpr { span } => {
103318                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103319                JSXEmptyExpr { span }
103320            }
103321        }
103322    }
103323}
103324impl<V: ?Sized + Fold> FoldWith<V> for JSXExpr {
103325    #[doc = "Calls [Fold`::fold_jsx_expr`] with `self`."]
103326    fn fold_with(self, visitor: &mut V) -> Self {
103327        <V as Fold>::fold_jsx_expr(visitor, self)
103328    }
103329
103330    fn fold_children_with(self, visitor: &mut V) -> Self {
103331        match self {
103332            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
103333                let _field_0 = <JSXEmptyExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103334                JSXExpr::JSXEmptyExpr { 0: _field_0 }
103335            }
103336            JSXExpr::Expr { 0: _field_0 } => {
103337                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
103338                JSXExpr::Expr { 0: _field_0 }
103339            }
103340        }
103341    }
103342}
103343impl<V: ?Sized + Fold> FoldWith<V> for JSXExprContainer {
103344    #[doc = "Calls [Fold`::fold_jsx_expr_container`] with `self`."]
103345    fn fold_with(self, visitor: &mut V) -> Self {
103346        <V as Fold>::fold_jsx_expr_container(visitor, self)
103347    }
103348
103349    fn fold_children_with(self, visitor: &mut V) -> Self {
103350        match self {
103351            JSXExprContainer { span, expr } => {
103352                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103353                let expr = { <JSXExpr as FoldWith<V>>::fold_with(expr, visitor) };
103354                JSXExprContainer { span, expr }
103355            }
103356        }
103357    }
103358}
103359impl<V: ?Sized + Fold> FoldWith<V> for JSXFragment {
103360    #[doc = "Calls [Fold`::fold_jsx_fragment`] with `self`."]
103361    fn fold_with(self, visitor: &mut V) -> Self {
103362        <V as Fold>::fold_jsx_fragment(visitor, self)
103363    }
103364
103365    fn fold_children_with(self, visitor: &mut V) -> Self {
103366        match self {
103367            JSXFragment {
103368                span,
103369                opening,
103370                children,
103371                closing,
103372            } => {
103373                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103374                let opening = { <JSXOpeningFragment as FoldWith<V>>::fold_with(opening, visitor) };
103375                let children =
103376                    { <Vec<JSXElementChild> as FoldWith<V>>::fold_with(children, visitor) };
103377                let closing = { <JSXClosingFragment as FoldWith<V>>::fold_with(closing, visitor) };
103378                JSXFragment {
103379                    span,
103380                    opening,
103381                    children,
103382                    closing,
103383                }
103384            }
103385        }
103386    }
103387}
103388impl<V: ?Sized + Fold> FoldWith<V> for JSXMemberExpr {
103389    #[doc = "Calls [Fold`::fold_jsx_member_expr`] with `self`."]
103390    fn fold_with(self, visitor: &mut V) -> Self {
103391        <V as Fold>::fold_jsx_member_expr(visitor, self)
103392    }
103393
103394    fn fold_children_with(self, visitor: &mut V) -> Self {
103395        match self {
103396            JSXMemberExpr { span, obj, prop } => {
103397                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103398                let obj = { <JSXObject as FoldWith<V>>::fold_with(obj, visitor) };
103399                let prop = { <IdentName as FoldWith<V>>::fold_with(prop, visitor) };
103400                JSXMemberExpr { span, obj, prop }
103401            }
103402        }
103403    }
103404}
103405impl<V: ?Sized + Fold> FoldWith<V> for JSXNamespacedName {
103406    #[doc = "Calls [Fold`::fold_jsx_namespaced_name`] with `self`."]
103407    fn fold_with(self, visitor: &mut V) -> Self {
103408        <V as Fold>::fold_jsx_namespaced_name(visitor, self)
103409    }
103410
103411    fn fold_children_with(self, visitor: &mut V) -> Self {
103412        match self {
103413            JSXNamespacedName { span, ns, name } => {
103414                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103415                let ns = { <IdentName as FoldWith<V>>::fold_with(ns, visitor) };
103416                let name = { <IdentName as FoldWith<V>>::fold_with(name, visitor) };
103417                JSXNamespacedName { span, ns, name }
103418            }
103419        }
103420    }
103421}
103422impl<V: ?Sized + Fold> FoldWith<V> for JSXObject {
103423    #[doc = "Calls [Fold`::fold_jsx_object`] with `self`."]
103424    fn fold_with(self, visitor: &mut V) -> Self {
103425        <V as Fold>::fold_jsx_object(visitor, self)
103426    }
103427
103428    fn fold_children_with(self, visitor: &mut V) -> Self {
103429        match self {
103430            JSXObject::JSXMemberExpr { 0: _field_0 } => {
103431                let _field_0 = <Box<JSXMemberExpr> as FoldWith<V>>::fold_with(_field_0, visitor);
103432                JSXObject::JSXMemberExpr { 0: _field_0 }
103433            }
103434            JSXObject::Ident { 0: _field_0 } => {
103435                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
103436                JSXObject::Ident { 0: _field_0 }
103437            }
103438        }
103439    }
103440}
103441impl<V: ?Sized + Fold> FoldWith<V> for JSXOpeningElement {
103442    #[doc = "Calls [Fold`::fold_jsx_opening_element`] with `self`."]
103443    fn fold_with(self, visitor: &mut V) -> Self {
103444        <V as Fold>::fold_jsx_opening_element(visitor, self)
103445    }
103446
103447    fn fold_children_with(self, visitor: &mut V) -> Self {
103448        match self {
103449            JSXOpeningElement {
103450                name,
103451                span,
103452                attrs,
103453                self_closing,
103454                type_args,
103455            } => {
103456                let name = { <JSXElementName as FoldWith<V>>::fold_with(name, visitor) };
103457                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103458                let attrs = { <Vec<JSXAttrOrSpread> as FoldWith<V>>::fold_with(attrs, visitor) };
103459                let type_args = {
103460                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
103461                        type_args, visitor,
103462                    )
103463                };
103464                JSXOpeningElement {
103465                    name,
103466                    span,
103467                    attrs,
103468                    self_closing,
103469                    type_args,
103470                }
103471            }
103472        }
103473    }
103474}
103475impl<V: ?Sized + Fold> FoldWith<V> for JSXOpeningFragment {
103476    #[doc = "Calls [Fold`::fold_jsx_opening_fragment`] with `self`."]
103477    fn fold_with(self, visitor: &mut V) -> Self {
103478        <V as Fold>::fold_jsx_opening_fragment(visitor, self)
103479    }
103480
103481    fn fold_children_with(self, visitor: &mut V) -> Self {
103482        match self {
103483            JSXOpeningFragment { span } => {
103484                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103485                JSXOpeningFragment { span }
103486            }
103487        }
103488    }
103489}
103490impl<V: ?Sized + Fold> FoldWith<V> for JSXSpreadChild {
103491    #[doc = "Calls [Fold`::fold_jsx_spread_child`] with `self`."]
103492    fn fold_with(self, visitor: &mut V) -> Self {
103493        <V as Fold>::fold_jsx_spread_child(visitor, self)
103494    }
103495
103496    fn fold_children_with(self, visitor: &mut V) -> Self {
103497        match self {
103498            JSXSpreadChild { span, expr } => {
103499                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103500                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
103501                JSXSpreadChild { span, expr }
103502            }
103503        }
103504    }
103505}
103506impl<V: ?Sized + Fold> FoldWith<V> for JSXText {
103507    #[doc = "Calls [Fold`::fold_jsx_text`] with `self`."]
103508    fn fold_with(self, visitor: &mut V) -> Self {
103509        <V as Fold>::fold_jsx_text(visitor, self)
103510    }
103511
103512    fn fold_children_with(self, visitor: &mut V) -> Self {
103513        match self {
103514            JSXText { span, value, raw } => {
103515                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103516                let value = { <swc_atoms::Atom as FoldWith<V>>::fold_with(value, visitor) };
103517                let raw = { <swc_atoms::Atom as FoldWith<V>>::fold_with(raw, visitor) };
103518                JSXText { span, value, raw }
103519            }
103520        }
103521    }
103522}
103523impl<V: ?Sized + Fold> FoldWith<V> for Key {
103524    #[doc = "Calls [Fold`::fold_key`] with `self`."]
103525    fn fold_with(self, visitor: &mut V) -> Self {
103526        <V as Fold>::fold_key(visitor, self)
103527    }
103528
103529    fn fold_children_with(self, visitor: &mut V) -> Self {
103530        match self {
103531            Key::Private { 0: _field_0 } => {
103532                let _field_0 = <PrivateName as FoldWith<V>>::fold_with(_field_0, visitor);
103533                Key::Private { 0: _field_0 }
103534            }
103535            Key::Public { 0: _field_0 } => {
103536                let _field_0 = <PropName as FoldWith<V>>::fold_with(_field_0, visitor);
103537                Key::Public { 0: _field_0 }
103538            }
103539        }
103540    }
103541}
103542impl<V: ?Sized + Fold> FoldWith<V> for KeyValuePatProp {
103543    #[doc = "Calls [Fold`::fold_key_value_pat_prop`] with `self`."]
103544    fn fold_with(self, visitor: &mut V) -> Self {
103545        <V as Fold>::fold_key_value_pat_prop(visitor, self)
103546    }
103547
103548    fn fold_children_with(self, visitor: &mut V) -> Self {
103549        match self {
103550            KeyValuePatProp { key, value } => {
103551                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
103552                let value = { <Box<Pat> as FoldWith<V>>::fold_with(value, visitor) };
103553                KeyValuePatProp { key, value }
103554            }
103555        }
103556    }
103557}
103558impl<V: ?Sized + Fold> FoldWith<V> for KeyValueProp {
103559    #[doc = "Calls [Fold`::fold_key_value_prop`] with `self`."]
103560    fn fold_with(self, visitor: &mut V) -> Self {
103561        <V as Fold>::fold_key_value_prop(visitor, self)
103562    }
103563
103564    fn fold_children_with(self, visitor: &mut V) -> Self {
103565        match self {
103566            KeyValueProp { key, value } => {
103567                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
103568                let value = { <Box<Expr> as FoldWith<V>>::fold_with(value, visitor) };
103569                KeyValueProp { key, value }
103570            }
103571        }
103572    }
103573}
103574impl<V: ?Sized + Fold> FoldWith<V> for LabeledStmt {
103575    #[doc = "Calls [Fold`::fold_labeled_stmt`] with `self`."]
103576    fn fold_with(self, visitor: &mut V) -> Self {
103577        <V as Fold>::fold_labeled_stmt(visitor, self)
103578    }
103579
103580    fn fold_children_with(self, visitor: &mut V) -> Self {
103581        match self {
103582            LabeledStmt { span, label, body } => {
103583                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103584                let label = { <Ident as FoldWith<V>>::fold_with(label, visitor) };
103585                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
103586                LabeledStmt { span, label, body }
103587            }
103588        }
103589    }
103590}
103591impl<V: ?Sized + Fold> FoldWith<V> for Lit {
103592    #[doc = "Calls [Fold`::fold_lit`] with `self`."]
103593    fn fold_with(self, visitor: &mut V) -> Self {
103594        <V as Fold>::fold_lit(visitor, self)
103595    }
103596
103597    fn fold_children_with(self, visitor: &mut V) -> Self {
103598        match self {
103599            Lit::Str { 0: _field_0 } => {
103600                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
103601                Lit::Str { 0: _field_0 }
103602            }
103603            Lit::Bool { 0: _field_0 } => {
103604                let _field_0 = <Bool as FoldWith<V>>::fold_with(_field_0, visitor);
103605                Lit::Bool { 0: _field_0 }
103606            }
103607            Lit::Null { 0: _field_0 } => {
103608                let _field_0 = <Null as FoldWith<V>>::fold_with(_field_0, visitor);
103609                Lit::Null { 0: _field_0 }
103610            }
103611            Lit::Num { 0: _field_0 } => {
103612                let _field_0 = <Number as FoldWith<V>>::fold_with(_field_0, visitor);
103613                Lit::Num { 0: _field_0 }
103614            }
103615            Lit::BigInt { 0: _field_0 } => {
103616                let _field_0 = <BigInt as FoldWith<V>>::fold_with(_field_0, visitor);
103617                Lit::BigInt { 0: _field_0 }
103618            }
103619            Lit::Regex { 0: _field_0 } => {
103620                let _field_0 = <Regex as FoldWith<V>>::fold_with(_field_0, visitor);
103621                Lit::Regex { 0: _field_0 }
103622            }
103623            Lit::JSXText { 0: _field_0 } => {
103624                let _field_0 = <JSXText as FoldWith<V>>::fold_with(_field_0, visitor);
103625                Lit::JSXText { 0: _field_0 }
103626            }
103627        }
103628    }
103629}
103630impl<V: ?Sized + Fold> FoldWith<V> for MemberExpr {
103631    #[doc = "Calls [Fold`::fold_member_expr`] with `self`."]
103632    fn fold_with(self, visitor: &mut V) -> Self {
103633        <V as Fold>::fold_member_expr(visitor, self)
103634    }
103635
103636    fn fold_children_with(self, visitor: &mut V) -> Self {
103637        match self {
103638            MemberExpr { span, obj, prop } => {
103639                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103640                let obj = { <Box<Expr> as FoldWith<V>>::fold_with(obj, visitor) };
103641                let prop = { <MemberProp as FoldWith<V>>::fold_with(prop, visitor) };
103642                MemberExpr { span, obj, prop }
103643            }
103644        }
103645    }
103646}
103647impl<V: ?Sized + Fold> FoldWith<V> for MemberProp {
103648    #[doc = "Calls [Fold`::fold_member_prop`] with `self`."]
103649    fn fold_with(self, visitor: &mut V) -> Self {
103650        <V as Fold>::fold_member_prop(visitor, self)
103651    }
103652
103653    fn fold_children_with(self, visitor: &mut V) -> Self {
103654        match self {
103655            MemberProp::Ident { 0: _field_0 } => {
103656                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
103657                MemberProp::Ident { 0: _field_0 }
103658            }
103659            MemberProp::PrivateName { 0: _field_0 } => {
103660                let _field_0 = <PrivateName as FoldWith<V>>::fold_with(_field_0, visitor);
103661                MemberProp::PrivateName { 0: _field_0 }
103662            }
103663            MemberProp::Computed { 0: _field_0 } => {
103664                let _field_0 = <ComputedPropName as FoldWith<V>>::fold_with(_field_0, visitor);
103665                MemberProp::Computed { 0: _field_0 }
103666            }
103667        }
103668    }
103669}
103670impl<V: ?Sized + Fold> FoldWith<V> for MetaPropExpr {
103671    #[doc = "Calls [Fold`::fold_meta_prop_expr`] with `self`."]
103672    fn fold_with(self, visitor: &mut V) -> Self {
103673        <V as Fold>::fold_meta_prop_expr(visitor, self)
103674    }
103675
103676    fn fold_children_with(self, visitor: &mut V) -> Self {
103677        match self {
103678            MetaPropExpr { span, kind } => {
103679                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103680                let kind = { <MetaPropKind as FoldWith<V>>::fold_with(kind, visitor) };
103681                MetaPropExpr { span, kind }
103682            }
103683        }
103684    }
103685}
103686impl<V: ?Sized + Fold> FoldWith<V> for MetaPropKind {
103687    #[doc = "Calls [Fold`::fold_meta_prop_kind`] with `self`."]
103688    fn fold_with(self, visitor: &mut V) -> Self {
103689        <V as Fold>::fold_meta_prop_kind(visitor, self)
103690    }
103691
103692    fn fold_children_with(self, visitor: &mut V) -> Self {
103693        match self {
103694            MetaPropKind::NewTarget => MetaPropKind::NewTarget,
103695            MetaPropKind::ImportMeta => MetaPropKind::ImportMeta,
103696        }
103697    }
103698}
103699impl<V: ?Sized + Fold> FoldWith<V> for MethodKind {
103700    #[doc = "Calls [Fold`::fold_method_kind`] with `self`."]
103701    fn fold_with(self, visitor: &mut V) -> Self {
103702        <V as Fold>::fold_method_kind(visitor, self)
103703    }
103704
103705    fn fold_children_with(self, visitor: &mut V) -> Self {
103706        match self {
103707            MethodKind::Method => MethodKind::Method,
103708            MethodKind::Getter => MethodKind::Getter,
103709            MethodKind::Setter => MethodKind::Setter,
103710        }
103711    }
103712}
103713impl<V: ?Sized + Fold> FoldWith<V> for MethodProp {
103714    #[doc = "Calls [Fold`::fold_method_prop`] with `self`."]
103715    fn fold_with(self, visitor: &mut V) -> Self {
103716        <V as Fold>::fold_method_prop(visitor, self)
103717    }
103718
103719    fn fold_children_with(self, visitor: &mut V) -> Self {
103720        match self {
103721            MethodProp { key, function } => {
103722                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
103723                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
103724                MethodProp { key, function }
103725            }
103726        }
103727    }
103728}
103729impl<V: ?Sized + Fold> FoldWith<V> for Module {
103730    #[doc = "Calls [Fold`::fold_module`] with `self`."]
103731    fn fold_with(self, visitor: &mut V) -> Self {
103732        <V as Fold>::fold_module(visitor, self)
103733    }
103734
103735    fn fold_children_with(self, visitor: &mut V) -> Self {
103736        match self {
103737            Module {
103738                span,
103739                body,
103740                shebang,
103741            } => {
103742                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103743                let body = { <Vec<ModuleItem> as FoldWith<V>>::fold_with(body, visitor) };
103744                let shebang =
103745                    { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(shebang, visitor) };
103746                Module {
103747                    span,
103748                    body,
103749                    shebang,
103750                }
103751            }
103752        }
103753    }
103754}
103755impl<V: ?Sized + Fold> FoldWith<V> for ModuleDecl {
103756    #[doc = "Calls [Fold`::fold_module_decl`] with `self`."]
103757    fn fold_with(self, visitor: &mut V) -> Self {
103758        <V as Fold>::fold_module_decl(visitor, self)
103759    }
103760
103761    fn fold_children_with(self, visitor: &mut V) -> Self {
103762        match self {
103763            ModuleDecl::Import { 0: _field_0 } => {
103764                let _field_0 = <ImportDecl as FoldWith<V>>::fold_with(_field_0, visitor);
103765                ModuleDecl::Import { 0: _field_0 }
103766            }
103767            ModuleDecl::ExportDecl { 0: _field_0 } => {
103768                let _field_0 = <ExportDecl as FoldWith<V>>::fold_with(_field_0, visitor);
103769                ModuleDecl::ExportDecl { 0: _field_0 }
103770            }
103771            ModuleDecl::ExportNamed { 0: _field_0 } => {
103772                let _field_0 = <NamedExport as FoldWith<V>>::fold_with(_field_0, visitor);
103773                ModuleDecl::ExportNamed { 0: _field_0 }
103774            }
103775            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
103776                let _field_0 = <ExportDefaultDecl as FoldWith<V>>::fold_with(_field_0, visitor);
103777                ModuleDecl::ExportDefaultDecl { 0: _field_0 }
103778            }
103779            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
103780                let _field_0 = <ExportDefaultExpr as FoldWith<V>>::fold_with(_field_0, visitor);
103781                ModuleDecl::ExportDefaultExpr { 0: _field_0 }
103782            }
103783            ModuleDecl::ExportAll { 0: _field_0 } => {
103784                let _field_0 = <ExportAll as FoldWith<V>>::fold_with(_field_0, visitor);
103785                ModuleDecl::ExportAll { 0: _field_0 }
103786            }
103787            ModuleDecl::TsImportEquals { 0: _field_0 } => {
103788                let _field_0 =
103789                    <Box<TsImportEqualsDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
103790                ModuleDecl::TsImportEquals { 0: _field_0 }
103791            }
103792            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
103793                let _field_0 = <TsExportAssignment as FoldWith<V>>::fold_with(_field_0, visitor);
103794                ModuleDecl::TsExportAssignment { 0: _field_0 }
103795            }
103796            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
103797                let _field_0 = <TsNamespaceExportDecl as FoldWith<V>>::fold_with(_field_0, visitor);
103798                ModuleDecl::TsNamespaceExport { 0: _field_0 }
103799            }
103800        }
103801    }
103802}
103803impl<V: ?Sized + Fold> FoldWith<V> for ModuleExportName {
103804    #[doc = "Calls [Fold`::fold_module_export_name`] with `self`."]
103805    fn fold_with(self, visitor: &mut V) -> Self {
103806        <V as Fold>::fold_module_export_name(visitor, self)
103807    }
103808
103809    fn fold_children_with(self, visitor: &mut V) -> Self {
103810        match self {
103811            ModuleExportName::Ident { 0: _field_0 } => {
103812                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
103813                ModuleExportName::Ident { 0: _field_0 }
103814            }
103815            ModuleExportName::Str { 0: _field_0 } => {
103816                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
103817                ModuleExportName::Str { 0: _field_0 }
103818            }
103819        }
103820    }
103821}
103822impl<V: ?Sized + Fold> FoldWith<V> for ModuleItem {
103823    #[doc = "Calls [Fold`::fold_module_item`] with `self`."]
103824    fn fold_with(self, visitor: &mut V) -> Self {
103825        <V as Fold>::fold_module_item(visitor, self)
103826    }
103827
103828    fn fold_children_with(self, visitor: &mut V) -> Self {
103829        match self {
103830            ModuleItem::ModuleDecl { 0: _field_0 } => {
103831                let _field_0 = <ModuleDecl as FoldWith<V>>::fold_with(_field_0, visitor);
103832                ModuleItem::ModuleDecl { 0: _field_0 }
103833            }
103834            ModuleItem::Stmt { 0: _field_0 } => {
103835                let _field_0 = <Stmt as FoldWith<V>>::fold_with(_field_0, visitor);
103836                ModuleItem::Stmt { 0: _field_0 }
103837            }
103838        }
103839    }
103840}
103841impl<V: ?Sized + Fold> FoldWith<V> for NamedExport {
103842    #[doc = "Calls [Fold`::fold_named_export`] with `self`."]
103843    fn fold_with(self, visitor: &mut V) -> Self {
103844        <V as Fold>::fold_named_export(visitor, self)
103845    }
103846
103847    fn fold_children_with(self, visitor: &mut V) -> Self {
103848        match self {
103849            NamedExport {
103850                span,
103851                specifiers,
103852                src,
103853                type_only,
103854                with,
103855            } => {
103856                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103857                let specifiers =
103858                    { <Vec<ExportSpecifier> as FoldWith<V>>::fold_with(specifiers, visitor) };
103859                let src = { <Option<Box<Str>> as FoldWith<V>>::fold_with(src, visitor) };
103860                let with = { <Option<Box<ObjectLit>> as FoldWith<V>>::fold_with(with, visitor) };
103861                NamedExport {
103862                    span,
103863                    specifiers,
103864                    src,
103865                    type_only,
103866                    with,
103867                }
103868            }
103869        }
103870    }
103871}
103872impl<V: ?Sized + Fold> FoldWith<V> for NewExpr {
103873    #[doc = "Calls [Fold`::fold_new_expr`] with `self`."]
103874    fn fold_with(self, visitor: &mut V) -> Self {
103875        <V as Fold>::fold_new_expr(visitor, self)
103876    }
103877
103878    fn fold_children_with(self, visitor: &mut V) -> Self {
103879        match self {
103880            NewExpr {
103881                span,
103882                ctxt,
103883                callee,
103884                args,
103885                type_args,
103886            } => {
103887                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103888                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
103889                let callee = { <Box<Expr> as FoldWith<V>>::fold_with(callee, visitor) };
103890                let args = { <Option<Vec<ExprOrSpread>> as FoldWith<V>>::fold_with(args, visitor) };
103891                let type_args = {
103892                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
103893                        type_args, visitor,
103894                    )
103895                };
103896                NewExpr {
103897                    span,
103898                    ctxt,
103899                    callee,
103900                    args,
103901                    type_args,
103902                }
103903            }
103904        }
103905    }
103906}
103907impl<V: ?Sized + Fold> FoldWith<V> for Null {
103908    #[doc = "Calls [Fold`::fold_null`] with `self`."]
103909    fn fold_with(self, visitor: &mut V) -> Self {
103910        <V as Fold>::fold_null(visitor, self)
103911    }
103912
103913    fn fold_children_with(self, visitor: &mut V) -> Self {
103914        match self {
103915            Null { span } => {
103916                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103917                Null { span }
103918            }
103919        }
103920    }
103921}
103922impl<V: ?Sized + Fold> FoldWith<V> for Number {
103923    #[doc = "Calls [Fold`::fold_number`] with `self`."]
103924    fn fold_with(self, visitor: &mut V) -> Self {
103925        <V as Fold>::fold_number(visitor, self)
103926    }
103927
103928    fn fold_children_with(self, visitor: &mut V) -> Self {
103929        match self {
103930            Number { span, value, raw } => {
103931                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103932                let raw = { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(raw, visitor) };
103933                Number { span, value, raw }
103934            }
103935        }
103936    }
103937}
103938impl<V: ?Sized + Fold> FoldWith<V> for ObjectLit {
103939    #[doc = "Calls [Fold`::fold_object_lit`] with `self`."]
103940    fn fold_with(self, visitor: &mut V) -> Self {
103941        <V as Fold>::fold_object_lit(visitor, self)
103942    }
103943
103944    fn fold_children_with(self, visitor: &mut V) -> Self {
103945        match self {
103946            ObjectLit { span, props } => {
103947                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103948                let props = { <Vec<PropOrSpread> as FoldWith<V>>::fold_with(props, visitor) };
103949                ObjectLit { span, props }
103950            }
103951        }
103952    }
103953}
103954impl<V: ?Sized + Fold> FoldWith<V> for ObjectPat {
103955    #[doc = "Calls [Fold`::fold_object_pat`] with `self`."]
103956    fn fold_with(self, visitor: &mut V) -> Self {
103957        <V as Fold>::fold_object_pat(visitor, self)
103958    }
103959
103960    fn fold_children_with(self, visitor: &mut V) -> Self {
103961        match self {
103962            ObjectPat {
103963                span,
103964                props,
103965                optional,
103966                type_ann,
103967            } => {
103968                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
103969                let props = { <Vec<ObjectPatProp> as FoldWith<V>>::fold_with(props, visitor) };
103970                let type_ann =
103971                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
103972                ObjectPat {
103973                    span,
103974                    props,
103975                    optional,
103976                    type_ann,
103977                }
103978            }
103979        }
103980    }
103981}
103982impl<V: ?Sized + Fold> FoldWith<V> for ObjectPatProp {
103983    #[doc = "Calls [Fold`::fold_object_pat_prop`] with `self`."]
103984    fn fold_with(self, visitor: &mut V) -> Self {
103985        <V as Fold>::fold_object_pat_prop(visitor, self)
103986    }
103987
103988    fn fold_children_with(self, visitor: &mut V) -> Self {
103989        match self {
103990            ObjectPatProp::KeyValue { 0: _field_0 } => {
103991                let _field_0 = <KeyValuePatProp as FoldWith<V>>::fold_with(_field_0, visitor);
103992                ObjectPatProp::KeyValue { 0: _field_0 }
103993            }
103994            ObjectPatProp::Assign { 0: _field_0 } => {
103995                let _field_0 = <AssignPatProp as FoldWith<V>>::fold_with(_field_0, visitor);
103996                ObjectPatProp::Assign { 0: _field_0 }
103997            }
103998            ObjectPatProp::Rest { 0: _field_0 } => {
103999                let _field_0 = <RestPat as FoldWith<V>>::fold_with(_field_0, visitor);
104000                ObjectPatProp::Rest { 0: _field_0 }
104001            }
104002        }
104003    }
104004}
104005impl<V: ?Sized + Fold> FoldWith<V> for OptCall {
104006    #[doc = "Calls [Fold`::fold_opt_call`] with `self`."]
104007    fn fold_with(self, visitor: &mut V) -> Self {
104008        <V as Fold>::fold_opt_call(visitor, self)
104009    }
104010
104011    fn fold_children_with(self, visitor: &mut V) -> Self {
104012        match self {
104013            OptCall {
104014                span,
104015                ctxt,
104016                callee,
104017                args,
104018                type_args,
104019            } => {
104020                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104021                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
104022                let callee = { <Box<Expr> as FoldWith<V>>::fold_with(callee, visitor) };
104023                let args = { <Vec<ExprOrSpread> as FoldWith<V>>::fold_with(args, visitor) };
104024                let type_args = {
104025                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
104026                        type_args, visitor,
104027                    )
104028                };
104029                OptCall {
104030                    span,
104031                    ctxt,
104032                    callee,
104033                    args,
104034                    type_args,
104035                }
104036            }
104037        }
104038    }
104039}
104040impl<V: ?Sized + Fold> FoldWith<V> for OptChainBase {
104041    #[doc = "Calls [Fold`::fold_opt_chain_base`] with `self`."]
104042    fn fold_with(self, visitor: &mut V) -> Self {
104043        <V as Fold>::fold_opt_chain_base(visitor, self)
104044    }
104045
104046    fn fold_children_with(self, visitor: &mut V) -> Self {
104047        match self {
104048            OptChainBase::Member { 0: _field_0 } => {
104049                let _field_0 = <MemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104050                OptChainBase::Member { 0: _field_0 }
104051            }
104052            OptChainBase::Call { 0: _field_0 } => {
104053                let _field_0 = <OptCall as FoldWith<V>>::fold_with(_field_0, visitor);
104054                OptChainBase::Call { 0: _field_0 }
104055            }
104056        }
104057    }
104058}
104059impl<V: ?Sized + Fold> FoldWith<V> for OptChainExpr {
104060    #[doc = "Calls [Fold`::fold_opt_chain_expr`] with `self`."]
104061    fn fold_with(self, visitor: &mut V) -> Self {
104062        <V as Fold>::fold_opt_chain_expr(visitor, self)
104063    }
104064
104065    fn fold_children_with(self, visitor: &mut V) -> Self {
104066        match self {
104067            OptChainExpr {
104068                span,
104069                optional,
104070                base,
104071            } => {
104072                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104073                let base = { <Box<OptChainBase> as FoldWith<V>>::fold_with(base, visitor) };
104074                OptChainExpr {
104075                    span,
104076                    optional,
104077                    base,
104078                }
104079            }
104080        }
104081    }
104082}
104083impl<V: ?Sized + Fold> FoldWith<V> for Param {
104084    #[doc = "Calls [Fold`::fold_param`] with `self`."]
104085    fn fold_with(self, visitor: &mut V) -> Self {
104086        <V as Fold>::fold_param(visitor, self)
104087    }
104088
104089    fn fold_children_with(self, visitor: &mut V) -> Self {
104090        match self {
104091            Param {
104092                span,
104093                decorators,
104094                pat,
104095            } => {
104096                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104097                let decorators =
104098                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
104099                let pat = { <Pat as FoldWith<V>>::fold_with(pat, visitor) };
104100                Param {
104101                    span,
104102                    decorators,
104103                    pat,
104104                }
104105            }
104106        }
104107    }
104108}
104109impl<V: ?Sized + Fold> FoldWith<V> for ParamOrTsParamProp {
104110    #[doc = "Calls [Fold`::fold_param_or_ts_param_prop`] with `self`."]
104111    fn fold_with(self, visitor: &mut V) -> Self {
104112        <V as Fold>::fold_param_or_ts_param_prop(visitor, self)
104113    }
104114
104115    fn fold_children_with(self, visitor: &mut V) -> Self {
104116        match self {
104117            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
104118                let _field_0 = <TsParamProp as FoldWith<V>>::fold_with(_field_0, visitor);
104119                ParamOrTsParamProp::TsParamProp { 0: _field_0 }
104120            }
104121            ParamOrTsParamProp::Param { 0: _field_0 } => {
104122                let _field_0 = <Param as FoldWith<V>>::fold_with(_field_0, visitor);
104123                ParamOrTsParamProp::Param { 0: _field_0 }
104124            }
104125        }
104126    }
104127}
104128impl<V: ?Sized + Fold> FoldWith<V> for ParenExpr {
104129    #[doc = "Calls [Fold`::fold_paren_expr`] with `self`."]
104130    fn fold_with(self, visitor: &mut V) -> Self {
104131        <V as Fold>::fold_paren_expr(visitor, self)
104132    }
104133
104134    fn fold_children_with(self, visitor: &mut V) -> Self {
104135        match self {
104136            ParenExpr { span, expr } => {
104137                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104138                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
104139                ParenExpr { span, expr }
104140            }
104141        }
104142    }
104143}
104144impl<V: ?Sized + Fold> FoldWith<V> for Pat {
104145    #[doc = "Calls [Fold`::fold_pat`] with `self`."]
104146    fn fold_with(self, visitor: &mut V) -> Self {
104147        <V as Fold>::fold_pat(visitor, self)
104148    }
104149
104150    fn fold_children_with(self, visitor: &mut V) -> Self {
104151        match self {
104152            Pat::Ident { 0: _field_0 } => {
104153                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
104154                Pat::Ident { 0: _field_0 }
104155            }
104156            Pat::Array { 0: _field_0 } => {
104157                let _field_0 = <ArrayPat as FoldWith<V>>::fold_with(_field_0, visitor);
104158                Pat::Array { 0: _field_0 }
104159            }
104160            Pat::Rest { 0: _field_0 } => {
104161                let _field_0 = <RestPat as FoldWith<V>>::fold_with(_field_0, visitor);
104162                Pat::Rest { 0: _field_0 }
104163            }
104164            Pat::Object { 0: _field_0 } => {
104165                let _field_0 = <ObjectPat as FoldWith<V>>::fold_with(_field_0, visitor);
104166                Pat::Object { 0: _field_0 }
104167            }
104168            Pat::Assign { 0: _field_0 } => {
104169                let _field_0 = <AssignPat as FoldWith<V>>::fold_with(_field_0, visitor);
104170                Pat::Assign { 0: _field_0 }
104171            }
104172            Pat::Invalid { 0: _field_0 } => {
104173                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
104174                Pat::Invalid { 0: _field_0 }
104175            }
104176            Pat::Expr { 0: _field_0 } => {
104177                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
104178                Pat::Expr { 0: _field_0 }
104179            }
104180        }
104181    }
104182}
104183impl<V: ?Sized + Fold> FoldWith<V> for PrivateMethod {
104184    #[doc = "Calls [Fold`::fold_private_method`] with `self`."]
104185    fn fold_with(self, visitor: &mut V) -> Self {
104186        <V as Fold>::fold_private_method(visitor, self)
104187    }
104188
104189    fn fold_children_with(self, visitor: &mut V) -> Self {
104190        match self {
104191            PrivateMethod {
104192                span,
104193                key,
104194                function,
104195                kind,
104196                is_static,
104197                accessibility,
104198                is_abstract,
104199                is_optional,
104200                is_override,
104201            } => {
104202                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104203                let key = { <PrivateName as FoldWith<V>>::fold_with(key, visitor) };
104204                let function = { <Box<Function> as FoldWith<V>>::fold_with(function, visitor) };
104205                let kind = { <MethodKind as FoldWith<V>>::fold_with(kind, visitor) };
104206                let accessibility =
104207                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
104208                PrivateMethod {
104209                    span,
104210                    key,
104211                    function,
104212                    kind,
104213                    is_static,
104214                    accessibility,
104215                    is_abstract,
104216                    is_optional,
104217                    is_override,
104218                }
104219            }
104220        }
104221    }
104222}
104223impl<V: ?Sized + Fold> FoldWith<V> for PrivateName {
104224    #[doc = "Calls [Fold`::fold_private_name`] with `self`."]
104225    fn fold_with(self, visitor: &mut V) -> Self {
104226        <V as Fold>::fold_private_name(visitor, self)
104227    }
104228
104229    fn fold_children_with(self, visitor: &mut V) -> Self {
104230        match self {
104231            PrivateName { span, name } => {
104232                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104233                let name = { <swc_atoms::Atom as FoldWith<V>>::fold_with(name, visitor) };
104234                PrivateName { span, name }
104235            }
104236        }
104237    }
104238}
104239impl<V: ?Sized + Fold> FoldWith<V> for PrivateProp {
104240    #[doc = "Calls [Fold`::fold_private_prop`] with `self`."]
104241    fn fold_with(self, visitor: &mut V) -> Self {
104242        <V as Fold>::fold_private_prop(visitor, self)
104243    }
104244
104245    fn fold_children_with(self, visitor: &mut V) -> Self {
104246        match self {
104247            PrivateProp {
104248                span,
104249                ctxt,
104250                key,
104251                value,
104252                type_ann,
104253                is_static,
104254                decorators,
104255                accessibility,
104256                is_optional,
104257                is_override,
104258                readonly,
104259                definite,
104260            } => {
104261                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104262                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
104263                let key = { <PrivateName as FoldWith<V>>::fold_with(key, visitor) };
104264                let value = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(value, visitor) };
104265                let type_ann =
104266                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
104267                let decorators =
104268                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
104269                let accessibility =
104270                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
104271                PrivateProp {
104272                    span,
104273                    ctxt,
104274                    key,
104275                    value,
104276                    type_ann,
104277                    is_static,
104278                    decorators,
104279                    accessibility,
104280                    is_optional,
104281                    is_override,
104282                    readonly,
104283                    definite,
104284                }
104285            }
104286        }
104287    }
104288}
104289impl<V: ?Sized + Fold> FoldWith<V> for Program {
104290    #[doc = "Calls [Fold`::fold_program`] with `self`."]
104291    fn fold_with(self, visitor: &mut V) -> Self {
104292        <V as Fold>::fold_program(visitor, self)
104293    }
104294
104295    fn fold_children_with(self, visitor: &mut V) -> Self {
104296        match self {
104297            Program::Module { 0: _field_0 } => {
104298                let _field_0 = <Module as FoldWith<V>>::fold_with(_field_0, visitor);
104299                Program::Module { 0: _field_0 }
104300            }
104301            Program::Script { 0: _field_0 } => {
104302                let _field_0 = <Script as FoldWith<V>>::fold_with(_field_0, visitor);
104303                Program::Script { 0: _field_0 }
104304            }
104305        }
104306    }
104307}
104308impl<V: ?Sized + Fold> FoldWith<V> for Prop {
104309    #[doc = "Calls [Fold`::fold_prop`] with `self`."]
104310    fn fold_with(self, visitor: &mut V) -> Self {
104311        <V as Fold>::fold_prop(visitor, self)
104312    }
104313
104314    fn fold_children_with(self, visitor: &mut V) -> Self {
104315        match self {
104316            Prop::Shorthand { 0: _field_0 } => {
104317                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
104318                Prop::Shorthand { 0: _field_0 }
104319            }
104320            Prop::KeyValue { 0: _field_0 } => {
104321                let _field_0 = <KeyValueProp as FoldWith<V>>::fold_with(_field_0, visitor);
104322                Prop::KeyValue { 0: _field_0 }
104323            }
104324            Prop::Assign { 0: _field_0 } => {
104325                let _field_0 = <AssignProp as FoldWith<V>>::fold_with(_field_0, visitor);
104326                Prop::Assign { 0: _field_0 }
104327            }
104328            Prop::Getter { 0: _field_0 } => {
104329                let _field_0 = <GetterProp as FoldWith<V>>::fold_with(_field_0, visitor);
104330                Prop::Getter { 0: _field_0 }
104331            }
104332            Prop::Setter { 0: _field_0 } => {
104333                let _field_0 = <SetterProp as FoldWith<V>>::fold_with(_field_0, visitor);
104334                Prop::Setter { 0: _field_0 }
104335            }
104336            Prop::Method { 0: _field_0 } => {
104337                let _field_0 = <MethodProp as FoldWith<V>>::fold_with(_field_0, visitor);
104338                Prop::Method { 0: _field_0 }
104339            }
104340        }
104341    }
104342}
104343impl<V: ?Sized + Fold> FoldWith<V> for PropName {
104344    #[doc = "Calls [Fold`::fold_prop_name`] with `self`."]
104345    fn fold_with(self, visitor: &mut V) -> Self {
104346        <V as Fold>::fold_prop_name(visitor, self)
104347    }
104348
104349    fn fold_children_with(self, visitor: &mut V) -> Self {
104350        match self {
104351            PropName::Ident { 0: _field_0 } => {
104352                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
104353                PropName::Ident { 0: _field_0 }
104354            }
104355            PropName::Str { 0: _field_0 } => {
104356                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
104357                PropName::Str { 0: _field_0 }
104358            }
104359            PropName::Num { 0: _field_0 } => {
104360                let _field_0 = <Number as FoldWith<V>>::fold_with(_field_0, visitor);
104361                PropName::Num { 0: _field_0 }
104362            }
104363            PropName::Computed { 0: _field_0 } => {
104364                let _field_0 = <ComputedPropName as FoldWith<V>>::fold_with(_field_0, visitor);
104365                PropName::Computed { 0: _field_0 }
104366            }
104367            PropName::BigInt { 0: _field_0 } => {
104368                let _field_0 = <BigInt as FoldWith<V>>::fold_with(_field_0, visitor);
104369                PropName::BigInt { 0: _field_0 }
104370            }
104371        }
104372    }
104373}
104374impl<V: ?Sized + Fold> FoldWith<V> for PropOrSpread {
104375    #[doc = "Calls [Fold`::fold_prop_or_spread`] with `self`."]
104376    fn fold_with(self, visitor: &mut V) -> Self {
104377        <V as Fold>::fold_prop_or_spread(visitor, self)
104378    }
104379
104380    fn fold_children_with(self, visitor: &mut V) -> Self {
104381        match self {
104382            PropOrSpread::Spread { 0: _field_0 } => {
104383                let _field_0 = <SpreadElement as FoldWith<V>>::fold_with(_field_0, visitor);
104384                PropOrSpread::Spread { 0: _field_0 }
104385            }
104386            PropOrSpread::Prop { 0: _field_0 } => {
104387                let _field_0 = <Box<Prop> as FoldWith<V>>::fold_with(_field_0, visitor);
104388                PropOrSpread::Prop { 0: _field_0 }
104389            }
104390        }
104391    }
104392}
104393impl<V: ?Sized + Fold> FoldWith<V> for Regex {
104394    #[doc = "Calls [Fold`::fold_regex`] with `self`."]
104395    fn fold_with(self, visitor: &mut V) -> Self {
104396        <V as Fold>::fold_regex(visitor, self)
104397    }
104398
104399    fn fold_children_with(self, visitor: &mut V) -> Self {
104400        match self {
104401            Regex { span, exp, flags } => {
104402                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104403                let exp = { <swc_atoms::Atom as FoldWith<V>>::fold_with(exp, visitor) };
104404                let flags = { <swc_atoms::Atom as FoldWith<V>>::fold_with(flags, visitor) };
104405                Regex { span, exp, flags }
104406            }
104407        }
104408    }
104409}
104410impl<V: ?Sized + Fold> FoldWith<V> for RestPat {
104411    #[doc = "Calls [Fold`::fold_rest_pat`] with `self`."]
104412    fn fold_with(self, visitor: &mut V) -> Self {
104413        <V as Fold>::fold_rest_pat(visitor, self)
104414    }
104415
104416    fn fold_children_with(self, visitor: &mut V) -> Self {
104417        match self {
104418            RestPat {
104419                span,
104420                dot3_token,
104421                arg,
104422                type_ann,
104423            } => {
104424                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104425                let dot3_token =
104426                    { <swc_common::Span as FoldWith<V>>::fold_with(dot3_token, visitor) };
104427                let arg = { <Box<Pat> as FoldWith<V>>::fold_with(arg, visitor) };
104428                let type_ann =
104429                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
104430                RestPat {
104431                    span,
104432                    dot3_token,
104433                    arg,
104434                    type_ann,
104435                }
104436            }
104437        }
104438    }
104439}
104440impl<V: ?Sized + Fold> FoldWith<V> for ReturnStmt {
104441    #[doc = "Calls [Fold`::fold_return_stmt`] with `self`."]
104442    fn fold_with(self, visitor: &mut V) -> Self {
104443        <V as Fold>::fold_return_stmt(visitor, self)
104444    }
104445
104446    fn fold_children_with(self, visitor: &mut V) -> Self {
104447        match self {
104448            ReturnStmt { span, arg } => {
104449                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104450                let arg = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(arg, visitor) };
104451                ReturnStmt { span, arg }
104452            }
104453        }
104454    }
104455}
104456impl<V: ?Sized + Fold> FoldWith<V> for Script {
104457    #[doc = "Calls [Fold`::fold_script`] with `self`."]
104458    fn fold_with(self, visitor: &mut V) -> Self {
104459        <V as Fold>::fold_script(visitor, self)
104460    }
104461
104462    fn fold_children_with(self, visitor: &mut V) -> Self {
104463        match self {
104464            Script {
104465                span,
104466                body,
104467                shebang,
104468            } => {
104469                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104470                let body = { <Vec<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
104471                let shebang =
104472                    { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(shebang, visitor) };
104473                Script {
104474                    span,
104475                    body,
104476                    shebang,
104477                }
104478            }
104479        }
104480    }
104481}
104482impl<V: ?Sized + Fold> FoldWith<V> for SeqExpr {
104483    #[doc = "Calls [Fold`::fold_seq_expr`] with `self`."]
104484    fn fold_with(self, visitor: &mut V) -> Self {
104485        <V as Fold>::fold_seq_expr(visitor, self)
104486    }
104487
104488    fn fold_children_with(self, visitor: &mut V) -> Self {
104489        match self {
104490            SeqExpr { span, exprs } => {
104491                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104492                let exprs = { <Vec<Box<Expr>> as FoldWith<V>>::fold_with(exprs, visitor) };
104493                SeqExpr { span, exprs }
104494            }
104495        }
104496    }
104497}
104498impl<V: ?Sized + Fold> FoldWith<V> for SetterProp {
104499    #[doc = "Calls [Fold`::fold_setter_prop`] with `self`."]
104500    fn fold_with(self, visitor: &mut V) -> Self {
104501        <V as Fold>::fold_setter_prop(visitor, self)
104502    }
104503
104504    fn fold_children_with(self, visitor: &mut V) -> Self {
104505        match self {
104506            SetterProp {
104507                span,
104508                key,
104509                this_param,
104510                param,
104511                body,
104512            } => {
104513                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104514                let key = { <PropName as FoldWith<V>>::fold_with(key, visitor) };
104515                let this_param = { <Option<Pat> as FoldWith<V>>::fold_with(this_param, visitor) };
104516                let param = { <Box<Pat> as FoldWith<V>>::fold_with(param, visitor) };
104517                let body = { <Option<BlockStmt> as FoldWith<V>>::fold_with(body, visitor) };
104518                SetterProp {
104519                    span,
104520                    key,
104521                    this_param,
104522                    param,
104523                    body,
104524                }
104525            }
104526        }
104527    }
104528}
104529impl<V: ?Sized + Fold> FoldWith<V> for SimpleAssignTarget {
104530    #[doc = "Calls [Fold`::fold_simple_assign_target`] with `self`."]
104531    fn fold_with(self, visitor: &mut V) -> Self {
104532        <V as Fold>::fold_simple_assign_target(visitor, self)
104533    }
104534
104535    fn fold_children_with(self, visitor: &mut V) -> Self {
104536        match self {
104537            SimpleAssignTarget::Ident { 0: _field_0 } => {
104538                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
104539                SimpleAssignTarget::Ident { 0: _field_0 }
104540            }
104541            SimpleAssignTarget::Member { 0: _field_0 } => {
104542                let _field_0 = <MemberExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104543                SimpleAssignTarget::Member { 0: _field_0 }
104544            }
104545            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
104546                let _field_0 = <SuperPropExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104547                SimpleAssignTarget::SuperProp { 0: _field_0 }
104548            }
104549            SimpleAssignTarget::Paren { 0: _field_0 } => {
104550                let _field_0 = <ParenExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104551                SimpleAssignTarget::Paren { 0: _field_0 }
104552            }
104553            SimpleAssignTarget::OptChain { 0: _field_0 } => {
104554                let _field_0 = <OptChainExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104555                SimpleAssignTarget::OptChain { 0: _field_0 }
104556            }
104557            SimpleAssignTarget::TsAs { 0: _field_0 } => {
104558                let _field_0 = <TsAsExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104559                SimpleAssignTarget::TsAs { 0: _field_0 }
104560            }
104561            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
104562                let _field_0 = <TsSatisfiesExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104563                SimpleAssignTarget::TsSatisfies { 0: _field_0 }
104564            }
104565            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
104566                let _field_0 = <TsNonNullExpr as FoldWith<V>>::fold_with(_field_0, visitor);
104567                SimpleAssignTarget::TsNonNull { 0: _field_0 }
104568            }
104569            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
104570                let _field_0 = <TsTypeAssertion as FoldWith<V>>::fold_with(_field_0, visitor);
104571                SimpleAssignTarget::TsTypeAssertion { 0: _field_0 }
104572            }
104573            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
104574                let _field_0 = <TsInstantiation as FoldWith<V>>::fold_with(_field_0, visitor);
104575                SimpleAssignTarget::TsInstantiation { 0: _field_0 }
104576            }
104577            SimpleAssignTarget::Invalid { 0: _field_0 } => {
104578                let _field_0 = <Invalid as FoldWith<V>>::fold_with(_field_0, visitor);
104579                SimpleAssignTarget::Invalid { 0: _field_0 }
104580            }
104581        }
104582    }
104583}
104584impl<V: ?Sized + Fold> FoldWith<V> for SpreadElement {
104585    #[doc = "Calls [Fold`::fold_spread_element`] with `self`."]
104586    fn fold_with(self, visitor: &mut V) -> Self {
104587        <V as Fold>::fold_spread_element(visitor, self)
104588    }
104589
104590    fn fold_children_with(self, visitor: &mut V) -> Self {
104591        match self {
104592            SpreadElement { dot3_token, expr } => {
104593                let dot3_token =
104594                    { <swc_common::Span as FoldWith<V>>::fold_with(dot3_token, visitor) };
104595                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
104596                SpreadElement { dot3_token, expr }
104597            }
104598        }
104599    }
104600}
104601impl<V: ?Sized + Fold> FoldWith<V> for StaticBlock {
104602    #[doc = "Calls [Fold`::fold_static_block`] with `self`."]
104603    fn fold_with(self, visitor: &mut V) -> Self {
104604        <V as Fold>::fold_static_block(visitor, self)
104605    }
104606
104607    fn fold_children_with(self, visitor: &mut V) -> Self {
104608        match self {
104609            StaticBlock { span, body } => {
104610                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104611                let body = { <BlockStmt as FoldWith<V>>::fold_with(body, visitor) };
104612                StaticBlock { span, body }
104613            }
104614        }
104615    }
104616}
104617impl<V: ?Sized + Fold> FoldWith<V> for Stmt {
104618    #[doc = "Calls [Fold`::fold_stmt`] with `self`."]
104619    fn fold_with(self, visitor: &mut V) -> Self {
104620        <V as Fold>::fold_stmt(visitor, self)
104621    }
104622
104623    fn fold_children_with(self, visitor: &mut V) -> Self {
104624        match self {
104625            Stmt::Block { 0: _field_0 } => {
104626                let _field_0 = <BlockStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104627                Stmt::Block { 0: _field_0 }
104628            }
104629            Stmt::Empty { 0: _field_0 } => {
104630                let _field_0 = <EmptyStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104631                Stmt::Empty { 0: _field_0 }
104632            }
104633            Stmt::Debugger { 0: _field_0 } => {
104634                let _field_0 = <DebuggerStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104635                Stmt::Debugger { 0: _field_0 }
104636            }
104637            Stmt::With { 0: _field_0 } => {
104638                let _field_0 = <WithStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104639                Stmt::With { 0: _field_0 }
104640            }
104641            Stmt::Return { 0: _field_0 } => {
104642                let _field_0 = <ReturnStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104643                Stmt::Return { 0: _field_0 }
104644            }
104645            Stmt::Labeled { 0: _field_0 } => {
104646                let _field_0 = <LabeledStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104647                Stmt::Labeled { 0: _field_0 }
104648            }
104649            Stmt::Break { 0: _field_0 } => {
104650                let _field_0 = <BreakStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104651                Stmt::Break { 0: _field_0 }
104652            }
104653            Stmt::Continue { 0: _field_0 } => {
104654                let _field_0 = <ContinueStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104655                Stmt::Continue { 0: _field_0 }
104656            }
104657            Stmt::If { 0: _field_0 } => {
104658                let _field_0 = <IfStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104659                Stmt::If { 0: _field_0 }
104660            }
104661            Stmt::Switch { 0: _field_0 } => {
104662                let _field_0 = <SwitchStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104663                Stmt::Switch { 0: _field_0 }
104664            }
104665            Stmt::Throw { 0: _field_0 } => {
104666                let _field_0 = <ThrowStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104667                Stmt::Throw { 0: _field_0 }
104668            }
104669            Stmt::Try { 0: _field_0 } => {
104670                let _field_0 = <Box<TryStmt> as FoldWith<V>>::fold_with(_field_0, visitor);
104671                Stmt::Try { 0: _field_0 }
104672            }
104673            Stmt::While { 0: _field_0 } => {
104674                let _field_0 = <WhileStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104675                Stmt::While { 0: _field_0 }
104676            }
104677            Stmt::DoWhile { 0: _field_0 } => {
104678                let _field_0 = <DoWhileStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104679                Stmt::DoWhile { 0: _field_0 }
104680            }
104681            Stmt::For { 0: _field_0 } => {
104682                let _field_0 = <ForStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104683                Stmt::For { 0: _field_0 }
104684            }
104685            Stmt::ForIn { 0: _field_0 } => {
104686                let _field_0 = <ForInStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104687                Stmt::ForIn { 0: _field_0 }
104688            }
104689            Stmt::ForOf { 0: _field_0 } => {
104690                let _field_0 = <ForOfStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104691                Stmt::ForOf { 0: _field_0 }
104692            }
104693            Stmt::Decl { 0: _field_0 } => {
104694                let _field_0 = <Decl as FoldWith<V>>::fold_with(_field_0, visitor);
104695                Stmt::Decl { 0: _field_0 }
104696            }
104697            Stmt::Expr { 0: _field_0 } => {
104698                let _field_0 = <ExprStmt as FoldWith<V>>::fold_with(_field_0, visitor);
104699                Stmt::Expr { 0: _field_0 }
104700            }
104701        }
104702    }
104703}
104704impl<V: ?Sized + Fold> FoldWith<V> for Str {
104705    #[doc = "Calls [Fold`::fold_str`] with `self`."]
104706    fn fold_with(self, visitor: &mut V) -> Self {
104707        <V as Fold>::fold_str(visitor, self)
104708    }
104709
104710    fn fold_children_with(self, visitor: &mut V) -> Self {
104711        match self {
104712            Str { span, value, raw } => {
104713                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104714                let value = { <swc_atoms::Atom as FoldWith<V>>::fold_with(value, visitor) };
104715                let raw = { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(raw, visitor) };
104716                Str { span, value, raw }
104717            }
104718        }
104719    }
104720}
104721impl<V: ?Sized + Fold> FoldWith<V> for Super {
104722    #[doc = "Calls [Fold`::fold_super`] with `self`."]
104723    fn fold_with(self, visitor: &mut V) -> Self {
104724        <V as Fold>::fold_super(visitor, self)
104725    }
104726
104727    fn fold_children_with(self, visitor: &mut V) -> Self {
104728        match self {
104729            Super { span } => {
104730                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104731                Super { span }
104732            }
104733        }
104734    }
104735}
104736impl<V: ?Sized + Fold> FoldWith<V> for SuperProp {
104737    #[doc = "Calls [Fold`::fold_super_prop`] with `self`."]
104738    fn fold_with(self, visitor: &mut V) -> Self {
104739        <V as Fold>::fold_super_prop(visitor, self)
104740    }
104741
104742    fn fold_children_with(self, visitor: &mut V) -> Self {
104743        match self {
104744            SuperProp::Ident { 0: _field_0 } => {
104745                let _field_0 = <IdentName as FoldWith<V>>::fold_with(_field_0, visitor);
104746                SuperProp::Ident { 0: _field_0 }
104747            }
104748            SuperProp::Computed { 0: _field_0 } => {
104749                let _field_0 = <ComputedPropName as FoldWith<V>>::fold_with(_field_0, visitor);
104750                SuperProp::Computed { 0: _field_0 }
104751            }
104752        }
104753    }
104754}
104755impl<V: ?Sized + Fold> FoldWith<V> for SuperPropExpr {
104756    #[doc = "Calls [Fold`::fold_super_prop_expr`] with `self`."]
104757    fn fold_with(self, visitor: &mut V) -> Self {
104758        <V as Fold>::fold_super_prop_expr(visitor, self)
104759    }
104760
104761    fn fold_children_with(self, visitor: &mut V) -> Self {
104762        match self {
104763            SuperPropExpr { span, obj, prop } => {
104764                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104765                let obj = { <Super as FoldWith<V>>::fold_with(obj, visitor) };
104766                let prop = { <SuperProp as FoldWith<V>>::fold_with(prop, visitor) };
104767                SuperPropExpr { span, obj, prop }
104768            }
104769        }
104770    }
104771}
104772impl<V: ?Sized + Fold> FoldWith<V> for SwitchCase {
104773    #[doc = "Calls [Fold`::fold_switch_case`] with `self`."]
104774    fn fold_with(self, visitor: &mut V) -> Self {
104775        <V as Fold>::fold_switch_case(visitor, self)
104776    }
104777
104778    fn fold_children_with(self, visitor: &mut V) -> Self {
104779        match self {
104780            SwitchCase { span, test, cons } => {
104781                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104782                let test = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(test, visitor) };
104783                let cons = { <Vec<Stmt> as FoldWith<V>>::fold_with(cons, visitor) };
104784                SwitchCase { span, test, cons }
104785            }
104786        }
104787    }
104788}
104789impl<V: ?Sized + Fold> FoldWith<V> for SwitchStmt {
104790    #[doc = "Calls [Fold`::fold_switch_stmt`] with `self`."]
104791    fn fold_with(self, visitor: &mut V) -> Self {
104792        <V as Fold>::fold_switch_stmt(visitor, self)
104793    }
104794
104795    fn fold_children_with(self, visitor: &mut V) -> Self {
104796        match self {
104797            SwitchStmt {
104798                span,
104799                discriminant,
104800                cases,
104801            } => {
104802                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104803                let discriminant = { <Box<Expr> as FoldWith<V>>::fold_with(discriminant, visitor) };
104804                let cases = { <Vec<SwitchCase> as FoldWith<V>>::fold_with(cases, visitor) };
104805                SwitchStmt {
104806                    span,
104807                    discriminant,
104808                    cases,
104809                }
104810            }
104811        }
104812    }
104813}
104814impl<V: ?Sized + Fold> FoldWith<V> for TaggedTpl {
104815    #[doc = "Calls [Fold`::fold_tagged_tpl`] with `self`."]
104816    fn fold_with(self, visitor: &mut V) -> Self {
104817        <V as Fold>::fold_tagged_tpl(visitor, self)
104818    }
104819
104820    fn fold_children_with(self, visitor: &mut V) -> Self {
104821        match self {
104822            TaggedTpl {
104823                span,
104824                ctxt,
104825                tag,
104826                type_params,
104827                tpl,
104828            } => {
104829                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104830                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
104831                let tag = { <Box<Expr> as FoldWith<V>>::fold_with(tag, visitor) };
104832                let type_params = {
104833                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
104834                        type_params,
104835                        visitor,
104836                    )
104837                };
104838                let tpl = { <Box<Tpl> as FoldWith<V>>::fold_with(tpl, visitor) };
104839                TaggedTpl {
104840                    span,
104841                    ctxt,
104842                    tag,
104843                    type_params,
104844                    tpl,
104845                }
104846            }
104847        }
104848    }
104849}
104850impl<V: ?Sized + Fold> FoldWith<V> for ThisExpr {
104851    #[doc = "Calls [Fold`::fold_this_expr`] with `self`."]
104852    fn fold_with(self, visitor: &mut V) -> Self {
104853        <V as Fold>::fold_this_expr(visitor, self)
104854    }
104855
104856    fn fold_children_with(self, visitor: &mut V) -> Self {
104857        match self {
104858            ThisExpr { span } => {
104859                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104860                ThisExpr { span }
104861            }
104862        }
104863    }
104864}
104865impl<V: ?Sized + Fold> FoldWith<V> for ThrowStmt {
104866    #[doc = "Calls [Fold`::fold_throw_stmt`] with `self`."]
104867    fn fold_with(self, visitor: &mut V) -> Self {
104868        <V as Fold>::fold_throw_stmt(visitor, self)
104869    }
104870
104871    fn fold_children_with(self, visitor: &mut V) -> Self {
104872        match self {
104873            ThrowStmt { span, arg } => {
104874                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104875                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
104876                ThrowStmt { span, arg }
104877            }
104878        }
104879    }
104880}
104881impl<V: ?Sized + Fold> FoldWith<V> for Tpl {
104882    #[doc = "Calls [Fold`::fold_tpl`] with `self`."]
104883    fn fold_with(self, visitor: &mut V) -> Self {
104884        <V as Fold>::fold_tpl(visitor, self)
104885    }
104886
104887    fn fold_children_with(self, visitor: &mut V) -> Self {
104888        match self {
104889            Tpl {
104890                span,
104891                exprs,
104892                quasis,
104893            } => {
104894                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104895                let exprs = { <Vec<Box<Expr>> as FoldWith<V>>::fold_with(exprs, visitor) };
104896                let quasis = { <Vec<TplElement> as FoldWith<V>>::fold_with(quasis, visitor) };
104897                Tpl {
104898                    span,
104899                    exprs,
104900                    quasis,
104901                }
104902            }
104903        }
104904    }
104905}
104906impl<V: ?Sized + Fold> FoldWith<V> for TplElement {
104907    #[doc = "Calls [Fold`::fold_tpl_element`] with `self`."]
104908    fn fold_with(self, visitor: &mut V) -> Self {
104909        <V as Fold>::fold_tpl_element(visitor, self)
104910    }
104911
104912    fn fold_children_with(self, visitor: &mut V) -> Self {
104913        match self {
104914            TplElement {
104915                span,
104916                tail,
104917                cooked,
104918                raw,
104919            } => {
104920                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104921                let cooked =
104922                    { <Option<swc_atoms::Atom> as FoldWith<V>>::fold_with(cooked, visitor) };
104923                let raw = { <swc_atoms::Atom as FoldWith<V>>::fold_with(raw, visitor) };
104924                TplElement {
104925                    span,
104926                    tail,
104927                    cooked,
104928                    raw,
104929                }
104930            }
104931        }
104932    }
104933}
104934impl<V: ?Sized + Fold> FoldWith<V> for TruePlusMinus {
104935    #[doc = "Calls [Fold`::fold_true_plus_minus`] with `self`."]
104936    fn fold_with(self, visitor: &mut V) -> Self {
104937        <V as Fold>::fold_true_plus_minus(visitor, self)
104938    }
104939
104940    fn fold_children_with(self, visitor: &mut V) -> Self {
104941        match self {
104942            TruePlusMinus::True => TruePlusMinus::True,
104943            TruePlusMinus::Plus => TruePlusMinus::Plus,
104944            TruePlusMinus::Minus => TruePlusMinus::Minus,
104945        }
104946    }
104947}
104948impl<V: ?Sized + Fold> FoldWith<V> for TryStmt {
104949    #[doc = "Calls [Fold`::fold_try_stmt`] with `self`."]
104950    fn fold_with(self, visitor: &mut V) -> Self {
104951        <V as Fold>::fold_try_stmt(visitor, self)
104952    }
104953
104954    fn fold_children_with(self, visitor: &mut V) -> Self {
104955        match self {
104956            TryStmt {
104957                span,
104958                block,
104959                handler,
104960                finalizer,
104961            } => {
104962                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104963                let block = { <BlockStmt as FoldWith<V>>::fold_with(block, visitor) };
104964                let handler = { <Option<CatchClause> as FoldWith<V>>::fold_with(handler, visitor) };
104965                let finalizer =
104966                    { <Option<BlockStmt> as FoldWith<V>>::fold_with(finalizer, visitor) };
104967                TryStmt {
104968                    span,
104969                    block,
104970                    handler,
104971                    finalizer,
104972                }
104973            }
104974        }
104975    }
104976}
104977impl<V: ?Sized + Fold> FoldWith<V> for TsArrayType {
104978    #[doc = "Calls [Fold`::fold_ts_array_type`] with `self`."]
104979    fn fold_with(self, visitor: &mut V) -> Self {
104980        <V as Fold>::fold_ts_array_type(visitor, self)
104981    }
104982
104983    fn fold_children_with(self, visitor: &mut V) -> Self {
104984        match self {
104985            TsArrayType { span, elem_type } => {
104986                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
104987                let elem_type = { <Box<TsType> as FoldWith<V>>::fold_with(elem_type, visitor) };
104988                TsArrayType { span, elem_type }
104989            }
104990        }
104991    }
104992}
104993impl<V: ?Sized + Fold> FoldWith<V> for TsAsExpr {
104994    #[doc = "Calls [Fold`::fold_ts_as_expr`] with `self`."]
104995    fn fold_with(self, visitor: &mut V) -> Self {
104996        <V as Fold>::fold_ts_as_expr(visitor, self)
104997    }
104998
104999    fn fold_children_with(self, visitor: &mut V) -> Self {
105000        match self {
105001            TsAsExpr {
105002                span,
105003                expr,
105004                type_ann,
105005            } => {
105006                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105007                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105008                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
105009                TsAsExpr {
105010                    span,
105011                    expr,
105012                    type_ann,
105013                }
105014            }
105015        }
105016    }
105017}
105018impl<V: ?Sized + Fold> FoldWith<V> for TsCallSignatureDecl {
105019    #[doc = "Calls [Fold`::fold_ts_call_signature_decl`] with `self`."]
105020    fn fold_with(self, visitor: &mut V) -> Self {
105021        <V as Fold>::fold_ts_call_signature_decl(visitor, self)
105022    }
105023
105024    fn fold_children_with(self, visitor: &mut V) -> Self {
105025        match self {
105026            TsCallSignatureDecl {
105027                span,
105028                params,
105029                type_ann,
105030                type_params,
105031            } => {
105032                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105033                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105034                let type_ann =
105035                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105036                let type_params = {
105037                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105038                };
105039                TsCallSignatureDecl {
105040                    span,
105041                    params,
105042                    type_ann,
105043                    type_params,
105044                }
105045            }
105046        }
105047    }
105048}
105049impl<V: ?Sized + Fold> FoldWith<V> for TsConditionalType {
105050    #[doc = "Calls [Fold`::fold_ts_conditional_type`] with `self`."]
105051    fn fold_with(self, visitor: &mut V) -> Self {
105052        <V as Fold>::fold_ts_conditional_type(visitor, self)
105053    }
105054
105055    fn fold_children_with(self, visitor: &mut V) -> Self {
105056        match self {
105057            TsConditionalType {
105058                span,
105059                check_type,
105060                extends_type,
105061                true_type,
105062                false_type,
105063            } => {
105064                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105065                let check_type = { <Box<TsType> as FoldWith<V>>::fold_with(check_type, visitor) };
105066                let extends_type =
105067                    { <Box<TsType> as FoldWith<V>>::fold_with(extends_type, visitor) };
105068                let true_type = { <Box<TsType> as FoldWith<V>>::fold_with(true_type, visitor) };
105069                let false_type = { <Box<TsType> as FoldWith<V>>::fold_with(false_type, visitor) };
105070                TsConditionalType {
105071                    span,
105072                    check_type,
105073                    extends_type,
105074                    true_type,
105075                    false_type,
105076                }
105077            }
105078        }
105079    }
105080}
105081impl<V: ?Sized + Fold> FoldWith<V> for TsConstAssertion {
105082    #[doc = "Calls [Fold`::fold_ts_const_assertion`] with `self`."]
105083    fn fold_with(self, visitor: &mut V) -> Self {
105084        <V as Fold>::fold_ts_const_assertion(visitor, self)
105085    }
105086
105087    fn fold_children_with(self, visitor: &mut V) -> Self {
105088        match self {
105089            TsConstAssertion { span, expr } => {
105090                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105091                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105092                TsConstAssertion { span, expr }
105093            }
105094        }
105095    }
105096}
105097impl<V: ?Sized + Fold> FoldWith<V> for TsConstructSignatureDecl {
105098    #[doc = "Calls [Fold`::fold_ts_construct_signature_decl`] with `self`."]
105099    fn fold_with(self, visitor: &mut V) -> Self {
105100        <V as Fold>::fold_ts_construct_signature_decl(visitor, self)
105101    }
105102
105103    fn fold_children_with(self, visitor: &mut V) -> Self {
105104        match self {
105105            TsConstructSignatureDecl {
105106                span,
105107                params,
105108                type_ann,
105109                type_params,
105110            } => {
105111                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105112                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105113                let type_ann =
105114                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105115                let type_params = {
105116                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105117                };
105118                TsConstructSignatureDecl {
105119                    span,
105120                    params,
105121                    type_ann,
105122                    type_params,
105123                }
105124            }
105125        }
105126    }
105127}
105128impl<V: ?Sized + Fold> FoldWith<V> for TsConstructorType {
105129    #[doc = "Calls [Fold`::fold_ts_constructor_type`] with `self`."]
105130    fn fold_with(self, visitor: &mut V) -> Self {
105131        <V as Fold>::fold_ts_constructor_type(visitor, self)
105132    }
105133
105134    fn fold_children_with(self, visitor: &mut V) -> Self {
105135        match self {
105136            TsConstructorType {
105137                span,
105138                params,
105139                type_params,
105140                type_ann,
105141                is_abstract,
105142            } => {
105143                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105144                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105145                let type_params = {
105146                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105147                };
105148                let type_ann = { <Box<TsTypeAnn> as FoldWith<V>>::fold_with(type_ann, visitor) };
105149                TsConstructorType {
105150                    span,
105151                    params,
105152                    type_params,
105153                    type_ann,
105154                    is_abstract,
105155                }
105156            }
105157        }
105158    }
105159}
105160impl<V: ?Sized + Fold> FoldWith<V> for TsEntityName {
105161    #[doc = "Calls [Fold`::fold_ts_entity_name`] with `self`."]
105162    fn fold_with(self, visitor: &mut V) -> Self {
105163        <V as Fold>::fold_ts_entity_name(visitor, self)
105164    }
105165
105166    fn fold_children_with(self, visitor: &mut V) -> Self {
105167        match self {
105168            TsEntityName::TsQualifiedName { 0: _field_0 } => {
105169                let _field_0 = <Box<TsQualifiedName> as FoldWith<V>>::fold_with(_field_0, visitor);
105170                TsEntityName::TsQualifiedName { 0: _field_0 }
105171            }
105172            TsEntityName::Ident { 0: _field_0 } => {
105173                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
105174                TsEntityName::Ident { 0: _field_0 }
105175            }
105176        }
105177    }
105178}
105179impl<V: ?Sized + Fold> FoldWith<V> for TsEnumDecl {
105180    #[doc = "Calls [Fold`::fold_ts_enum_decl`] with `self`."]
105181    fn fold_with(self, visitor: &mut V) -> Self {
105182        <V as Fold>::fold_ts_enum_decl(visitor, self)
105183    }
105184
105185    fn fold_children_with(self, visitor: &mut V) -> Self {
105186        match self {
105187            TsEnumDecl {
105188                span,
105189                declare,
105190                is_const,
105191                id,
105192                members,
105193            } => {
105194                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105195                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
105196                let members = { <Vec<TsEnumMember> as FoldWith<V>>::fold_with(members, visitor) };
105197                TsEnumDecl {
105198                    span,
105199                    declare,
105200                    is_const,
105201                    id,
105202                    members,
105203                }
105204            }
105205        }
105206    }
105207}
105208impl<V: ?Sized + Fold> FoldWith<V> for TsEnumMember {
105209    #[doc = "Calls [Fold`::fold_ts_enum_member`] with `self`."]
105210    fn fold_with(self, visitor: &mut V) -> Self {
105211        <V as Fold>::fold_ts_enum_member(visitor, self)
105212    }
105213
105214    fn fold_children_with(self, visitor: &mut V) -> Self {
105215        match self {
105216            TsEnumMember { span, id, init } => {
105217                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105218                let id = { <TsEnumMemberId as FoldWith<V>>::fold_with(id, visitor) };
105219                let init = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(init, visitor) };
105220                TsEnumMember { span, id, init }
105221            }
105222        }
105223    }
105224}
105225impl<V: ?Sized + Fold> FoldWith<V> for TsEnumMemberId {
105226    #[doc = "Calls [Fold`::fold_ts_enum_member_id`] with `self`."]
105227    fn fold_with(self, visitor: &mut V) -> Self {
105228        <V as Fold>::fold_ts_enum_member_id(visitor, self)
105229    }
105230
105231    fn fold_children_with(self, visitor: &mut V) -> Self {
105232        match self {
105233            TsEnumMemberId::Ident { 0: _field_0 } => {
105234                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
105235                TsEnumMemberId::Ident { 0: _field_0 }
105236            }
105237            TsEnumMemberId::Str { 0: _field_0 } => {
105238                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
105239                TsEnumMemberId::Str { 0: _field_0 }
105240            }
105241        }
105242    }
105243}
105244impl<V: ?Sized + Fold> FoldWith<V> for TsExportAssignment {
105245    #[doc = "Calls [Fold`::fold_ts_export_assignment`] with `self`."]
105246    fn fold_with(self, visitor: &mut V) -> Self {
105247        <V as Fold>::fold_ts_export_assignment(visitor, self)
105248    }
105249
105250    fn fold_children_with(self, visitor: &mut V) -> Self {
105251        match self {
105252            TsExportAssignment { span, expr } => {
105253                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105254                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105255                TsExportAssignment { span, expr }
105256            }
105257        }
105258    }
105259}
105260impl<V: ?Sized + Fold> FoldWith<V> for TsExprWithTypeArgs {
105261    #[doc = "Calls [Fold`::fold_ts_expr_with_type_args`] with `self`."]
105262    fn fold_with(self, visitor: &mut V) -> Self {
105263        <V as Fold>::fold_ts_expr_with_type_args(visitor, self)
105264    }
105265
105266    fn fold_children_with(self, visitor: &mut V) -> Self {
105267        match self {
105268            TsExprWithTypeArgs {
105269                span,
105270                expr,
105271                type_args,
105272            } => {
105273                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105274                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105275                let type_args = {
105276                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
105277                        type_args, visitor,
105278                    )
105279                };
105280                TsExprWithTypeArgs {
105281                    span,
105282                    expr,
105283                    type_args,
105284                }
105285            }
105286        }
105287    }
105288}
105289impl<V: ?Sized + Fold> FoldWith<V> for TsExternalModuleRef {
105290    #[doc = "Calls [Fold`::fold_ts_external_module_ref`] with `self`."]
105291    fn fold_with(self, visitor: &mut V) -> Self {
105292        <V as Fold>::fold_ts_external_module_ref(visitor, self)
105293    }
105294
105295    fn fold_children_with(self, visitor: &mut V) -> Self {
105296        match self {
105297            TsExternalModuleRef { span, expr } => {
105298                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105299                let expr = { <Str as FoldWith<V>>::fold_with(expr, visitor) };
105300                TsExternalModuleRef { span, expr }
105301            }
105302        }
105303    }
105304}
105305impl<V: ?Sized + Fold> FoldWith<V> for TsFnOrConstructorType {
105306    #[doc = "Calls [Fold`::fold_ts_fn_or_constructor_type`] with `self`."]
105307    fn fold_with(self, visitor: &mut V) -> Self {
105308        <V as Fold>::fold_ts_fn_or_constructor_type(visitor, self)
105309    }
105310
105311    fn fold_children_with(self, visitor: &mut V) -> Self {
105312        match self {
105313            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
105314                let _field_0 = <TsFnType as FoldWith<V>>::fold_with(_field_0, visitor);
105315                TsFnOrConstructorType::TsFnType { 0: _field_0 }
105316            }
105317            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
105318                let _field_0 = <TsConstructorType as FoldWith<V>>::fold_with(_field_0, visitor);
105319                TsFnOrConstructorType::TsConstructorType { 0: _field_0 }
105320            }
105321        }
105322    }
105323}
105324impl<V: ?Sized + Fold> FoldWith<V> for TsFnParam {
105325    #[doc = "Calls [Fold`::fold_ts_fn_param`] with `self`."]
105326    fn fold_with(self, visitor: &mut V) -> Self {
105327        <V as Fold>::fold_ts_fn_param(visitor, self)
105328    }
105329
105330    fn fold_children_with(self, visitor: &mut V) -> Self {
105331        match self {
105332            TsFnParam::Ident { 0: _field_0 } => {
105333                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
105334                TsFnParam::Ident { 0: _field_0 }
105335            }
105336            TsFnParam::Array { 0: _field_0 } => {
105337                let _field_0 = <ArrayPat as FoldWith<V>>::fold_with(_field_0, visitor);
105338                TsFnParam::Array { 0: _field_0 }
105339            }
105340            TsFnParam::Rest { 0: _field_0 } => {
105341                let _field_0 = <RestPat as FoldWith<V>>::fold_with(_field_0, visitor);
105342                TsFnParam::Rest { 0: _field_0 }
105343            }
105344            TsFnParam::Object { 0: _field_0 } => {
105345                let _field_0 = <ObjectPat as FoldWith<V>>::fold_with(_field_0, visitor);
105346                TsFnParam::Object { 0: _field_0 }
105347            }
105348        }
105349    }
105350}
105351impl<V: ?Sized + Fold> FoldWith<V> for TsFnType {
105352    #[doc = "Calls [Fold`::fold_ts_fn_type`] with `self`."]
105353    fn fold_with(self, visitor: &mut V) -> Self {
105354        <V as Fold>::fold_ts_fn_type(visitor, self)
105355    }
105356
105357    fn fold_children_with(self, visitor: &mut V) -> Self {
105358        match self {
105359            TsFnType {
105360                span,
105361                params,
105362                type_params,
105363                type_ann,
105364            } => {
105365                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105366                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105367                let type_params = {
105368                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105369                };
105370                let type_ann = { <Box<TsTypeAnn> as FoldWith<V>>::fold_with(type_ann, visitor) };
105371                TsFnType {
105372                    span,
105373                    params,
105374                    type_params,
105375                    type_ann,
105376                }
105377            }
105378        }
105379    }
105380}
105381impl<V: ?Sized + Fold> FoldWith<V> for TsGetterSignature {
105382    #[doc = "Calls [Fold`::fold_ts_getter_signature`] with `self`."]
105383    fn fold_with(self, visitor: &mut V) -> Self {
105384        <V as Fold>::fold_ts_getter_signature(visitor, self)
105385    }
105386
105387    fn fold_children_with(self, visitor: &mut V) -> Self {
105388        match self {
105389            TsGetterSignature {
105390                span,
105391                key,
105392                computed,
105393                type_ann,
105394            } => {
105395                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105396                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
105397                let type_ann =
105398                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105399                TsGetterSignature {
105400                    span,
105401                    key,
105402                    computed,
105403                    type_ann,
105404                }
105405            }
105406        }
105407    }
105408}
105409impl<V: ?Sized + Fold> FoldWith<V> for TsImportEqualsDecl {
105410    #[doc = "Calls [Fold`::fold_ts_import_equals_decl`] with `self`."]
105411    fn fold_with(self, visitor: &mut V) -> Self {
105412        <V as Fold>::fold_ts_import_equals_decl(visitor, self)
105413    }
105414
105415    fn fold_children_with(self, visitor: &mut V) -> Self {
105416        match self {
105417            TsImportEqualsDecl {
105418                span,
105419                is_export,
105420                is_type_only,
105421                id,
105422                module_ref,
105423            } => {
105424                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105425                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
105426                let module_ref = { <TsModuleRef as FoldWith<V>>::fold_with(module_ref, visitor) };
105427                TsImportEqualsDecl {
105428                    span,
105429                    is_export,
105430                    is_type_only,
105431                    id,
105432                    module_ref,
105433                }
105434            }
105435        }
105436    }
105437}
105438impl<V: ?Sized + Fold> FoldWith<V> for TsImportType {
105439    #[doc = "Calls [Fold`::fold_ts_import_type`] with `self`."]
105440    fn fold_with(self, visitor: &mut V) -> Self {
105441        <V as Fold>::fold_ts_import_type(visitor, self)
105442    }
105443
105444    fn fold_children_with(self, visitor: &mut V) -> Self {
105445        match self {
105446            TsImportType {
105447                span,
105448                arg,
105449                qualifier,
105450                type_args,
105451            } => {
105452                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105453                let arg = { <Str as FoldWith<V>>::fold_with(arg, visitor) };
105454                let qualifier =
105455                    { <Option<TsEntityName> as FoldWith<V>>::fold_with(qualifier, visitor) };
105456                let type_args = {
105457                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
105458                        type_args, visitor,
105459                    )
105460                };
105461                TsImportType {
105462                    span,
105463                    arg,
105464                    qualifier,
105465                    type_args,
105466                }
105467            }
105468        }
105469    }
105470}
105471impl<V: ?Sized + Fold> FoldWith<V> for TsIndexSignature {
105472    #[doc = "Calls [Fold`::fold_ts_index_signature`] with `self`."]
105473    fn fold_with(self, visitor: &mut V) -> Self {
105474        <V as Fold>::fold_ts_index_signature(visitor, self)
105475    }
105476
105477    fn fold_children_with(self, visitor: &mut V) -> Self {
105478        match self {
105479            TsIndexSignature {
105480                params,
105481                type_ann,
105482                readonly,
105483                is_static,
105484                span,
105485            } => {
105486                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105487                let type_ann =
105488                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105489                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105490                TsIndexSignature {
105491                    params,
105492                    type_ann,
105493                    readonly,
105494                    is_static,
105495                    span,
105496                }
105497            }
105498        }
105499    }
105500}
105501impl<V: ?Sized + Fold> FoldWith<V> for TsIndexedAccessType {
105502    #[doc = "Calls [Fold`::fold_ts_indexed_access_type`] with `self`."]
105503    fn fold_with(self, visitor: &mut V) -> Self {
105504        <V as Fold>::fold_ts_indexed_access_type(visitor, self)
105505    }
105506
105507    fn fold_children_with(self, visitor: &mut V) -> Self {
105508        match self {
105509            TsIndexedAccessType {
105510                span,
105511                readonly,
105512                obj_type,
105513                index_type,
105514            } => {
105515                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105516                let obj_type = { <Box<TsType> as FoldWith<V>>::fold_with(obj_type, visitor) };
105517                let index_type = { <Box<TsType> as FoldWith<V>>::fold_with(index_type, visitor) };
105518                TsIndexedAccessType {
105519                    span,
105520                    readonly,
105521                    obj_type,
105522                    index_type,
105523                }
105524            }
105525        }
105526    }
105527}
105528impl<V: ?Sized + Fold> FoldWith<V> for TsInferType {
105529    #[doc = "Calls [Fold`::fold_ts_infer_type`] with `self`."]
105530    fn fold_with(self, visitor: &mut V) -> Self {
105531        <V as Fold>::fold_ts_infer_type(visitor, self)
105532    }
105533
105534    fn fold_children_with(self, visitor: &mut V) -> Self {
105535        match self {
105536            TsInferType { span, type_param } => {
105537                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105538                let type_param = { <TsTypeParam as FoldWith<V>>::fold_with(type_param, visitor) };
105539                TsInferType { span, type_param }
105540            }
105541        }
105542    }
105543}
105544impl<V: ?Sized + Fold> FoldWith<V> for TsInstantiation {
105545    #[doc = "Calls [Fold`::fold_ts_instantiation`] with `self`."]
105546    fn fold_with(self, visitor: &mut V) -> Self {
105547        <V as Fold>::fold_ts_instantiation(visitor, self)
105548    }
105549
105550    fn fold_children_with(self, visitor: &mut V) -> Self {
105551        match self {
105552            TsInstantiation {
105553                span,
105554                expr,
105555                type_args,
105556            } => {
105557                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105558                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105559                let type_args = {
105560                    <Box<TsTypeParamInstantiation> as FoldWith<V>>::fold_with(type_args, visitor)
105561                };
105562                TsInstantiation {
105563                    span,
105564                    expr,
105565                    type_args,
105566                }
105567            }
105568        }
105569    }
105570}
105571impl<V: ?Sized + Fold> FoldWith<V> for TsInterfaceBody {
105572    #[doc = "Calls [Fold`::fold_ts_interface_body`] with `self`."]
105573    fn fold_with(self, visitor: &mut V) -> Self {
105574        <V as Fold>::fold_ts_interface_body(visitor, self)
105575    }
105576
105577    fn fold_children_with(self, visitor: &mut V) -> Self {
105578        match self {
105579            TsInterfaceBody { span, body } => {
105580                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105581                let body = { <Vec<TsTypeElement> as FoldWith<V>>::fold_with(body, visitor) };
105582                TsInterfaceBody { span, body }
105583            }
105584        }
105585    }
105586}
105587impl<V: ?Sized + Fold> FoldWith<V> for TsInterfaceDecl {
105588    #[doc = "Calls [Fold`::fold_ts_interface_decl`] with `self`."]
105589    fn fold_with(self, visitor: &mut V) -> Self {
105590        <V as Fold>::fold_ts_interface_decl(visitor, self)
105591    }
105592
105593    fn fold_children_with(self, visitor: &mut V) -> Self {
105594        match self {
105595            TsInterfaceDecl {
105596                span,
105597                id,
105598                declare,
105599                type_params,
105600                extends,
105601                body,
105602            } => {
105603                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105604                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
105605                let type_params = {
105606                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105607                };
105608                let extends =
105609                    { <Vec<TsExprWithTypeArgs> as FoldWith<V>>::fold_with(extends, visitor) };
105610                let body = { <TsInterfaceBody as FoldWith<V>>::fold_with(body, visitor) };
105611                TsInterfaceDecl {
105612                    span,
105613                    id,
105614                    declare,
105615                    type_params,
105616                    extends,
105617                    body,
105618                }
105619            }
105620        }
105621    }
105622}
105623impl<V: ?Sized + Fold> FoldWith<V> for TsIntersectionType {
105624    #[doc = "Calls [Fold`::fold_ts_intersection_type`] with `self`."]
105625    fn fold_with(self, visitor: &mut V) -> Self {
105626        <V as Fold>::fold_ts_intersection_type(visitor, self)
105627    }
105628
105629    fn fold_children_with(self, visitor: &mut V) -> Self {
105630        match self {
105631            TsIntersectionType { span, types } => {
105632                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105633                let types = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(types, visitor) };
105634                TsIntersectionType { span, types }
105635            }
105636        }
105637    }
105638}
105639impl<V: ?Sized + Fold> FoldWith<V> for TsKeywordType {
105640    #[doc = "Calls [Fold`::fold_ts_keyword_type`] with `self`."]
105641    fn fold_with(self, visitor: &mut V) -> Self {
105642        <V as Fold>::fold_ts_keyword_type(visitor, self)
105643    }
105644
105645    fn fold_children_with(self, visitor: &mut V) -> Self {
105646        match self {
105647            TsKeywordType { span, kind } => {
105648                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105649                let kind = { <TsKeywordTypeKind as FoldWith<V>>::fold_with(kind, visitor) };
105650                TsKeywordType { span, kind }
105651            }
105652        }
105653    }
105654}
105655impl<V: ?Sized + Fold> FoldWith<V> for TsKeywordTypeKind {
105656    #[doc = "Calls [Fold`::fold_ts_keyword_type_kind`] with `self`."]
105657    fn fold_with(self, visitor: &mut V) -> Self {
105658        <V as Fold>::fold_ts_keyword_type_kind(visitor, self)
105659    }
105660
105661    fn fold_children_with(self, visitor: &mut V) -> Self {
105662        match self {
105663            TsKeywordTypeKind::TsAnyKeyword => TsKeywordTypeKind::TsAnyKeyword,
105664            TsKeywordTypeKind::TsUnknownKeyword => TsKeywordTypeKind::TsUnknownKeyword,
105665            TsKeywordTypeKind::TsNumberKeyword => TsKeywordTypeKind::TsNumberKeyword,
105666            TsKeywordTypeKind::TsObjectKeyword => TsKeywordTypeKind::TsObjectKeyword,
105667            TsKeywordTypeKind::TsBooleanKeyword => TsKeywordTypeKind::TsBooleanKeyword,
105668            TsKeywordTypeKind::TsBigIntKeyword => TsKeywordTypeKind::TsBigIntKeyword,
105669            TsKeywordTypeKind::TsStringKeyword => TsKeywordTypeKind::TsStringKeyword,
105670            TsKeywordTypeKind::TsSymbolKeyword => TsKeywordTypeKind::TsSymbolKeyword,
105671            TsKeywordTypeKind::TsVoidKeyword => TsKeywordTypeKind::TsVoidKeyword,
105672            TsKeywordTypeKind::TsUndefinedKeyword => TsKeywordTypeKind::TsUndefinedKeyword,
105673            TsKeywordTypeKind::TsNullKeyword => TsKeywordTypeKind::TsNullKeyword,
105674            TsKeywordTypeKind::TsNeverKeyword => TsKeywordTypeKind::TsNeverKeyword,
105675            TsKeywordTypeKind::TsIntrinsicKeyword => TsKeywordTypeKind::TsIntrinsicKeyword,
105676        }
105677    }
105678}
105679impl<V: ?Sized + Fold> FoldWith<V> for TsLit {
105680    #[doc = "Calls [Fold`::fold_ts_lit`] with `self`."]
105681    fn fold_with(self, visitor: &mut V) -> Self {
105682        <V as Fold>::fold_ts_lit(visitor, self)
105683    }
105684
105685    fn fold_children_with(self, visitor: &mut V) -> Self {
105686        match self {
105687            TsLit::Number { 0: _field_0 } => {
105688                let _field_0 = <Number as FoldWith<V>>::fold_with(_field_0, visitor);
105689                TsLit::Number { 0: _field_0 }
105690            }
105691            TsLit::Str { 0: _field_0 } => {
105692                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
105693                TsLit::Str { 0: _field_0 }
105694            }
105695            TsLit::Bool { 0: _field_0 } => {
105696                let _field_0 = <Bool as FoldWith<V>>::fold_with(_field_0, visitor);
105697                TsLit::Bool { 0: _field_0 }
105698            }
105699            TsLit::BigInt { 0: _field_0 } => {
105700                let _field_0 = <BigInt as FoldWith<V>>::fold_with(_field_0, visitor);
105701                TsLit::BigInt { 0: _field_0 }
105702            }
105703            TsLit::Tpl { 0: _field_0 } => {
105704                let _field_0 = <TsTplLitType as FoldWith<V>>::fold_with(_field_0, visitor);
105705                TsLit::Tpl { 0: _field_0 }
105706            }
105707        }
105708    }
105709}
105710impl<V: ?Sized + Fold> FoldWith<V> for TsLitType {
105711    #[doc = "Calls [Fold`::fold_ts_lit_type`] with `self`."]
105712    fn fold_with(self, visitor: &mut V) -> Self {
105713        <V as Fold>::fold_ts_lit_type(visitor, self)
105714    }
105715
105716    fn fold_children_with(self, visitor: &mut V) -> Self {
105717        match self {
105718            TsLitType { span, lit } => {
105719                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105720                let lit = { <TsLit as FoldWith<V>>::fold_with(lit, visitor) };
105721                TsLitType { span, lit }
105722            }
105723        }
105724    }
105725}
105726impl<V: ?Sized + Fold> FoldWith<V> for TsMappedType {
105727    #[doc = "Calls [Fold`::fold_ts_mapped_type`] with `self`."]
105728    fn fold_with(self, visitor: &mut V) -> Self {
105729        <V as Fold>::fold_ts_mapped_type(visitor, self)
105730    }
105731
105732    fn fold_children_with(self, visitor: &mut V) -> Self {
105733        match self {
105734            TsMappedType {
105735                span,
105736                readonly,
105737                type_param,
105738                name_type,
105739                optional,
105740                type_ann,
105741            } => {
105742                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105743                let readonly =
105744                    { <Option<TruePlusMinus> as FoldWith<V>>::fold_with(readonly, visitor) };
105745                let type_param = { <TsTypeParam as FoldWith<V>>::fold_with(type_param, visitor) };
105746                let name_type =
105747                    { <Option<Box<TsType>> as FoldWith<V>>::fold_with(name_type, visitor) };
105748                let optional =
105749                    { <Option<TruePlusMinus> as FoldWith<V>>::fold_with(optional, visitor) };
105750                let type_ann =
105751                    { <Option<Box<TsType>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105752                TsMappedType {
105753                    span,
105754                    readonly,
105755                    type_param,
105756                    name_type,
105757                    optional,
105758                    type_ann,
105759                }
105760            }
105761        }
105762    }
105763}
105764impl<V: ?Sized + Fold> FoldWith<V> for TsMethodSignature {
105765    #[doc = "Calls [Fold`::fold_ts_method_signature`] with `self`."]
105766    fn fold_with(self, visitor: &mut V) -> Self {
105767        <V as Fold>::fold_ts_method_signature(visitor, self)
105768    }
105769
105770    fn fold_children_with(self, visitor: &mut V) -> Self {
105771        match self {
105772            TsMethodSignature {
105773                span,
105774                key,
105775                computed,
105776                optional,
105777                params,
105778                type_ann,
105779                type_params,
105780            } => {
105781                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105782                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
105783                let params = { <Vec<TsFnParam> as FoldWith<V>>::fold_with(params, visitor) };
105784                let type_ann =
105785                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
105786                let type_params = {
105787                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
105788                };
105789                TsMethodSignature {
105790                    span,
105791                    key,
105792                    computed,
105793                    optional,
105794                    params,
105795                    type_ann,
105796                    type_params,
105797                }
105798            }
105799        }
105800    }
105801}
105802impl<V: ?Sized + Fold> FoldWith<V> for TsModuleBlock {
105803    #[doc = "Calls [Fold`::fold_ts_module_block`] with `self`."]
105804    fn fold_with(self, visitor: &mut V) -> Self {
105805        <V as Fold>::fold_ts_module_block(visitor, self)
105806    }
105807
105808    fn fold_children_with(self, visitor: &mut V) -> Self {
105809        match self {
105810            TsModuleBlock { span, body } => {
105811                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105812                let body = { <Vec<ModuleItem> as FoldWith<V>>::fold_with(body, visitor) };
105813                TsModuleBlock { span, body }
105814            }
105815        }
105816    }
105817}
105818impl<V: ?Sized + Fold> FoldWith<V> for TsModuleDecl {
105819    #[doc = "Calls [Fold`::fold_ts_module_decl`] with `self`."]
105820    fn fold_with(self, visitor: &mut V) -> Self {
105821        <V as Fold>::fold_ts_module_decl(visitor, self)
105822    }
105823
105824    fn fold_children_with(self, visitor: &mut V) -> Self {
105825        match self {
105826            TsModuleDecl {
105827                span,
105828                declare,
105829                global,
105830                id,
105831                body,
105832            } => {
105833                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105834                let id = { <TsModuleName as FoldWith<V>>::fold_with(id, visitor) };
105835                let body = { <Option<TsNamespaceBody> as FoldWith<V>>::fold_with(body, visitor) };
105836                TsModuleDecl {
105837                    span,
105838                    declare,
105839                    global,
105840                    id,
105841                    body,
105842                }
105843            }
105844        }
105845    }
105846}
105847impl<V: ?Sized + Fold> FoldWith<V> for TsModuleName {
105848    #[doc = "Calls [Fold`::fold_ts_module_name`] with `self`."]
105849    fn fold_with(self, visitor: &mut V) -> Self {
105850        <V as Fold>::fold_ts_module_name(visitor, self)
105851    }
105852
105853    fn fold_children_with(self, visitor: &mut V) -> Self {
105854        match self {
105855            TsModuleName::Ident { 0: _field_0 } => {
105856                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
105857                TsModuleName::Ident { 0: _field_0 }
105858            }
105859            TsModuleName::Str { 0: _field_0 } => {
105860                let _field_0 = <Str as FoldWith<V>>::fold_with(_field_0, visitor);
105861                TsModuleName::Str { 0: _field_0 }
105862            }
105863        }
105864    }
105865}
105866impl<V: ?Sized + Fold> FoldWith<V> for TsModuleRef {
105867    #[doc = "Calls [Fold`::fold_ts_module_ref`] with `self`."]
105868    fn fold_with(self, visitor: &mut V) -> Self {
105869        <V as Fold>::fold_ts_module_ref(visitor, self)
105870    }
105871
105872    fn fold_children_with(self, visitor: &mut V) -> Self {
105873        match self {
105874            TsModuleRef::TsEntityName { 0: _field_0 } => {
105875                let _field_0 = <TsEntityName as FoldWith<V>>::fold_with(_field_0, visitor);
105876                TsModuleRef::TsEntityName { 0: _field_0 }
105877            }
105878            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
105879                let _field_0 = <TsExternalModuleRef as FoldWith<V>>::fold_with(_field_0, visitor);
105880                TsModuleRef::TsExternalModuleRef { 0: _field_0 }
105881            }
105882        }
105883    }
105884}
105885impl<V: ?Sized + Fold> FoldWith<V> for TsNamespaceBody {
105886    #[doc = "Calls [Fold`::fold_ts_namespace_body`] with `self`."]
105887    fn fold_with(self, visitor: &mut V) -> Self {
105888        <V as Fold>::fold_ts_namespace_body(visitor, self)
105889    }
105890
105891    fn fold_children_with(self, visitor: &mut V) -> Self {
105892        match self {
105893            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
105894                let _field_0 = <TsModuleBlock as FoldWith<V>>::fold_with(_field_0, visitor);
105895                TsNamespaceBody::TsModuleBlock { 0: _field_0 }
105896            }
105897            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
105898                let _field_0 = <TsNamespaceDecl as FoldWith<V>>::fold_with(_field_0, visitor);
105899                TsNamespaceBody::TsNamespaceDecl { 0: _field_0 }
105900            }
105901        }
105902    }
105903}
105904impl<V: ?Sized + Fold> FoldWith<V> for TsNamespaceDecl {
105905    #[doc = "Calls [Fold`::fold_ts_namespace_decl`] with `self`."]
105906    fn fold_with(self, visitor: &mut V) -> Self {
105907        <V as Fold>::fold_ts_namespace_decl(visitor, self)
105908    }
105909
105910    fn fold_children_with(self, visitor: &mut V) -> Self {
105911        match self {
105912            TsNamespaceDecl {
105913                span,
105914                declare,
105915                global,
105916                id,
105917                body,
105918            } => {
105919                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105920                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
105921                let body = { <Box<TsNamespaceBody> as FoldWith<V>>::fold_with(body, visitor) };
105922                TsNamespaceDecl {
105923                    span,
105924                    declare,
105925                    global,
105926                    id,
105927                    body,
105928                }
105929            }
105930        }
105931    }
105932}
105933impl<V: ?Sized + Fold> FoldWith<V> for TsNamespaceExportDecl {
105934    #[doc = "Calls [Fold`::fold_ts_namespace_export_decl`] with `self`."]
105935    fn fold_with(self, visitor: &mut V) -> Self {
105936        <V as Fold>::fold_ts_namespace_export_decl(visitor, self)
105937    }
105938
105939    fn fold_children_with(self, visitor: &mut V) -> Self {
105940        match self {
105941            TsNamespaceExportDecl { span, id } => {
105942                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105943                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
105944                TsNamespaceExportDecl { span, id }
105945            }
105946        }
105947    }
105948}
105949impl<V: ?Sized + Fold> FoldWith<V> for TsNonNullExpr {
105950    #[doc = "Calls [Fold`::fold_ts_non_null_expr`] with `self`."]
105951    fn fold_with(self, visitor: &mut V) -> Self {
105952        <V as Fold>::fold_ts_non_null_expr(visitor, self)
105953    }
105954
105955    fn fold_children_with(self, visitor: &mut V) -> Self {
105956        match self {
105957            TsNonNullExpr { span, expr } => {
105958                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105959                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
105960                TsNonNullExpr { span, expr }
105961            }
105962        }
105963    }
105964}
105965impl<V: ?Sized + Fold> FoldWith<V> for TsOptionalType {
105966    #[doc = "Calls [Fold`::fold_ts_optional_type`] with `self`."]
105967    fn fold_with(self, visitor: &mut V) -> Self {
105968        <V as Fold>::fold_ts_optional_type(visitor, self)
105969    }
105970
105971    fn fold_children_with(self, visitor: &mut V) -> Self {
105972        match self {
105973            TsOptionalType { span, type_ann } => {
105974                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105975                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
105976                TsOptionalType { span, type_ann }
105977            }
105978        }
105979    }
105980}
105981impl<V: ?Sized + Fold> FoldWith<V> for TsParamProp {
105982    #[doc = "Calls [Fold`::fold_ts_param_prop`] with `self`."]
105983    fn fold_with(self, visitor: &mut V) -> Self {
105984        <V as Fold>::fold_ts_param_prop(visitor, self)
105985    }
105986
105987    fn fold_children_with(self, visitor: &mut V) -> Self {
105988        match self {
105989            TsParamProp {
105990                span,
105991                decorators,
105992                accessibility,
105993                is_override,
105994                readonly,
105995                param,
105996            } => {
105997                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
105998                let decorators =
105999                    { <Vec<Decorator> as FoldWith<V>>::fold_with(decorators, visitor) };
106000                let accessibility =
106001                    { <Option<Accessibility> as FoldWith<V>>::fold_with(accessibility, visitor) };
106002                let param = { <TsParamPropParam as FoldWith<V>>::fold_with(param, visitor) };
106003                TsParamProp {
106004                    span,
106005                    decorators,
106006                    accessibility,
106007                    is_override,
106008                    readonly,
106009                    param,
106010                }
106011            }
106012        }
106013    }
106014}
106015impl<V: ?Sized + Fold> FoldWith<V> for TsParamPropParam {
106016    #[doc = "Calls [Fold`::fold_ts_param_prop_param`] with `self`."]
106017    fn fold_with(self, visitor: &mut V) -> Self {
106018        <V as Fold>::fold_ts_param_prop_param(visitor, self)
106019    }
106020
106021    fn fold_children_with(self, visitor: &mut V) -> Self {
106022        match self {
106023            TsParamPropParam::Ident { 0: _field_0 } => {
106024                let _field_0 = <BindingIdent as FoldWith<V>>::fold_with(_field_0, visitor);
106025                TsParamPropParam::Ident { 0: _field_0 }
106026            }
106027            TsParamPropParam::Assign { 0: _field_0 } => {
106028                let _field_0 = <AssignPat as FoldWith<V>>::fold_with(_field_0, visitor);
106029                TsParamPropParam::Assign { 0: _field_0 }
106030            }
106031        }
106032    }
106033}
106034impl<V: ?Sized + Fold> FoldWith<V> for TsParenthesizedType {
106035    #[doc = "Calls [Fold`::fold_ts_parenthesized_type`] with `self`."]
106036    fn fold_with(self, visitor: &mut V) -> Self {
106037        <V as Fold>::fold_ts_parenthesized_type(visitor, self)
106038    }
106039
106040    fn fold_children_with(self, visitor: &mut V) -> Self {
106041        match self {
106042            TsParenthesizedType { span, type_ann } => {
106043                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106044                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106045                TsParenthesizedType { span, type_ann }
106046            }
106047        }
106048    }
106049}
106050impl<V: ?Sized + Fold> FoldWith<V> for TsPropertySignature {
106051    #[doc = "Calls [Fold`::fold_ts_property_signature`] with `self`."]
106052    fn fold_with(self, visitor: &mut V) -> Self {
106053        <V as Fold>::fold_ts_property_signature(visitor, self)
106054    }
106055
106056    fn fold_children_with(self, visitor: &mut V) -> Self {
106057        match self {
106058            TsPropertySignature {
106059                span,
106060                readonly,
106061                key,
106062                computed,
106063                optional,
106064                type_ann,
106065            } => {
106066                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106067                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
106068                let type_ann =
106069                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106070                TsPropertySignature {
106071                    span,
106072                    readonly,
106073                    key,
106074                    computed,
106075                    optional,
106076                    type_ann,
106077                }
106078            }
106079        }
106080    }
106081}
106082impl<V: ?Sized + Fold> FoldWith<V> for TsQualifiedName {
106083    #[doc = "Calls [Fold`::fold_ts_qualified_name`] with `self`."]
106084    fn fold_with(self, visitor: &mut V) -> Self {
106085        <V as Fold>::fold_ts_qualified_name(visitor, self)
106086    }
106087
106088    fn fold_children_with(self, visitor: &mut V) -> Self {
106089        match self {
106090            TsQualifiedName { span, left, right } => {
106091                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106092                let left = { <TsEntityName as FoldWith<V>>::fold_with(left, visitor) };
106093                let right = { <IdentName as FoldWith<V>>::fold_with(right, visitor) };
106094                TsQualifiedName { span, left, right }
106095            }
106096        }
106097    }
106098}
106099impl<V: ?Sized + Fold> FoldWith<V> for TsRestType {
106100    #[doc = "Calls [Fold`::fold_ts_rest_type`] with `self`."]
106101    fn fold_with(self, visitor: &mut V) -> Self {
106102        <V as Fold>::fold_ts_rest_type(visitor, self)
106103    }
106104
106105    fn fold_children_with(self, visitor: &mut V) -> Self {
106106        match self {
106107            TsRestType { span, type_ann } => {
106108                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106109                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106110                TsRestType { span, type_ann }
106111            }
106112        }
106113    }
106114}
106115impl<V: ?Sized + Fold> FoldWith<V> for TsSatisfiesExpr {
106116    #[doc = "Calls [Fold`::fold_ts_satisfies_expr`] with `self`."]
106117    fn fold_with(self, visitor: &mut V) -> Self {
106118        <V as Fold>::fold_ts_satisfies_expr(visitor, self)
106119    }
106120
106121    fn fold_children_with(self, visitor: &mut V) -> Self {
106122        match self {
106123            TsSatisfiesExpr {
106124                span,
106125                expr,
106126                type_ann,
106127            } => {
106128                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106129                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
106130                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106131                TsSatisfiesExpr {
106132                    span,
106133                    expr,
106134                    type_ann,
106135                }
106136            }
106137        }
106138    }
106139}
106140impl<V: ?Sized + Fold> FoldWith<V> for TsSetterSignature {
106141    #[doc = "Calls [Fold`::fold_ts_setter_signature`] with `self`."]
106142    fn fold_with(self, visitor: &mut V) -> Self {
106143        <V as Fold>::fold_ts_setter_signature(visitor, self)
106144    }
106145
106146    fn fold_children_with(self, visitor: &mut V) -> Self {
106147        match self {
106148            TsSetterSignature {
106149                span,
106150                key,
106151                computed,
106152                param,
106153            } => {
106154                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106155                let key = { <Box<Expr> as FoldWith<V>>::fold_with(key, visitor) };
106156                let param = { <TsFnParam as FoldWith<V>>::fold_with(param, visitor) };
106157                TsSetterSignature {
106158                    span,
106159                    key,
106160                    computed,
106161                    param,
106162                }
106163            }
106164        }
106165    }
106166}
106167impl<V: ?Sized + Fold> FoldWith<V> for TsThisType {
106168    #[doc = "Calls [Fold`::fold_ts_this_type`] with `self`."]
106169    fn fold_with(self, visitor: &mut V) -> Self {
106170        <V as Fold>::fold_ts_this_type(visitor, self)
106171    }
106172
106173    fn fold_children_with(self, visitor: &mut V) -> Self {
106174        match self {
106175            TsThisType { span } => {
106176                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106177                TsThisType { span }
106178            }
106179        }
106180    }
106181}
106182impl<V: ?Sized + Fold> FoldWith<V> for TsThisTypeOrIdent {
106183    #[doc = "Calls [Fold`::fold_ts_this_type_or_ident`] with `self`."]
106184    fn fold_with(self, visitor: &mut V) -> Self {
106185        <V as Fold>::fold_ts_this_type_or_ident(visitor, self)
106186    }
106187
106188    fn fold_children_with(self, visitor: &mut V) -> Self {
106189        match self {
106190            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
106191                let _field_0 = <TsThisType as FoldWith<V>>::fold_with(_field_0, visitor);
106192                TsThisTypeOrIdent::TsThisType { 0: _field_0 }
106193            }
106194            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
106195                let _field_0 = <Ident as FoldWith<V>>::fold_with(_field_0, visitor);
106196                TsThisTypeOrIdent::Ident { 0: _field_0 }
106197            }
106198        }
106199    }
106200}
106201impl<V: ?Sized + Fold> FoldWith<V> for TsTplLitType {
106202    #[doc = "Calls [Fold`::fold_ts_tpl_lit_type`] with `self`."]
106203    fn fold_with(self, visitor: &mut V) -> Self {
106204        <V as Fold>::fold_ts_tpl_lit_type(visitor, self)
106205    }
106206
106207    fn fold_children_with(self, visitor: &mut V) -> Self {
106208        match self {
106209            TsTplLitType {
106210                span,
106211                types,
106212                quasis,
106213            } => {
106214                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106215                let types = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(types, visitor) };
106216                let quasis = { <Vec<TplElement> as FoldWith<V>>::fold_with(quasis, visitor) };
106217                TsTplLitType {
106218                    span,
106219                    types,
106220                    quasis,
106221                }
106222            }
106223        }
106224    }
106225}
106226impl<V: ?Sized + Fold> FoldWith<V> for TsTupleElement {
106227    #[doc = "Calls [Fold`::fold_ts_tuple_element`] with `self`."]
106228    fn fold_with(self, visitor: &mut V) -> Self {
106229        <V as Fold>::fold_ts_tuple_element(visitor, self)
106230    }
106231
106232    fn fold_children_with(self, visitor: &mut V) -> Self {
106233        match self {
106234            TsTupleElement { span, label, ty } => {
106235                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106236                let label = { <Option<Pat> as FoldWith<V>>::fold_with(label, visitor) };
106237                let ty = { <Box<TsType> as FoldWith<V>>::fold_with(ty, visitor) };
106238                TsTupleElement { span, label, ty }
106239            }
106240        }
106241    }
106242}
106243impl<V: ?Sized + Fold> FoldWith<V> for TsTupleType {
106244    #[doc = "Calls [Fold`::fold_ts_tuple_type`] with `self`."]
106245    fn fold_with(self, visitor: &mut V) -> Self {
106246        <V as Fold>::fold_ts_tuple_type(visitor, self)
106247    }
106248
106249    fn fold_children_with(self, visitor: &mut V) -> Self {
106250        match self {
106251            TsTupleType { span, elem_types } => {
106252                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106253                let elem_types =
106254                    { <Vec<TsTupleElement> as FoldWith<V>>::fold_with(elem_types, visitor) };
106255                TsTupleType { span, elem_types }
106256            }
106257        }
106258    }
106259}
106260impl<V: ?Sized + Fold> FoldWith<V> for TsType {
106261    #[doc = "Calls [Fold`::fold_ts_type`] with `self`."]
106262    fn fold_with(self, visitor: &mut V) -> Self {
106263        <V as Fold>::fold_ts_type(visitor, self)
106264    }
106265
106266    fn fold_children_with(self, visitor: &mut V) -> Self {
106267        match self {
106268            TsType::TsKeywordType { 0: _field_0 } => {
106269                let _field_0 = <TsKeywordType as FoldWith<V>>::fold_with(_field_0, visitor);
106270                TsType::TsKeywordType { 0: _field_0 }
106271            }
106272            TsType::TsThisType { 0: _field_0 } => {
106273                let _field_0 = <TsThisType as FoldWith<V>>::fold_with(_field_0, visitor);
106274                TsType::TsThisType { 0: _field_0 }
106275            }
106276            TsType::TsFnOrConstructorType { 0: _field_0 } => {
106277                let _field_0 = <TsFnOrConstructorType as FoldWith<V>>::fold_with(_field_0, visitor);
106278                TsType::TsFnOrConstructorType { 0: _field_0 }
106279            }
106280            TsType::TsTypeRef { 0: _field_0 } => {
106281                let _field_0 = <TsTypeRef as FoldWith<V>>::fold_with(_field_0, visitor);
106282                TsType::TsTypeRef { 0: _field_0 }
106283            }
106284            TsType::TsTypeQuery { 0: _field_0 } => {
106285                let _field_0 = <TsTypeQuery as FoldWith<V>>::fold_with(_field_0, visitor);
106286                TsType::TsTypeQuery { 0: _field_0 }
106287            }
106288            TsType::TsTypeLit { 0: _field_0 } => {
106289                let _field_0 = <TsTypeLit as FoldWith<V>>::fold_with(_field_0, visitor);
106290                TsType::TsTypeLit { 0: _field_0 }
106291            }
106292            TsType::TsArrayType { 0: _field_0 } => {
106293                let _field_0 = <TsArrayType as FoldWith<V>>::fold_with(_field_0, visitor);
106294                TsType::TsArrayType { 0: _field_0 }
106295            }
106296            TsType::TsTupleType { 0: _field_0 } => {
106297                let _field_0 = <TsTupleType as FoldWith<V>>::fold_with(_field_0, visitor);
106298                TsType::TsTupleType { 0: _field_0 }
106299            }
106300            TsType::TsOptionalType { 0: _field_0 } => {
106301                let _field_0 = <TsOptionalType as FoldWith<V>>::fold_with(_field_0, visitor);
106302                TsType::TsOptionalType { 0: _field_0 }
106303            }
106304            TsType::TsRestType { 0: _field_0 } => {
106305                let _field_0 = <TsRestType as FoldWith<V>>::fold_with(_field_0, visitor);
106306                TsType::TsRestType { 0: _field_0 }
106307            }
106308            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
106309                let _field_0 =
106310                    <TsUnionOrIntersectionType as FoldWith<V>>::fold_with(_field_0, visitor);
106311                TsType::TsUnionOrIntersectionType { 0: _field_0 }
106312            }
106313            TsType::TsConditionalType { 0: _field_0 } => {
106314                let _field_0 = <TsConditionalType as FoldWith<V>>::fold_with(_field_0, visitor);
106315                TsType::TsConditionalType { 0: _field_0 }
106316            }
106317            TsType::TsInferType { 0: _field_0 } => {
106318                let _field_0 = <TsInferType as FoldWith<V>>::fold_with(_field_0, visitor);
106319                TsType::TsInferType { 0: _field_0 }
106320            }
106321            TsType::TsParenthesizedType { 0: _field_0 } => {
106322                let _field_0 = <TsParenthesizedType as FoldWith<V>>::fold_with(_field_0, visitor);
106323                TsType::TsParenthesizedType { 0: _field_0 }
106324            }
106325            TsType::TsTypeOperator { 0: _field_0 } => {
106326                let _field_0 = <TsTypeOperator as FoldWith<V>>::fold_with(_field_0, visitor);
106327                TsType::TsTypeOperator { 0: _field_0 }
106328            }
106329            TsType::TsIndexedAccessType { 0: _field_0 } => {
106330                let _field_0 = <TsIndexedAccessType as FoldWith<V>>::fold_with(_field_0, visitor);
106331                TsType::TsIndexedAccessType { 0: _field_0 }
106332            }
106333            TsType::TsMappedType { 0: _field_0 } => {
106334                let _field_0 = <TsMappedType as FoldWith<V>>::fold_with(_field_0, visitor);
106335                TsType::TsMappedType { 0: _field_0 }
106336            }
106337            TsType::TsLitType { 0: _field_0 } => {
106338                let _field_0 = <TsLitType as FoldWith<V>>::fold_with(_field_0, visitor);
106339                TsType::TsLitType { 0: _field_0 }
106340            }
106341            TsType::TsTypePredicate { 0: _field_0 } => {
106342                let _field_0 = <TsTypePredicate as FoldWith<V>>::fold_with(_field_0, visitor);
106343                TsType::TsTypePredicate { 0: _field_0 }
106344            }
106345            TsType::TsImportType { 0: _field_0 } => {
106346                let _field_0 = <TsImportType as FoldWith<V>>::fold_with(_field_0, visitor);
106347                TsType::TsImportType { 0: _field_0 }
106348            }
106349        }
106350    }
106351}
106352impl<V: ?Sized + Fold> FoldWith<V> for TsTypeAliasDecl {
106353    #[doc = "Calls [Fold`::fold_ts_type_alias_decl`] with `self`."]
106354    fn fold_with(self, visitor: &mut V) -> Self {
106355        <V as Fold>::fold_ts_type_alias_decl(visitor, self)
106356    }
106357
106358    fn fold_children_with(self, visitor: &mut V) -> Self {
106359        match self {
106360            TsTypeAliasDecl {
106361                span,
106362                declare,
106363                id,
106364                type_params,
106365                type_ann,
106366            } => {
106367                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106368                let id = { <Ident as FoldWith<V>>::fold_with(id, visitor) };
106369                let type_params = {
106370                    <Option<Box<TsTypeParamDecl>> as FoldWith<V>>::fold_with(type_params, visitor)
106371                };
106372                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106373                TsTypeAliasDecl {
106374                    span,
106375                    declare,
106376                    id,
106377                    type_params,
106378                    type_ann,
106379                }
106380            }
106381        }
106382    }
106383}
106384impl<V: ?Sized + Fold> FoldWith<V> for TsTypeAnn {
106385    #[doc = "Calls [Fold`::fold_ts_type_ann`] with `self`."]
106386    fn fold_with(self, visitor: &mut V) -> Self {
106387        <V as Fold>::fold_ts_type_ann(visitor, self)
106388    }
106389
106390    fn fold_children_with(self, visitor: &mut V) -> Self {
106391        match self {
106392            TsTypeAnn { span, type_ann } => {
106393                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106394                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106395                TsTypeAnn { span, type_ann }
106396            }
106397        }
106398    }
106399}
106400impl<V: ?Sized + Fold> FoldWith<V> for TsTypeAssertion {
106401    #[doc = "Calls [Fold`::fold_ts_type_assertion`] with `self`."]
106402    fn fold_with(self, visitor: &mut V) -> Self {
106403        <V as Fold>::fold_ts_type_assertion(visitor, self)
106404    }
106405
106406    fn fold_children_with(self, visitor: &mut V) -> Self {
106407        match self {
106408            TsTypeAssertion {
106409                span,
106410                expr,
106411                type_ann,
106412            } => {
106413                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106414                let expr = { <Box<Expr> as FoldWith<V>>::fold_with(expr, visitor) };
106415                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106416                TsTypeAssertion {
106417                    span,
106418                    expr,
106419                    type_ann,
106420                }
106421            }
106422        }
106423    }
106424}
106425impl<V: ?Sized + Fold> FoldWith<V> for TsTypeElement {
106426    #[doc = "Calls [Fold`::fold_ts_type_element`] with `self`."]
106427    fn fold_with(self, visitor: &mut V) -> Self {
106428        <V as Fold>::fold_ts_type_element(visitor, self)
106429    }
106430
106431    fn fold_children_with(self, visitor: &mut V) -> Self {
106432        match self {
106433            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
106434                let _field_0 = <TsCallSignatureDecl as FoldWith<V>>::fold_with(_field_0, visitor);
106435                TsTypeElement::TsCallSignatureDecl { 0: _field_0 }
106436            }
106437            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
106438                let _field_0 =
106439                    <TsConstructSignatureDecl as FoldWith<V>>::fold_with(_field_0, visitor);
106440                TsTypeElement::TsConstructSignatureDecl { 0: _field_0 }
106441            }
106442            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
106443                let _field_0 = <TsPropertySignature as FoldWith<V>>::fold_with(_field_0, visitor);
106444                TsTypeElement::TsPropertySignature { 0: _field_0 }
106445            }
106446            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
106447                let _field_0 = <TsGetterSignature as FoldWith<V>>::fold_with(_field_0, visitor);
106448                TsTypeElement::TsGetterSignature { 0: _field_0 }
106449            }
106450            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
106451                let _field_0 = <TsSetterSignature as FoldWith<V>>::fold_with(_field_0, visitor);
106452                TsTypeElement::TsSetterSignature { 0: _field_0 }
106453            }
106454            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
106455                let _field_0 = <TsMethodSignature as FoldWith<V>>::fold_with(_field_0, visitor);
106456                TsTypeElement::TsMethodSignature { 0: _field_0 }
106457            }
106458            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
106459                let _field_0 = <TsIndexSignature as FoldWith<V>>::fold_with(_field_0, visitor);
106460                TsTypeElement::TsIndexSignature { 0: _field_0 }
106461            }
106462        }
106463    }
106464}
106465impl<V: ?Sized + Fold> FoldWith<V> for TsTypeLit {
106466    #[doc = "Calls [Fold`::fold_ts_type_lit`] with `self`."]
106467    fn fold_with(self, visitor: &mut V) -> Self {
106468        <V as Fold>::fold_ts_type_lit(visitor, self)
106469    }
106470
106471    fn fold_children_with(self, visitor: &mut V) -> Self {
106472        match self {
106473            TsTypeLit { span, members } => {
106474                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106475                let members = { <Vec<TsTypeElement> as FoldWith<V>>::fold_with(members, visitor) };
106476                TsTypeLit { span, members }
106477            }
106478        }
106479    }
106480}
106481impl<V: ?Sized + Fold> FoldWith<V> for TsTypeOperator {
106482    #[doc = "Calls [Fold`::fold_ts_type_operator`] with `self`."]
106483    fn fold_with(self, visitor: &mut V) -> Self {
106484        <V as Fold>::fold_ts_type_operator(visitor, self)
106485    }
106486
106487    fn fold_children_with(self, visitor: &mut V) -> Self {
106488        match self {
106489            TsTypeOperator { span, op, type_ann } => {
106490                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106491                let op = { <TsTypeOperatorOp as FoldWith<V>>::fold_with(op, visitor) };
106492                let type_ann = { <Box<TsType> as FoldWith<V>>::fold_with(type_ann, visitor) };
106493                TsTypeOperator { span, op, type_ann }
106494            }
106495        }
106496    }
106497}
106498impl<V: ?Sized + Fold> FoldWith<V> for TsTypeOperatorOp {
106499    #[doc = "Calls [Fold`::fold_ts_type_operator_op`] with `self`."]
106500    fn fold_with(self, visitor: &mut V) -> Self {
106501        <V as Fold>::fold_ts_type_operator_op(visitor, self)
106502    }
106503
106504    fn fold_children_with(self, visitor: &mut V) -> Self {
106505        match self {
106506            TsTypeOperatorOp::KeyOf => TsTypeOperatorOp::KeyOf,
106507            TsTypeOperatorOp::Unique => TsTypeOperatorOp::Unique,
106508            TsTypeOperatorOp::ReadOnly => TsTypeOperatorOp::ReadOnly,
106509        }
106510    }
106511}
106512impl<V: ?Sized + Fold> FoldWith<V> for TsTypeParam {
106513    #[doc = "Calls [Fold`::fold_ts_type_param`] with `self`."]
106514    fn fold_with(self, visitor: &mut V) -> Self {
106515        <V as Fold>::fold_ts_type_param(visitor, self)
106516    }
106517
106518    fn fold_children_with(self, visitor: &mut V) -> Self {
106519        match self {
106520            TsTypeParam {
106521                span,
106522                name,
106523                is_in,
106524                is_out,
106525                is_const,
106526                constraint,
106527                default,
106528            } => {
106529                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106530                let name = { <Ident as FoldWith<V>>::fold_with(name, visitor) };
106531                let constraint =
106532                    { <Option<Box<TsType>> as FoldWith<V>>::fold_with(constraint, visitor) };
106533                let default = { <Option<Box<TsType>> as FoldWith<V>>::fold_with(default, visitor) };
106534                TsTypeParam {
106535                    span,
106536                    name,
106537                    is_in,
106538                    is_out,
106539                    is_const,
106540                    constraint,
106541                    default,
106542                }
106543            }
106544        }
106545    }
106546}
106547impl<V: ?Sized + Fold> FoldWith<V> for TsTypeParamDecl {
106548    #[doc = "Calls [Fold`::fold_ts_type_param_decl`] with `self`."]
106549    fn fold_with(self, visitor: &mut V) -> Self {
106550        <V as Fold>::fold_ts_type_param_decl(visitor, self)
106551    }
106552
106553    fn fold_children_with(self, visitor: &mut V) -> Self {
106554        match self {
106555            TsTypeParamDecl { span, params } => {
106556                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106557                let params = { <Vec<TsTypeParam> as FoldWith<V>>::fold_with(params, visitor) };
106558                TsTypeParamDecl { span, params }
106559            }
106560        }
106561    }
106562}
106563impl<V: ?Sized + Fold> FoldWith<V> for TsTypeParamInstantiation {
106564    #[doc = "Calls [Fold`::fold_ts_type_param_instantiation`] with `self`."]
106565    fn fold_with(self, visitor: &mut V) -> Self {
106566        <V as Fold>::fold_ts_type_param_instantiation(visitor, self)
106567    }
106568
106569    fn fold_children_with(self, visitor: &mut V) -> Self {
106570        match self {
106571            TsTypeParamInstantiation { span, params } => {
106572                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106573                let params = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(params, visitor) };
106574                TsTypeParamInstantiation { span, params }
106575            }
106576        }
106577    }
106578}
106579impl<V: ?Sized + Fold> FoldWith<V> for TsTypePredicate {
106580    #[doc = "Calls [Fold`::fold_ts_type_predicate`] with `self`."]
106581    fn fold_with(self, visitor: &mut V) -> Self {
106582        <V as Fold>::fold_ts_type_predicate(visitor, self)
106583    }
106584
106585    fn fold_children_with(self, visitor: &mut V) -> Self {
106586        match self {
106587            TsTypePredicate {
106588                span,
106589                asserts,
106590                param_name,
106591                type_ann,
106592            } => {
106593                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106594                let param_name =
106595                    { <TsThisTypeOrIdent as FoldWith<V>>::fold_with(param_name, visitor) };
106596                let type_ann =
106597                    { <Option<Box<TsTypeAnn>> as FoldWith<V>>::fold_with(type_ann, visitor) };
106598                TsTypePredicate {
106599                    span,
106600                    asserts,
106601                    param_name,
106602                    type_ann,
106603                }
106604            }
106605        }
106606    }
106607}
106608impl<V: ?Sized + Fold> FoldWith<V> for TsTypeQuery {
106609    #[doc = "Calls [Fold`::fold_ts_type_query`] with `self`."]
106610    fn fold_with(self, visitor: &mut V) -> Self {
106611        <V as Fold>::fold_ts_type_query(visitor, self)
106612    }
106613
106614    fn fold_children_with(self, visitor: &mut V) -> Self {
106615        match self {
106616            TsTypeQuery {
106617                span,
106618                expr_name,
106619                type_args,
106620            } => {
106621                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106622                let expr_name = { <TsTypeQueryExpr as FoldWith<V>>::fold_with(expr_name, visitor) };
106623                let type_args = {
106624                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
106625                        type_args, visitor,
106626                    )
106627                };
106628                TsTypeQuery {
106629                    span,
106630                    expr_name,
106631                    type_args,
106632                }
106633            }
106634        }
106635    }
106636}
106637impl<V: ?Sized + Fold> FoldWith<V> for TsTypeQueryExpr {
106638    #[doc = "Calls [Fold`::fold_ts_type_query_expr`] with `self`."]
106639    fn fold_with(self, visitor: &mut V) -> Self {
106640        <V as Fold>::fold_ts_type_query_expr(visitor, self)
106641    }
106642
106643    fn fold_children_with(self, visitor: &mut V) -> Self {
106644        match self {
106645            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
106646                let _field_0 = <TsEntityName as FoldWith<V>>::fold_with(_field_0, visitor);
106647                TsTypeQueryExpr::TsEntityName { 0: _field_0 }
106648            }
106649            TsTypeQueryExpr::Import { 0: _field_0 } => {
106650                let _field_0 = <TsImportType as FoldWith<V>>::fold_with(_field_0, visitor);
106651                TsTypeQueryExpr::Import { 0: _field_0 }
106652            }
106653        }
106654    }
106655}
106656impl<V: ?Sized + Fold> FoldWith<V> for TsTypeRef {
106657    #[doc = "Calls [Fold`::fold_ts_type_ref`] with `self`."]
106658    fn fold_with(self, visitor: &mut V) -> Self {
106659        <V as Fold>::fold_ts_type_ref(visitor, self)
106660    }
106661
106662    fn fold_children_with(self, visitor: &mut V) -> Self {
106663        match self {
106664            TsTypeRef {
106665                span,
106666                type_name,
106667                type_params,
106668            } => {
106669                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106670                let type_name = { <TsEntityName as FoldWith<V>>::fold_with(type_name, visitor) };
106671                let type_params = {
106672                    <Option<Box<TsTypeParamInstantiation>> as FoldWith<V>>::fold_with(
106673                        type_params,
106674                        visitor,
106675                    )
106676                };
106677                TsTypeRef {
106678                    span,
106679                    type_name,
106680                    type_params,
106681                }
106682            }
106683        }
106684    }
106685}
106686impl<V: ?Sized + Fold> FoldWith<V> for TsUnionOrIntersectionType {
106687    #[doc = "Calls [Fold`::fold_ts_union_or_intersection_type`] with `self`."]
106688    fn fold_with(self, visitor: &mut V) -> Self {
106689        <V as Fold>::fold_ts_union_or_intersection_type(visitor, self)
106690    }
106691
106692    fn fold_children_with(self, visitor: &mut V) -> Self {
106693        match self {
106694            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
106695                let _field_0 = <TsUnionType as FoldWith<V>>::fold_with(_field_0, visitor);
106696                TsUnionOrIntersectionType::TsUnionType { 0: _field_0 }
106697            }
106698            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
106699                let _field_0 = <TsIntersectionType as FoldWith<V>>::fold_with(_field_0, visitor);
106700                TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 }
106701            }
106702        }
106703    }
106704}
106705impl<V: ?Sized + Fold> FoldWith<V> for TsUnionType {
106706    #[doc = "Calls [Fold`::fold_ts_union_type`] with `self`."]
106707    fn fold_with(self, visitor: &mut V) -> Self {
106708        <V as Fold>::fold_ts_union_type(visitor, self)
106709    }
106710
106711    fn fold_children_with(self, visitor: &mut V) -> Self {
106712        match self {
106713            TsUnionType { span, types } => {
106714                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106715                let types = { <Vec<Box<TsType>> as FoldWith<V>>::fold_with(types, visitor) };
106716                TsUnionType { span, types }
106717            }
106718        }
106719    }
106720}
106721impl<V: ?Sized + Fold> FoldWith<V> for UnaryExpr {
106722    #[doc = "Calls [Fold`::fold_unary_expr`] with `self`."]
106723    fn fold_with(self, visitor: &mut V) -> Self {
106724        <V as Fold>::fold_unary_expr(visitor, self)
106725    }
106726
106727    fn fold_children_with(self, visitor: &mut V) -> Self {
106728        match self {
106729            UnaryExpr { span, op, arg } => {
106730                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106731                let op = { <UnaryOp as FoldWith<V>>::fold_with(op, visitor) };
106732                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
106733                UnaryExpr { span, op, arg }
106734            }
106735        }
106736    }
106737}
106738impl<V: ?Sized + Fold> FoldWith<V> for UnaryOp {
106739    #[doc = "Calls [Fold`::fold_unary_op`] with `self`."]
106740    fn fold_with(self, visitor: &mut V) -> Self {
106741        <V as Fold>::fold_unary_op(visitor, self)
106742    }
106743
106744    fn fold_children_with(self, visitor: &mut V) -> Self {
106745        match self {
106746            UnaryOp::Minus => UnaryOp::Minus,
106747            UnaryOp::Plus => UnaryOp::Plus,
106748            UnaryOp::Bang => UnaryOp::Bang,
106749            UnaryOp::Tilde => UnaryOp::Tilde,
106750            UnaryOp::TypeOf => UnaryOp::TypeOf,
106751            UnaryOp::Void => UnaryOp::Void,
106752            UnaryOp::Delete => UnaryOp::Delete,
106753        }
106754    }
106755}
106756impl<V: ?Sized + Fold> FoldWith<V> for UpdateExpr {
106757    #[doc = "Calls [Fold`::fold_update_expr`] with `self`."]
106758    fn fold_with(self, visitor: &mut V) -> Self {
106759        <V as Fold>::fold_update_expr(visitor, self)
106760    }
106761
106762    fn fold_children_with(self, visitor: &mut V) -> Self {
106763        match self {
106764            UpdateExpr {
106765                span,
106766                op,
106767                prefix,
106768                arg,
106769            } => {
106770                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106771                let op = { <UpdateOp as FoldWith<V>>::fold_with(op, visitor) };
106772                let arg = { <Box<Expr> as FoldWith<V>>::fold_with(arg, visitor) };
106773                UpdateExpr {
106774                    span,
106775                    op,
106776                    prefix,
106777                    arg,
106778                }
106779            }
106780        }
106781    }
106782}
106783impl<V: ?Sized + Fold> FoldWith<V> for UpdateOp {
106784    #[doc = "Calls [Fold`::fold_update_op`] with `self`."]
106785    fn fold_with(self, visitor: &mut V) -> Self {
106786        <V as Fold>::fold_update_op(visitor, self)
106787    }
106788
106789    fn fold_children_with(self, visitor: &mut V) -> Self {
106790        match self {
106791            UpdateOp::PlusPlus => UpdateOp::PlusPlus,
106792            UpdateOp::MinusMinus => UpdateOp::MinusMinus,
106793        }
106794    }
106795}
106796impl<V: ?Sized + Fold> FoldWith<V> for UsingDecl {
106797    #[doc = "Calls [Fold`::fold_using_decl`] with `self`."]
106798    fn fold_with(self, visitor: &mut V) -> Self {
106799        <V as Fold>::fold_using_decl(visitor, self)
106800    }
106801
106802    fn fold_children_with(self, visitor: &mut V) -> Self {
106803        match self {
106804            UsingDecl {
106805                span,
106806                is_await,
106807                decls,
106808            } => {
106809                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106810                let decls = { <Vec<VarDeclarator> as FoldWith<V>>::fold_with(decls, visitor) };
106811                UsingDecl {
106812                    span,
106813                    is_await,
106814                    decls,
106815                }
106816            }
106817        }
106818    }
106819}
106820impl<V: ?Sized + Fold> FoldWith<V> for VarDecl {
106821    #[doc = "Calls [Fold`::fold_var_decl`] with `self`."]
106822    fn fold_with(self, visitor: &mut V) -> Self {
106823        <V as Fold>::fold_var_decl(visitor, self)
106824    }
106825
106826    fn fold_children_with(self, visitor: &mut V) -> Self {
106827        match self {
106828            VarDecl {
106829                span,
106830                ctxt,
106831                kind,
106832                declare,
106833                decls,
106834            } => {
106835                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106836                let ctxt = { <swc_common::SyntaxContext as FoldWith<V>>::fold_with(ctxt, visitor) };
106837                let kind = { <VarDeclKind as FoldWith<V>>::fold_with(kind, visitor) };
106838                let decls = { <Vec<VarDeclarator> as FoldWith<V>>::fold_with(decls, visitor) };
106839                VarDecl {
106840                    span,
106841                    ctxt,
106842                    kind,
106843                    declare,
106844                    decls,
106845                }
106846            }
106847        }
106848    }
106849}
106850impl<V: ?Sized + Fold> FoldWith<V> for VarDeclKind {
106851    #[doc = "Calls [Fold`::fold_var_decl_kind`] with `self`."]
106852    fn fold_with(self, visitor: &mut V) -> Self {
106853        <V as Fold>::fold_var_decl_kind(visitor, self)
106854    }
106855
106856    fn fold_children_with(self, visitor: &mut V) -> Self {
106857        match self {
106858            VarDeclKind::Var => VarDeclKind::Var,
106859            VarDeclKind::Let => VarDeclKind::Let,
106860            VarDeclKind::Const => VarDeclKind::Const,
106861        }
106862    }
106863}
106864impl<V: ?Sized + Fold> FoldWith<V> for VarDeclOrExpr {
106865    #[doc = "Calls [Fold`::fold_var_decl_or_expr`] with `self`."]
106866    fn fold_with(self, visitor: &mut V) -> Self {
106867        <V as Fold>::fold_var_decl_or_expr(visitor, self)
106868    }
106869
106870    fn fold_children_with(self, visitor: &mut V) -> Self {
106871        match self {
106872            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
106873                let _field_0 = <Box<VarDecl> as FoldWith<V>>::fold_with(_field_0, visitor);
106874                VarDeclOrExpr::VarDecl { 0: _field_0 }
106875            }
106876            VarDeclOrExpr::Expr { 0: _field_0 } => {
106877                let _field_0 = <Box<Expr> as FoldWith<V>>::fold_with(_field_0, visitor);
106878                VarDeclOrExpr::Expr { 0: _field_0 }
106879            }
106880        }
106881    }
106882}
106883impl<V: ?Sized + Fold> FoldWith<V> for VarDeclarator {
106884    #[doc = "Calls [Fold`::fold_var_declarator`] with `self`."]
106885    fn fold_with(self, visitor: &mut V) -> Self {
106886        <V as Fold>::fold_var_declarator(visitor, self)
106887    }
106888
106889    fn fold_children_with(self, visitor: &mut V) -> Self {
106890        match self {
106891            VarDeclarator {
106892                span,
106893                name,
106894                init,
106895                definite,
106896            } => {
106897                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106898                let name = { <Pat as FoldWith<V>>::fold_with(name, visitor) };
106899                let init = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(init, visitor) };
106900                VarDeclarator {
106901                    span,
106902                    name,
106903                    init,
106904                    definite,
106905                }
106906            }
106907        }
106908    }
106909}
106910impl<V: ?Sized + Fold> FoldWith<V> for WhileStmt {
106911    #[doc = "Calls [Fold`::fold_while_stmt`] with `self`."]
106912    fn fold_with(self, visitor: &mut V) -> Self {
106913        <V as Fold>::fold_while_stmt(visitor, self)
106914    }
106915
106916    fn fold_children_with(self, visitor: &mut V) -> Self {
106917        match self {
106918            WhileStmt { span, test, body } => {
106919                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106920                let test = { <Box<Expr> as FoldWith<V>>::fold_with(test, visitor) };
106921                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
106922                WhileStmt { span, test, body }
106923            }
106924        }
106925    }
106926}
106927impl<V: ?Sized + Fold> FoldWith<V> for WithStmt {
106928    #[doc = "Calls [Fold`::fold_with_stmt`] with `self`."]
106929    fn fold_with(self, visitor: &mut V) -> Self {
106930        <V as Fold>::fold_with_stmt(visitor, self)
106931    }
106932
106933    fn fold_children_with(self, visitor: &mut V) -> Self {
106934        match self {
106935            WithStmt { span, obj, body } => {
106936                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106937                let obj = { <Box<Expr> as FoldWith<V>>::fold_with(obj, visitor) };
106938                let body = { <Box<Stmt> as FoldWith<V>>::fold_with(body, visitor) };
106939                WithStmt { span, obj, body }
106940            }
106941        }
106942    }
106943}
106944impl<V: ?Sized + Fold> FoldWith<V> for YieldExpr {
106945    #[doc = "Calls [Fold`::fold_yield_expr`] with `self`."]
106946    fn fold_with(self, visitor: &mut V) -> Self {
106947        <V as Fold>::fold_yield_expr(visitor, self)
106948    }
106949
106950    fn fold_children_with(self, visitor: &mut V) -> Self {
106951        match self {
106952            YieldExpr {
106953                span,
106954                arg,
106955                delegate,
106956            } => {
106957                let span = { <swc_common::Span as FoldWith<V>>::fold_with(span, visitor) };
106958                let arg = { <Option<Box<Expr>> as FoldWith<V>>::fold_with(arg, visitor) };
106959                YieldExpr {
106960                    span,
106961                    arg,
106962                    delegate,
106963                }
106964            }
106965        }
106966    }
106967}
106968impl<V: ?Sized + Fold> FoldWith<V> for swc_atoms::Atom {
106969    #[doc = "Calls [Fold`::fold_atom`] with `self`. (Extra impl)"]
106970    #[inline]
106971    fn fold_with(self, visitor: &mut V) -> Self {
106972        <V as Fold>::fold_atom(visitor, self)
106973    }
106974
106975    #[inline]
106976    fn fold_children_with(self, visitor: &mut V) -> Self {
106977        self
106978    }
106979}
106980impl<V: ?Sized + Fold> FoldWith<V> for BigIntValue {
106981    #[doc = "Calls [Fold`::fold_big_int_value`] with `self`. (Extra impl)"]
106982    #[inline]
106983    fn fold_with(self, visitor: &mut V) -> Self {
106984        <V as Fold>::fold_big_int_value(visitor, self)
106985    }
106986
106987    #[inline]
106988    fn fold_children_with(self, visitor: &mut V) -> Self {
106989        self
106990    }
106991}
106992impl<V: ?Sized + Fold> FoldWith<V> for Vec<ClassMember> {
106993    #[doc = "Calls [Fold`::fold_class_members`] with `self`. (Extra impl)"]
106994    #[inline]
106995    fn fold_with(self, visitor: &mut V) -> Self {
106996        <V as Fold>::fold_class_members(visitor, self)
106997    }
106998
106999    #[inline]
107000    fn fold_children_with(self, visitor: &mut V) -> Self {
107001        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107002            <ClassMember as FoldWith<V>>::fold_with(item, visitor)
107003        })
107004    }
107005}
107006impl<V: ?Sized + Fold> FoldWith<V> for Vec<Decorator> {
107007    #[doc = "Calls [Fold`::fold_decorators`] with `self`. (Extra impl)"]
107008    #[inline]
107009    fn fold_with(self, visitor: &mut V) -> Self {
107010        <V as Fold>::fold_decorators(visitor, self)
107011    }
107012
107013    #[inline]
107014    fn fold_children_with(self, visitor: &mut V) -> Self {
107015        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107016            <Decorator as FoldWith<V>>::fold_with(item, visitor)
107017        })
107018    }
107019}
107020impl<V: ?Sized + Fold> FoldWith<V> for Vec<ExportSpecifier> {
107021    #[doc = "Calls [Fold`::fold_export_specifiers`] with `self`. (Extra impl)"]
107022    #[inline]
107023    fn fold_with(self, visitor: &mut V) -> Self {
107024        <V as Fold>::fold_export_specifiers(visitor, self)
107025    }
107026
107027    #[inline]
107028    fn fold_children_with(self, visitor: &mut V) -> Self {
107029        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107030            <ExportSpecifier as FoldWith<V>>::fold_with(item, visitor)
107031        })
107032    }
107033}
107034impl<V: ?Sized + Fold> FoldWith<V> for Vec<ExprOrSpread> {
107035    #[doc = "Calls [Fold`::fold_expr_or_spreads`] with `self`. (Extra impl)"]
107036    #[inline]
107037    fn fold_with(self, visitor: &mut V) -> Self {
107038        <V as Fold>::fold_expr_or_spreads(visitor, self)
107039    }
107040
107041    #[inline]
107042    fn fold_children_with(self, visitor: &mut V) -> Self {
107043        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107044            <ExprOrSpread as FoldWith<V>>::fold_with(item, visitor)
107045        })
107046    }
107047}
107048impl<V: ?Sized + Fold> FoldWith<V> for Vec<Box<Expr>> {
107049    #[doc = "Calls [Fold`::fold_exprs`] with `self`. (Extra impl)"]
107050    #[inline]
107051    fn fold_with(self, visitor: &mut V) -> Self {
107052        <V as Fold>::fold_exprs(visitor, self)
107053    }
107054
107055    #[inline]
107056    fn fold_children_with(self, visitor: &mut V) -> Self {
107057        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107058            <Box<Expr> as FoldWith<V>>::fold_with(item, visitor)
107059        })
107060    }
107061}
107062impl<V: ?Sized + Fold> FoldWith<V> for Vec<ImportSpecifier> {
107063    #[doc = "Calls [Fold`::fold_import_specifiers`] with `self`. (Extra impl)"]
107064    #[inline]
107065    fn fold_with(self, visitor: &mut V) -> Self {
107066        <V as Fold>::fold_import_specifiers(visitor, self)
107067    }
107068
107069    #[inline]
107070    fn fold_children_with(self, visitor: &mut V) -> Self {
107071        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107072            <ImportSpecifier as FoldWith<V>>::fold_with(item, visitor)
107073        })
107074    }
107075}
107076impl<V: ?Sized + Fold> FoldWith<V> for Vec<ImportWithItem> {
107077    #[doc = "Calls [Fold`::fold_import_with_items`] with `self`. (Extra impl)"]
107078    #[inline]
107079    fn fold_with(self, visitor: &mut V) -> Self {
107080        <V as Fold>::fold_import_with_items(visitor, self)
107081    }
107082
107083    #[inline]
107084    fn fold_children_with(self, visitor: &mut V) -> Self {
107085        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107086            <ImportWithItem as FoldWith<V>>::fold_with(item, visitor)
107087        })
107088    }
107089}
107090impl<V: ?Sized + Fold> FoldWith<V> for Vec<JSXAttrOrSpread> {
107091    #[doc = "Calls [Fold`::fold_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
107092    #[inline]
107093    fn fold_with(self, visitor: &mut V) -> Self {
107094        <V as Fold>::fold_jsx_attr_or_spreads(visitor, self)
107095    }
107096
107097    #[inline]
107098    fn fold_children_with(self, visitor: &mut V) -> Self {
107099        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107100            <JSXAttrOrSpread as FoldWith<V>>::fold_with(item, visitor)
107101        })
107102    }
107103}
107104impl<V: ?Sized + Fold> FoldWith<V> for Vec<JSXElementChild> {
107105    #[doc = "Calls [Fold`::fold_jsx_element_childs`] with `self`. (Extra impl)"]
107106    #[inline]
107107    fn fold_with(self, visitor: &mut V) -> Self {
107108        <V as Fold>::fold_jsx_element_childs(visitor, self)
107109    }
107110
107111    #[inline]
107112    fn fold_children_with(self, visitor: &mut V) -> Self {
107113        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107114            <JSXElementChild as FoldWith<V>>::fold_with(item, visitor)
107115        })
107116    }
107117}
107118impl<V: ?Sized + Fold> FoldWith<V> for Vec<ModuleItem> {
107119    #[doc = "Calls [Fold`::fold_module_items`] with `self`. (Extra impl)"]
107120    #[inline]
107121    fn fold_with(self, visitor: &mut V) -> Self {
107122        <V as Fold>::fold_module_items(visitor, self)
107123    }
107124
107125    #[inline]
107126    fn fold_children_with(self, visitor: &mut V) -> Self {
107127        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107128            <ModuleItem as FoldWith<V>>::fold_with(item, visitor)
107129        })
107130    }
107131}
107132impl<V: ?Sized + Fold> FoldWith<V> for Vec<ObjectPatProp> {
107133    #[doc = "Calls [Fold`::fold_object_pat_props`] with `self`. (Extra impl)"]
107134    #[inline]
107135    fn fold_with(self, visitor: &mut V) -> Self {
107136        <V as Fold>::fold_object_pat_props(visitor, self)
107137    }
107138
107139    #[inline]
107140    fn fold_children_with(self, visitor: &mut V) -> Self {
107141        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107142            <ObjectPatProp as FoldWith<V>>::fold_with(item, visitor)
107143        })
107144    }
107145}
107146impl<V: ?Sized + Fold> FoldWith<V> for Option<Accessibility> {
107147    #[doc = "Calls [Fold`::fold_opt_accessibility`] with `self`. (Extra impl)"]
107148    #[inline]
107149    fn fold_with(self, visitor: &mut V) -> Self {
107150        <V as Fold>::fold_opt_accessibility(visitor, self)
107151    }
107152
107153    #[inline]
107154    fn fold_children_with(self, visitor: &mut V) -> Self {
107155        self.map(|inner| <Accessibility as FoldWith<V>>::fold_with(inner, visitor))
107156    }
107157}
107158impl<V: ?Sized + Fold> FoldWith<V> for Option<swc_atoms::Atom> {
107159    #[doc = "Calls [Fold`::fold_opt_atom`] with `self`. (Extra impl)"]
107160    #[inline]
107161    fn fold_with(self, visitor: &mut V) -> Self {
107162        <V as Fold>::fold_opt_atom(visitor, self)
107163    }
107164
107165    #[inline]
107166    fn fold_children_with(self, visitor: &mut V) -> Self {
107167        self.map(|inner| <swc_atoms::Atom as FoldWith<V>>::fold_with(inner, visitor))
107168    }
107169}
107170impl<V: ?Sized + Fold> FoldWith<V> for Option<BlockStmt> {
107171    #[doc = "Calls [Fold`::fold_opt_block_stmt`] with `self`. (Extra impl)"]
107172    #[inline]
107173    fn fold_with(self, visitor: &mut V) -> Self {
107174        <V as Fold>::fold_opt_block_stmt(visitor, self)
107175    }
107176
107177    #[inline]
107178    fn fold_children_with(self, visitor: &mut V) -> Self {
107179        self.map(|inner| <BlockStmt as FoldWith<V>>::fold_with(inner, visitor))
107180    }
107181}
107182impl<V: ?Sized + Fold> FoldWith<V> for Option<CatchClause> {
107183    #[doc = "Calls [Fold`::fold_opt_catch_clause`] with `self`. (Extra impl)"]
107184    #[inline]
107185    fn fold_with(self, visitor: &mut V) -> Self {
107186        <V as Fold>::fold_opt_catch_clause(visitor, self)
107187    }
107188
107189    #[inline]
107190    fn fold_children_with(self, visitor: &mut V) -> Self {
107191        self.map(|inner| <CatchClause as FoldWith<V>>::fold_with(inner, visitor))
107192    }
107193}
107194impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<Expr>> {
107195    #[doc = "Calls [Fold`::fold_opt_expr`] with `self`. (Extra impl)"]
107196    #[inline]
107197    fn fold_with(self, visitor: &mut V) -> Self {
107198        <V as Fold>::fold_opt_expr(visitor, self)
107199    }
107200
107201    #[inline]
107202    fn fold_children_with(self, visitor: &mut V) -> Self {
107203        self.map(|inner| <Box<Expr> as FoldWith<V>>::fold_with(inner, visitor))
107204    }
107205}
107206impl<V: ?Sized + Fold> FoldWith<V> for Option<ExprOrSpread> {
107207    #[doc = "Calls [Fold`::fold_opt_expr_or_spread`] with `self`. (Extra impl)"]
107208    #[inline]
107209    fn fold_with(self, visitor: &mut V) -> Self {
107210        <V as Fold>::fold_opt_expr_or_spread(visitor, self)
107211    }
107212
107213    #[inline]
107214    fn fold_children_with(self, visitor: &mut V) -> Self {
107215        self.map(|inner| <ExprOrSpread as FoldWith<V>>::fold_with(inner, visitor))
107216    }
107217}
107218impl<V: ?Sized + Fold> FoldWith<V> for Option<Vec<ExprOrSpread>> {
107219    #[doc = "Calls [Fold`::fold_opt_expr_or_spreads`] with `self`. (Extra impl)"]
107220    #[inline]
107221    fn fold_with(self, visitor: &mut V) -> Self {
107222        <V as Fold>::fold_opt_expr_or_spreads(visitor, self)
107223    }
107224
107225    #[inline]
107226    fn fold_children_with(self, visitor: &mut V) -> Self {
107227        self.map(|inner| <Vec<ExprOrSpread> as FoldWith<V>>::fold_with(inner, visitor))
107228    }
107229}
107230impl<V: ?Sized + Fold> FoldWith<V> for Option<Ident> {
107231    #[doc = "Calls [Fold`::fold_opt_ident`] with `self`. (Extra impl)"]
107232    #[inline]
107233    fn fold_with(self, visitor: &mut V) -> Self {
107234        <V as Fold>::fold_opt_ident(visitor, self)
107235    }
107236
107237    #[inline]
107238    fn fold_children_with(self, visitor: &mut V) -> Self {
107239        self.map(|inner| <Ident as FoldWith<V>>::fold_with(inner, visitor))
107240    }
107241}
107242impl<V: ?Sized + Fold> FoldWith<V> for Option<JSXAttrValue> {
107243    #[doc = "Calls [Fold`::fold_opt_jsx_attr_value`] with `self`. (Extra impl)"]
107244    #[inline]
107245    fn fold_with(self, visitor: &mut V) -> Self {
107246        <V as Fold>::fold_opt_jsx_attr_value(visitor, self)
107247    }
107248
107249    #[inline]
107250    fn fold_children_with(self, visitor: &mut V) -> Self {
107251        self.map(|inner| <JSXAttrValue as FoldWith<V>>::fold_with(inner, visitor))
107252    }
107253}
107254impl<V: ?Sized + Fold> FoldWith<V> for Option<JSXClosingElement> {
107255    #[doc = "Calls [Fold`::fold_opt_jsx_closing_element`] with `self`. (Extra impl)"]
107256    #[inline]
107257    fn fold_with(self, visitor: &mut V) -> Self {
107258        <V as Fold>::fold_opt_jsx_closing_element(visitor, self)
107259    }
107260
107261    #[inline]
107262    fn fold_children_with(self, visitor: &mut V) -> Self {
107263        self.map(|inner| <JSXClosingElement as FoldWith<V>>::fold_with(inner, visitor))
107264    }
107265}
107266impl<V: ?Sized + Fold> FoldWith<V> for Option<ModuleExportName> {
107267    #[doc = "Calls [Fold`::fold_opt_module_export_name`] with `self`. (Extra impl)"]
107268    #[inline]
107269    fn fold_with(self, visitor: &mut V) -> Self {
107270        <V as Fold>::fold_opt_module_export_name(visitor, self)
107271    }
107272
107273    #[inline]
107274    fn fold_children_with(self, visitor: &mut V) -> Self {
107275        self.map(|inner| <ModuleExportName as FoldWith<V>>::fold_with(inner, visitor))
107276    }
107277}
107278impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<ObjectLit>> {
107279    #[doc = "Calls [Fold`::fold_opt_object_lit`] with `self`. (Extra impl)"]
107280    #[inline]
107281    fn fold_with(self, visitor: &mut V) -> Self {
107282        <V as Fold>::fold_opt_object_lit(visitor, self)
107283    }
107284
107285    #[inline]
107286    fn fold_children_with(self, visitor: &mut V) -> Self {
107287        self.map(|inner| <Box<ObjectLit> as FoldWith<V>>::fold_with(inner, visitor))
107288    }
107289}
107290impl<V: ?Sized + Fold> FoldWith<V> for Option<Pat> {
107291    #[doc = "Calls [Fold`::fold_opt_pat`] with `self`. (Extra impl)"]
107292    #[inline]
107293    fn fold_with(self, visitor: &mut V) -> Self {
107294        <V as Fold>::fold_opt_pat(visitor, self)
107295    }
107296
107297    #[inline]
107298    fn fold_children_with(self, visitor: &mut V) -> Self {
107299        self.map(|inner| <Pat as FoldWith<V>>::fold_with(inner, visitor))
107300    }
107301}
107302impl<V: ?Sized + Fold> FoldWith<V> for Option<swc_common::Span> {
107303    #[doc = "Calls [Fold`::fold_opt_span`] with `self`. (Extra impl)"]
107304    #[inline]
107305    fn fold_with(self, visitor: &mut V) -> Self {
107306        <V as Fold>::fold_opt_span(visitor, self)
107307    }
107308
107309    #[inline]
107310    fn fold_children_with(self, visitor: &mut V) -> Self {
107311        self.map(|inner| <swc_common::Span as FoldWith<V>>::fold_with(inner, visitor))
107312    }
107313}
107314impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<Stmt>> {
107315    #[doc = "Calls [Fold`::fold_opt_stmt`] with `self`. (Extra impl)"]
107316    #[inline]
107317    fn fold_with(self, visitor: &mut V) -> Self {
107318        <V as Fold>::fold_opt_stmt(visitor, self)
107319    }
107320
107321    #[inline]
107322    fn fold_children_with(self, visitor: &mut V) -> Self {
107323        self.map(|inner| <Box<Stmt> as FoldWith<V>>::fold_with(inner, visitor))
107324    }
107325}
107326impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<Str>> {
107327    #[doc = "Calls [Fold`::fold_opt_str`] with `self`. (Extra impl)"]
107328    #[inline]
107329    fn fold_with(self, visitor: &mut V) -> Self {
107330        <V as Fold>::fold_opt_str(visitor, self)
107331    }
107332
107333    #[inline]
107334    fn fold_children_with(self, visitor: &mut V) -> Self {
107335        self.map(|inner| <Box<Str> as FoldWith<V>>::fold_with(inner, visitor))
107336    }
107337}
107338impl<V: ?Sized + Fold> FoldWith<V> for Option<TruePlusMinus> {
107339    #[doc = "Calls [Fold`::fold_opt_true_plus_minus`] with `self`. (Extra impl)"]
107340    #[inline]
107341    fn fold_with(self, visitor: &mut V) -> Self {
107342        <V as Fold>::fold_opt_true_plus_minus(visitor, self)
107343    }
107344
107345    #[inline]
107346    fn fold_children_with(self, visitor: &mut V) -> Self {
107347        self.map(|inner| <TruePlusMinus as FoldWith<V>>::fold_with(inner, visitor))
107348    }
107349}
107350impl<V: ?Sized + Fold> FoldWith<V> for Option<TsEntityName> {
107351    #[doc = "Calls [Fold`::fold_opt_ts_entity_name`] with `self`. (Extra impl)"]
107352    #[inline]
107353    fn fold_with(self, visitor: &mut V) -> Self {
107354        <V as Fold>::fold_opt_ts_entity_name(visitor, self)
107355    }
107356
107357    #[inline]
107358    fn fold_children_with(self, visitor: &mut V) -> Self {
107359        self.map(|inner| <TsEntityName as FoldWith<V>>::fold_with(inner, visitor))
107360    }
107361}
107362impl<V: ?Sized + Fold> FoldWith<V> for Option<TsNamespaceBody> {
107363    #[doc = "Calls [Fold`::fold_opt_ts_namespace_body`] with `self`. (Extra impl)"]
107364    #[inline]
107365    fn fold_with(self, visitor: &mut V) -> Self {
107366        <V as Fold>::fold_opt_ts_namespace_body(visitor, self)
107367    }
107368
107369    #[inline]
107370    fn fold_children_with(self, visitor: &mut V) -> Self {
107371        self.map(|inner| <TsNamespaceBody as FoldWith<V>>::fold_with(inner, visitor))
107372    }
107373}
107374impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsType>> {
107375    #[doc = "Calls [Fold`::fold_opt_ts_type`] with `self`. (Extra impl)"]
107376    #[inline]
107377    fn fold_with(self, visitor: &mut V) -> Self {
107378        <V as Fold>::fold_opt_ts_type(visitor, self)
107379    }
107380
107381    #[inline]
107382    fn fold_children_with(self, visitor: &mut V) -> Self {
107383        self.map(|inner| <Box<TsType> as FoldWith<V>>::fold_with(inner, visitor))
107384    }
107385}
107386impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsTypeAnn>> {
107387    #[doc = "Calls [Fold`::fold_opt_ts_type_ann`] with `self`. (Extra impl)"]
107388    #[inline]
107389    fn fold_with(self, visitor: &mut V) -> Self {
107390        <V as Fold>::fold_opt_ts_type_ann(visitor, self)
107391    }
107392
107393    #[inline]
107394    fn fold_children_with(self, visitor: &mut V) -> Self {
107395        self.map(|inner| <Box<TsTypeAnn> as FoldWith<V>>::fold_with(inner, visitor))
107396    }
107397}
107398impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsTypeParamDecl>> {
107399    #[doc = "Calls [Fold`::fold_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
107400    #[inline]
107401    fn fold_with(self, visitor: &mut V) -> Self {
107402        <V as Fold>::fold_opt_ts_type_param_decl(visitor, self)
107403    }
107404
107405    #[inline]
107406    fn fold_children_with(self, visitor: &mut V) -> Self {
107407        self.map(|inner| <Box<TsTypeParamDecl> as FoldWith<V>>::fold_with(inner, visitor))
107408    }
107409}
107410impl<V: ?Sized + Fold> FoldWith<V> for Option<Box<TsTypeParamInstantiation>> {
107411    #[doc = "Calls [Fold`::fold_opt_ts_type_param_instantiation`] with `self`. (Extra impl)"]
107412    #[inline]
107413    fn fold_with(self, visitor: &mut V) -> Self {
107414        <V as Fold>::fold_opt_ts_type_param_instantiation(visitor, self)
107415    }
107416
107417    #[inline]
107418    fn fold_children_with(self, visitor: &mut V) -> Self {
107419        self.map(|inner| <Box<TsTypeParamInstantiation> as FoldWith<V>>::fold_with(inner, visitor))
107420    }
107421}
107422impl<V: ?Sized + Fold> FoldWith<V> for Option<VarDeclOrExpr> {
107423    #[doc = "Calls [Fold`::fold_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
107424    #[inline]
107425    fn fold_with(self, visitor: &mut V) -> Self {
107426        <V as Fold>::fold_opt_var_decl_or_expr(visitor, self)
107427    }
107428
107429    #[inline]
107430    fn fold_children_with(self, visitor: &mut V) -> Self {
107431        self.map(|inner| <VarDeclOrExpr as FoldWith<V>>::fold_with(inner, visitor))
107432    }
107433}
107434impl<V: ?Sized + Fold> FoldWith<V> for Vec<Option<ExprOrSpread>> {
107435    #[doc = "Calls [Fold`::fold_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
107436    #[inline]
107437    fn fold_with(self, visitor: &mut V) -> Self {
107438        <V as Fold>::fold_opt_vec_expr_or_spreads(visitor, self)
107439    }
107440
107441    #[inline]
107442    fn fold_children_with(self, visitor: &mut V) -> Self {
107443        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107444            <Option<ExprOrSpread> as FoldWith<V>>::fold_with(item, visitor)
107445        })
107446    }
107447}
107448impl<V: ?Sized + Fold> FoldWith<V> for Vec<Option<Pat>> {
107449    #[doc = "Calls [Fold`::fold_opt_vec_pats`] with `self`. (Extra impl)"]
107450    #[inline]
107451    fn fold_with(self, visitor: &mut V) -> Self {
107452        <V as Fold>::fold_opt_vec_pats(visitor, self)
107453    }
107454
107455    #[inline]
107456    fn fold_children_with(self, visitor: &mut V) -> Self {
107457        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107458            <Option<Pat> as FoldWith<V>>::fold_with(item, visitor)
107459        })
107460    }
107461}
107462impl<V: ?Sized + Fold> FoldWith<V> for Vec<ParamOrTsParamProp> {
107463    #[doc = "Calls [Fold`::fold_param_or_ts_param_props`] with `self`. (Extra impl)"]
107464    #[inline]
107465    fn fold_with(self, visitor: &mut V) -> Self {
107466        <V as Fold>::fold_param_or_ts_param_props(visitor, self)
107467    }
107468
107469    #[inline]
107470    fn fold_children_with(self, visitor: &mut V) -> Self {
107471        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107472            <ParamOrTsParamProp as FoldWith<V>>::fold_with(item, visitor)
107473        })
107474    }
107475}
107476impl<V: ?Sized + Fold> FoldWith<V> for Vec<Param> {
107477    #[doc = "Calls [Fold`::fold_params`] with `self`. (Extra impl)"]
107478    #[inline]
107479    fn fold_with(self, visitor: &mut V) -> Self {
107480        <V as Fold>::fold_params(visitor, self)
107481    }
107482
107483    #[inline]
107484    fn fold_children_with(self, visitor: &mut V) -> Self {
107485        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107486            <Param as FoldWith<V>>::fold_with(item, visitor)
107487        })
107488    }
107489}
107490impl<V: ?Sized + Fold> FoldWith<V> for Vec<Pat> {
107491    #[doc = "Calls [Fold`::fold_pats`] with `self`. (Extra impl)"]
107492    #[inline]
107493    fn fold_with(self, visitor: &mut V) -> Self {
107494        <V as Fold>::fold_pats(visitor, self)
107495    }
107496
107497    #[inline]
107498    fn fold_children_with(self, visitor: &mut V) -> Self {
107499        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107500            <Pat as FoldWith<V>>::fold_with(item, visitor)
107501        })
107502    }
107503}
107504impl<V: ?Sized + Fold> FoldWith<V> for Vec<PropOrSpread> {
107505    #[doc = "Calls [Fold`::fold_prop_or_spreads`] with `self`. (Extra impl)"]
107506    #[inline]
107507    fn fold_with(self, visitor: &mut V) -> Self {
107508        <V as Fold>::fold_prop_or_spreads(visitor, self)
107509    }
107510
107511    #[inline]
107512    fn fold_children_with(self, visitor: &mut V) -> Self {
107513        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107514            <PropOrSpread as FoldWith<V>>::fold_with(item, visitor)
107515        })
107516    }
107517}
107518impl<V: ?Sized + Fold> FoldWith<V> for swc_common::Span {
107519    #[doc = "Calls [Fold`::fold_span`] with `self`. (Extra impl)"]
107520    #[inline]
107521    fn fold_with(self, visitor: &mut V) -> Self {
107522        <V as Fold>::fold_span(visitor, self)
107523    }
107524
107525    #[inline]
107526    fn fold_children_with(self, visitor: &mut V) -> Self {
107527        self
107528    }
107529}
107530impl<V: ?Sized + Fold> FoldWith<V> for Vec<Stmt> {
107531    #[doc = "Calls [Fold`::fold_stmts`] with `self`. (Extra impl)"]
107532    #[inline]
107533    fn fold_with(self, visitor: &mut V) -> Self {
107534        <V as Fold>::fold_stmts(visitor, self)
107535    }
107536
107537    #[inline]
107538    fn fold_children_with(self, visitor: &mut V) -> Self {
107539        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107540            <Stmt as FoldWith<V>>::fold_with(item, visitor)
107541        })
107542    }
107543}
107544impl<V: ?Sized + Fold> FoldWith<V> for Vec<SwitchCase> {
107545    #[doc = "Calls [Fold`::fold_switch_cases`] with `self`. (Extra impl)"]
107546    #[inline]
107547    fn fold_with(self, visitor: &mut V) -> Self {
107548        <V as Fold>::fold_switch_cases(visitor, self)
107549    }
107550
107551    #[inline]
107552    fn fold_children_with(self, visitor: &mut V) -> Self {
107553        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107554            <SwitchCase as FoldWith<V>>::fold_with(item, visitor)
107555        })
107556    }
107557}
107558impl<V: ?Sized + Fold> FoldWith<V> for swc_common::SyntaxContext {
107559    #[doc = "Calls [Fold`::fold_syntax_context`] with `self`. (Extra impl)"]
107560    #[inline]
107561    fn fold_with(self, visitor: &mut V) -> Self {
107562        <V as Fold>::fold_syntax_context(visitor, self)
107563    }
107564
107565    #[inline]
107566    fn fold_children_with(self, visitor: &mut V) -> Self {
107567        self
107568    }
107569}
107570impl<V: ?Sized + Fold> FoldWith<V> for Vec<TplElement> {
107571    #[doc = "Calls [Fold`::fold_tpl_elements`] with `self`. (Extra impl)"]
107572    #[inline]
107573    fn fold_with(self, visitor: &mut V) -> Self {
107574        <V as Fold>::fold_tpl_elements(visitor, self)
107575    }
107576
107577    #[inline]
107578    fn fold_children_with(self, visitor: &mut V) -> Self {
107579        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107580            <TplElement as FoldWith<V>>::fold_with(item, visitor)
107581        })
107582    }
107583}
107584impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsEnumMember> {
107585    #[doc = "Calls [Fold`::fold_ts_enum_members`] with `self`. (Extra impl)"]
107586    #[inline]
107587    fn fold_with(self, visitor: &mut V) -> Self {
107588        <V as Fold>::fold_ts_enum_members(visitor, self)
107589    }
107590
107591    #[inline]
107592    fn fold_children_with(self, visitor: &mut V) -> Self {
107593        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107594            <TsEnumMember as FoldWith<V>>::fold_with(item, visitor)
107595        })
107596    }
107597}
107598impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsExprWithTypeArgs> {
107599    #[doc = "Calls [Fold`::fold_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
107600    #[inline]
107601    fn fold_with(self, visitor: &mut V) -> Self {
107602        <V as Fold>::fold_ts_expr_with_type_argss(visitor, self)
107603    }
107604
107605    #[inline]
107606    fn fold_children_with(self, visitor: &mut V) -> Self {
107607        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107608            <TsExprWithTypeArgs as FoldWith<V>>::fold_with(item, visitor)
107609        })
107610    }
107611}
107612impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsFnParam> {
107613    #[doc = "Calls [Fold`::fold_ts_fn_params`] with `self`. (Extra impl)"]
107614    #[inline]
107615    fn fold_with(self, visitor: &mut V) -> Self {
107616        <V as Fold>::fold_ts_fn_params(visitor, self)
107617    }
107618
107619    #[inline]
107620    fn fold_children_with(self, visitor: &mut V) -> Self {
107621        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107622            <TsFnParam as FoldWith<V>>::fold_with(item, visitor)
107623        })
107624    }
107625}
107626impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsTupleElement> {
107627    #[doc = "Calls [Fold`::fold_ts_tuple_elements`] with `self`. (Extra impl)"]
107628    #[inline]
107629    fn fold_with(self, visitor: &mut V) -> Self {
107630        <V as Fold>::fold_ts_tuple_elements(visitor, self)
107631    }
107632
107633    #[inline]
107634    fn fold_children_with(self, visitor: &mut V) -> Self {
107635        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107636            <TsTupleElement as FoldWith<V>>::fold_with(item, visitor)
107637        })
107638    }
107639}
107640impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsTypeElement> {
107641    #[doc = "Calls [Fold`::fold_ts_type_elements`] with `self`. (Extra impl)"]
107642    #[inline]
107643    fn fold_with(self, visitor: &mut V) -> Self {
107644        <V as Fold>::fold_ts_type_elements(visitor, self)
107645    }
107646
107647    #[inline]
107648    fn fold_children_with(self, visitor: &mut V) -> Self {
107649        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107650            <TsTypeElement as FoldWith<V>>::fold_with(item, visitor)
107651        })
107652    }
107653}
107654impl<V: ?Sized + Fold> FoldWith<V> for Vec<TsTypeParam> {
107655    #[doc = "Calls [Fold`::fold_ts_type_params`] with `self`. (Extra impl)"]
107656    #[inline]
107657    fn fold_with(self, visitor: &mut V) -> Self {
107658        <V as Fold>::fold_ts_type_params(visitor, self)
107659    }
107660
107661    #[inline]
107662    fn fold_children_with(self, visitor: &mut V) -> Self {
107663        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107664            <TsTypeParam as FoldWith<V>>::fold_with(item, visitor)
107665        })
107666    }
107667}
107668impl<V: ?Sized + Fold> FoldWith<V> for Vec<Box<TsType>> {
107669    #[doc = "Calls [Fold`::fold_ts_types`] with `self`. (Extra impl)"]
107670    #[inline]
107671    fn fold_with(self, visitor: &mut V) -> Self {
107672        <V as Fold>::fold_ts_types(visitor, self)
107673    }
107674
107675    #[inline]
107676    fn fold_children_with(self, visitor: &mut V) -> Self {
107677        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107678            <Box<TsType> as FoldWith<V>>::fold_with(item, visitor)
107679        })
107680    }
107681}
107682impl<V: ?Sized + Fold> FoldWith<V> for Vec<VarDeclarator> {
107683    #[doc = "Calls [Fold`::fold_var_declarators`] with `self`. (Extra impl)"]
107684    #[inline]
107685    fn fold_with(self, visitor: &mut V) -> Self {
107686        <V as Fold>::fold_var_declarators(visitor, self)
107687    }
107688
107689    #[inline]
107690    fn fold_children_with(self, visitor: &mut V) -> Self {
107691        swc_visit::util::move_map::MoveMap::move_map(self, |item| {
107692            <VarDeclarator as FoldWith<V>>::fold_with(item, visitor)
107693        })
107694    }
107695}
107696impl<V, T> FoldWith<V> for std::boxed::Box<T>
107697where
107698    V: ?Sized + Fold,
107699    T: FoldWith<V>,
107700{
107701    #[inline]
107702    fn fold_with(self, visitor: &mut V) -> Self {
107703        swc_visit::util::map::Map::map(self, |inner| <T as FoldWith<V>>::fold_with(inner, visitor))
107704    }
107705
107706    #[inline]
107707    fn fold_children_with(self, visitor: &mut V) -> Self {
107708        swc_visit::util::map::Map::map(self, |inner| {
107709            <T as FoldWith<V>>::fold_children_with(inner, visitor)
107710        })
107711    }
107712}
107713#[doc = r" A visitor trait for traversing the AST."]
107714#[cfg(any(docsrs, feature = "path"))]
107715#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
107716pub trait FoldAstPath {
107717    #[doc = "Visit a node of type `Accessibility`.\n\nBy default, this method calls \
107718             [`Accessibility::fold_children_with_ast_path`]. If you want to recurse, you need to \
107719             call it manually."]
107720    #[inline]
107721    fn fold_accessibility(
107722        &mut self,
107723        node: Accessibility,
107724        __ast_path: &mut AstKindPath,
107725    ) -> Accessibility {
107726        <Accessibility as FoldWithAstPath<Self>>::fold_children_with_ast_path(
107727            node, self, __ast_path,
107728        )
107729    }
107730    #[doc = "Visit a node of type `ArrayLit`.\n\nBy default, this method calls \
107731             [`ArrayLit::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107732             it manually."]
107733    #[inline]
107734    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
107735        <ArrayLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107736    }
107737    #[doc = "Visit a node of type `ArrayPat`.\n\nBy default, this method calls \
107738             [`ArrayPat::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107739             it manually."]
107740    #[inline]
107741    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
107742        <ArrayPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107743    }
107744    #[doc = "Visit a node of type `ArrowExpr`.\n\nBy default, this method calls \
107745             [`ArrowExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107746             it manually."]
107747    #[inline]
107748    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
107749        <ArrowExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107750    }
107751    #[doc = "Visit a node of type `AssignExpr`.\n\nBy default, this method calls \
107752             [`AssignExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107753             it manually."]
107754    #[inline]
107755    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
107756        <AssignExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107757    }
107758    #[doc = "Visit a node of type `AssignOp`.\n\nBy default, this method calls \
107759             [`AssignOp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107760             it manually."]
107761    #[inline]
107762    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
107763        <AssignOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107764    }
107765    #[doc = "Visit a node of type `AssignPat`.\n\nBy default, this method calls \
107766             [`AssignPat::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107767             it manually."]
107768    #[inline]
107769    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
107770        <AssignPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107771    }
107772    #[doc = "Visit a node of type `AssignPatProp`.\n\nBy default, this method calls \
107773             [`AssignPatProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
107774             call it manually."]
107775    #[inline]
107776    fn fold_assign_pat_prop(
107777        &mut self,
107778        node: AssignPatProp,
107779        __ast_path: &mut AstKindPath,
107780    ) -> AssignPatProp {
107781        <AssignPatProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
107782            node, self, __ast_path,
107783        )
107784    }
107785    #[doc = "Visit a node of type `AssignProp`.\n\nBy default, this method calls \
107786             [`AssignProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107787             it manually."]
107788    #[inline]
107789    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
107790        <AssignProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107791    }
107792    #[doc = "Visit a node of type `AssignTarget`.\n\nBy default, this method calls \
107793             [`AssignTarget::fold_children_with_ast_path`]. If you want to recurse, you need to \
107794             call it manually."]
107795    #[inline]
107796    fn fold_assign_target(
107797        &mut self,
107798        node: AssignTarget,
107799        __ast_path: &mut AstKindPath,
107800    ) -> AssignTarget {
107801        <AssignTarget as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107802    }
107803    #[doc = "Visit a node of type `AssignTargetPat`.\n\nBy default, this method calls \
107804             [`AssignTargetPat::fold_children_with_ast_path`]. If you want to recurse, you need to \
107805             call it manually."]
107806    #[inline]
107807    fn fold_assign_target_pat(
107808        &mut self,
107809        node: AssignTargetPat,
107810        __ast_path: &mut AstKindPath,
107811    ) -> AssignTargetPat {
107812        <AssignTargetPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(
107813            node, self, __ast_path,
107814        )
107815    }
107816    #[doc = "Visit a node of type `swc_atoms :: Atom`.\n\nBy default, this method calls \
107817             [`swc_atoms :: Atom::fold_children_with_ast_path`]. If you want to recurse, you need \
107818             to call it manually."]
107819    #[inline]
107820    fn fold_atom(
107821        &mut self,
107822        node: swc_atoms::Atom,
107823        __ast_path: &mut AstKindPath,
107824    ) -> swc_atoms::Atom {
107825        <swc_atoms::Atom as FoldWithAstPath<Self>>::fold_children_with_ast_path(
107826            node, self, __ast_path,
107827        )
107828    }
107829    #[doc = "Visit a node of type `AutoAccessor`.\n\nBy default, this method calls \
107830             [`AutoAccessor::fold_children_with_ast_path`]. If you want to recurse, you need to \
107831             call it manually."]
107832    #[inline]
107833    fn fold_auto_accessor(
107834        &mut self,
107835        node: AutoAccessor,
107836        __ast_path: &mut AstKindPath,
107837    ) -> AutoAccessor {
107838        <AutoAccessor as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107839    }
107840    #[doc = "Visit a node of type `AwaitExpr`.\n\nBy default, this method calls \
107841             [`AwaitExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107842             it manually."]
107843    #[inline]
107844    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
107845        <AwaitExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107846    }
107847    #[doc = "Visit a node of type `BigInt`.\n\nBy default, this method calls \
107848             [`BigInt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
107849             manually."]
107850    #[inline]
107851    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
107852        <BigInt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107853    }
107854    #[doc = "Visit a node of type `BigIntValue`.\n\nBy default, this method calls \
107855             [`BigIntValue::fold_children_with_ast_path`]. If you want to recurse, you need to \
107856             call it manually."]
107857    #[inline]
107858    fn fold_big_int_value(
107859        &mut self,
107860        node: BigIntValue,
107861        __ast_path: &mut AstKindPath,
107862    ) -> BigIntValue {
107863        <BigIntValue as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107864    }
107865    #[doc = "Visit a node of type `BinExpr`.\n\nBy default, this method calls \
107866             [`BinExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
107867             manually."]
107868    #[inline]
107869    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
107870        <BinExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107871    }
107872    #[doc = "Visit a node of type `BinaryOp`.\n\nBy default, this method calls \
107873             [`BinaryOp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107874             it manually."]
107875    #[inline]
107876    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
107877        <BinaryOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107878    }
107879    #[doc = "Visit a node of type `BindingIdent`.\n\nBy default, this method calls \
107880             [`BindingIdent::fold_children_with_ast_path`]. If you want to recurse, you need to \
107881             call it manually."]
107882    #[inline]
107883    fn fold_binding_ident(
107884        &mut self,
107885        node: BindingIdent,
107886        __ast_path: &mut AstKindPath,
107887    ) -> BindingIdent {
107888        <BindingIdent as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107889    }
107890    #[doc = "Visit a node of type `BlockStmt`.\n\nBy default, this method calls \
107891             [`BlockStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107892             it manually."]
107893    #[inline]
107894    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
107895        <BlockStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107896    }
107897    #[doc = "Visit a node of type `BlockStmtOrExpr`.\n\nBy default, this method calls \
107898             [`BlockStmtOrExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
107899             call it manually."]
107900    #[inline]
107901    fn fold_block_stmt_or_expr(
107902        &mut self,
107903        node: BlockStmtOrExpr,
107904        __ast_path: &mut AstKindPath,
107905    ) -> BlockStmtOrExpr {
107906        <BlockStmtOrExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
107907            node, self, __ast_path,
107908        )
107909    }
107910    #[doc = "Visit a node of type `Bool`.\n\nBy default, this method calls \
107911             [`Bool::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
107912             manually."]
107913    #[inline]
107914    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
107915        <Bool as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107916    }
107917    #[doc = "Visit a node of type `BreakStmt`.\n\nBy default, this method calls \
107918             [`BreakStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107919             it manually."]
107920    #[inline]
107921    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
107922        <BreakStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107923    }
107924    #[doc = "Visit a node of type `CallExpr`.\n\nBy default, this method calls \
107925             [`CallExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107926             it manually."]
107927    #[inline]
107928    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
107929        <CallExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107930    }
107931    #[doc = "Visit a node of type `Callee`.\n\nBy default, this method calls \
107932             [`Callee::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
107933             manually."]
107934    #[inline]
107935    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
107936        <Callee as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107937    }
107938    #[doc = "Visit a node of type `CatchClause`.\n\nBy default, this method calls \
107939             [`CatchClause::fold_children_with_ast_path`]. If you want to recurse, you need to \
107940             call it manually."]
107941    #[inline]
107942    fn fold_catch_clause(
107943        &mut self,
107944        node: CatchClause,
107945        __ast_path: &mut AstKindPath,
107946    ) -> CatchClause {
107947        <CatchClause as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107948    }
107949    #[doc = "Visit a node of type `Class`.\n\nBy default, this method calls \
107950             [`Class::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
107951             manually."]
107952    #[inline]
107953    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
107954        <Class as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107955    }
107956    #[doc = "Visit a node of type `ClassDecl`.\n\nBy default, this method calls \
107957             [`ClassDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107958             it manually."]
107959    #[inline]
107960    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
107961        <ClassDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107962    }
107963    #[doc = "Visit a node of type `ClassExpr`.\n\nBy default, this method calls \
107964             [`ClassExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
107965             it manually."]
107966    #[inline]
107967    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
107968        <ClassExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107969    }
107970    #[doc = "Visit a node of type `ClassMember`.\n\nBy default, this method calls \
107971             [`ClassMember::fold_children_with_ast_path`]. If you want to recurse, you need to \
107972             call it manually."]
107973    #[inline]
107974    fn fold_class_member(
107975        &mut self,
107976        node: ClassMember,
107977        __ast_path: &mut AstKindPath,
107978    ) -> ClassMember {
107979        <ClassMember as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
107980    }
107981    #[doc = "Visit a node of type `Vec < ClassMember >`.\n\nBy default, this method calls [`Vec < \
107982             ClassMember >::fold_children_with_ast_path`]. If you want to recurse, you need to \
107983             call it manually."]
107984    #[inline]
107985    fn fold_class_members(
107986        &mut self,
107987        node: Vec<ClassMember>,
107988        __ast_path: &mut AstKindPath,
107989    ) -> Vec<ClassMember> {
107990        <Vec<ClassMember> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
107991            node, self, __ast_path,
107992        )
107993    }
107994    #[doc = "Visit a node of type `ClassMethod`.\n\nBy default, this method calls \
107995             [`ClassMethod::fold_children_with_ast_path`]. If you want to recurse, you need to \
107996             call it manually."]
107997    #[inline]
107998    fn fold_class_method(
107999        &mut self,
108000        node: ClassMethod,
108001        __ast_path: &mut AstKindPath,
108002    ) -> ClassMethod {
108003        <ClassMethod as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108004    }
108005    #[doc = "Visit a node of type `ClassProp`.\n\nBy default, this method calls \
108006             [`ClassProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108007             it manually."]
108008    #[inline]
108009    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
108010        <ClassProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108011    }
108012    #[doc = "Visit a node of type `ComputedPropName`.\n\nBy default, this method calls \
108013             [`ComputedPropName::fold_children_with_ast_path`]. If you want to recurse, you need \
108014             to call it manually."]
108015    #[inline]
108016    fn fold_computed_prop_name(
108017        &mut self,
108018        node: ComputedPropName,
108019        __ast_path: &mut AstKindPath,
108020    ) -> ComputedPropName {
108021        <ComputedPropName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108022            node, self, __ast_path,
108023        )
108024    }
108025    #[doc = "Visit a node of type `CondExpr`.\n\nBy default, this method calls \
108026             [`CondExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108027             it manually."]
108028    #[inline]
108029    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
108030        <CondExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108031    }
108032    #[doc = "Visit a node of type `Constructor`.\n\nBy default, this method calls \
108033             [`Constructor::fold_children_with_ast_path`]. If you want to recurse, you need to \
108034             call it manually."]
108035    #[inline]
108036    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
108037        <Constructor as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108038    }
108039    #[doc = "Visit a node of type `ContinueStmt`.\n\nBy default, this method calls \
108040             [`ContinueStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108041             call it manually."]
108042    #[inline]
108043    fn fold_continue_stmt(
108044        &mut self,
108045        node: ContinueStmt,
108046        __ast_path: &mut AstKindPath,
108047    ) -> ContinueStmt {
108048        <ContinueStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108049    }
108050    #[doc = "Visit a node of type `DebuggerStmt`.\n\nBy default, this method calls \
108051             [`DebuggerStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108052             call it manually."]
108053    #[inline]
108054    fn fold_debugger_stmt(
108055        &mut self,
108056        node: DebuggerStmt,
108057        __ast_path: &mut AstKindPath,
108058    ) -> DebuggerStmt {
108059        <DebuggerStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108060    }
108061    #[doc = "Visit a node of type `Decl`.\n\nBy default, this method calls \
108062             [`Decl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108063             manually."]
108064    #[inline]
108065    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
108066        <Decl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108067    }
108068    #[doc = "Visit a node of type `Decorator`.\n\nBy default, this method calls \
108069             [`Decorator::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108070             it manually."]
108071    #[inline]
108072    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
108073        <Decorator as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108074    }
108075    #[doc = "Visit a node of type `Vec < Decorator >`.\n\nBy default, this method calls [`Vec < \
108076             Decorator >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108077             it manually."]
108078    #[inline]
108079    fn fold_decorators(
108080        &mut self,
108081        node: Vec<Decorator>,
108082        __ast_path: &mut AstKindPath,
108083    ) -> Vec<Decorator> {
108084        <Vec<Decorator> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108085            node, self, __ast_path,
108086        )
108087    }
108088    #[doc = "Visit a node of type `DefaultDecl`.\n\nBy default, this method calls \
108089             [`DefaultDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
108090             call it manually."]
108091    #[inline]
108092    fn fold_default_decl(
108093        &mut self,
108094        node: DefaultDecl,
108095        __ast_path: &mut AstKindPath,
108096    ) -> DefaultDecl {
108097        <DefaultDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108098    }
108099    #[doc = "Visit a node of type `DoWhileStmt`.\n\nBy default, this method calls \
108100             [`DoWhileStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108101             call it manually."]
108102    #[inline]
108103    fn fold_do_while_stmt(
108104        &mut self,
108105        node: DoWhileStmt,
108106        __ast_path: &mut AstKindPath,
108107    ) -> DoWhileStmt {
108108        <DoWhileStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108109    }
108110    #[doc = "Visit a node of type `EmptyStmt`.\n\nBy default, this method calls \
108111             [`EmptyStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108112             it manually."]
108113    #[inline]
108114    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
108115        <EmptyStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108116    }
108117    #[doc = "Visit a node of type `ExportAll`.\n\nBy default, this method calls \
108118             [`ExportAll::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108119             it manually."]
108120    #[inline]
108121    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
108122        <ExportAll as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108123    }
108124    #[doc = "Visit a node of type `ExportDecl`.\n\nBy default, this method calls \
108125             [`ExportDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108126             it manually."]
108127    #[inline]
108128    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
108129        <ExportDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108130    }
108131    #[doc = "Visit a node of type `ExportDefaultDecl`.\n\nBy default, this method calls \
108132             [`ExportDefaultDecl::fold_children_with_ast_path`]. If you want to recurse, you need \
108133             to call it manually."]
108134    #[inline]
108135    fn fold_export_default_decl(
108136        &mut self,
108137        node: ExportDefaultDecl,
108138        __ast_path: &mut AstKindPath,
108139    ) -> ExportDefaultDecl {
108140        <ExportDefaultDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108141            node, self, __ast_path,
108142        )
108143    }
108144    #[doc = "Visit a node of type `ExportDefaultExpr`.\n\nBy default, this method calls \
108145             [`ExportDefaultExpr::fold_children_with_ast_path`]. If you want to recurse, you need \
108146             to call it manually."]
108147    #[inline]
108148    fn fold_export_default_expr(
108149        &mut self,
108150        node: ExportDefaultExpr,
108151        __ast_path: &mut AstKindPath,
108152    ) -> ExportDefaultExpr {
108153        <ExportDefaultExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108154            node, self, __ast_path,
108155        )
108156    }
108157    #[doc = "Visit a node of type `ExportDefaultSpecifier`.\n\nBy default, this method calls \
108158             [`ExportDefaultSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108159             need to call it manually."]
108160    #[inline]
108161    fn fold_export_default_specifier(
108162        &mut self,
108163        node: ExportDefaultSpecifier,
108164        __ast_path: &mut AstKindPath,
108165    ) -> ExportDefaultSpecifier {
108166        <ExportDefaultSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108167            node, self, __ast_path,
108168        )
108169    }
108170    #[doc = "Visit a node of type `ExportNamedSpecifier`.\n\nBy default, this method calls \
108171             [`ExportNamedSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108172             need to call it manually."]
108173    #[inline]
108174    fn fold_export_named_specifier(
108175        &mut self,
108176        node: ExportNamedSpecifier,
108177        __ast_path: &mut AstKindPath,
108178    ) -> ExportNamedSpecifier {
108179        <ExportNamedSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108180            node, self, __ast_path,
108181        )
108182    }
108183    #[doc = "Visit a node of type `ExportNamespaceSpecifier`.\n\nBy default, this method calls \
108184             [`ExportNamespaceSpecifier::fold_children_with_ast_path`]. If you want to recurse, \
108185             you need to call it manually."]
108186    #[inline]
108187    fn fold_export_namespace_specifier(
108188        &mut self,
108189        node: ExportNamespaceSpecifier,
108190        __ast_path: &mut AstKindPath,
108191    ) -> ExportNamespaceSpecifier {
108192        <ExportNamespaceSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108193            node, self, __ast_path,
108194        )
108195    }
108196    #[doc = "Visit a node of type `ExportSpecifier`.\n\nBy default, this method calls \
108197             [`ExportSpecifier::fold_children_with_ast_path`]. If you want to recurse, you need to \
108198             call it manually."]
108199    #[inline]
108200    fn fold_export_specifier(
108201        &mut self,
108202        node: ExportSpecifier,
108203        __ast_path: &mut AstKindPath,
108204    ) -> ExportSpecifier {
108205        <ExportSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108206            node, self, __ast_path,
108207        )
108208    }
108209    #[doc = "Visit a node of type `Vec < ExportSpecifier >`.\n\nBy default, this method calls \
108210             [`Vec < ExportSpecifier >::fold_children_with_ast_path`]. If you want to recurse, you \
108211             need to call it manually."]
108212    #[inline]
108213    fn fold_export_specifiers(
108214        &mut self,
108215        node: Vec<ExportSpecifier>,
108216        __ast_path: &mut AstKindPath,
108217    ) -> Vec<ExportSpecifier> {
108218        <Vec<ExportSpecifier> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108219            node, self, __ast_path,
108220        )
108221    }
108222    #[doc = "Visit a node of type `Expr`.\n\nBy default, this method calls \
108223             [`Expr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108224             manually."]
108225    #[inline]
108226    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
108227        <Expr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108228    }
108229    #[doc = "Visit a node of type `ExprOrSpread`.\n\nBy default, this method calls \
108230             [`ExprOrSpread::fold_children_with_ast_path`]. If you want to recurse, you need to \
108231             call it manually."]
108232    #[inline]
108233    fn fold_expr_or_spread(
108234        &mut self,
108235        node: ExprOrSpread,
108236        __ast_path: &mut AstKindPath,
108237    ) -> ExprOrSpread {
108238        <ExprOrSpread as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108239    }
108240    #[doc = "Visit a node of type `Vec < ExprOrSpread >`.\n\nBy default, this method calls [`Vec < \
108241             ExprOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you need to \
108242             call it manually."]
108243    #[inline]
108244    fn fold_expr_or_spreads(
108245        &mut self,
108246        node: Vec<ExprOrSpread>,
108247        __ast_path: &mut AstKindPath,
108248    ) -> Vec<ExprOrSpread> {
108249        <Vec<ExprOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108250            node, self, __ast_path,
108251        )
108252    }
108253    #[doc = "Visit a node of type `ExprStmt`.\n\nBy default, this method calls \
108254             [`ExprStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108255             it manually."]
108256    #[inline]
108257    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
108258        <ExprStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108259    }
108260    #[doc = "Visit a node of type `Vec < Box < Expr > >`.\n\nBy default, this method calls [`Vec < \
108261             Box < Expr > >::fold_children_with_ast_path`]. If you want to recurse, you need to \
108262             call it manually."]
108263    #[inline]
108264    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
108265        <Vec<Box<Expr>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108266            node, self, __ast_path,
108267        )
108268    }
108269    #[doc = "Visit a node of type `FnDecl`.\n\nBy default, this method calls \
108270             [`FnDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108271             manually."]
108272    #[inline]
108273    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
108274        <FnDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108275    }
108276    #[doc = "Visit a node of type `FnExpr`.\n\nBy default, this method calls \
108277             [`FnExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108278             manually."]
108279    #[inline]
108280    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
108281        <FnExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108282    }
108283    #[doc = "Visit a node of type `ForHead`.\n\nBy default, this method calls \
108284             [`ForHead::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108285             manually."]
108286    #[inline]
108287    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
108288        <ForHead as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108289    }
108290    #[doc = "Visit a node of type `ForInStmt`.\n\nBy default, this method calls \
108291             [`ForInStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108292             it manually."]
108293    #[inline]
108294    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
108295        <ForInStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108296    }
108297    #[doc = "Visit a node of type `ForOfStmt`.\n\nBy default, this method calls \
108298             [`ForOfStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108299             it manually."]
108300    #[inline]
108301    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
108302        <ForOfStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108303    }
108304    #[doc = "Visit a node of type `ForStmt`.\n\nBy default, this method calls \
108305             [`ForStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108306             manually."]
108307    #[inline]
108308    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
108309        <ForStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108310    }
108311    #[doc = "Visit a node of type `Function`.\n\nBy default, this method calls \
108312             [`Function::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108313             it manually."]
108314    #[inline]
108315    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
108316        <Function as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108317    }
108318    #[doc = "Visit a node of type `GetterProp`.\n\nBy default, this method calls \
108319             [`GetterProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108320             it manually."]
108321    #[inline]
108322    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
108323        <GetterProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108324    }
108325    #[doc = "Visit a node of type `Ident`.\n\nBy default, this method calls \
108326             [`Ident::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108327             manually."]
108328    #[inline]
108329    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
108330        <Ident as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108331    }
108332    #[doc = "Visit a node of type `IdentName`.\n\nBy default, this method calls \
108333             [`IdentName::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108334             it manually."]
108335    #[inline]
108336    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
108337        <IdentName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108338    }
108339    #[doc = "Visit a node of type `IfStmt`.\n\nBy default, this method calls \
108340             [`IfStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108341             manually."]
108342    #[inline]
108343    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
108344        <IfStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108345    }
108346    #[doc = "Visit a node of type `Import`.\n\nBy default, this method calls \
108347             [`Import::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108348             manually."]
108349    #[inline]
108350    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
108351        <Import as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108352    }
108353    #[doc = "Visit a node of type `ImportDecl`.\n\nBy default, this method calls \
108354             [`ImportDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108355             it manually."]
108356    #[inline]
108357    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
108358        <ImportDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108359    }
108360    #[doc = "Visit a node of type `ImportDefaultSpecifier`.\n\nBy default, this method calls \
108361             [`ImportDefaultSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108362             need to call it manually."]
108363    #[inline]
108364    fn fold_import_default_specifier(
108365        &mut self,
108366        node: ImportDefaultSpecifier,
108367        __ast_path: &mut AstKindPath,
108368    ) -> ImportDefaultSpecifier {
108369        <ImportDefaultSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108370            node, self, __ast_path,
108371        )
108372    }
108373    #[doc = "Visit a node of type `ImportNamedSpecifier`.\n\nBy default, this method calls \
108374             [`ImportNamedSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108375             need to call it manually."]
108376    #[inline]
108377    fn fold_import_named_specifier(
108378        &mut self,
108379        node: ImportNamedSpecifier,
108380        __ast_path: &mut AstKindPath,
108381    ) -> ImportNamedSpecifier {
108382        <ImportNamedSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108383            node, self, __ast_path,
108384        )
108385    }
108386    #[doc = "Visit a node of type `ImportPhase`.\n\nBy default, this method calls \
108387             [`ImportPhase::fold_children_with_ast_path`]. If you want to recurse, you need to \
108388             call it manually."]
108389    #[inline]
108390    fn fold_import_phase(
108391        &mut self,
108392        node: ImportPhase,
108393        __ast_path: &mut AstKindPath,
108394    ) -> ImportPhase {
108395        <ImportPhase as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108396    }
108397    #[doc = "Visit a node of type `ImportSpecifier`.\n\nBy default, this method calls \
108398             [`ImportSpecifier::fold_children_with_ast_path`]. If you want to recurse, you need to \
108399             call it manually."]
108400    #[inline]
108401    fn fold_import_specifier(
108402        &mut self,
108403        node: ImportSpecifier,
108404        __ast_path: &mut AstKindPath,
108405    ) -> ImportSpecifier {
108406        <ImportSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108407            node, self, __ast_path,
108408        )
108409    }
108410    #[doc = "Visit a node of type `Vec < ImportSpecifier >`.\n\nBy default, this method calls \
108411             [`Vec < ImportSpecifier >::fold_children_with_ast_path`]. If you want to recurse, you \
108412             need to call it manually."]
108413    #[inline]
108414    fn fold_import_specifiers(
108415        &mut self,
108416        node: Vec<ImportSpecifier>,
108417        __ast_path: &mut AstKindPath,
108418    ) -> Vec<ImportSpecifier> {
108419        <Vec<ImportSpecifier> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108420            node, self, __ast_path,
108421        )
108422    }
108423    #[doc = "Visit a node of type `ImportStarAsSpecifier`.\n\nBy default, this method calls \
108424             [`ImportStarAsSpecifier::fold_children_with_ast_path`]. If you want to recurse, you \
108425             need to call it manually."]
108426    #[inline]
108427    fn fold_import_star_as_specifier(
108428        &mut self,
108429        node: ImportStarAsSpecifier,
108430        __ast_path: &mut AstKindPath,
108431    ) -> ImportStarAsSpecifier {
108432        <ImportStarAsSpecifier as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108433            node, self, __ast_path,
108434        )
108435    }
108436    #[doc = "Visit a node of type `ImportWith`.\n\nBy default, this method calls \
108437             [`ImportWith::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108438             it manually."]
108439    #[inline]
108440    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
108441        <ImportWith as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108442    }
108443    #[doc = "Visit a node of type `ImportWithItem`.\n\nBy default, this method calls \
108444             [`ImportWithItem::fold_children_with_ast_path`]. If you want to recurse, you need to \
108445             call it manually."]
108446    #[inline]
108447    fn fold_import_with_item(
108448        &mut self,
108449        node: ImportWithItem,
108450        __ast_path: &mut AstKindPath,
108451    ) -> ImportWithItem {
108452        <ImportWithItem as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108453            node, self, __ast_path,
108454        )
108455    }
108456    #[doc = "Visit a node of type `Vec < ImportWithItem >`.\n\nBy default, this method calls [`Vec \
108457             < ImportWithItem >::fold_children_with_ast_path`]. If you want to recurse, you need \
108458             to call it manually."]
108459    #[inline]
108460    fn fold_import_with_items(
108461        &mut self,
108462        node: Vec<ImportWithItem>,
108463        __ast_path: &mut AstKindPath,
108464    ) -> Vec<ImportWithItem> {
108465        <Vec<ImportWithItem> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108466            node, self, __ast_path,
108467        )
108468    }
108469    #[doc = "Visit a node of type `Invalid`.\n\nBy default, this method calls \
108470             [`Invalid::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108471             manually."]
108472    #[inline]
108473    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
108474        <Invalid as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108475    }
108476    #[doc = "Visit a node of type `JSXAttr`.\n\nBy default, this method calls \
108477             [`JSXAttr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108478             manually."]
108479    #[inline]
108480    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
108481        <JSXAttr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108482    }
108483    #[doc = "Visit a node of type `JSXAttrName`.\n\nBy default, this method calls \
108484             [`JSXAttrName::fold_children_with_ast_path`]. If you want to recurse, you need to \
108485             call it manually."]
108486    #[inline]
108487    fn fold_jsx_attr_name(
108488        &mut self,
108489        node: JSXAttrName,
108490        __ast_path: &mut AstKindPath,
108491    ) -> JSXAttrName {
108492        <JSXAttrName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108493    }
108494    #[doc = "Visit a node of type `JSXAttrOrSpread`.\n\nBy default, this method calls \
108495             [`JSXAttrOrSpread::fold_children_with_ast_path`]. If you want to recurse, you need to \
108496             call it manually."]
108497    #[inline]
108498    fn fold_jsx_attr_or_spread(
108499        &mut self,
108500        node: JSXAttrOrSpread,
108501        __ast_path: &mut AstKindPath,
108502    ) -> JSXAttrOrSpread {
108503        <JSXAttrOrSpread as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108504            node, self, __ast_path,
108505        )
108506    }
108507    #[doc = "Visit a node of type `Vec < JSXAttrOrSpread >`.\n\nBy default, this method calls \
108508             [`Vec < JSXAttrOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you \
108509             need to call it manually."]
108510    #[inline]
108511    fn fold_jsx_attr_or_spreads(
108512        &mut self,
108513        node: Vec<JSXAttrOrSpread>,
108514        __ast_path: &mut AstKindPath,
108515    ) -> Vec<JSXAttrOrSpread> {
108516        <Vec<JSXAttrOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108517            node, self, __ast_path,
108518        )
108519    }
108520    #[doc = "Visit a node of type `JSXAttrValue`.\n\nBy default, this method calls \
108521             [`JSXAttrValue::fold_children_with_ast_path`]. If you want to recurse, you need to \
108522             call it manually."]
108523    #[inline]
108524    fn fold_jsx_attr_value(
108525        &mut self,
108526        node: JSXAttrValue,
108527        __ast_path: &mut AstKindPath,
108528    ) -> JSXAttrValue {
108529        <JSXAttrValue as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108530    }
108531    #[doc = "Visit a node of type `JSXClosingElement`.\n\nBy default, this method calls \
108532             [`JSXClosingElement::fold_children_with_ast_path`]. If you want to recurse, you need \
108533             to call it manually."]
108534    #[inline]
108535    fn fold_jsx_closing_element(
108536        &mut self,
108537        node: JSXClosingElement,
108538        __ast_path: &mut AstKindPath,
108539    ) -> JSXClosingElement {
108540        <JSXClosingElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108541            node, self, __ast_path,
108542        )
108543    }
108544    #[doc = "Visit a node of type `JSXClosingFragment`.\n\nBy default, this method calls \
108545             [`JSXClosingFragment::fold_children_with_ast_path`]. If you want to recurse, you need \
108546             to call it manually."]
108547    #[inline]
108548    fn fold_jsx_closing_fragment(
108549        &mut self,
108550        node: JSXClosingFragment,
108551        __ast_path: &mut AstKindPath,
108552    ) -> JSXClosingFragment {
108553        <JSXClosingFragment as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108554            node, self, __ast_path,
108555        )
108556    }
108557    #[doc = "Visit a node of type `JSXElement`.\n\nBy default, this method calls \
108558             [`JSXElement::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108559             it manually."]
108560    #[inline]
108561    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
108562        <JSXElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108563    }
108564    #[doc = "Visit a node of type `JSXElementChild`.\n\nBy default, this method calls \
108565             [`JSXElementChild::fold_children_with_ast_path`]. If you want to recurse, you need to \
108566             call it manually."]
108567    #[inline]
108568    fn fold_jsx_element_child(
108569        &mut self,
108570        node: JSXElementChild,
108571        __ast_path: &mut AstKindPath,
108572    ) -> JSXElementChild {
108573        <JSXElementChild as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108574            node, self, __ast_path,
108575        )
108576    }
108577    #[doc = "Visit a node of type `Vec < JSXElementChild >`.\n\nBy default, this method calls \
108578             [`Vec < JSXElementChild >::fold_children_with_ast_path`]. If you want to recurse, you \
108579             need to call it manually."]
108580    #[inline]
108581    fn fold_jsx_element_childs(
108582        &mut self,
108583        node: Vec<JSXElementChild>,
108584        __ast_path: &mut AstKindPath,
108585    ) -> Vec<JSXElementChild> {
108586        <Vec<JSXElementChild> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108587            node, self, __ast_path,
108588        )
108589    }
108590    #[doc = "Visit a node of type `JSXElementName`.\n\nBy default, this method calls \
108591             [`JSXElementName::fold_children_with_ast_path`]. If you want to recurse, you need to \
108592             call it manually."]
108593    #[inline]
108594    fn fold_jsx_element_name(
108595        &mut self,
108596        node: JSXElementName,
108597        __ast_path: &mut AstKindPath,
108598    ) -> JSXElementName {
108599        <JSXElementName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108600            node, self, __ast_path,
108601        )
108602    }
108603    #[doc = "Visit a node of type `JSXEmptyExpr`.\n\nBy default, this method calls \
108604             [`JSXEmptyExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
108605             call it manually."]
108606    #[inline]
108607    fn fold_jsx_empty_expr(
108608        &mut self,
108609        node: JSXEmptyExpr,
108610        __ast_path: &mut AstKindPath,
108611    ) -> JSXEmptyExpr {
108612        <JSXEmptyExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108613    }
108614    #[doc = "Visit a node of type `JSXExpr`.\n\nBy default, this method calls \
108615             [`JSXExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108616             manually."]
108617    #[inline]
108618    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
108619        <JSXExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108620    }
108621    #[doc = "Visit a node of type `JSXExprContainer`.\n\nBy default, this method calls \
108622             [`JSXExprContainer::fold_children_with_ast_path`]. If you want to recurse, you need \
108623             to call it manually."]
108624    #[inline]
108625    fn fold_jsx_expr_container(
108626        &mut self,
108627        node: JSXExprContainer,
108628        __ast_path: &mut AstKindPath,
108629    ) -> JSXExprContainer {
108630        <JSXExprContainer as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108631            node, self, __ast_path,
108632        )
108633    }
108634    #[doc = "Visit a node of type `JSXFragment`.\n\nBy default, this method calls \
108635             [`JSXFragment::fold_children_with_ast_path`]. If you want to recurse, you need to \
108636             call it manually."]
108637    #[inline]
108638    fn fold_jsx_fragment(
108639        &mut self,
108640        node: JSXFragment,
108641        __ast_path: &mut AstKindPath,
108642    ) -> JSXFragment {
108643        <JSXFragment as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108644    }
108645    #[doc = "Visit a node of type `JSXMemberExpr`.\n\nBy default, this method calls \
108646             [`JSXMemberExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
108647             call it manually."]
108648    #[inline]
108649    fn fold_jsx_member_expr(
108650        &mut self,
108651        node: JSXMemberExpr,
108652        __ast_path: &mut AstKindPath,
108653    ) -> JSXMemberExpr {
108654        <JSXMemberExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108655            node, self, __ast_path,
108656        )
108657    }
108658    #[doc = "Visit a node of type `JSXNamespacedName`.\n\nBy default, this method calls \
108659             [`JSXNamespacedName::fold_children_with_ast_path`]. If you want to recurse, you need \
108660             to call it manually."]
108661    #[inline]
108662    fn fold_jsx_namespaced_name(
108663        &mut self,
108664        node: JSXNamespacedName,
108665        __ast_path: &mut AstKindPath,
108666    ) -> JSXNamespacedName {
108667        <JSXNamespacedName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108668            node, self, __ast_path,
108669        )
108670    }
108671    #[doc = "Visit a node of type `JSXObject`.\n\nBy default, this method calls \
108672             [`JSXObject::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108673             it manually."]
108674    #[inline]
108675    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
108676        <JSXObject as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108677    }
108678    #[doc = "Visit a node of type `JSXOpeningElement`.\n\nBy default, this method calls \
108679             [`JSXOpeningElement::fold_children_with_ast_path`]. If you want to recurse, you need \
108680             to call it manually."]
108681    #[inline]
108682    fn fold_jsx_opening_element(
108683        &mut self,
108684        node: JSXOpeningElement,
108685        __ast_path: &mut AstKindPath,
108686    ) -> JSXOpeningElement {
108687        <JSXOpeningElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108688            node, self, __ast_path,
108689        )
108690    }
108691    #[doc = "Visit a node of type `JSXOpeningFragment`.\n\nBy default, this method calls \
108692             [`JSXOpeningFragment::fold_children_with_ast_path`]. If you want to recurse, you need \
108693             to call it manually."]
108694    #[inline]
108695    fn fold_jsx_opening_fragment(
108696        &mut self,
108697        node: JSXOpeningFragment,
108698        __ast_path: &mut AstKindPath,
108699    ) -> JSXOpeningFragment {
108700        <JSXOpeningFragment as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108701            node, self, __ast_path,
108702        )
108703    }
108704    #[doc = "Visit a node of type `JSXSpreadChild`.\n\nBy default, this method calls \
108705             [`JSXSpreadChild::fold_children_with_ast_path`]. If you want to recurse, you need to \
108706             call it manually."]
108707    #[inline]
108708    fn fold_jsx_spread_child(
108709        &mut self,
108710        node: JSXSpreadChild,
108711        __ast_path: &mut AstKindPath,
108712    ) -> JSXSpreadChild {
108713        <JSXSpreadChild as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108714            node, self, __ast_path,
108715        )
108716    }
108717    #[doc = "Visit a node of type `JSXText`.\n\nBy default, this method calls \
108718             [`JSXText::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108719             manually."]
108720    #[inline]
108721    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
108722        <JSXText as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108723    }
108724    #[doc = "Visit a node of type `Key`.\n\nBy default, this method calls \
108725             [`Key::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108726             manually."]
108727    #[inline]
108728    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
108729        <Key as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108730    }
108731    #[doc = "Visit a node of type `KeyValuePatProp`.\n\nBy default, this method calls \
108732             [`KeyValuePatProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
108733             call it manually."]
108734    #[inline]
108735    fn fold_key_value_pat_prop(
108736        &mut self,
108737        node: KeyValuePatProp,
108738        __ast_path: &mut AstKindPath,
108739    ) -> KeyValuePatProp {
108740        <KeyValuePatProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108741            node, self, __ast_path,
108742        )
108743    }
108744    #[doc = "Visit a node of type `KeyValueProp`.\n\nBy default, this method calls \
108745             [`KeyValueProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
108746             call it manually."]
108747    #[inline]
108748    fn fold_key_value_prop(
108749        &mut self,
108750        node: KeyValueProp,
108751        __ast_path: &mut AstKindPath,
108752    ) -> KeyValueProp {
108753        <KeyValueProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108754    }
108755    #[doc = "Visit a node of type `LabeledStmt`.\n\nBy default, this method calls \
108756             [`LabeledStmt::fold_children_with_ast_path`]. If you want to recurse, you need to \
108757             call it manually."]
108758    #[inline]
108759    fn fold_labeled_stmt(
108760        &mut self,
108761        node: LabeledStmt,
108762        __ast_path: &mut AstKindPath,
108763    ) -> LabeledStmt {
108764        <LabeledStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108765    }
108766    #[doc = "Visit a node of type `Lit`.\n\nBy default, this method calls \
108767             [`Lit::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108768             manually."]
108769    #[inline]
108770    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
108771        <Lit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108772    }
108773    #[doc = "Visit a node of type `MemberExpr`.\n\nBy default, this method calls \
108774             [`MemberExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108775             it manually."]
108776    #[inline]
108777    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
108778        <MemberExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108779    }
108780    #[doc = "Visit a node of type `MemberProp`.\n\nBy default, this method calls \
108781             [`MemberProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108782             it manually."]
108783    #[inline]
108784    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
108785        <MemberProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108786    }
108787    #[doc = "Visit a node of type `MetaPropExpr`.\n\nBy default, this method calls \
108788             [`MetaPropExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
108789             call it manually."]
108790    #[inline]
108791    fn fold_meta_prop_expr(
108792        &mut self,
108793        node: MetaPropExpr,
108794        __ast_path: &mut AstKindPath,
108795    ) -> MetaPropExpr {
108796        <MetaPropExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108797    }
108798    #[doc = "Visit a node of type `MetaPropKind`.\n\nBy default, this method calls \
108799             [`MetaPropKind::fold_children_with_ast_path`]. If you want to recurse, you need to \
108800             call it manually."]
108801    #[inline]
108802    fn fold_meta_prop_kind(
108803        &mut self,
108804        node: MetaPropKind,
108805        __ast_path: &mut AstKindPath,
108806    ) -> MetaPropKind {
108807        <MetaPropKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108808    }
108809    #[doc = "Visit a node of type `MethodKind`.\n\nBy default, this method calls \
108810             [`MethodKind::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108811             it manually."]
108812    #[inline]
108813    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
108814        <MethodKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108815    }
108816    #[doc = "Visit a node of type `MethodProp`.\n\nBy default, this method calls \
108817             [`MethodProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108818             it manually."]
108819    #[inline]
108820    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
108821        <MethodProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108822    }
108823    #[doc = "Visit a node of type `Module`.\n\nBy default, this method calls \
108824             [`Module::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108825             manually."]
108826    #[inline]
108827    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
108828        <Module as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108829    }
108830    #[doc = "Visit a node of type `ModuleDecl`.\n\nBy default, this method calls \
108831             [`ModuleDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108832             it manually."]
108833    #[inline]
108834    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
108835        <ModuleDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108836    }
108837    #[doc = "Visit a node of type `ModuleExportName`.\n\nBy default, this method calls \
108838             [`ModuleExportName::fold_children_with_ast_path`]. If you want to recurse, you need \
108839             to call it manually."]
108840    #[inline]
108841    fn fold_module_export_name(
108842        &mut self,
108843        node: ModuleExportName,
108844        __ast_path: &mut AstKindPath,
108845    ) -> ModuleExportName {
108846        <ModuleExportName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108847            node, self, __ast_path,
108848        )
108849    }
108850    #[doc = "Visit a node of type `ModuleItem`.\n\nBy default, this method calls \
108851             [`ModuleItem::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108852             it manually."]
108853    #[inline]
108854    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
108855        <ModuleItem as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108856    }
108857    #[doc = "Visit a node of type `Vec < ModuleItem >`.\n\nBy default, this method calls [`Vec < \
108858             ModuleItem >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108859             it manually."]
108860    #[inline]
108861    fn fold_module_items(
108862        &mut self,
108863        node: Vec<ModuleItem>,
108864        __ast_path: &mut AstKindPath,
108865    ) -> Vec<ModuleItem> {
108866        <Vec<ModuleItem> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108867            node, self, __ast_path,
108868        )
108869    }
108870    #[doc = "Visit a node of type `NamedExport`.\n\nBy default, this method calls \
108871             [`NamedExport::fold_children_with_ast_path`]. If you want to recurse, you need to \
108872             call it manually."]
108873    #[inline]
108874    fn fold_named_export(
108875        &mut self,
108876        node: NamedExport,
108877        __ast_path: &mut AstKindPath,
108878    ) -> NamedExport {
108879        <NamedExport as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108880    }
108881    #[doc = "Visit a node of type `NewExpr`.\n\nBy default, this method calls \
108882             [`NewExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108883             manually."]
108884    #[inline]
108885    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
108886        <NewExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108887    }
108888    #[doc = "Visit a node of type `Null`.\n\nBy default, this method calls \
108889             [`Null::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108890             manually."]
108891    #[inline]
108892    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
108893        <Null as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108894    }
108895    #[doc = "Visit a node of type `Number`.\n\nBy default, this method calls \
108896             [`Number::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108897             manually."]
108898    #[inline]
108899    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
108900        <Number as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108901    }
108902    #[doc = "Visit a node of type `ObjectLit`.\n\nBy default, this method calls \
108903             [`ObjectLit::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108904             it manually."]
108905    #[inline]
108906    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
108907        <ObjectLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108908    }
108909    #[doc = "Visit a node of type `ObjectPat`.\n\nBy default, this method calls \
108910             [`ObjectPat::fold_children_with_ast_path`]. If you want to recurse, you need to call \
108911             it manually."]
108912    #[inline]
108913    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
108914        <ObjectPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108915    }
108916    #[doc = "Visit a node of type `ObjectPatProp`.\n\nBy default, this method calls \
108917             [`ObjectPatProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
108918             call it manually."]
108919    #[inline]
108920    fn fold_object_pat_prop(
108921        &mut self,
108922        node: ObjectPatProp,
108923        __ast_path: &mut AstKindPath,
108924    ) -> ObjectPatProp {
108925        <ObjectPatProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108926            node, self, __ast_path,
108927        )
108928    }
108929    #[doc = "Visit a node of type `Vec < ObjectPatProp >`.\n\nBy default, this method calls [`Vec \
108930             < ObjectPatProp >::fold_children_with_ast_path`]. If you want to recurse, you need to \
108931             call it manually."]
108932    #[inline]
108933    fn fold_object_pat_props(
108934        &mut self,
108935        node: Vec<ObjectPatProp>,
108936        __ast_path: &mut AstKindPath,
108937    ) -> Vec<ObjectPatProp> {
108938        <Vec<ObjectPatProp> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108939            node, self, __ast_path,
108940        )
108941    }
108942    #[doc = "Visit a node of type `Option < Accessibility >`.\n\nBy default, this method calls \
108943             [`Option < Accessibility >::fold_children_with_ast_path`]. If you want to recurse, \
108944             you need to call it manually."]
108945    #[inline]
108946    fn fold_opt_accessibility(
108947        &mut self,
108948        node: Option<Accessibility>,
108949        __ast_path: &mut AstKindPath,
108950    ) -> Option<Accessibility> {
108951        <Option<Accessibility> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108952            node, self, __ast_path,
108953        )
108954    }
108955    #[doc = "Visit a node of type `Option < swc_atoms :: Atom >`.\n\nBy default, this method calls \
108956             [`Option < swc_atoms :: Atom >::fold_children_with_ast_path`]. If you want to \
108957             recurse, you need to call it manually."]
108958    #[inline]
108959    fn fold_opt_atom(
108960        &mut self,
108961        node: Option<swc_atoms::Atom>,
108962        __ast_path: &mut AstKindPath,
108963    ) -> Option<swc_atoms::Atom> {
108964        <Option<swc_atoms::Atom> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108965            node, self, __ast_path,
108966        )
108967    }
108968    #[doc = "Visit a node of type `Option < BlockStmt >`.\n\nBy default, this method calls \
108969             [`Option < BlockStmt >::fold_children_with_ast_path`]. If you want to recurse, you \
108970             need to call it manually."]
108971    #[inline]
108972    fn fold_opt_block_stmt(
108973        &mut self,
108974        node: Option<BlockStmt>,
108975        __ast_path: &mut AstKindPath,
108976    ) -> Option<BlockStmt> {
108977        <Option<BlockStmt> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108978            node, self, __ast_path,
108979        )
108980    }
108981    #[doc = "Visit a node of type `OptCall`.\n\nBy default, this method calls \
108982             [`OptCall::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
108983             manually."]
108984    #[inline]
108985    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
108986        <OptCall as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
108987    }
108988    #[doc = "Visit a node of type `Option < CatchClause >`.\n\nBy default, this method calls \
108989             [`Option < CatchClause >::fold_children_with_ast_path`]. If you want to recurse, you \
108990             need to call it manually."]
108991    #[inline]
108992    fn fold_opt_catch_clause(
108993        &mut self,
108994        node: Option<CatchClause>,
108995        __ast_path: &mut AstKindPath,
108996    ) -> Option<CatchClause> {
108997        <Option<CatchClause> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
108998            node, self, __ast_path,
108999        )
109000    }
109001    #[doc = "Visit a node of type `OptChainBase`.\n\nBy default, this method calls \
109002             [`OptChainBase::fold_children_with_ast_path`]. If you want to recurse, you need to \
109003             call it manually."]
109004    #[inline]
109005    fn fold_opt_chain_base(
109006        &mut self,
109007        node: OptChainBase,
109008        __ast_path: &mut AstKindPath,
109009    ) -> OptChainBase {
109010        <OptChainBase as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109011    }
109012    #[doc = "Visit a node of type `OptChainExpr`.\n\nBy default, this method calls \
109013             [`OptChainExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
109014             call it manually."]
109015    #[inline]
109016    fn fold_opt_chain_expr(
109017        &mut self,
109018        node: OptChainExpr,
109019        __ast_path: &mut AstKindPath,
109020    ) -> OptChainExpr {
109021        <OptChainExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109022    }
109023    #[doc = "Visit a node of type `Option < Box < Expr > >`.\n\nBy default, this method calls \
109024             [`Option < Box < Expr > >::fold_children_with_ast_path`]. If you want to recurse, you \
109025             need to call it manually."]
109026    #[inline]
109027    fn fold_opt_expr(
109028        &mut self,
109029        node: Option<Box<Expr>>,
109030        __ast_path: &mut AstKindPath,
109031    ) -> Option<Box<Expr>> {
109032        <Option<Box<Expr>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109033            node, self, __ast_path,
109034        )
109035    }
109036    #[doc = "Visit a node of type `Option < ExprOrSpread >`.\n\nBy default, this method calls \
109037             [`Option < ExprOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you \
109038             need to call it manually."]
109039    #[inline]
109040    fn fold_opt_expr_or_spread(
109041        &mut self,
109042        node: Option<ExprOrSpread>,
109043        __ast_path: &mut AstKindPath,
109044    ) -> Option<ExprOrSpread> {
109045        <Option<ExprOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109046            node, self, __ast_path,
109047        )
109048    }
109049    #[doc = "Visit a node of type `Option < Vec < ExprOrSpread > >`.\n\nBy default, this method \
109050             calls [`Option < Vec < ExprOrSpread > >::fold_children_with_ast_path`]. If you want \
109051             to recurse, you need to call it manually."]
109052    #[inline]
109053    fn fold_opt_expr_or_spreads(
109054        &mut self,
109055        node: Option<Vec<ExprOrSpread>>,
109056        __ast_path: &mut AstKindPath,
109057    ) -> Option<Vec<ExprOrSpread>> {
109058        <Option<Vec<ExprOrSpread>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109059            node, self, __ast_path,
109060        )
109061    }
109062    #[doc = "Visit a node of type `Option < Ident >`.\n\nBy default, this method calls [`Option < \
109063             Ident >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109064             manually."]
109065    #[inline]
109066    fn fold_opt_ident(
109067        &mut self,
109068        node: Option<Ident>,
109069        __ast_path: &mut AstKindPath,
109070    ) -> Option<Ident> {
109071        <Option<Ident> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109072            node, self, __ast_path,
109073        )
109074    }
109075    #[doc = "Visit a node of type `Option < JSXAttrValue >`.\n\nBy default, this method calls \
109076             [`Option < JSXAttrValue >::fold_children_with_ast_path`]. If you want to recurse, you \
109077             need to call it manually."]
109078    #[inline]
109079    fn fold_opt_jsx_attr_value(
109080        &mut self,
109081        node: Option<JSXAttrValue>,
109082        __ast_path: &mut AstKindPath,
109083    ) -> Option<JSXAttrValue> {
109084        <Option<JSXAttrValue> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109085            node, self, __ast_path,
109086        )
109087    }
109088    #[doc = "Visit a node of type `Option < JSXClosingElement >`.\n\nBy default, this method calls \
109089             [`Option < JSXClosingElement >::fold_children_with_ast_path`]. If you want to \
109090             recurse, you need to call it manually."]
109091    #[inline]
109092    fn fold_opt_jsx_closing_element(
109093        &mut self,
109094        node: Option<JSXClosingElement>,
109095        __ast_path: &mut AstKindPath,
109096    ) -> Option<JSXClosingElement> {
109097        <Option<JSXClosingElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109098            node, self, __ast_path,
109099        )
109100    }
109101    #[doc = "Visit a node of type `Option < ModuleExportName >`.\n\nBy default, this method calls \
109102             [`Option < ModuleExportName >::fold_children_with_ast_path`]. If you want to recurse, \
109103             you need to call it manually."]
109104    #[inline]
109105    fn fold_opt_module_export_name(
109106        &mut self,
109107        node: Option<ModuleExportName>,
109108        __ast_path: &mut AstKindPath,
109109    ) -> Option<ModuleExportName> {
109110        <Option<ModuleExportName> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109111            node, self, __ast_path,
109112        )
109113    }
109114    #[doc = "Visit a node of type `Option < Box < ObjectLit > >`.\n\nBy default, this method calls \
109115             [`Option < Box < ObjectLit > >::fold_children_with_ast_path`]. If you want to \
109116             recurse, you need to call it manually."]
109117    #[inline]
109118    fn fold_opt_object_lit(
109119        &mut self,
109120        node: Option<Box<ObjectLit>>,
109121        __ast_path: &mut AstKindPath,
109122    ) -> Option<Box<ObjectLit>> {
109123        <Option<Box<ObjectLit>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109124            node, self, __ast_path,
109125        )
109126    }
109127    #[doc = "Visit a node of type `Option < Pat >`.\n\nBy default, this method calls [`Option < \
109128             Pat >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109129             manually."]
109130    #[inline]
109131    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
109132        <Option<Pat> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109133    }
109134    #[doc = "Visit a node of type `Option < swc_common :: Span >`.\n\nBy default, this method \
109135             calls [`Option < swc_common :: Span >::fold_children_with_ast_path`]. If you want to \
109136             recurse, you need to call it manually."]
109137    #[inline]
109138    fn fold_opt_span(
109139        &mut self,
109140        node: Option<swc_common::Span>,
109141        __ast_path: &mut AstKindPath,
109142    ) -> Option<swc_common::Span> {
109143        <Option<swc_common::Span> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109144            node, self, __ast_path,
109145        )
109146    }
109147    #[doc = "Visit a node of type `Option < Box < Stmt > >`.\n\nBy default, this method calls \
109148             [`Option < Box < Stmt > >::fold_children_with_ast_path`]. If you want to recurse, you \
109149             need to call it manually."]
109150    #[inline]
109151    fn fold_opt_stmt(
109152        &mut self,
109153        node: Option<Box<Stmt>>,
109154        __ast_path: &mut AstKindPath,
109155    ) -> Option<Box<Stmt>> {
109156        <Option<Box<Stmt>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109157            node, self, __ast_path,
109158        )
109159    }
109160    #[doc = "Visit a node of type `Option < Box < Str > >`.\n\nBy default, this method calls \
109161             [`Option < Box < Str > >::fold_children_with_ast_path`]. If you want to recurse, you \
109162             need to call it manually."]
109163    #[inline]
109164    fn fold_opt_str(
109165        &mut self,
109166        node: Option<Box<Str>>,
109167        __ast_path: &mut AstKindPath,
109168    ) -> Option<Box<Str>> {
109169        <Option<Box<Str>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109170            node, self, __ast_path,
109171        )
109172    }
109173    #[doc = "Visit a node of type `Option < TruePlusMinus >`.\n\nBy default, this method calls \
109174             [`Option < TruePlusMinus >::fold_children_with_ast_path`]. If you want to recurse, \
109175             you need to call it manually."]
109176    #[inline]
109177    fn fold_opt_true_plus_minus(
109178        &mut self,
109179        node: Option<TruePlusMinus>,
109180        __ast_path: &mut AstKindPath,
109181    ) -> Option<TruePlusMinus> {
109182        <Option<TruePlusMinus> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109183            node, self, __ast_path,
109184        )
109185    }
109186    #[doc = "Visit a node of type `Option < TsEntityName >`.\n\nBy default, this method calls \
109187             [`Option < TsEntityName >::fold_children_with_ast_path`]. If you want to recurse, you \
109188             need to call it manually."]
109189    #[inline]
109190    fn fold_opt_ts_entity_name(
109191        &mut self,
109192        node: Option<TsEntityName>,
109193        __ast_path: &mut AstKindPath,
109194    ) -> Option<TsEntityName> {
109195        <Option<TsEntityName> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109196            node, self, __ast_path,
109197        )
109198    }
109199    #[doc = "Visit a node of type `Option < TsNamespaceBody >`.\n\nBy default, this method calls \
109200             [`Option < TsNamespaceBody >::fold_children_with_ast_path`]. If you want to recurse, \
109201             you need to call it manually."]
109202    #[inline]
109203    fn fold_opt_ts_namespace_body(
109204        &mut self,
109205        node: Option<TsNamespaceBody>,
109206        __ast_path: &mut AstKindPath,
109207    ) -> Option<TsNamespaceBody> {
109208        <Option<TsNamespaceBody> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109209            node, self, __ast_path,
109210        )
109211    }
109212    #[doc = "Visit a node of type `Option < Box < TsType > >`.\n\nBy default, this method calls \
109213             [`Option < Box < TsType > >::fold_children_with_ast_path`]. If you want to recurse, \
109214             you need to call it manually."]
109215    #[inline]
109216    fn fold_opt_ts_type(
109217        &mut self,
109218        node: Option<Box<TsType>>,
109219        __ast_path: &mut AstKindPath,
109220    ) -> Option<Box<TsType>> {
109221        <Option<Box<TsType>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109222            node, self, __ast_path,
109223        )
109224    }
109225    #[doc = "Visit a node of type `Option < Box < TsTypeAnn > >`.\n\nBy default, this method calls \
109226             [`Option < Box < TsTypeAnn > >::fold_children_with_ast_path`]. If you want to \
109227             recurse, you need to call it manually."]
109228    #[inline]
109229    fn fold_opt_ts_type_ann(
109230        &mut self,
109231        node: Option<Box<TsTypeAnn>>,
109232        __ast_path: &mut AstKindPath,
109233    ) -> Option<Box<TsTypeAnn>> {
109234        <Option<Box<TsTypeAnn>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109235            node, self, __ast_path,
109236        )
109237    }
109238    #[doc = "Visit a node of type `Option < Box < TsTypeParamDecl > >`.\n\nBy default, this method \
109239             calls [`Option < Box < TsTypeParamDecl > >::fold_children_with_ast_path`]. If you \
109240             want to recurse, you need to call it manually."]
109241    #[inline]
109242    fn fold_opt_ts_type_param_decl(
109243        &mut self,
109244        node: Option<Box<TsTypeParamDecl>>,
109245        __ast_path: &mut AstKindPath,
109246    ) -> Option<Box<TsTypeParamDecl>> {
109247        <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109248            node, self, __ast_path,
109249        )
109250    }
109251    #[doc = "Visit a node of type `Option < Box < TsTypeParamInstantiation > >`.\n\nBy default, \
109252             this method calls [`Option < Box < TsTypeParamInstantiation > \
109253             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109254             manually."]
109255    #[inline]
109256    fn fold_opt_ts_type_param_instantiation(
109257        &mut self,
109258        node: Option<Box<TsTypeParamInstantiation>>,
109259        __ast_path: &mut AstKindPath,
109260    ) -> Option<Box<TsTypeParamInstantiation>> {
109261        < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < Self > > :: fold_children_with_ast_path (node , self , __ast_path)
109262    }
109263    #[doc = "Visit a node of type `Option < VarDeclOrExpr >`.\n\nBy default, this method calls \
109264             [`Option < VarDeclOrExpr >::fold_children_with_ast_path`]. If you want to recurse, \
109265             you need to call it manually."]
109266    #[inline]
109267    fn fold_opt_var_decl_or_expr(
109268        &mut self,
109269        node: Option<VarDeclOrExpr>,
109270        __ast_path: &mut AstKindPath,
109271    ) -> Option<VarDeclOrExpr> {
109272        <Option<VarDeclOrExpr> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109273            node, self, __ast_path,
109274        )
109275    }
109276    #[doc = "Visit a node of type `Vec < Option < ExprOrSpread > >`.\n\nBy default, this method \
109277             calls [`Vec < Option < ExprOrSpread > >::fold_children_with_ast_path`]. If you want \
109278             to recurse, you need to call it manually."]
109279    #[inline]
109280    fn fold_opt_vec_expr_or_spreads(
109281        &mut self,
109282        node: Vec<Option<ExprOrSpread>>,
109283        __ast_path: &mut AstKindPath,
109284    ) -> Vec<Option<ExprOrSpread>> {
109285        <Vec<Option<ExprOrSpread>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109286            node, self, __ast_path,
109287        )
109288    }
109289    #[doc = "Visit a node of type `Vec < Option < Pat > >`.\n\nBy default, this method calls [`Vec \
109290             < Option < Pat > >::fold_children_with_ast_path`]. If you want to recurse, you need \
109291             to call it manually."]
109292    #[inline]
109293    fn fold_opt_vec_pats(
109294        &mut self,
109295        node: Vec<Option<Pat>>,
109296        __ast_path: &mut AstKindPath,
109297    ) -> Vec<Option<Pat>> {
109298        <Vec<Option<Pat>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109299            node, self, __ast_path,
109300        )
109301    }
109302    #[doc = "Visit a node of type `Param`.\n\nBy default, this method calls \
109303             [`Param::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109304             manually."]
109305    #[inline]
109306    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
109307        <Param as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109308    }
109309    #[doc = "Visit a node of type `ParamOrTsParamProp`.\n\nBy default, this method calls \
109310             [`ParamOrTsParamProp::fold_children_with_ast_path`]. If you want to recurse, you need \
109311             to call it manually."]
109312    #[inline]
109313    fn fold_param_or_ts_param_prop(
109314        &mut self,
109315        node: ParamOrTsParamProp,
109316        __ast_path: &mut AstKindPath,
109317    ) -> ParamOrTsParamProp {
109318        <ParamOrTsParamProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109319            node, self, __ast_path,
109320        )
109321    }
109322    #[doc = "Visit a node of type `Vec < ParamOrTsParamProp >`.\n\nBy default, this method calls \
109323             [`Vec < ParamOrTsParamProp >::fold_children_with_ast_path`]. If you want to recurse, \
109324             you need to call it manually."]
109325    #[inline]
109326    fn fold_param_or_ts_param_props(
109327        &mut self,
109328        node: Vec<ParamOrTsParamProp>,
109329        __ast_path: &mut AstKindPath,
109330    ) -> Vec<ParamOrTsParamProp> {
109331        <Vec<ParamOrTsParamProp> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109332            node, self, __ast_path,
109333        )
109334    }
109335    #[doc = "Visit a node of type `Vec < Param >`.\n\nBy default, this method calls [`Vec < Param \
109336             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109337             manually."]
109338    #[inline]
109339    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
109340        <Vec<Param> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109341    }
109342    #[doc = "Visit a node of type `ParenExpr`.\n\nBy default, this method calls \
109343             [`ParenExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109344             it manually."]
109345    #[inline]
109346    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
109347        <ParenExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109348    }
109349    #[doc = "Visit a node of type `Pat`.\n\nBy default, this method calls \
109350             [`Pat::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109351             manually."]
109352    #[inline]
109353    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
109354        <Pat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109355    }
109356    #[doc = "Visit a node of type `Vec < Pat >`.\n\nBy default, this method calls [`Vec < Pat \
109357             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109358             manually."]
109359    #[inline]
109360    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
109361        <Vec<Pat> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109362    }
109363    #[doc = "Visit a node of type `PrivateMethod`.\n\nBy default, this method calls \
109364             [`PrivateMethod::fold_children_with_ast_path`]. If you want to recurse, you need to \
109365             call it manually."]
109366    #[inline]
109367    fn fold_private_method(
109368        &mut self,
109369        node: PrivateMethod,
109370        __ast_path: &mut AstKindPath,
109371    ) -> PrivateMethod {
109372        <PrivateMethod as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109373            node, self, __ast_path,
109374        )
109375    }
109376    #[doc = "Visit a node of type `PrivateName`.\n\nBy default, this method calls \
109377             [`PrivateName::fold_children_with_ast_path`]. If you want to recurse, you need to \
109378             call it manually."]
109379    #[inline]
109380    fn fold_private_name(
109381        &mut self,
109382        node: PrivateName,
109383        __ast_path: &mut AstKindPath,
109384    ) -> PrivateName {
109385        <PrivateName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109386    }
109387    #[doc = "Visit a node of type `PrivateProp`.\n\nBy default, this method calls \
109388             [`PrivateProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
109389             call it manually."]
109390    #[inline]
109391    fn fold_private_prop(
109392        &mut self,
109393        node: PrivateProp,
109394        __ast_path: &mut AstKindPath,
109395    ) -> PrivateProp {
109396        <PrivateProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109397    }
109398    #[doc = "Visit a node of type `Program`.\n\nBy default, this method calls \
109399             [`Program::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109400             manually."]
109401    #[inline]
109402    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
109403        <Program as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109404    }
109405    #[doc = "Visit a node of type `Prop`.\n\nBy default, this method calls \
109406             [`Prop::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109407             manually."]
109408    #[inline]
109409    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
109410        <Prop as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109411    }
109412    #[doc = "Visit a node of type `PropName`.\n\nBy default, this method calls \
109413             [`PropName::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109414             it manually."]
109415    #[inline]
109416    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
109417        <PropName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109418    }
109419    #[doc = "Visit a node of type `PropOrSpread`.\n\nBy default, this method calls \
109420             [`PropOrSpread::fold_children_with_ast_path`]. If you want to recurse, you need to \
109421             call it manually."]
109422    #[inline]
109423    fn fold_prop_or_spread(
109424        &mut self,
109425        node: PropOrSpread,
109426        __ast_path: &mut AstKindPath,
109427    ) -> PropOrSpread {
109428        <PropOrSpread as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109429    }
109430    #[doc = "Visit a node of type `Vec < PropOrSpread >`.\n\nBy default, this method calls [`Vec < \
109431             PropOrSpread >::fold_children_with_ast_path`]. If you want to recurse, you need to \
109432             call it manually."]
109433    #[inline]
109434    fn fold_prop_or_spreads(
109435        &mut self,
109436        node: Vec<PropOrSpread>,
109437        __ast_path: &mut AstKindPath,
109438    ) -> Vec<PropOrSpread> {
109439        <Vec<PropOrSpread> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109440            node, self, __ast_path,
109441        )
109442    }
109443    #[doc = "Visit a node of type `Regex`.\n\nBy default, this method calls \
109444             [`Regex::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109445             manually."]
109446    #[inline]
109447    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
109448        <Regex as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109449    }
109450    #[doc = "Visit a node of type `RestPat`.\n\nBy default, this method calls \
109451             [`RestPat::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109452             manually."]
109453    #[inline]
109454    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
109455        <RestPat as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109456    }
109457    #[doc = "Visit a node of type `ReturnStmt`.\n\nBy default, this method calls \
109458             [`ReturnStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109459             it manually."]
109460    #[inline]
109461    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
109462        <ReturnStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109463    }
109464    #[doc = "Visit a node of type `Script`.\n\nBy default, this method calls \
109465             [`Script::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109466             manually."]
109467    #[inline]
109468    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
109469        <Script as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109470    }
109471    #[doc = "Visit a node of type `SeqExpr`.\n\nBy default, this method calls \
109472             [`SeqExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109473             manually."]
109474    #[inline]
109475    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
109476        <SeqExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109477    }
109478    #[doc = "Visit a node of type `SetterProp`.\n\nBy default, this method calls \
109479             [`SetterProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109480             it manually."]
109481    #[inline]
109482    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
109483        <SetterProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109484    }
109485    #[doc = "Visit a node of type `SimpleAssignTarget`.\n\nBy default, this method calls \
109486             [`SimpleAssignTarget::fold_children_with_ast_path`]. If you want to recurse, you need \
109487             to call it manually."]
109488    #[inline]
109489    fn fold_simple_assign_target(
109490        &mut self,
109491        node: SimpleAssignTarget,
109492        __ast_path: &mut AstKindPath,
109493    ) -> SimpleAssignTarget {
109494        <SimpleAssignTarget as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109495            node, self, __ast_path,
109496        )
109497    }
109498    #[doc = "Visit a node of type `swc_common :: Span`.\n\nBy default, this method calls \
109499             [`swc_common :: Span::fold_children_with_ast_path`]. If you want to recurse, you need \
109500             to call it manually."]
109501    #[inline]
109502    fn fold_span(
109503        &mut self,
109504        node: swc_common::Span,
109505        __ast_path: &mut AstKindPath,
109506    ) -> swc_common::Span {
109507        <swc_common::Span as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109508            node, self, __ast_path,
109509        )
109510    }
109511    #[doc = "Visit a node of type `SpreadElement`.\n\nBy default, this method calls \
109512             [`SpreadElement::fold_children_with_ast_path`]. If you want to recurse, you need to \
109513             call it manually."]
109514    #[inline]
109515    fn fold_spread_element(
109516        &mut self,
109517        node: SpreadElement,
109518        __ast_path: &mut AstKindPath,
109519    ) -> SpreadElement {
109520        <SpreadElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109521            node, self, __ast_path,
109522        )
109523    }
109524    #[doc = "Visit a node of type `StaticBlock`.\n\nBy default, this method calls \
109525             [`StaticBlock::fold_children_with_ast_path`]. If you want to recurse, you need to \
109526             call it manually."]
109527    #[inline]
109528    fn fold_static_block(
109529        &mut self,
109530        node: StaticBlock,
109531        __ast_path: &mut AstKindPath,
109532    ) -> StaticBlock {
109533        <StaticBlock as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109534    }
109535    #[doc = "Visit a node of type `Stmt`.\n\nBy default, this method calls \
109536             [`Stmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109537             manually."]
109538    #[inline]
109539    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
109540        <Stmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109541    }
109542    #[doc = "Visit a node of type `Vec < Stmt >`.\n\nBy default, this method calls [`Vec < Stmt \
109543             >::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109544             manually."]
109545    #[inline]
109546    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
109547        <Vec<Stmt> as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109548    }
109549    #[doc = "Visit a node of type `Str`.\n\nBy default, this method calls \
109550             [`Str::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109551             manually."]
109552    #[inline]
109553    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
109554        <Str as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109555    }
109556    #[doc = "Visit a node of type `Super`.\n\nBy default, this method calls \
109557             [`Super::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109558             manually."]
109559    #[inline]
109560    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
109561        <Super as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109562    }
109563    #[doc = "Visit a node of type `SuperProp`.\n\nBy default, this method calls \
109564             [`SuperProp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109565             it manually."]
109566    #[inline]
109567    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
109568        <SuperProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109569    }
109570    #[doc = "Visit a node of type `SuperPropExpr`.\n\nBy default, this method calls \
109571             [`SuperPropExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
109572             call it manually."]
109573    #[inline]
109574    fn fold_super_prop_expr(
109575        &mut self,
109576        node: SuperPropExpr,
109577        __ast_path: &mut AstKindPath,
109578    ) -> SuperPropExpr {
109579        <SuperPropExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109580            node, self, __ast_path,
109581        )
109582    }
109583    #[doc = "Visit a node of type `SwitchCase`.\n\nBy default, this method calls \
109584             [`SwitchCase::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109585             it manually."]
109586    #[inline]
109587    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
109588        <SwitchCase as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109589    }
109590    #[doc = "Visit a node of type `Vec < SwitchCase >`.\n\nBy default, this method calls [`Vec < \
109591             SwitchCase >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109592             it manually."]
109593    #[inline]
109594    fn fold_switch_cases(
109595        &mut self,
109596        node: Vec<SwitchCase>,
109597        __ast_path: &mut AstKindPath,
109598    ) -> Vec<SwitchCase> {
109599        <Vec<SwitchCase> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109600            node, self, __ast_path,
109601        )
109602    }
109603    #[doc = "Visit a node of type `SwitchStmt`.\n\nBy default, this method calls \
109604             [`SwitchStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109605             it manually."]
109606    #[inline]
109607    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
109608        <SwitchStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109609    }
109610    #[doc = "Visit a node of type `swc_common :: SyntaxContext`.\n\nBy default, this method calls \
109611             [`swc_common :: SyntaxContext::fold_children_with_ast_path`]. If you want to recurse, \
109612             you need to call it manually."]
109613    #[inline]
109614    fn fold_syntax_context(
109615        &mut self,
109616        node: swc_common::SyntaxContext,
109617        __ast_path: &mut AstKindPath,
109618    ) -> swc_common::SyntaxContext {
109619        <swc_common::SyntaxContext as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109620            node, self, __ast_path,
109621        )
109622    }
109623    #[doc = "Visit a node of type `TaggedTpl`.\n\nBy default, this method calls \
109624             [`TaggedTpl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109625             it manually."]
109626    #[inline]
109627    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
109628        <TaggedTpl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109629    }
109630    #[doc = "Visit a node of type `ThisExpr`.\n\nBy default, this method calls \
109631             [`ThisExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109632             it manually."]
109633    #[inline]
109634    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
109635        <ThisExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109636    }
109637    #[doc = "Visit a node of type `ThrowStmt`.\n\nBy default, this method calls \
109638             [`ThrowStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109639             it manually."]
109640    #[inline]
109641    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
109642        <ThrowStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109643    }
109644    #[doc = "Visit a node of type `Tpl`.\n\nBy default, this method calls \
109645             [`Tpl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109646             manually."]
109647    #[inline]
109648    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
109649        <Tpl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109650    }
109651    #[doc = "Visit a node of type `TplElement`.\n\nBy default, this method calls \
109652             [`TplElement::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109653             it manually."]
109654    #[inline]
109655    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
109656        <TplElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109657    }
109658    #[doc = "Visit a node of type `Vec < TplElement >`.\n\nBy default, this method calls [`Vec < \
109659             TplElement >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109660             it manually."]
109661    #[inline]
109662    fn fold_tpl_elements(
109663        &mut self,
109664        node: Vec<TplElement>,
109665        __ast_path: &mut AstKindPath,
109666    ) -> Vec<TplElement> {
109667        <Vec<TplElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109668            node, self, __ast_path,
109669        )
109670    }
109671    #[doc = "Visit a node of type `TruePlusMinus`.\n\nBy default, this method calls \
109672             [`TruePlusMinus::fold_children_with_ast_path`]. If you want to recurse, you need to \
109673             call it manually."]
109674    #[inline]
109675    fn fold_true_plus_minus(
109676        &mut self,
109677        node: TruePlusMinus,
109678        __ast_path: &mut AstKindPath,
109679    ) -> TruePlusMinus {
109680        <TruePlusMinus as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109681            node, self, __ast_path,
109682        )
109683    }
109684    #[doc = "Visit a node of type `TryStmt`.\n\nBy default, this method calls \
109685             [`TryStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
109686             manually."]
109687    #[inline]
109688    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
109689        <TryStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109690    }
109691    #[doc = "Visit a node of type `TsArrayType`.\n\nBy default, this method calls \
109692             [`TsArrayType::fold_children_with_ast_path`]. If you want to recurse, you need to \
109693             call it manually."]
109694    #[inline]
109695    fn fold_ts_array_type(
109696        &mut self,
109697        node: TsArrayType,
109698        __ast_path: &mut AstKindPath,
109699    ) -> TsArrayType {
109700        <TsArrayType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109701    }
109702    #[doc = "Visit a node of type `TsAsExpr`.\n\nBy default, this method calls \
109703             [`TsAsExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109704             it manually."]
109705    #[inline]
109706    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
109707        <TsAsExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109708    }
109709    #[doc = "Visit a node of type `TsCallSignatureDecl`.\n\nBy default, this method calls \
109710             [`TsCallSignatureDecl::fold_children_with_ast_path`]. If you want to recurse, you \
109711             need to call it manually."]
109712    #[inline]
109713    fn fold_ts_call_signature_decl(
109714        &mut self,
109715        node: TsCallSignatureDecl,
109716        __ast_path: &mut AstKindPath,
109717    ) -> TsCallSignatureDecl {
109718        <TsCallSignatureDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109719            node, self, __ast_path,
109720        )
109721    }
109722    #[doc = "Visit a node of type `TsConditionalType`.\n\nBy default, this method calls \
109723             [`TsConditionalType::fold_children_with_ast_path`]. If you want to recurse, you need \
109724             to call it manually."]
109725    #[inline]
109726    fn fold_ts_conditional_type(
109727        &mut self,
109728        node: TsConditionalType,
109729        __ast_path: &mut AstKindPath,
109730    ) -> TsConditionalType {
109731        <TsConditionalType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109732            node, self, __ast_path,
109733        )
109734    }
109735    #[doc = "Visit a node of type `TsConstAssertion`.\n\nBy default, this method calls \
109736             [`TsConstAssertion::fold_children_with_ast_path`]. If you want to recurse, you need \
109737             to call it manually."]
109738    #[inline]
109739    fn fold_ts_const_assertion(
109740        &mut self,
109741        node: TsConstAssertion,
109742        __ast_path: &mut AstKindPath,
109743    ) -> TsConstAssertion {
109744        <TsConstAssertion as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109745            node, self, __ast_path,
109746        )
109747    }
109748    #[doc = "Visit a node of type `TsConstructSignatureDecl`.\n\nBy default, this method calls \
109749             [`TsConstructSignatureDecl::fold_children_with_ast_path`]. If you want to recurse, \
109750             you need to call it manually."]
109751    #[inline]
109752    fn fold_ts_construct_signature_decl(
109753        &mut self,
109754        node: TsConstructSignatureDecl,
109755        __ast_path: &mut AstKindPath,
109756    ) -> TsConstructSignatureDecl {
109757        <TsConstructSignatureDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109758            node, self, __ast_path,
109759        )
109760    }
109761    #[doc = "Visit a node of type `TsConstructorType`.\n\nBy default, this method calls \
109762             [`TsConstructorType::fold_children_with_ast_path`]. If you want to recurse, you need \
109763             to call it manually."]
109764    #[inline]
109765    fn fold_ts_constructor_type(
109766        &mut self,
109767        node: TsConstructorType,
109768        __ast_path: &mut AstKindPath,
109769    ) -> TsConstructorType {
109770        <TsConstructorType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109771            node, self, __ast_path,
109772        )
109773    }
109774    #[doc = "Visit a node of type `TsEntityName`.\n\nBy default, this method calls \
109775             [`TsEntityName::fold_children_with_ast_path`]. If you want to recurse, you need to \
109776             call it manually."]
109777    #[inline]
109778    fn fold_ts_entity_name(
109779        &mut self,
109780        node: TsEntityName,
109781        __ast_path: &mut AstKindPath,
109782    ) -> TsEntityName {
109783        <TsEntityName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109784    }
109785    #[doc = "Visit a node of type `TsEnumDecl`.\n\nBy default, this method calls \
109786             [`TsEnumDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109787             it manually."]
109788    #[inline]
109789    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
109790        <TsEnumDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109791    }
109792    #[doc = "Visit a node of type `TsEnumMember`.\n\nBy default, this method calls \
109793             [`TsEnumMember::fold_children_with_ast_path`]. If you want to recurse, you need to \
109794             call it manually."]
109795    #[inline]
109796    fn fold_ts_enum_member(
109797        &mut self,
109798        node: TsEnumMember,
109799        __ast_path: &mut AstKindPath,
109800    ) -> TsEnumMember {
109801        <TsEnumMember as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109802    }
109803    #[doc = "Visit a node of type `TsEnumMemberId`.\n\nBy default, this method calls \
109804             [`TsEnumMemberId::fold_children_with_ast_path`]. If you want to recurse, you need to \
109805             call it manually."]
109806    #[inline]
109807    fn fold_ts_enum_member_id(
109808        &mut self,
109809        node: TsEnumMemberId,
109810        __ast_path: &mut AstKindPath,
109811    ) -> TsEnumMemberId {
109812        <TsEnumMemberId as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109813            node, self, __ast_path,
109814        )
109815    }
109816    #[doc = "Visit a node of type `Vec < TsEnumMember >`.\n\nBy default, this method calls [`Vec < \
109817             TsEnumMember >::fold_children_with_ast_path`]. If you want to recurse, you need to \
109818             call it manually."]
109819    #[inline]
109820    fn fold_ts_enum_members(
109821        &mut self,
109822        node: Vec<TsEnumMember>,
109823        __ast_path: &mut AstKindPath,
109824    ) -> Vec<TsEnumMember> {
109825        <Vec<TsEnumMember> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109826            node, self, __ast_path,
109827        )
109828    }
109829    #[doc = "Visit a node of type `TsExportAssignment`.\n\nBy default, this method calls \
109830             [`TsExportAssignment::fold_children_with_ast_path`]. If you want to recurse, you need \
109831             to call it manually."]
109832    #[inline]
109833    fn fold_ts_export_assignment(
109834        &mut self,
109835        node: TsExportAssignment,
109836        __ast_path: &mut AstKindPath,
109837    ) -> TsExportAssignment {
109838        <TsExportAssignment as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109839            node, self, __ast_path,
109840        )
109841    }
109842    #[doc = "Visit a node of type `TsExprWithTypeArgs`.\n\nBy default, this method calls \
109843             [`TsExprWithTypeArgs::fold_children_with_ast_path`]. If you want to recurse, you need \
109844             to call it manually."]
109845    #[inline]
109846    fn fold_ts_expr_with_type_args(
109847        &mut self,
109848        node: TsExprWithTypeArgs,
109849        __ast_path: &mut AstKindPath,
109850    ) -> TsExprWithTypeArgs {
109851        <TsExprWithTypeArgs as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109852            node, self, __ast_path,
109853        )
109854    }
109855    #[doc = "Visit a node of type `Vec < TsExprWithTypeArgs >`.\n\nBy default, this method calls \
109856             [`Vec < TsExprWithTypeArgs >::fold_children_with_ast_path`]. If you want to recurse, \
109857             you need to call it manually."]
109858    #[inline]
109859    fn fold_ts_expr_with_type_argss(
109860        &mut self,
109861        node: Vec<TsExprWithTypeArgs>,
109862        __ast_path: &mut AstKindPath,
109863    ) -> Vec<TsExprWithTypeArgs> {
109864        <Vec<TsExprWithTypeArgs> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109865            node, self, __ast_path,
109866        )
109867    }
109868    #[doc = "Visit a node of type `TsExternalModuleRef`.\n\nBy default, this method calls \
109869             [`TsExternalModuleRef::fold_children_with_ast_path`]. If you want to recurse, you \
109870             need to call it manually."]
109871    #[inline]
109872    fn fold_ts_external_module_ref(
109873        &mut self,
109874        node: TsExternalModuleRef,
109875        __ast_path: &mut AstKindPath,
109876    ) -> TsExternalModuleRef {
109877        <TsExternalModuleRef as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109878            node, self, __ast_path,
109879        )
109880    }
109881    #[doc = "Visit a node of type `TsFnOrConstructorType`.\n\nBy default, this method calls \
109882             [`TsFnOrConstructorType::fold_children_with_ast_path`]. If you want to recurse, you \
109883             need to call it manually."]
109884    #[inline]
109885    fn fold_ts_fn_or_constructor_type(
109886        &mut self,
109887        node: TsFnOrConstructorType,
109888        __ast_path: &mut AstKindPath,
109889    ) -> TsFnOrConstructorType {
109890        <TsFnOrConstructorType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109891            node, self, __ast_path,
109892        )
109893    }
109894    #[doc = "Visit a node of type `TsFnParam`.\n\nBy default, this method calls \
109895             [`TsFnParam::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109896             it manually."]
109897    #[inline]
109898    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
109899        <TsFnParam as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109900    }
109901    #[doc = "Visit a node of type `Vec < TsFnParam >`.\n\nBy default, this method calls [`Vec < \
109902             TsFnParam >::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109903             it manually."]
109904    #[inline]
109905    fn fold_ts_fn_params(
109906        &mut self,
109907        node: Vec<TsFnParam>,
109908        __ast_path: &mut AstKindPath,
109909    ) -> Vec<TsFnParam> {
109910        <Vec<TsFnParam> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109911            node, self, __ast_path,
109912        )
109913    }
109914    #[doc = "Visit a node of type `TsFnType`.\n\nBy default, this method calls \
109915             [`TsFnType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
109916             it manually."]
109917    #[inline]
109918    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
109919        <TsFnType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109920    }
109921    #[doc = "Visit a node of type `TsGetterSignature`.\n\nBy default, this method calls \
109922             [`TsGetterSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
109923             to call it manually."]
109924    #[inline]
109925    fn fold_ts_getter_signature(
109926        &mut self,
109927        node: TsGetterSignature,
109928        __ast_path: &mut AstKindPath,
109929    ) -> TsGetterSignature {
109930        <TsGetterSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109931            node, self, __ast_path,
109932        )
109933    }
109934    #[doc = "Visit a node of type `TsImportEqualsDecl`.\n\nBy default, this method calls \
109935             [`TsImportEqualsDecl::fold_children_with_ast_path`]. If you want to recurse, you need \
109936             to call it manually."]
109937    #[inline]
109938    fn fold_ts_import_equals_decl(
109939        &mut self,
109940        node: TsImportEqualsDecl,
109941        __ast_path: &mut AstKindPath,
109942    ) -> TsImportEqualsDecl {
109943        <TsImportEqualsDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109944            node, self, __ast_path,
109945        )
109946    }
109947    #[doc = "Visit a node of type `TsImportType`.\n\nBy default, this method calls \
109948             [`TsImportType::fold_children_with_ast_path`]. If you want to recurse, you need to \
109949             call it manually."]
109950    #[inline]
109951    fn fold_ts_import_type(
109952        &mut self,
109953        node: TsImportType,
109954        __ast_path: &mut AstKindPath,
109955    ) -> TsImportType {
109956        <TsImportType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109957    }
109958    #[doc = "Visit a node of type `TsIndexSignature`.\n\nBy default, this method calls \
109959             [`TsIndexSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
109960             to call it manually."]
109961    #[inline]
109962    fn fold_ts_index_signature(
109963        &mut self,
109964        node: TsIndexSignature,
109965        __ast_path: &mut AstKindPath,
109966    ) -> TsIndexSignature {
109967        <TsIndexSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109968            node, self, __ast_path,
109969        )
109970    }
109971    #[doc = "Visit a node of type `TsIndexedAccessType`.\n\nBy default, this method calls \
109972             [`TsIndexedAccessType::fold_children_with_ast_path`]. If you want to recurse, you \
109973             need to call it manually."]
109974    #[inline]
109975    fn fold_ts_indexed_access_type(
109976        &mut self,
109977        node: TsIndexedAccessType,
109978        __ast_path: &mut AstKindPath,
109979    ) -> TsIndexedAccessType {
109980        <TsIndexedAccessType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
109981            node, self, __ast_path,
109982        )
109983    }
109984    #[doc = "Visit a node of type `TsInferType`.\n\nBy default, this method calls \
109985             [`TsInferType::fold_children_with_ast_path`]. If you want to recurse, you need to \
109986             call it manually."]
109987    #[inline]
109988    fn fold_ts_infer_type(
109989        &mut self,
109990        node: TsInferType,
109991        __ast_path: &mut AstKindPath,
109992    ) -> TsInferType {
109993        <TsInferType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
109994    }
109995    #[doc = "Visit a node of type `TsInstantiation`.\n\nBy default, this method calls \
109996             [`TsInstantiation::fold_children_with_ast_path`]. If you want to recurse, you need to \
109997             call it manually."]
109998    #[inline]
109999    fn fold_ts_instantiation(
110000        &mut self,
110001        node: TsInstantiation,
110002        __ast_path: &mut AstKindPath,
110003    ) -> TsInstantiation {
110004        <TsInstantiation as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110005            node, self, __ast_path,
110006        )
110007    }
110008    #[doc = "Visit a node of type `TsInterfaceBody`.\n\nBy default, this method calls \
110009             [`TsInterfaceBody::fold_children_with_ast_path`]. If you want to recurse, you need to \
110010             call it manually."]
110011    #[inline]
110012    fn fold_ts_interface_body(
110013        &mut self,
110014        node: TsInterfaceBody,
110015        __ast_path: &mut AstKindPath,
110016    ) -> TsInterfaceBody {
110017        <TsInterfaceBody as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110018            node, self, __ast_path,
110019        )
110020    }
110021    #[doc = "Visit a node of type `TsInterfaceDecl`.\n\nBy default, this method calls \
110022             [`TsInterfaceDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110023             call it manually."]
110024    #[inline]
110025    fn fold_ts_interface_decl(
110026        &mut self,
110027        node: TsInterfaceDecl,
110028        __ast_path: &mut AstKindPath,
110029    ) -> TsInterfaceDecl {
110030        <TsInterfaceDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110031            node, self, __ast_path,
110032        )
110033    }
110034    #[doc = "Visit a node of type `TsIntersectionType`.\n\nBy default, this method calls \
110035             [`TsIntersectionType::fold_children_with_ast_path`]. If you want to recurse, you need \
110036             to call it manually."]
110037    #[inline]
110038    fn fold_ts_intersection_type(
110039        &mut self,
110040        node: TsIntersectionType,
110041        __ast_path: &mut AstKindPath,
110042    ) -> TsIntersectionType {
110043        <TsIntersectionType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110044            node, self, __ast_path,
110045        )
110046    }
110047    #[doc = "Visit a node of type `TsKeywordType`.\n\nBy default, this method calls \
110048             [`TsKeywordType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110049             call it manually."]
110050    #[inline]
110051    fn fold_ts_keyword_type(
110052        &mut self,
110053        node: TsKeywordType,
110054        __ast_path: &mut AstKindPath,
110055    ) -> TsKeywordType {
110056        <TsKeywordType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110057            node, self, __ast_path,
110058        )
110059    }
110060    #[doc = "Visit a node of type `TsKeywordTypeKind`.\n\nBy default, this method calls \
110061             [`TsKeywordTypeKind::fold_children_with_ast_path`]. If you want to recurse, you need \
110062             to call it manually."]
110063    #[inline]
110064    fn fold_ts_keyword_type_kind(
110065        &mut self,
110066        node: TsKeywordTypeKind,
110067        __ast_path: &mut AstKindPath,
110068    ) -> TsKeywordTypeKind {
110069        <TsKeywordTypeKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110070            node, self, __ast_path,
110071        )
110072    }
110073    #[doc = "Visit a node of type `TsLit`.\n\nBy default, this method calls \
110074             [`TsLit::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110075             manually."]
110076    #[inline]
110077    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
110078        <TsLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110079    }
110080    #[doc = "Visit a node of type `TsLitType`.\n\nBy default, this method calls \
110081             [`TsLitType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110082             it manually."]
110083    #[inline]
110084    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
110085        <TsLitType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110086    }
110087    #[doc = "Visit a node of type `TsMappedType`.\n\nBy default, this method calls \
110088             [`TsMappedType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110089             call it manually."]
110090    #[inline]
110091    fn fold_ts_mapped_type(
110092        &mut self,
110093        node: TsMappedType,
110094        __ast_path: &mut AstKindPath,
110095    ) -> TsMappedType {
110096        <TsMappedType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110097    }
110098    #[doc = "Visit a node of type `TsMethodSignature`.\n\nBy default, this method calls \
110099             [`TsMethodSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
110100             to call it manually."]
110101    #[inline]
110102    fn fold_ts_method_signature(
110103        &mut self,
110104        node: TsMethodSignature,
110105        __ast_path: &mut AstKindPath,
110106    ) -> TsMethodSignature {
110107        <TsMethodSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110108            node, self, __ast_path,
110109        )
110110    }
110111    #[doc = "Visit a node of type `TsModuleBlock`.\n\nBy default, this method calls \
110112             [`TsModuleBlock::fold_children_with_ast_path`]. If you want to recurse, you need to \
110113             call it manually."]
110114    #[inline]
110115    fn fold_ts_module_block(
110116        &mut self,
110117        node: TsModuleBlock,
110118        __ast_path: &mut AstKindPath,
110119    ) -> TsModuleBlock {
110120        <TsModuleBlock as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110121            node, self, __ast_path,
110122        )
110123    }
110124    #[doc = "Visit a node of type `TsModuleDecl`.\n\nBy default, this method calls \
110125             [`TsModuleDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110126             call it manually."]
110127    #[inline]
110128    fn fold_ts_module_decl(
110129        &mut self,
110130        node: TsModuleDecl,
110131        __ast_path: &mut AstKindPath,
110132    ) -> TsModuleDecl {
110133        <TsModuleDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110134    }
110135    #[doc = "Visit a node of type `TsModuleName`.\n\nBy default, this method calls \
110136             [`TsModuleName::fold_children_with_ast_path`]. If you want to recurse, you need to \
110137             call it manually."]
110138    #[inline]
110139    fn fold_ts_module_name(
110140        &mut self,
110141        node: TsModuleName,
110142        __ast_path: &mut AstKindPath,
110143    ) -> TsModuleName {
110144        <TsModuleName as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110145    }
110146    #[doc = "Visit a node of type `TsModuleRef`.\n\nBy default, this method calls \
110147             [`TsModuleRef::fold_children_with_ast_path`]. If you want to recurse, you need to \
110148             call it manually."]
110149    #[inline]
110150    fn fold_ts_module_ref(
110151        &mut self,
110152        node: TsModuleRef,
110153        __ast_path: &mut AstKindPath,
110154    ) -> TsModuleRef {
110155        <TsModuleRef as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110156    }
110157    #[doc = "Visit a node of type `TsNamespaceBody`.\n\nBy default, this method calls \
110158             [`TsNamespaceBody::fold_children_with_ast_path`]. If you want to recurse, you need to \
110159             call it manually."]
110160    #[inline]
110161    fn fold_ts_namespace_body(
110162        &mut self,
110163        node: TsNamespaceBody,
110164        __ast_path: &mut AstKindPath,
110165    ) -> TsNamespaceBody {
110166        <TsNamespaceBody as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110167            node, self, __ast_path,
110168        )
110169    }
110170    #[doc = "Visit a node of type `TsNamespaceDecl`.\n\nBy default, this method calls \
110171             [`TsNamespaceDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110172             call it manually."]
110173    #[inline]
110174    fn fold_ts_namespace_decl(
110175        &mut self,
110176        node: TsNamespaceDecl,
110177        __ast_path: &mut AstKindPath,
110178    ) -> TsNamespaceDecl {
110179        <TsNamespaceDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110180            node, self, __ast_path,
110181        )
110182    }
110183    #[doc = "Visit a node of type `TsNamespaceExportDecl`.\n\nBy default, this method calls \
110184             [`TsNamespaceExportDecl::fold_children_with_ast_path`]. If you want to recurse, you \
110185             need to call it manually."]
110186    #[inline]
110187    fn fold_ts_namespace_export_decl(
110188        &mut self,
110189        node: TsNamespaceExportDecl,
110190        __ast_path: &mut AstKindPath,
110191    ) -> TsNamespaceExportDecl {
110192        <TsNamespaceExportDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110193            node, self, __ast_path,
110194        )
110195    }
110196    #[doc = "Visit a node of type `TsNonNullExpr`.\n\nBy default, this method calls \
110197             [`TsNonNullExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
110198             call it manually."]
110199    #[inline]
110200    fn fold_ts_non_null_expr(
110201        &mut self,
110202        node: TsNonNullExpr,
110203        __ast_path: &mut AstKindPath,
110204    ) -> TsNonNullExpr {
110205        <TsNonNullExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110206            node, self, __ast_path,
110207        )
110208    }
110209    #[doc = "Visit a node of type `TsOptionalType`.\n\nBy default, this method calls \
110210             [`TsOptionalType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110211             call it manually."]
110212    #[inline]
110213    fn fold_ts_optional_type(
110214        &mut self,
110215        node: TsOptionalType,
110216        __ast_path: &mut AstKindPath,
110217    ) -> TsOptionalType {
110218        <TsOptionalType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110219            node, self, __ast_path,
110220        )
110221    }
110222    #[doc = "Visit a node of type `TsParamProp`.\n\nBy default, this method calls \
110223             [`TsParamProp::fold_children_with_ast_path`]. If you want to recurse, you need to \
110224             call it manually."]
110225    #[inline]
110226    fn fold_ts_param_prop(
110227        &mut self,
110228        node: TsParamProp,
110229        __ast_path: &mut AstKindPath,
110230    ) -> TsParamProp {
110231        <TsParamProp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110232    }
110233    #[doc = "Visit a node of type `TsParamPropParam`.\n\nBy default, this method calls \
110234             [`TsParamPropParam::fold_children_with_ast_path`]. If you want to recurse, you need \
110235             to call it manually."]
110236    #[inline]
110237    fn fold_ts_param_prop_param(
110238        &mut self,
110239        node: TsParamPropParam,
110240        __ast_path: &mut AstKindPath,
110241    ) -> TsParamPropParam {
110242        <TsParamPropParam as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110243            node, self, __ast_path,
110244        )
110245    }
110246    #[doc = "Visit a node of type `TsParenthesizedType`.\n\nBy default, this method calls \
110247             [`TsParenthesizedType::fold_children_with_ast_path`]. If you want to recurse, you \
110248             need to call it manually."]
110249    #[inline]
110250    fn fold_ts_parenthesized_type(
110251        &mut self,
110252        node: TsParenthesizedType,
110253        __ast_path: &mut AstKindPath,
110254    ) -> TsParenthesizedType {
110255        <TsParenthesizedType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110256            node, self, __ast_path,
110257        )
110258    }
110259    #[doc = "Visit a node of type `TsPropertySignature`.\n\nBy default, this method calls \
110260             [`TsPropertySignature::fold_children_with_ast_path`]. If you want to recurse, you \
110261             need to call it manually."]
110262    #[inline]
110263    fn fold_ts_property_signature(
110264        &mut self,
110265        node: TsPropertySignature,
110266        __ast_path: &mut AstKindPath,
110267    ) -> TsPropertySignature {
110268        <TsPropertySignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110269            node, self, __ast_path,
110270        )
110271    }
110272    #[doc = "Visit a node of type `TsQualifiedName`.\n\nBy default, this method calls \
110273             [`TsQualifiedName::fold_children_with_ast_path`]. If you want to recurse, you need to \
110274             call it manually."]
110275    #[inline]
110276    fn fold_ts_qualified_name(
110277        &mut self,
110278        node: TsQualifiedName,
110279        __ast_path: &mut AstKindPath,
110280    ) -> TsQualifiedName {
110281        <TsQualifiedName as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110282            node, self, __ast_path,
110283        )
110284    }
110285    #[doc = "Visit a node of type `TsRestType`.\n\nBy default, this method calls \
110286             [`TsRestType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110287             it manually."]
110288    #[inline]
110289    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
110290        <TsRestType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110291    }
110292    #[doc = "Visit a node of type `TsSatisfiesExpr`.\n\nBy default, this method calls \
110293             [`TsSatisfiesExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
110294             call it manually."]
110295    #[inline]
110296    fn fold_ts_satisfies_expr(
110297        &mut self,
110298        node: TsSatisfiesExpr,
110299        __ast_path: &mut AstKindPath,
110300    ) -> TsSatisfiesExpr {
110301        <TsSatisfiesExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110302            node, self, __ast_path,
110303        )
110304    }
110305    #[doc = "Visit a node of type `TsSetterSignature`.\n\nBy default, this method calls \
110306             [`TsSetterSignature::fold_children_with_ast_path`]. If you want to recurse, you need \
110307             to call it manually."]
110308    #[inline]
110309    fn fold_ts_setter_signature(
110310        &mut self,
110311        node: TsSetterSignature,
110312        __ast_path: &mut AstKindPath,
110313    ) -> TsSetterSignature {
110314        <TsSetterSignature as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110315            node, self, __ast_path,
110316        )
110317    }
110318    #[doc = "Visit a node of type `TsThisType`.\n\nBy default, this method calls \
110319             [`TsThisType::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110320             it manually."]
110321    #[inline]
110322    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
110323        <TsThisType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110324    }
110325    #[doc = "Visit a node of type `TsThisTypeOrIdent`.\n\nBy default, this method calls \
110326             [`TsThisTypeOrIdent::fold_children_with_ast_path`]. If you want to recurse, you need \
110327             to call it manually."]
110328    #[inline]
110329    fn fold_ts_this_type_or_ident(
110330        &mut self,
110331        node: TsThisTypeOrIdent,
110332        __ast_path: &mut AstKindPath,
110333    ) -> TsThisTypeOrIdent {
110334        <TsThisTypeOrIdent as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110335            node, self, __ast_path,
110336        )
110337    }
110338    #[doc = "Visit a node of type `TsTplLitType`.\n\nBy default, this method calls \
110339             [`TsTplLitType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110340             call it manually."]
110341    #[inline]
110342    fn fold_ts_tpl_lit_type(
110343        &mut self,
110344        node: TsTplLitType,
110345        __ast_path: &mut AstKindPath,
110346    ) -> TsTplLitType {
110347        <TsTplLitType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110348    }
110349    #[doc = "Visit a node of type `TsTupleElement`.\n\nBy default, this method calls \
110350             [`TsTupleElement::fold_children_with_ast_path`]. If you want to recurse, you need to \
110351             call it manually."]
110352    #[inline]
110353    fn fold_ts_tuple_element(
110354        &mut self,
110355        node: TsTupleElement,
110356        __ast_path: &mut AstKindPath,
110357    ) -> TsTupleElement {
110358        <TsTupleElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110359            node, self, __ast_path,
110360        )
110361    }
110362    #[doc = "Visit a node of type `Vec < TsTupleElement >`.\n\nBy default, this method calls [`Vec \
110363             < TsTupleElement >::fold_children_with_ast_path`]. If you want to recurse, you need \
110364             to call it manually."]
110365    #[inline]
110366    fn fold_ts_tuple_elements(
110367        &mut self,
110368        node: Vec<TsTupleElement>,
110369        __ast_path: &mut AstKindPath,
110370    ) -> Vec<TsTupleElement> {
110371        <Vec<TsTupleElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110372            node, self, __ast_path,
110373        )
110374    }
110375    #[doc = "Visit a node of type `TsTupleType`.\n\nBy default, this method calls \
110376             [`TsTupleType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110377             call it manually."]
110378    #[inline]
110379    fn fold_ts_tuple_type(
110380        &mut self,
110381        node: TsTupleType,
110382        __ast_path: &mut AstKindPath,
110383    ) -> TsTupleType {
110384        <TsTupleType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110385    }
110386    #[doc = "Visit a node of type `TsType`.\n\nBy default, this method calls \
110387             [`TsType::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110388             manually."]
110389    #[inline]
110390    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
110391        <TsType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110392    }
110393    #[doc = "Visit a node of type `TsTypeAliasDecl`.\n\nBy default, this method calls \
110394             [`TsTypeAliasDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110395             call it manually."]
110396    #[inline]
110397    fn fold_ts_type_alias_decl(
110398        &mut self,
110399        node: TsTypeAliasDecl,
110400        __ast_path: &mut AstKindPath,
110401    ) -> TsTypeAliasDecl {
110402        <TsTypeAliasDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110403            node, self, __ast_path,
110404        )
110405    }
110406    #[doc = "Visit a node of type `TsTypeAnn`.\n\nBy default, this method calls \
110407             [`TsTypeAnn::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110408             it manually."]
110409    #[inline]
110410    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
110411        <TsTypeAnn as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110412    }
110413    #[doc = "Visit a node of type `TsTypeAssertion`.\n\nBy default, this method calls \
110414             [`TsTypeAssertion::fold_children_with_ast_path`]. If you want to recurse, you need to \
110415             call it manually."]
110416    #[inline]
110417    fn fold_ts_type_assertion(
110418        &mut self,
110419        node: TsTypeAssertion,
110420        __ast_path: &mut AstKindPath,
110421    ) -> TsTypeAssertion {
110422        <TsTypeAssertion as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110423            node, self, __ast_path,
110424        )
110425    }
110426    #[doc = "Visit a node of type `TsTypeElement`.\n\nBy default, this method calls \
110427             [`TsTypeElement::fold_children_with_ast_path`]. If you want to recurse, you need to \
110428             call it manually."]
110429    #[inline]
110430    fn fold_ts_type_element(
110431        &mut self,
110432        node: TsTypeElement,
110433        __ast_path: &mut AstKindPath,
110434    ) -> TsTypeElement {
110435        <TsTypeElement as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110436            node, self, __ast_path,
110437        )
110438    }
110439    #[doc = "Visit a node of type `Vec < TsTypeElement >`.\n\nBy default, this method calls [`Vec \
110440             < TsTypeElement >::fold_children_with_ast_path`]. If you want to recurse, you need to \
110441             call it manually."]
110442    #[inline]
110443    fn fold_ts_type_elements(
110444        &mut self,
110445        node: Vec<TsTypeElement>,
110446        __ast_path: &mut AstKindPath,
110447    ) -> Vec<TsTypeElement> {
110448        <Vec<TsTypeElement> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110449            node, self, __ast_path,
110450        )
110451    }
110452    #[doc = "Visit a node of type `TsTypeLit`.\n\nBy default, this method calls \
110453             [`TsTypeLit::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110454             it manually."]
110455    #[inline]
110456    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
110457        <TsTypeLit as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110458    }
110459    #[doc = "Visit a node of type `TsTypeOperator`.\n\nBy default, this method calls \
110460             [`TsTypeOperator::fold_children_with_ast_path`]. If you want to recurse, you need to \
110461             call it manually."]
110462    #[inline]
110463    fn fold_ts_type_operator(
110464        &mut self,
110465        node: TsTypeOperator,
110466        __ast_path: &mut AstKindPath,
110467    ) -> TsTypeOperator {
110468        <TsTypeOperator as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110469            node, self, __ast_path,
110470        )
110471    }
110472    #[doc = "Visit a node of type `TsTypeOperatorOp`.\n\nBy default, this method calls \
110473             [`TsTypeOperatorOp::fold_children_with_ast_path`]. If you want to recurse, you need \
110474             to call it manually."]
110475    #[inline]
110476    fn fold_ts_type_operator_op(
110477        &mut self,
110478        node: TsTypeOperatorOp,
110479        __ast_path: &mut AstKindPath,
110480    ) -> TsTypeOperatorOp {
110481        <TsTypeOperatorOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110482            node, self, __ast_path,
110483        )
110484    }
110485    #[doc = "Visit a node of type `TsTypeParam`.\n\nBy default, this method calls \
110486             [`TsTypeParam::fold_children_with_ast_path`]. If you want to recurse, you need to \
110487             call it manually."]
110488    #[inline]
110489    fn fold_ts_type_param(
110490        &mut self,
110491        node: TsTypeParam,
110492        __ast_path: &mut AstKindPath,
110493    ) -> TsTypeParam {
110494        <TsTypeParam as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110495    }
110496    #[doc = "Visit a node of type `TsTypeParamDecl`.\n\nBy default, this method calls \
110497             [`TsTypeParamDecl::fold_children_with_ast_path`]. If you want to recurse, you need to \
110498             call it manually."]
110499    #[inline]
110500    fn fold_ts_type_param_decl(
110501        &mut self,
110502        node: TsTypeParamDecl,
110503        __ast_path: &mut AstKindPath,
110504    ) -> TsTypeParamDecl {
110505        <TsTypeParamDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110506            node, self, __ast_path,
110507        )
110508    }
110509    #[doc = "Visit a node of type `TsTypeParamInstantiation`.\n\nBy default, this method calls \
110510             [`TsTypeParamInstantiation::fold_children_with_ast_path`]. If you want to recurse, \
110511             you need to call it manually."]
110512    #[inline]
110513    fn fold_ts_type_param_instantiation(
110514        &mut self,
110515        node: TsTypeParamInstantiation,
110516        __ast_path: &mut AstKindPath,
110517    ) -> TsTypeParamInstantiation {
110518        <TsTypeParamInstantiation as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110519            node, self, __ast_path,
110520        )
110521    }
110522    #[doc = "Visit a node of type `Vec < TsTypeParam >`.\n\nBy default, this method calls [`Vec < \
110523             TsTypeParam >::fold_children_with_ast_path`]. If you want to recurse, you need to \
110524             call it manually."]
110525    #[inline]
110526    fn fold_ts_type_params(
110527        &mut self,
110528        node: Vec<TsTypeParam>,
110529        __ast_path: &mut AstKindPath,
110530    ) -> Vec<TsTypeParam> {
110531        <Vec<TsTypeParam> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110532            node, self, __ast_path,
110533        )
110534    }
110535    #[doc = "Visit a node of type `TsTypePredicate`.\n\nBy default, this method calls \
110536             [`TsTypePredicate::fold_children_with_ast_path`]. If you want to recurse, you need to \
110537             call it manually."]
110538    #[inline]
110539    fn fold_ts_type_predicate(
110540        &mut self,
110541        node: TsTypePredicate,
110542        __ast_path: &mut AstKindPath,
110543    ) -> TsTypePredicate {
110544        <TsTypePredicate as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110545            node, self, __ast_path,
110546        )
110547    }
110548    #[doc = "Visit a node of type `TsTypeQuery`.\n\nBy default, this method calls \
110549             [`TsTypeQuery::fold_children_with_ast_path`]. If you want to recurse, you need to \
110550             call it manually."]
110551    #[inline]
110552    fn fold_ts_type_query(
110553        &mut self,
110554        node: TsTypeQuery,
110555        __ast_path: &mut AstKindPath,
110556    ) -> TsTypeQuery {
110557        <TsTypeQuery as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110558    }
110559    #[doc = "Visit a node of type `TsTypeQueryExpr`.\n\nBy default, this method calls \
110560             [`TsTypeQueryExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
110561             call it manually."]
110562    #[inline]
110563    fn fold_ts_type_query_expr(
110564        &mut self,
110565        node: TsTypeQueryExpr,
110566        __ast_path: &mut AstKindPath,
110567    ) -> TsTypeQueryExpr {
110568        <TsTypeQueryExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110569            node, self, __ast_path,
110570        )
110571    }
110572    #[doc = "Visit a node of type `TsTypeRef`.\n\nBy default, this method calls \
110573             [`TsTypeRef::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110574             it manually."]
110575    #[inline]
110576    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
110577        <TsTypeRef as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110578    }
110579    #[doc = "Visit a node of type `Vec < Box < TsType > >`.\n\nBy default, this method calls [`Vec \
110580             < Box < TsType > >::fold_children_with_ast_path`]. If you want to recurse, you need \
110581             to call it manually."]
110582    #[inline]
110583    fn fold_ts_types(
110584        &mut self,
110585        node: Vec<Box<TsType>>,
110586        __ast_path: &mut AstKindPath,
110587    ) -> Vec<Box<TsType>> {
110588        <Vec<Box<TsType>> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110589            node, self, __ast_path,
110590        )
110591    }
110592    #[doc = "Visit a node of type `TsUnionOrIntersectionType`.\n\nBy default, this method calls \
110593             [`TsUnionOrIntersectionType::fold_children_with_ast_path`]. If you want to recurse, \
110594             you need to call it manually."]
110595    #[inline]
110596    fn fold_ts_union_or_intersection_type(
110597        &mut self,
110598        node: TsUnionOrIntersectionType,
110599        __ast_path: &mut AstKindPath,
110600    ) -> TsUnionOrIntersectionType {
110601        <TsUnionOrIntersectionType as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110602            node, self, __ast_path,
110603        )
110604    }
110605    #[doc = "Visit a node of type `TsUnionType`.\n\nBy default, this method calls \
110606             [`TsUnionType::fold_children_with_ast_path`]. If you want to recurse, you need to \
110607             call it manually."]
110608    #[inline]
110609    fn fold_ts_union_type(
110610        &mut self,
110611        node: TsUnionType,
110612        __ast_path: &mut AstKindPath,
110613    ) -> TsUnionType {
110614        <TsUnionType as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110615    }
110616    #[doc = "Visit a node of type `UnaryExpr`.\n\nBy default, this method calls \
110617             [`UnaryExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110618             it manually."]
110619    #[inline]
110620    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
110621        <UnaryExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110622    }
110623    #[doc = "Visit a node of type `UnaryOp`.\n\nBy default, this method calls \
110624             [`UnaryOp::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110625             manually."]
110626    #[inline]
110627    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
110628        <UnaryOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110629    }
110630    #[doc = "Visit a node of type `UpdateExpr`.\n\nBy default, this method calls \
110631             [`UpdateExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110632             it manually."]
110633    #[inline]
110634    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
110635        <UpdateExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110636    }
110637    #[doc = "Visit a node of type `UpdateOp`.\n\nBy default, this method calls \
110638             [`UpdateOp::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110639             it manually."]
110640    #[inline]
110641    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
110642        <UpdateOp as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110643    }
110644    #[doc = "Visit a node of type `UsingDecl`.\n\nBy default, this method calls \
110645             [`UsingDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110646             it manually."]
110647    #[inline]
110648    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
110649        <UsingDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110650    }
110651    #[doc = "Visit a node of type `VarDecl`.\n\nBy default, this method calls \
110652             [`VarDecl::fold_children_with_ast_path`]. If you want to recurse, you need to call it \
110653             manually."]
110654    #[inline]
110655    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
110656        <VarDecl as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110657    }
110658    #[doc = "Visit a node of type `VarDeclKind`.\n\nBy default, this method calls \
110659             [`VarDeclKind::fold_children_with_ast_path`]. If you want to recurse, you need to \
110660             call it manually."]
110661    #[inline]
110662    fn fold_var_decl_kind(
110663        &mut self,
110664        node: VarDeclKind,
110665        __ast_path: &mut AstKindPath,
110666    ) -> VarDeclKind {
110667        <VarDeclKind as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110668    }
110669    #[doc = "Visit a node of type `VarDeclOrExpr`.\n\nBy default, this method calls \
110670             [`VarDeclOrExpr::fold_children_with_ast_path`]. If you want to recurse, you need to \
110671             call it manually."]
110672    #[inline]
110673    fn fold_var_decl_or_expr(
110674        &mut self,
110675        node: VarDeclOrExpr,
110676        __ast_path: &mut AstKindPath,
110677    ) -> VarDeclOrExpr {
110678        <VarDeclOrExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110679            node, self, __ast_path,
110680        )
110681    }
110682    #[doc = "Visit a node of type `VarDeclarator`.\n\nBy default, this method calls \
110683             [`VarDeclarator::fold_children_with_ast_path`]. If you want to recurse, you need to \
110684             call it manually."]
110685    #[inline]
110686    fn fold_var_declarator(
110687        &mut self,
110688        node: VarDeclarator,
110689        __ast_path: &mut AstKindPath,
110690    ) -> VarDeclarator {
110691        <VarDeclarator as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110692            node, self, __ast_path,
110693        )
110694    }
110695    #[doc = "Visit a node of type `Vec < VarDeclarator >`.\n\nBy default, this method calls [`Vec \
110696             < VarDeclarator >::fold_children_with_ast_path`]. If you want to recurse, you need to \
110697             call it manually."]
110698    #[inline]
110699    fn fold_var_declarators(
110700        &mut self,
110701        node: Vec<VarDeclarator>,
110702        __ast_path: &mut AstKindPath,
110703    ) -> Vec<VarDeclarator> {
110704        <Vec<VarDeclarator> as FoldWithAstPath<Self>>::fold_children_with_ast_path(
110705            node, self, __ast_path,
110706        )
110707    }
110708    #[doc = "Visit a node of type `WhileStmt`.\n\nBy default, this method calls \
110709             [`WhileStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110710             it manually."]
110711    #[inline]
110712    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
110713        <WhileStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110714    }
110715    #[doc = "Visit a node of type `WithStmt`.\n\nBy default, this method calls \
110716             [`WithStmt::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110717             it manually."]
110718    #[inline]
110719    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
110720        <WithStmt as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110721    }
110722    #[doc = "Visit a node of type `YieldExpr`.\n\nBy default, this method calls \
110723             [`YieldExpr::fold_children_with_ast_path`]. If you want to recurse, you need to call \
110724             it manually."]
110725    #[inline]
110726    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
110727        <YieldExpr as FoldWithAstPath<Self>>::fold_children_with_ast_path(node, self, __ast_path)
110728    }
110729}
110730#[cfg(any(docsrs, feature = "path"))]
110731#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
110732impl<V> FoldAstPath for &mut V
110733where
110734    V: ?Sized + FoldAstPath,
110735{
110736    #[inline]
110737    fn fold_accessibility(
110738        &mut self,
110739        node: Accessibility,
110740        __ast_path: &mut AstKindPath,
110741    ) -> Accessibility {
110742        <V as FoldAstPath>::fold_accessibility(&mut **self, node, __ast_path)
110743    }
110744
110745    #[inline]
110746    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
110747        <V as FoldAstPath>::fold_array_lit(&mut **self, node, __ast_path)
110748    }
110749
110750    #[inline]
110751    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
110752        <V as FoldAstPath>::fold_array_pat(&mut **self, node, __ast_path)
110753    }
110754
110755    #[inline]
110756    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
110757        <V as FoldAstPath>::fold_arrow_expr(&mut **self, node, __ast_path)
110758    }
110759
110760    #[inline]
110761    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
110762        <V as FoldAstPath>::fold_assign_expr(&mut **self, node, __ast_path)
110763    }
110764
110765    #[inline]
110766    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
110767        <V as FoldAstPath>::fold_assign_op(&mut **self, node, __ast_path)
110768    }
110769
110770    #[inline]
110771    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
110772        <V as FoldAstPath>::fold_assign_pat(&mut **self, node, __ast_path)
110773    }
110774
110775    #[inline]
110776    fn fold_assign_pat_prop(
110777        &mut self,
110778        node: AssignPatProp,
110779        __ast_path: &mut AstKindPath,
110780    ) -> AssignPatProp {
110781        <V as FoldAstPath>::fold_assign_pat_prop(&mut **self, node, __ast_path)
110782    }
110783
110784    #[inline]
110785    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
110786        <V as FoldAstPath>::fold_assign_prop(&mut **self, node, __ast_path)
110787    }
110788
110789    #[inline]
110790    fn fold_assign_target(
110791        &mut self,
110792        node: AssignTarget,
110793        __ast_path: &mut AstKindPath,
110794    ) -> AssignTarget {
110795        <V as FoldAstPath>::fold_assign_target(&mut **self, node, __ast_path)
110796    }
110797
110798    #[inline]
110799    fn fold_assign_target_pat(
110800        &mut self,
110801        node: AssignTargetPat,
110802        __ast_path: &mut AstKindPath,
110803    ) -> AssignTargetPat {
110804        <V as FoldAstPath>::fold_assign_target_pat(&mut **self, node, __ast_path)
110805    }
110806
110807    #[inline]
110808    fn fold_atom(
110809        &mut self,
110810        node: swc_atoms::Atom,
110811        __ast_path: &mut AstKindPath,
110812    ) -> swc_atoms::Atom {
110813        <V as FoldAstPath>::fold_atom(&mut **self, node, __ast_path)
110814    }
110815
110816    #[inline]
110817    fn fold_auto_accessor(
110818        &mut self,
110819        node: AutoAccessor,
110820        __ast_path: &mut AstKindPath,
110821    ) -> AutoAccessor {
110822        <V as FoldAstPath>::fold_auto_accessor(&mut **self, node, __ast_path)
110823    }
110824
110825    #[inline]
110826    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
110827        <V as FoldAstPath>::fold_await_expr(&mut **self, node, __ast_path)
110828    }
110829
110830    #[inline]
110831    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
110832        <V as FoldAstPath>::fold_big_int(&mut **self, node, __ast_path)
110833    }
110834
110835    #[inline]
110836    fn fold_big_int_value(
110837        &mut self,
110838        node: BigIntValue,
110839        __ast_path: &mut AstKindPath,
110840    ) -> BigIntValue {
110841        <V as FoldAstPath>::fold_big_int_value(&mut **self, node, __ast_path)
110842    }
110843
110844    #[inline]
110845    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
110846        <V as FoldAstPath>::fold_bin_expr(&mut **self, node, __ast_path)
110847    }
110848
110849    #[inline]
110850    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
110851        <V as FoldAstPath>::fold_binary_op(&mut **self, node, __ast_path)
110852    }
110853
110854    #[inline]
110855    fn fold_binding_ident(
110856        &mut self,
110857        node: BindingIdent,
110858        __ast_path: &mut AstKindPath,
110859    ) -> BindingIdent {
110860        <V as FoldAstPath>::fold_binding_ident(&mut **self, node, __ast_path)
110861    }
110862
110863    #[inline]
110864    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
110865        <V as FoldAstPath>::fold_block_stmt(&mut **self, node, __ast_path)
110866    }
110867
110868    #[inline]
110869    fn fold_block_stmt_or_expr(
110870        &mut self,
110871        node: BlockStmtOrExpr,
110872        __ast_path: &mut AstKindPath,
110873    ) -> BlockStmtOrExpr {
110874        <V as FoldAstPath>::fold_block_stmt_or_expr(&mut **self, node, __ast_path)
110875    }
110876
110877    #[inline]
110878    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
110879        <V as FoldAstPath>::fold_bool(&mut **self, node, __ast_path)
110880    }
110881
110882    #[inline]
110883    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
110884        <V as FoldAstPath>::fold_break_stmt(&mut **self, node, __ast_path)
110885    }
110886
110887    #[inline]
110888    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
110889        <V as FoldAstPath>::fold_call_expr(&mut **self, node, __ast_path)
110890    }
110891
110892    #[inline]
110893    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
110894        <V as FoldAstPath>::fold_callee(&mut **self, node, __ast_path)
110895    }
110896
110897    #[inline]
110898    fn fold_catch_clause(
110899        &mut self,
110900        node: CatchClause,
110901        __ast_path: &mut AstKindPath,
110902    ) -> CatchClause {
110903        <V as FoldAstPath>::fold_catch_clause(&mut **self, node, __ast_path)
110904    }
110905
110906    #[inline]
110907    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
110908        <V as FoldAstPath>::fold_class(&mut **self, node, __ast_path)
110909    }
110910
110911    #[inline]
110912    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
110913        <V as FoldAstPath>::fold_class_decl(&mut **self, node, __ast_path)
110914    }
110915
110916    #[inline]
110917    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
110918        <V as FoldAstPath>::fold_class_expr(&mut **self, node, __ast_path)
110919    }
110920
110921    #[inline]
110922    fn fold_class_member(
110923        &mut self,
110924        node: ClassMember,
110925        __ast_path: &mut AstKindPath,
110926    ) -> ClassMember {
110927        <V as FoldAstPath>::fold_class_member(&mut **self, node, __ast_path)
110928    }
110929
110930    #[inline]
110931    fn fold_class_members(
110932        &mut self,
110933        node: Vec<ClassMember>,
110934        __ast_path: &mut AstKindPath,
110935    ) -> Vec<ClassMember> {
110936        <V as FoldAstPath>::fold_class_members(&mut **self, node, __ast_path)
110937    }
110938
110939    #[inline]
110940    fn fold_class_method(
110941        &mut self,
110942        node: ClassMethod,
110943        __ast_path: &mut AstKindPath,
110944    ) -> ClassMethod {
110945        <V as FoldAstPath>::fold_class_method(&mut **self, node, __ast_path)
110946    }
110947
110948    #[inline]
110949    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
110950        <V as FoldAstPath>::fold_class_prop(&mut **self, node, __ast_path)
110951    }
110952
110953    #[inline]
110954    fn fold_computed_prop_name(
110955        &mut self,
110956        node: ComputedPropName,
110957        __ast_path: &mut AstKindPath,
110958    ) -> ComputedPropName {
110959        <V as FoldAstPath>::fold_computed_prop_name(&mut **self, node, __ast_path)
110960    }
110961
110962    #[inline]
110963    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
110964        <V as FoldAstPath>::fold_cond_expr(&mut **self, node, __ast_path)
110965    }
110966
110967    #[inline]
110968    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
110969        <V as FoldAstPath>::fold_constructor(&mut **self, node, __ast_path)
110970    }
110971
110972    #[inline]
110973    fn fold_continue_stmt(
110974        &mut self,
110975        node: ContinueStmt,
110976        __ast_path: &mut AstKindPath,
110977    ) -> ContinueStmt {
110978        <V as FoldAstPath>::fold_continue_stmt(&mut **self, node, __ast_path)
110979    }
110980
110981    #[inline]
110982    fn fold_debugger_stmt(
110983        &mut self,
110984        node: DebuggerStmt,
110985        __ast_path: &mut AstKindPath,
110986    ) -> DebuggerStmt {
110987        <V as FoldAstPath>::fold_debugger_stmt(&mut **self, node, __ast_path)
110988    }
110989
110990    #[inline]
110991    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
110992        <V as FoldAstPath>::fold_decl(&mut **self, node, __ast_path)
110993    }
110994
110995    #[inline]
110996    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
110997        <V as FoldAstPath>::fold_decorator(&mut **self, node, __ast_path)
110998    }
110999
111000    #[inline]
111001    fn fold_decorators(
111002        &mut self,
111003        node: Vec<Decorator>,
111004        __ast_path: &mut AstKindPath,
111005    ) -> Vec<Decorator> {
111006        <V as FoldAstPath>::fold_decorators(&mut **self, node, __ast_path)
111007    }
111008
111009    #[inline]
111010    fn fold_default_decl(
111011        &mut self,
111012        node: DefaultDecl,
111013        __ast_path: &mut AstKindPath,
111014    ) -> DefaultDecl {
111015        <V as FoldAstPath>::fold_default_decl(&mut **self, node, __ast_path)
111016    }
111017
111018    #[inline]
111019    fn fold_do_while_stmt(
111020        &mut self,
111021        node: DoWhileStmt,
111022        __ast_path: &mut AstKindPath,
111023    ) -> DoWhileStmt {
111024        <V as FoldAstPath>::fold_do_while_stmt(&mut **self, node, __ast_path)
111025    }
111026
111027    #[inline]
111028    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
111029        <V as FoldAstPath>::fold_empty_stmt(&mut **self, node, __ast_path)
111030    }
111031
111032    #[inline]
111033    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
111034        <V as FoldAstPath>::fold_export_all(&mut **self, node, __ast_path)
111035    }
111036
111037    #[inline]
111038    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
111039        <V as FoldAstPath>::fold_export_decl(&mut **self, node, __ast_path)
111040    }
111041
111042    #[inline]
111043    fn fold_export_default_decl(
111044        &mut self,
111045        node: ExportDefaultDecl,
111046        __ast_path: &mut AstKindPath,
111047    ) -> ExportDefaultDecl {
111048        <V as FoldAstPath>::fold_export_default_decl(&mut **self, node, __ast_path)
111049    }
111050
111051    #[inline]
111052    fn fold_export_default_expr(
111053        &mut self,
111054        node: ExportDefaultExpr,
111055        __ast_path: &mut AstKindPath,
111056    ) -> ExportDefaultExpr {
111057        <V as FoldAstPath>::fold_export_default_expr(&mut **self, node, __ast_path)
111058    }
111059
111060    #[inline]
111061    fn fold_export_default_specifier(
111062        &mut self,
111063        node: ExportDefaultSpecifier,
111064        __ast_path: &mut AstKindPath,
111065    ) -> ExportDefaultSpecifier {
111066        <V as FoldAstPath>::fold_export_default_specifier(&mut **self, node, __ast_path)
111067    }
111068
111069    #[inline]
111070    fn fold_export_named_specifier(
111071        &mut self,
111072        node: ExportNamedSpecifier,
111073        __ast_path: &mut AstKindPath,
111074    ) -> ExportNamedSpecifier {
111075        <V as FoldAstPath>::fold_export_named_specifier(&mut **self, node, __ast_path)
111076    }
111077
111078    #[inline]
111079    fn fold_export_namespace_specifier(
111080        &mut self,
111081        node: ExportNamespaceSpecifier,
111082        __ast_path: &mut AstKindPath,
111083    ) -> ExportNamespaceSpecifier {
111084        <V as FoldAstPath>::fold_export_namespace_specifier(&mut **self, node, __ast_path)
111085    }
111086
111087    #[inline]
111088    fn fold_export_specifier(
111089        &mut self,
111090        node: ExportSpecifier,
111091        __ast_path: &mut AstKindPath,
111092    ) -> ExportSpecifier {
111093        <V as FoldAstPath>::fold_export_specifier(&mut **self, node, __ast_path)
111094    }
111095
111096    #[inline]
111097    fn fold_export_specifiers(
111098        &mut self,
111099        node: Vec<ExportSpecifier>,
111100        __ast_path: &mut AstKindPath,
111101    ) -> Vec<ExportSpecifier> {
111102        <V as FoldAstPath>::fold_export_specifiers(&mut **self, node, __ast_path)
111103    }
111104
111105    #[inline]
111106    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
111107        <V as FoldAstPath>::fold_expr(&mut **self, node, __ast_path)
111108    }
111109
111110    #[inline]
111111    fn fold_expr_or_spread(
111112        &mut self,
111113        node: ExprOrSpread,
111114        __ast_path: &mut AstKindPath,
111115    ) -> ExprOrSpread {
111116        <V as FoldAstPath>::fold_expr_or_spread(&mut **self, node, __ast_path)
111117    }
111118
111119    #[inline]
111120    fn fold_expr_or_spreads(
111121        &mut self,
111122        node: Vec<ExprOrSpread>,
111123        __ast_path: &mut AstKindPath,
111124    ) -> Vec<ExprOrSpread> {
111125        <V as FoldAstPath>::fold_expr_or_spreads(&mut **self, node, __ast_path)
111126    }
111127
111128    #[inline]
111129    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
111130        <V as FoldAstPath>::fold_expr_stmt(&mut **self, node, __ast_path)
111131    }
111132
111133    #[inline]
111134    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
111135        <V as FoldAstPath>::fold_exprs(&mut **self, node, __ast_path)
111136    }
111137
111138    #[inline]
111139    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
111140        <V as FoldAstPath>::fold_fn_decl(&mut **self, node, __ast_path)
111141    }
111142
111143    #[inline]
111144    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
111145        <V as FoldAstPath>::fold_fn_expr(&mut **self, node, __ast_path)
111146    }
111147
111148    #[inline]
111149    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
111150        <V as FoldAstPath>::fold_for_head(&mut **self, node, __ast_path)
111151    }
111152
111153    #[inline]
111154    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
111155        <V as FoldAstPath>::fold_for_in_stmt(&mut **self, node, __ast_path)
111156    }
111157
111158    #[inline]
111159    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
111160        <V as FoldAstPath>::fold_for_of_stmt(&mut **self, node, __ast_path)
111161    }
111162
111163    #[inline]
111164    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
111165        <V as FoldAstPath>::fold_for_stmt(&mut **self, node, __ast_path)
111166    }
111167
111168    #[inline]
111169    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
111170        <V as FoldAstPath>::fold_function(&mut **self, node, __ast_path)
111171    }
111172
111173    #[inline]
111174    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
111175        <V as FoldAstPath>::fold_getter_prop(&mut **self, node, __ast_path)
111176    }
111177
111178    #[inline]
111179    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
111180        <V as FoldAstPath>::fold_ident(&mut **self, node, __ast_path)
111181    }
111182
111183    #[inline]
111184    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
111185        <V as FoldAstPath>::fold_ident_name(&mut **self, node, __ast_path)
111186    }
111187
111188    #[inline]
111189    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
111190        <V as FoldAstPath>::fold_if_stmt(&mut **self, node, __ast_path)
111191    }
111192
111193    #[inline]
111194    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
111195        <V as FoldAstPath>::fold_import(&mut **self, node, __ast_path)
111196    }
111197
111198    #[inline]
111199    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
111200        <V as FoldAstPath>::fold_import_decl(&mut **self, node, __ast_path)
111201    }
111202
111203    #[inline]
111204    fn fold_import_default_specifier(
111205        &mut self,
111206        node: ImportDefaultSpecifier,
111207        __ast_path: &mut AstKindPath,
111208    ) -> ImportDefaultSpecifier {
111209        <V as FoldAstPath>::fold_import_default_specifier(&mut **self, node, __ast_path)
111210    }
111211
111212    #[inline]
111213    fn fold_import_named_specifier(
111214        &mut self,
111215        node: ImportNamedSpecifier,
111216        __ast_path: &mut AstKindPath,
111217    ) -> ImportNamedSpecifier {
111218        <V as FoldAstPath>::fold_import_named_specifier(&mut **self, node, __ast_path)
111219    }
111220
111221    #[inline]
111222    fn fold_import_phase(
111223        &mut self,
111224        node: ImportPhase,
111225        __ast_path: &mut AstKindPath,
111226    ) -> ImportPhase {
111227        <V as FoldAstPath>::fold_import_phase(&mut **self, node, __ast_path)
111228    }
111229
111230    #[inline]
111231    fn fold_import_specifier(
111232        &mut self,
111233        node: ImportSpecifier,
111234        __ast_path: &mut AstKindPath,
111235    ) -> ImportSpecifier {
111236        <V as FoldAstPath>::fold_import_specifier(&mut **self, node, __ast_path)
111237    }
111238
111239    #[inline]
111240    fn fold_import_specifiers(
111241        &mut self,
111242        node: Vec<ImportSpecifier>,
111243        __ast_path: &mut AstKindPath,
111244    ) -> Vec<ImportSpecifier> {
111245        <V as FoldAstPath>::fold_import_specifiers(&mut **self, node, __ast_path)
111246    }
111247
111248    #[inline]
111249    fn fold_import_star_as_specifier(
111250        &mut self,
111251        node: ImportStarAsSpecifier,
111252        __ast_path: &mut AstKindPath,
111253    ) -> ImportStarAsSpecifier {
111254        <V as FoldAstPath>::fold_import_star_as_specifier(&mut **self, node, __ast_path)
111255    }
111256
111257    #[inline]
111258    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
111259        <V as FoldAstPath>::fold_import_with(&mut **self, node, __ast_path)
111260    }
111261
111262    #[inline]
111263    fn fold_import_with_item(
111264        &mut self,
111265        node: ImportWithItem,
111266        __ast_path: &mut AstKindPath,
111267    ) -> ImportWithItem {
111268        <V as FoldAstPath>::fold_import_with_item(&mut **self, node, __ast_path)
111269    }
111270
111271    #[inline]
111272    fn fold_import_with_items(
111273        &mut self,
111274        node: Vec<ImportWithItem>,
111275        __ast_path: &mut AstKindPath,
111276    ) -> Vec<ImportWithItem> {
111277        <V as FoldAstPath>::fold_import_with_items(&mut **self, node, __ast_path)
111278    }
111279
111280    #[inline]
111281    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
111282        <V as FoldAstPath>::fold_invalid(&mut **self, node, __ast_path)
111283    }
111284
111285    #[inline]
111286    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
111287        <V as FoldAstPath>::fold_jsx_attr(&mut **self, node, __ast_path)
111288    }
111289
111290    #[inline]
111291    fn fold_jsx_attr_name(
111292        &mut self,
111293        node: JSXAttrName,
111294        __ast_path: &mut AstKindPath,
111295    ) -> JSXAttrName {
111296        <V as FoldAstPath>::fold_jsx_attr_name(&mut **self, node, __ast_path)
111297    }
111298
111299    #[inline]
111300    fn fold_jsx_attr_or_spread(
111301        &mut self,
111302        node: JSXAttrOrSpread,
111303        __ast_path: &mut AstKindPath,
111304    ) -> JSXAttrOrSpread {
111305        <V as FoldAstPath>::fold_jsx_attr_or_spread(&mut **self, node, __ast_path)
111306    }
111307
111308    #[inline]
111309    fn fold_jsx_attr_or_spreads(
111310        &mut self,
111311        node: Vec<JSXAttrOrSpread>,
111312        __ast_path: &mut AstKindPath,
111313    ) -> Vec<JSXAttrOrSpread> {
111314        <V as FoldAstPath>::fold_jsx_attr_or_spreads(&mut **self, node, __ast_path)
111315    }
111316
111317    #[inline]
111318    fn fold_jsx_attr_value(
111319        &mut self,
111320        node: JSXAttrValue,
111321        __ast_path: &mut AstKindPath,
111322    ) -> JSXAttrValue {
111323        <V as FoldAstPath>::fold_jsx_attr_value(&mut **self, node, __ast_path)
111324    }
111325
111326    #[inline]
111327    fn fold_jsx_closing_element(
111328        &mut self,
111329        node: JSXClosingElement,
111330        __ast_path: &mut AstKindPath,
111331    ) -> JSXClosingElement {
111332        <V as FoldAstPath>::fold_jsx_closing_element(&mut **self, node, __ast_path)
111333    }
111334
111335    #[inline]
111336    fn fold_jsx_closing_fragment(
111337        &mut self,
111338        node: JSXClosingFragment,
111339        __ast_path: &mut AstKindPath,
111340    ) -> JSXClosingFragment {
111341        <V as FoldAstPath>::fold_jsx_closing_fragment(&mut **self, node, __ast_path)
111342    }
111343
111344    #[inline]
111345    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
111346        <V as FoldAstPath>::fold_jsx_element(&mut **self, node, __ast_path)
111347    }
111348
111349    #[inline]
111350    fn fold_jsx_element_child(
111351        &mut self,
111352        node: JSXElementChild,
111353        __ast_path: &mut AstKindPath,
111354    ) -> JSXElementChild {
111355        <V as FoldAstPath>::fold_jsx_element_child(&mut **self, node, __ast_path)
111356    }
111357
111358    #[inline]
111359    fn fold_jsx_element_childs(
111360        &mut self,
111361        node: Vec<JSXElementChild>,
111362        __ast_path: &mut AstKindPath,
111363    ) -> Vec<JSXElementChild> {
111364        <V as FoldAstPath>::fold_jsx_element_childs(&mut **self, node, __ast_path)
111365    }
111366
111367    #[inline]
111368    fn fold_jsx_element_name(
111369        &mut self,
111370        node: JSXElementName,
111371        __ast_path: &mut AstKindPath,
111372    ) -> JSXElementName {
111373        <V as FoldAstPath>::fold_jsx_element_name(&mut **self, node, __ast_path)
111374    }
111375
111376    #[inline]
111377    fn fold_jsx_empty_expr(
111378        &mut self,
111379        node: JSXEmptyExpr,
111380        __ast_path: &mut AstKindPath,
111381    ) -> JSXEmptyExpr {
111382        <V as FoldAstPath>::fold_jsx_empty_expr(&mut **self, node, __ast_path)
111383    }
111384
111385    #[inline]
111386    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
111387        <V as FoldAstPath>::fold_jsx_expr(&mut **self, node, __ast_path)
111388    }
111389
111390    #[inline]
111391    fn fold_jsx_expr_container(
111392        &mut self,
111393        node: JSXExprContainer,
111394        __ast_path: &mut AstKindPath,
111395    ) -> JSXExprContainer {
111396        <V as FoldAstPath>::fold_jsx_expr_container(&mut **self, node, __ast_path)
111397    }
111398
111399    #[inline]
111400    fn fold_jsx_fragment(
111401        &mut self,
111402        node: JSXFragment,
111403        __ast_path: &mut AstKindPath,
111404    ) -> JSXFragment {
111405        <V as FoldAstPath>::fold_jsx_fragment(&mut **self, node, __ast_path)
111406    }
111407
111408    #[inline]
111409    fn fold_jsx_member_expr(
111410        &mut self,
111411        node: JSXMemberExpr,
111412        __ast_path: &mut AstKindPath,
111413    ) -> JSXMemberExpr {
111414        <V as FoldAstPath>::fold_jsx_member_expr(&mut **self, node, __ast_path)
111415    }
111416
111417    #[inline]
111418    fn fold_jsx_namespaced_name(
111419        &mut self,
111420        node: JSXNamespacedName,
111421        __ast_path: &mut AstKindPath,
111422    ) -> JSXNamespacedName {
111423        <V as FoldAstPath>::fold_jsx_namespaced_name(&mut **self, node, __ast_path)
111424    }
111425
111426    #[inline]
111427    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
111428        <V as FoldAstPath>::fold_jsx_object(&mut **self, node, __ast_path)
111429    }
111430
111431    #[inline]
111432    fn fold_jsx_opening_element(
111433        &mut self,
111434        node: JSXOpeningElement,
111435        __ast_path: &mut AstKindPath,
111436    ) -> JSXOpeningElement {
111437        <V as FoldAstPath>::fold_jsx_opening_element(&mut **self, node, __ast_path)
111438    }
111439
111440    #[inline]
111441    fn fold_jsx_opening_fragment(
111442        &mut self,
111443        node: JSXOpeningFragment,
111444        __ast_path: &mut AstKindPath,
111445    ) -> JSXOpeningFragment {
111446        <V as FoldAstPath>::fold_jsx_opening_fragment(&mut **self, node, __ast_path)
111447    }
111448
111449    #[inline]
111450    fn fold_jsx_spread_child(
111451        &mut self,
111452        node: JSXSpreadChild,
111453        __ast_path: &mut AstKindPath,
111454    ) -> JSXSpreadChild {
111455        <V as FoldAstPath>::fold_jsx_spread_child(&mut **self, node, __ast_path)
111456    }
111457
111458    #[inline]
111459    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
111460        <V as FoldAstPath>::fold_jsx_text(&mut **self, node, __ast_path)
111461    }
111462
111463    #[inline]
111464    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
111465        <V as FoldAstPath>::fold_key(&mut **self, node, __ast_path)
111466    }
111467
111468    #[inline]
111469    fn fold_key_value_pat_prop(
111470        &mut self,
111471        node: KeyValuePatProp,
111472        __ast_path: &mut AstKindPath,
111473    ) -> KeyValuePatProp {
111474        <V as FoldAstPath>::fold_key_value_pat_prop(&mut **self, node, __ast_path)
111475    }
111476
111477    #[inline]
111478    fn fold_key_value_prop(
111479        &mut self,
111480        node: KeyValueProp,
111481        __ast_path: &mut AstKindPath,
111482    ) -> KeyValueProp {
111483        <V as FoldAstPath>::fold_key_value_prop(&mut **self, node, __ast_path)
111484    }
111485
111486    #[inline]
111487    fn fold_labeled_stmt(
111488        &mut self,
111489        node: LabeledStmt,
111490        __ast_path: &mut AstKindPath,
111491    ) -> LabeledStmt {
111492        <V as FoldAstPath>::fold_labeled_stmt(&mut **self, node, __ast_path)
111493    }
111494
111495    #[inline]
111496    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
111497        <V as FoldAstPath>::fold_lit(&mut **self, node, __ast_path)
111498    }
111499
111500    #[inline]
111501    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
111502        <V as FoldAstPath>::fold_member_expr(&mut **self, node, __ast_path)
111503    }
111504
111505    #[inline]
111506    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
111507        <V as FoldAstPath>::fold_member_prop(&mut **self, node, __ast_path)
111508    }
111509
111510    #[inline]
111511    fn fold_meta_prop_expr(
111512        &mut self,
111513        node: MetaPropExpr,
111514        __ast_path: &mut AstKindPath,
111515    ) -> MetaPropExpr {
111516        <V as FoldAstPath>::fold_meta_prop_expr(&mut **self, node, __ast_path)
111517    }
111518
111519    #[inline]
111520    fn fold_meta_prop_kind(
111521        &mut self,
111522        node: MetaPropKind,
111523        __ast_path: &mut AstKindPath,
111524    ) -> MetaPropKind {
111525        <V as FoldAstPath>::fold_meta_prop_kind(&mut **self, node, __ast_path)
111526    }
111527
111528    #[inline]
111529    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
111530        <V as FoldAstPath>::fold_method_kind(&mut **self, node, __ast_path)
111531    }
111532
111533    #[inline]
111534    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
111535        <V as FoldAstPath>::fold_method_prop(&mut **self, node, __ast_path)
111536    }
111537
111538    #[inline]
111539    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
111540        <V as FoldAstPath>::fold_module(&mut **self, node, __ast_path)
111541    }
111542
111543    #[inline]
111544    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
111545        <V as FoldAstPath>::fold_module_decl(&mut **self, node, __ast_path)
111546    }
111547
111548    #[inline]
111549    fn fold_module_export_name(
111550        &mut self,
111551        node: ModuleExportName,
111552        __ast_path: &mut AstKindPath,
111553    ) -> ModuleExportName {
111554        <V as FoldAstPath>::fold_module_export_name(&mut **self, node, __ast_path)
111555    }
111556
111557    #[inline]
111558    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
111559        <V as FoldAstPath>::fold_module_item(&mut **self, node, __ast_path)
111560    }
111561
111562    #[inline]
111563    fn fold_module_items(
111564        &mut self,
111565        node: Vec<ModuleItem>,
111566        __ast_path: &mut AstKindPath,
111567    ) -> Vec<ModuleItem> {
111568        <V as FoldAstPath>::fold_module_items(&mut **self, node, __ast_path)
111569    }
111570
111571    #[inline]
111572    fn fold_named_export(
111573        &mut self,
111574        node: NamedExport,
111575        __ast_path: &mut AstKindPath,
111576    ) -> NamedExport {
111577        <V as FoldAstPath>::fold_named_export(&mut **self, node, __ast_path)
111578    }
111579
111580    #[inline]
111581    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
111582        <V as FoldAstPath>::fold_new_expr(&mut **self, node, __ast_path)
111583    }
111584
111585    #[inline]
111586    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
111587        <V as FoldAstPath>::fold_null(&mut **self, node, __ast_path)
111588    }
111589
111590    #[inline]
111591    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
111592        <V as FoldAstPath>::fold_number(&mut **self, node, __ast_path)
111593    }
111594
111595    #[inline]
111596    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
111597        <V as FoldAstPath>::fold_object_lit(&mut **self, node, __ast_path)
111598    }
111599
111600    #[inline]
111601    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
111602        <V as FoldAstPath>::fold_object_pat(&mut **self, node, __ast_path)
111603    }
111604
111605    #[inline]
111606    fn fold_object_pat_prop(
111607        &mut self,
111608        node: ObjectPatProp,
111609        __ast_path: &mut AstKindPath,
111610    ) -> ObjectPatProp {
111611        <V as FoldAstPath>::fold_object_pat_prop(&mut **self, node, __ast_path)
111612    }
111613
111614    #[inline]
111615    fn fold_object_pat_props(
111616        &mut self,
111617        node: Vec<ObjectPatProp>,
111618        __ast_path: &mut AstKindPath,
111619    ) -> Vec<ObjectPatProp> {
111620        <V as FoldAstPath>::fold_object_pat_props(&mut **self, node, __ast_path)
111621    }
111622
111623    #[inline]
111624    fn fold_opt_accessibility(
111625        &mut self,
111626        node: Option<Accessibility>,
111627        __ast_path: &mut AstKindPath,
111628    ) -> Option<Accessibility> {
111629        <V as FoldAstPath>::fold_opt_accessibility(&mut **self, node, __ast_path)
111630    }
111631
111632    #[inline]
111633    fn fold_opt_atom(
111634        &mut self,
111635        node: Option<swc_atoms::Atom>,
111636        __ast_path: &mut AstKindPath,
111637    ) -> Option<swc_atoms::Atom> {
111638        <V as FoldAstPath>::fold_opt_atom(&mut **self, node, __ast_path)
111639    }
111640
111641    #[inline]
111642    fn fold_opt_block_stmt(
111643        &mut self,
111644        node: Option<BlockStmt>,
111645        __ast_path: &mut AstKindPath,
111646    ) -> Option<BlockStmt> {
111647        <V as FoldAstPath>::fold_opt_block_stmt(&mut **self, node, __ast_path)
111648    }
111649
111650    #[inline]
111651    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
111652        <V as FoldAstPath>::fold_opt_call(&mut **self, node, __ast_path)
111653    }
111654
111655    #[inline]
111656    fn fold_opt_catch_clause(
111657        &mut self,
111658        node: Option<CatchClause>,
111659        __ast_path: &mut AstKindPath,
111660    ) -> Option<CatchClause> {
111661        <V as FoldAstPath>::fold_opt_catch_clause(&mut **self, node, __ast_path)
111662    }
111663
111664    #[inline]
111665    fn fold_opt_chain_base(
111666        &mut self,
111667        node: OptChainBase,
111668        __ast_path: &mut AstKindPath,
111669    ) -> OptChainBase {
111670        <V as FoldAstPath>::fold_opt_chain_base(&mut **self, node, __ast_path)
111671    }
111672
111673    #[inline]
111674    fn fold_opt_chain_expr(
111675        &mut self,
111676        node: OptChainExpr,
111677        __ast_path: &mut AstKindPath,
111678    ) -> OptChainExpr {
111679        <V as FoldAstPath>::fold_opt_chain_expr(&mut **self, node, __ast_path)
111680    }
111681
111682    #[inline]
111683    fn fold_opt_expr(
111684        &mut self,
111685        node: Option<Box<Expr>>,
111686        __ast_path: &mut AstKindPath,
111687    ) -> Option<Box<Expr>> {
111688        <V as FoldAstPath>::fold_opt_expr(&mut **self, node, __ast_path)
111689    }
111690
111691    #[inline]
111692    fn fold_opt_expr_or_spread(
111693        &mut self,
111694        node: Option<ExprOrSpread>,
111695        __ast_path: &mut AstKindPath,
111696    ) -> Option<ExprOrSpread> {
111697        <V as FoldAstPath>::fold_opt_expr_or_spread(&mut **self, node, __ast_path)
111698    }
111699
111700    #[inline]
111701    fn fold_opt_expr_or_spreads(
111702        &mut self,
111703        node: Option<Vec<ExprOrSpread>>,
111704        __ast_path: &mut AstKindPath,
111705    ) -> Option<Vec<ExprOrSpread>> {
111706        <V as FoldAstPath>::fold_opt_expr_or_spreads(&mut **self, node, __ast_path)
111707    }
111708
111709    #[inline]
111710    fn fold_opt_ident(
111711        &mut self,
111712        node: Option<Ident>,
111713        __ast_path: &mut AstKindPath,
111714    ) -> Option<Ident> {
111715        <V as FoldAstPath>::fold_opt_ident(&mut **self, node, __ast_path)
111716    }
111717
111718    #[inline]
111719    fn fold_opt_jsx_attr_value(
111720        &mut self,
111721        node: Option<JSXAttrValue>,
111722        __ast_path: &mut AstKindPath,
111723    ) -> Option<JSXAttrValue> {
111724        <V as FoldAstPath>::fold_opt_jsx_attr_value(&mut **self, node, __ast_path)
111725    }
111726
111727    #[inline]
111728    fn fold_opt_jsx_closing_element(
111729        &mut self,
111730        node: Option<JSXClosingElement>,
111731        __ast_path: &mut AstKindPath,
111732    ) -> Option<JSXClosingElement> {
111733        <V as FoldAstPath>::fold_opt_jsx_closing_element(&mut **self, node, __ast_path)
111734    }
111735
111736    #[inline]
111737    fn fold_opt_module_export_name(
111738        &mut self,
111739        node: Option<ModuleExportName>,
111740        __ast_path: &mut AstKindPath,
111741    ) -> Option<ModuleExportName> {
111742        <V as FoldAstPath>::fold_opt_module_export_name(&mut **self, node, __ast_path)
111743    }
111744
111745    #[inline]
111746    fn fold_opt_object_lit(
111747        &mut self,
111748        node: Option<Box<ObjectLit>>,
111749        __ast_path: &mut AstKindPath,
111750    ) -> Option<Box<ObjectLit>> {
111751        <V as FoldAstPath>::fold_opt_object_lit(&mut **self, node, __ast_path)
111752    }
111753
111754    #[inline]
111755    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
111756        <V as FoldAstPath>::fold_opt_pat(&mut **self, node, __ast_path)
111757    }
111758
111759    #[inline]
111760    fn fold_opt_span(
111761        &mut self,
111762        node: Option<swc_common::Span>,
111763        __ast_path: &mut AstKindPath,
111764    ) -> Option<swc_common::Span> {
111765        <V as FoldAstPath>::fold_opt_span(&mut **self, node, __ast_path)
111766    }
111767
111768    #[inline]
111769    fn fold_opt_stmt(
111770        &mut self,
111771        node: Option<Box<Stmt>>,
111772        __ast_path: &mut AstKindPath,
111773    ) -> Option<Box<Stmt>> {
111774        <V as FoldAstPath>::fold_opt_stmt(&mut **self, node, __ast_path)
111775    }
111776
111777    #[inline]
111778    fn fold_opt_str(
111779        &mut self,
111780        node: Option<Box<Str>>,
111781        __ast_path: &mut AstKindPath,
111782    ) -> Option<Box<Str>> {
111783        <V as FoldAstPath>::fold_opt_str(&mut **self, node, __ast_path)
111784    }
111785
111786    #[inline]
111787    fn fold_opt_true_plus_minus(
111788        &mut self,
111789        node: Option<TruePlusMinus>,
111790        __ast_path: &mut AstKindPath,
111791    ) -> Option<TruePlusMinus> {
111792        <V as FoldAstPath>::fold_opt_true_plus_minus(&mut **self, node, __ast_path)
111793    }
111794
111795    #[inline]
111796    fn fold_opt_ts_entity_name(
111797        &mut self,
111798        node: Option<TsEntityName>,
111799        __ast_path: &mut AstKindPath,
111800    ) -> Option<TsEntityName> {
111801        <V as FoldAstPath>::fold_opt_ts_entity_name(&mut **self, node, __ast_path)
111802    }
111803
111804    #[inline]
111805    fn fold_opt_ts_namespace_body(
111806        &mut self,
111807        node: Option<TsNamespaceBody>,
111808        __ast_path: &mut AstKindPath,
111809    ) -> Option<TsNamespaceBody> {
111810        <V as FoldAstPath>::fold_opt_ts_namespace_body(&mut **self, node, __ast_path)
111811    }
111812
111813    #[inline]
111814    fn fold_opt_ts_type(
111815        &mut self,
111816        node: Option<Box<TsType>>,
111817        __ast_path: &mut AstKindPath,
111818    ) -> Option<Box<TsType>> {
111819        <V as FoldAstPath>::fold_opt_ts_type(&mut **self, node, __ast_path)
111820    }
111821
111822    #[inline]
111823    fn fold_opt_ts_type_ann(
111824        &mut self,
111825        node: Option<Box<TsTypeAnn>>,
111826        __ast_path: &mut AstKindPath,
111827    ) -> Option<Box<TsTypeAnn>> {
111828        <V as FoldAstPath>::fold_opt_ts_type_ann(&mut **self, node, __ast_path)
111829    }
111830
111831    #[inline]
111832    fn fold_opt_ts_type_param_decl(
111833        &mut self,
111834        node: Option<Box<TsTypeParamDecl>>,
111835        __ast_path: &mut AstKindPath,
111836    ) -> Option<Box<TsTypeParamDecl>> {
111837        <V as FoldAstPath>::fold_opt_ts_type_param_decl(&mut **self, node, __ast_path)
111838    }
111839
111840    #[inline]
111841    fn fold_opt_ts_type_param_instantiation(
111842        &mut self,
111843        node: Option<Box<TsTypeParamInstantiation>>,
111844        __ast_path: &mut AstKindPath,
111845    ) -> Option<Box<TsTypeParamInstantiation>> {
111846        <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
111847    }
111848
111849    #[inline]
111850    fn fold_opt_var_decl_or_expr(
111851        &mut self,
111852        node: Option<VarDeclOrExpr>,
111853        __ast_path: &mut AstKindPath,
111854    ) -> Option<VarDeclOrExpr> {
111855        <V as FoldAstPath>::fold_opt_var_decl_or_expr(&mut **self, node, __ast_path)
111856    }
111857
111858    #[inline]
111859    fn fold_opt_vec_expr_or_spreads(
111860        &mut self,
111861        node: Vec<Option<ExprOrSpread>>,
111862        __ast_path: &mut AstKindPath,
111863    ) -> Vec<Option<ExprOrSpread>> {
111864        <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
111865    }
111866
111867    #[inline]
111868    fn fold_opt_vec_pats(
111869        &mut self,
111870        node: Vec<Option<Pat>>,
111871        __ast_path: &mut AstKindPath,
111872    ) -> Vec<Option<Pat>> {
111873        <V as FoldAstPath>::fold_opt_vec_pats(&mut **self, node, __ast_path)
111874    }
111875
111876    #[inline]
111877    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
111878        <V as FoldAstPath>::fold_param(&mut **self, node, __ast_path)
111879    }
111880
111881    #[inline]
111882    fn fold_param_or_ts_param_prop(
111883        &mut self,
111884        node: ParamOrTsParamProp,
111885        __ast_path: &mut AstKindPath,
111886    ) -> ParamOrTsParamProp {
111887        <V as FoldAstPath>::fold_param_or_ts_param_prop(&mut **self, node, __ast_path)
111888    }
111889
111890    #[inline]
111891    fn fold_param_or_ts_param_props(
111892        &mut self,
111893        node: Vec<ParamOrTsParamProp>,
111894        __ast_path: &mut AstKindPath,
111895    ) -> Vec<ParamOrTsParamProp> {
111896        <V as FoldAstPath>::fold_param_or_ts_param_props(&mut **self, node, __ast_path)
111897    }
111898
111899    #[inline]
111900    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
111901        <V as FoldAstPath>::fold_params(&mut **self, node, __ast_path)
111902    }
111903
111904    #[inline]
111905    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
111906        <V as FoldAstPath>::fold_paren_expr(&mut **self, node, __ast_path)
111907    }
111908
111909    #[inline]
111910    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
111911        <V as FoldAstPath>::fold_pat(&mut **self, node, __ast_path)
111912    }
111913
111914    #[inline]
111915    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
111916        <V as FoldAstPath>::fold_pats(&mut **self, node, __ast_path)
111917    }
111918
111919    #[inline]
111920    fn fold_private_method(
111921        &mut self,
111922        node: PrivateMethod,
111923        __ast_path: &mut AstKindPath,
111924    ) -> PrivateMethod {
111925        <V as FoldAstPath>::fold_private_method(&mut **self, node, __ast_path)
111926    }
111927
111928    #[inline]
111929    fn fold_private_name(
111930        &mut self,
111931        node: PrivateName,
111932        __ast_path: &mut AstKindPath,
111933    ) -> PrivateName {
111934        <V as FoldAstPath>::fold_private_name(&mut **self, node, __ast_path)
111935    }
111936
111937    #[inline]
111938    fn fold_private_prop(
111939        &mut self,
111940        node: PrivateProp,
111941        __ast_path: &mut AstKindPath,
111942    ) -> PrivateProp {
111943        <V as FoldAstPath>::fold_private_prop(&mut **self, node, __ast_path)
111944    }
111945
111946    #[inline]
111947    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
111948        <V as FoldAstPath>::fold_program(&mut **self, node, __ast_path)
111949    }
111950
111951    #[inline]
111952    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
111953        <V as FoldAstPath>::fold_prop(&mut **self, node, __ast_path)
111954    }
111955
111956    #[inline]
111957    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
111958        <V as FoldAstPath>::fold_prop_name(&mut **self, node, __ast_path)
111959    }
111960
111961    #[inline]
111962    fn fold_prop_or_spread(
111963        &mut self,
111964        node: PropOrSpread,
111965        __ast_path: &mut AstKindPath,
111966    ) -> PropOrSpread {
111967        <V as FoldAstPath>::fold_prop_or_spread(&mut **self, node, __ast_path)
111968    }
111969
111970    #[inline]
111971    fn fold_prop_or_spreads(
111972        &mut self,
111973        node: Vec<PropOrSpread>,
111974        __ast_path: &mut AstKindPath,
111975    ) -> Vec<PropOrSpread> {
111976        <V as FoldAstPath>::fold_prop_or_spreads(&mut **self, node, __ast_path)
111977    }
111978
111979    #[inline]
111980    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
111981        <V as FoldAstPath>::fold_regex(&mut **self, node, __ast_path)
111982    }
111983
111984    #[inline]
111985    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
111986        <V as FoldAstPath>::fold_rest_pat(&mut **self, node, __ast_path)
111987    }
111988
111989    #[inline]
111990    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
111991        <V as FoldAstPath>::fold_return_stmt(&mut **self, node, __ast_path)
111992    }
111993
111994    #[inline]
111995    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
111996        <V as FoldAstPath>::fold_script(&mut **self, node, __ast_path)
111997    }
111998
111999    #[inline]
112000    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
112001        <V as FoldAstPath>::fold_seq_expr(&mut **self, node, __ast_path)
112002    }
112003
112004    #[inline]
112005    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
112006        <V as FoldAstPath>::fold_setter_prop(&mut **self, node, __ast_path)
112007    }
112008
112009    #[inline]
112010    fn fold_simple_assign_target(
112011        &mut self,
112012        node: SimpleAssignTarget,
112013        __ast_path: &mut AstKindPath,
112014    ) -> SimpleAssignTarget {
112015        <V as FoldAstPath>::fold_simple_assign_target(&mut **self, node, __ast_path)
112016    }
112017
112018    #[inline]
112019    fn fold_span(
112020        &mut self,
112021        node: swc_common::Span,
112022        __ast_path: &mut AstKindPath,
112023    ) -> swc_common::Span {
112024        <V as FoldAstPath>::fold_span(&mut **self, node, __ast_path)
112025    }
112026
112027    #[inline]
112028    fn fold_spread_element(
112029        &mut self,
112030        node: SpreadElement,
112031        __ast_path: &mut AstKindPath,
112032    ) -> SpreadElement {
112033        <V as FoldAstPath>::fold_spread_element(&mut **self, node, __ast_path)
112034    }
112035
112036    #[inline]
112037    fn fold_static_block(
112038        &mut self,
112039        node: StaticBlock,
112040        __ast_path: &mut AstKindPath,
112041    ) -> StaticBlock {
112042        <V as FoldAstPath>::fold_static_block(&mut **self, node, __ast_path)
112043    }
112044
112045    #[inline]
112046    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
112047        <V as FoldAstPath>::fold_stmt(&mut **self, node, __ast_path)
112048    }
112049
112050    #[inline]
112051    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
112052        <V as FoldAstPath>::fold_stmts(&mut **self, node, __ast_path)
112053    }
112054
112055    #[inline]
112056    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
112057        <V as FoldAstPath>::fold_str(&mut **self, node, __ast_path)
112058    }
112059
112060    #[inline]
112061    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
112062        <V as FoldAstPath>::fold_super(&mut **self, node, __ast_path)
112063    }
112064
112065    #[inline]
112066    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
112067        <V as FoldAstPath>::fold_super_prop(&mut **self, node, __ast_path)
112068    }
112069
112070    #[inline]
112071    fn fold_super_prop_expr(
112072        &mut self,
112073        node: SuperPropExpr,
112074        __ast_path: &mut AstKindPath,
112075    ) -> SuperPropExpr {
112076        <V as FoldAstPath>::fold_super_prop_expr(&mut **self, node, __ast_path)
112077    }
112078
112079    #[inline]
112080    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
112081        <V as FoldAstPath>::fold_switch_case(&mut **self, node, __ast_path)
112082    }
112083
112084    #[inline]
112085    fn fold_switch_cases(
112086        &mut self,
112087        node: Vec<SwitchCase>,
112088        __ast_path: &mut AstKindPath,
112089    ) -> Vec<SwitchCase> {
112090        <V as FoldAstPath>::fold_switch_cases(&mut **self, node, __ast_path)
112091    }
112092
112093    #[inline]
112094    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
112095        <V as FoldAstPath>::fold_switch_stmt(&mut **self, node, __ast_path)
112096    }
112097
112098    #[inline]
112099    fn fold_syntax_context(
112100        &mut self,
112101        node: swc_common::SyntaxContext,
112102        __ast_path: &mut AstKindPath,
112103    ) -> swc_common::SyntaxContext {
112104        <V as FoldAstPath>::fold_syntax_context(&mut **self, node, __ast_path)
112105    }
112106
112107    #[inline]
112108    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
112109        <V as FoldAstPath>::fold_tagged_tpl(&mut **self, node, __ast_path)
112110    }
112111
112112    #[inline]
112113    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
112114        <V as FoldAstPath>::fold_this_expr(&mut **self, node, __ast_path)
112115    }
112116
112117    #[inline]
112118    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
112119        <V as FoldAstPath>::fold_throw_stmt(&mut **self, node, __ast_path)
112120    }
112121
112122    #[inline]
112123    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
112124        <V as FoldAstPath>::fold_tpl(&mut **self, node, __ast_path)
112125    }
112126
112127    #[inline]
112128    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
112129        <V as FoldAstPath>::fold_tpl_element(&mut **self, node, __ast_path)
112130    }
112131
112132    #[inline]
112133    fn fold_tpl_elements(
112134        &mut self,
112135        node: Vec<TplElement>,
112136        __ast_path: &mut AstKindPath,
112137    ) -> Vec<TplElement> {
112138        <V as FoldAstPath>::fold_tpl_elements(&mut **self, node, __ast_path)
112139    }
112140
112141    #[inline]
112142    fn fold_true_plus_minus(
112143        &mut self,
112144        node: TruePlusMinus,
112145        __ast_path: &mut AstKindPath,
112146    ) -> TruePlusMinus {
112147        <V as FoldAstPath>::fold_true_plus_minus(&mut **self, node, __ast_path)
112148    }
112149
112150    #[inline]
112151    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
112152        <V as FoldAstPath>::fold_try_stmt(&mut **self, node, __ast_path)
112153    }
112154
112155    #[inline]
112156    fn fold_ts_array_type(
112157        &mut self,
112158        node: TsArrayType,
112159        __ast_path: &mut AstKindPath,
112160    ) -> TsArrayType {
112161        <V as FoldAstPath>::fold_ts_array_type(&mut **self, node, __ast_path)
112162    }
112163
112164    #[inline]
112165    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
112166        <V as FoldAstPath>::fold_ts_as_expr(&mut **self, node, __ast_path)
112167    }
112168
112169    #[inline]
112170    fn fold_ts_call_signature_decl(
112171        &mut self,
112172        node: TsCallSignatureDecl,
112173        __ast_path: &mut AstKindPath,
112174    ) -> TsCallSignatureDecl {
112175        <V as FoldAstPath>::fold_ts_call_signature_decl(&mut **self, node, __ast_path)
112176    }
112177
112178    #[inline]
112179    fn fold_ts_conditional_type(
112180        &mut self,
112181        node: TsConditionalType,
112182        __ast_path: &mut AstKindPath,
112183    ) -> TsConditionalType {
112184        <V as FoldAstPath>::fold_ts_conditional_type(&mut **self, node, __ast_path)
112185    }
112186
112187    #[inline]
112188    fn fold_ts_const_assertion(
112189        &mut self,
112190        node: TsConstAssertion,
112191        __ast_path: &mut AstKindPath,
112192    ) -> TsConstAssertion {
112193        <V as FoldAstPath>::fold_ts_const_assertion(&mut **self, node, __ast_path)
112194    }
112195
112196    #[inline]
112197    fn fold_ts_construct_signature_decl(
112198        &mut self,
112199        node: TsConstructSignatureDecl,
112200        __ast_path: &mut AstKindPath,
112201    ) -> TsConstructSignatureDecl {
112202        <V as FoldAstPath>::fold_ts_construct_signature_decl(&mut **self, node, __ast_path)
112203    }
112204
112205    #[inline]
112206    fn fold_ts_constructor_type(
112207        &mut self,
112208        node: TsConstructorType,
112209        __ast_path: &mut AstKindPath,
112210    ) -> TsConstructorType {
112211        <V as FoldAstPath>::fold_ts_constructor_type(&mut **self, node, __ast_path)
112212    }
112213
112214    #[inline]
112215    fn fold_ts_entity_name(
112216        &mut self,
112217        node: TsEntityName,
112218        __ast_path: &mut AstKindPath,
112219    ) -> TsEntityName {
112220        <V as FoldAstPath>::fold_ts_entity_name(&mut **self, node, __ast_path)
112221    }
112222
112223    #[inline]
112224    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
112225        <V as FoldAstPath>::fold_ts_enum_decl(&mut **self, node, __ast_path)
112226    }
112227
112228    #[inline]
112229    fn fold_ts_enum_member(
112230        &mut self,
112231        node: TsEnumMember,
112232        __ast_path: &mut AstKindPath,
112233    ) -> TsEnumMember {
112234        <V as FoldAstPath>::fold_ts_enum_member(&mut **self, node, __ast_path)
112235    }
112236
112237    #[inline]
112238    fn fold_ts_enum_member_id(
112239        &mut self,
112240        node: TsEnumMemberId,
112241        __ast_path: &mut AstKindPath,
112242    ) -> TsEnumMemberId {
112243        <V as FoldAstPath>::fold_ts_enum_member_id(&mut **self, node, __ast_path)
112244    }
112245
112246    #[inline]
112247    fn fold_ts_enum_members(
112248        &mut self,
112249        node: Vec<TsEnumMember>,
112250        __ast_path: &mut AstKindPath,
112251    ) -> Vec<TsEnumMember> {
112252        <V as FoldAstPath>::fold_ts_enum_members(&mut **self, node, __ast_path)
112253    }
112254
112255    #[inline]
112256    fn fold_ts_export_assignment(
112257        &mut self,
112258        node: TsExportAssignment,
112259        __ast_path: &mut AstKindPath,
112260    ) -> TsExportAssignment {
112261        <V as FoldAstPath>::fold_ts_export_assignment(&mut **self, node, __ast_path)
112262    }
112263
112264    #[inline]
112265    fn fold_ts_expr_with_type_args(
112266        &mut self,
112267        node: TsExprWithTypeArgs,
112268        __ast_path: &mut AstKindPath,
112269    ) -> TsExprWithTypeArgs {
112270        <V as FoldAstPath>::fold_ts_expr_with_type_args(&mut **self, node, __ast_path)
112271    }
112272
112273    #[inline]
112274    fn fold_ts_expr_with_type_argss(
112275        &mut self,
112276        node: Vec<TsExprWithTypeArgs>,
112277        __ast_path: &mut AstKindPath,
112278    ) -> Vec<TsExprWithTypeArgs> {
112279        <V as FoldAstPath>::fold_ts_expr_with_type_argss(&mut **self, node, __ast_path)
112280    }
112281
112282    #[inline]
112283    fn fold_ts_external_module_ref(
112284        &mut self,
112285        node: TsExternalModuleRef,
112286        __ast_path: &mut AstKindPath,
112287    ) -> TsExternalModuleRef {
112288        <V as FoldAstPath>::fold_ts_external_module_ref(&mut **self, node, __ast_path)
112289    }
112290
112291    #[inline]
112292    fn fold_ts_fn_or_constructor_type(
112293        &mut self,
112294        node: TsFnOrConstructorType,
112295        __ast_path: &mut AstKindPath,
112296    ) -> TsFnOrConstructorType {
112297        <V as FoldAstPath>::fold_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
112298    }
112299
112300    #[inline]
112301    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
112302        <V as FoldAstPath>::fold_ts_fn_param(&mut **self, node, __ast_path)
112303    }
112304
112305    #[inline]
112306    fn fold_ts_fn_params(
112307        &mut self,
112308        node: Vec<TsFnParam>,
112309        __ast_path: &mut AstKindPath,
112310    ) -> Vec<TsFnParam> {
112311        <V as FoldAstPath>::fold_ts_fn_params(&mut **self, node, __ast_path)
112312    }
112313
112314    #[inline]
112315    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
112316        <V as FoldAstPath>::fold_ts_fn_type(&mut **self, node, __ast_path)
112317    }
112318
112319    #[inline]
112320    fn fold_ts_getter_signature(
112321        &mut self,
112322        node: TsGetterSignature,
112323        __ast_path: &mut AstKindPath,
112324    ) -> TsGetterSignature {
112325        <V as FoldAstPath>::fold_ts_getter_signature(&mut **self, node, __ast_path)
112326    }
112327
112328    #[inline]
112329    fn fold_ts_import_equals_decl(
112330        &mut self,
112331        node: TsImportEqualsDecl,
112332        __ast_path: &mut AstKindPath,
112333    ) -> TsImportEqualsDecl {
112334        <V as FoldAstPath>::fold_ts_import_equals_decl(&mut **self, node, __ast_path)
112335    }
112336
112337    #[inline]
112338    fn fold_ts_import_type(
112339        &mut self,
112340        node: TsImportType,
112341        __ast_path: &mut AstKindPath,
112342    ) -> TsImportType {
112343        <V as FoldAstPath>::fold_ts_import_type(&mut **self, node, __ast_path)
112344    }
112345
112346    #[inline]
112347    fn fold_ts_index_signature(
112348        &mut self,
112349        node: TsIndexSignature,
112350        __ast_path: &mut AstKindPath,
112351    ) -> TsIndexSignature {
112352        <V as FoldAstPath>::fold_ts_index_signature(&mut **self, node, __ast_path)
112353    }
112354
112355    #[inline]
112356    fn fold_ts_indexed_access_type(
112357        &mut self,
112358        node: TsIndexedAccessType,
112359        __ast_path: &mut AstKindPath,
112360    ) -> TsIndexedAccessType {
112361        <V as FoldAstPath>::fold_ts_indexed_access_type(&mut **self, node, __ast_path)
112362    }
112363
112364    #[inline]
112365    fn fold_ts_infer_type(
112366        &mut self,
112367        node: TsInferType,
112368        __ast_path: &mut AstKindPath,
112369    ) -> TsInferType {
112370        <V as FoldAstPath>::fold_ts_infer_type(&mut **self, node, __ast_path)
112371    }
112372
112373    #[inline]
112374    fn fold_ts_instantiation(
112375        &mut self,
112376        node: TsInstantiation,
112377        __ast_path: &mut AstKindPath,
112378    ) -> TsInstantiation {
112379        <V as FoldAstPath>::fold_ts_instantiation(&mut **self, node, __ast_path)
112380    }
112381
112382    #[inline]
112383    fn fold_ts_interface_body(
112384        &mut self,
112385        node: TsInterfaceBody,
112386        __ast_path: &mut AstKindPath,
112387    ) -> TsInterfaceBody {
112388        <V as FoldAstPath>::fold_ts_interface_body(&mut **self, node, __ast_path)
112389    }
112390
112391    #[inline]
112392    fn fold_ts_interface_decl(
112393        &mut self,
112394        node: TsInterfaceDecl,
112395        __ast_path: &mut AstKindPath,
112396    ) -> TsInterfaceDecl {
112397        <V as FoldAstPath>::fold_ts_interface_decl(&mut **self, node, __ast_path)
112398    }
112399
112400    #[inline]
112401    fn fold_ts_intersection_type(
112402        &mut self,
112403        node: TsIntersectionType,
112404        __ast_path: &mut AstKindPath,
112405    ) -> TsIntersectionType {
112406        <V as FoldAstPath>::fold_ts_intersection_type(&mut **self, node, __ast_path)
112407    }
112408
112409    #[inline]
112410    fn fold_ts_keyword_type(
112411        &mut self,
112412        node: TsKeywordType,
112413        __ast_path: &mut AstKindPath,
112414    ) -> TsKeywordType {
112415        <V as FoldAstPath>::fold_ts_keyword_type(&mut **self, node, __ast_path)
112416    }
112417
112418    #[inline]
112419    fn fold_ts_keyword_type_kind(
112420        &mut self,
112421        node: TsKeywordTypeKind,
112422        __ast_path: &mut AstKindPath,
112423    ) -> TsKeywordTypeKind {
112424        <V as FoldAstPath>::fold_ts_keyword_type_kind(&mut **self, node, __ast_path)
112425    }
112426
112427    #[inline]
112428    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
112429        <V as FoldAstPath>::fold_ts_lit(&mut **self, node, __ast_path)
112430    }
112431
112432    #[inline]
112433    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
112434        <V as FoldAstPath>::fold_ts_lit_type(&mut **self, node, __ast_path)
112435    }
112436
112437    #[inline]
112438    fn fold_ts_mapped_type(
112439        &mut self,
112440        node: TsMappedType,
112441        __ast_path: &mut AstKindPath,
112442    ) -> TsMappedType {
112443        <V as FoldAstPath>::fold_ts_mapped_type(&mut **self, node, __ast_path)
112444    }
112445
112446    #[inline]
112447    fn fold_ts_method_signature(
112448        &mut self,
112449        node: TsMethodSignature,
112450        __ast_path: &mut AstKindPath,
112451    ) -> TsMethodSignature {
112452        <V as FoldAstPath>::fold_ts_method_signature(&mut **self, node, __ast_path)
112453    }
112454
112455    #[inline]
112456    fn fold_ts_module_block(
112457        &mut self,
112458        node: TsModuleBlock,
112459        __ast_path: &mut AstKindPath,
112460    ) -> TsModuleBlock {
112461        <V as FoldAstPath>::fold_ts_module_block(&mut **self, node, __ast_path)
112462    }
112463
112464    #[inline]
112465    fn fold_ts_module_decl(
112466        &mut self,
112467        node: TsModuleDecl,
112468        __ast_path: &mut AstKindPath,
112469    ) -> TsModuleDecl {
112470        <V as FoldAstPath>::fold_ts_module_decl(&mut **self, node, __ast_path)
112471    }
112472
112473    #[inline]
112474    fn fold_ts_module_name(
112475        &mut self,
112476        node: TsModuleName,
112477        __ast_path: &mut AstKindPath,
112478    ) -> TsModuleName {
112479        <V as FoldAstPath>::fold_ts_module_name(&mut **self, node, __ast_path)
112480    }
112481
112482    #[inline]
112483    fn fold_ts_module_ref(
112484        &mut self,
112485        node: TsModuleRef,
112486        __ast_path: &mut AstKindPath,
112487    ) -> TsModuleRef {
112488        <V as FoldAstPath>::fold_ts_module_ref(&mut **self, node, __ast_path)
112489    }
112490
112491    #[inline]
112492    fn fold_ts_namespace_body(
112493        &mut self,
112494        node: TsNamespaceBody,
112495        __ast_path: &mut AstKindPath,
112496    ) -> TsNamespaceBody {
112497        <V as FoldAstPath>::fold_ts_namespace_body(&mut **self, node, __ast_path)
112498    }
112499
112500    #[inline]
112501    fn fold_ts_namespace_decl(
112502        &mut self,
112503        node: TsNamespaceDecl,
112504        __ast_path: &mut AstKindPath,
112505    ) -> TsNamespaceDecl {
112506        <V as FoldAstPath>::fold_ts_namespace_decl(&mut **self, node, __ast_path)
112507    }
112508
112509    #[inline]
112510    fn fold_ts_namespace_export_decl(
112511        &mut self,
112512        node: TsNamespaceExportDecl,
112513        __ast_path: &mut AstKindPath,
112514    ) -> TsNamespaceExportDecl {
112515        <V as FoldAstPath>::fold_ts_namespace_export_decl(&mut **self, node, __ast_path)
112516    }
112517
112518    #[inline]
112519    fn fold_ts_non_null_expr(
112520        &mut self,
112521        node: TsNonNullExpr,
112522        __ast_path: &mut AstKindPath,
112523    ) -> TsNonNullExpr {
112524        <V as FoldAstPath>::fold_ts_non_null_expr(&mut **self, node, __ast_path)
112525    }
112526
112527    #[inline]
112528    fn fold_ts_optional_type(
112529        &mut self,
112530        node: TsOptionalType,
112531        __ast_path: &mut AstKindPath,
112532    ) -> TsOptionalType {
112533        <V as FoldAstPath>::fold_ts_optional_type(&mut **self, node, __ast_path)
112534    }
112535
112536    #[inline]
112537    fn fold_ts_param_prop(
112538        &mut self,
112539        node: TsParamProp,
112540        __ast_path: &mut AstKindPath,
112541    ) -> TsParamProp {
112542        <V as FoldAstPath>::fold_ts_param_prop(&mut **self, node, __ast_path)
112543    }
112544
112545    #[inline]
112546    fn fold_ts_param_prop_param(
112547        &mut self,
112548        node: TsParamPropParam,
112549        __ast_path: &mut AstKindPath,
112550    ) -> TsParamPropParam {
112551        <V as FoldAstPath>::fold_ts_param_prop_param(&mut **self, node, __ast_path)
112552    }
112553
112554    #[inline]
112555    fn fold_ts_parenthesized_type(
112556        &mut self,
112557        node: TsParenthesizedType,
112558        __ast_path: &mut AstKindPath,
112559    ) -> TsParenthesizedType {
112560        <V as FoldAstPath>::fold_ts_parenthesized_type(&mut **self, node, __ast_path)
112561    }
112562
112563    #[inline]
112564    fn fold_ts_property_signature(
112565        &mut self,
112566        node: TsPropertySignature,
112567        __ast_path: &mut AstKindPath,
112568    ) -> TsPropertySignature {
112569        <V as FoldAstPath>::fold_ts_property_signature(&mut **self, node, __ast_path)
112570    }
112571
112572    #[inline]
112573    fn fold_ts_qualified_name(
112574        &mut self,
112575        node: TsQualifiedName,
112576        __ast_path: &mut AstKindPath,
112577    ) -> TsQualifiedName {
112578        <V as FoldAstPath>::fold_ts_qualified_name(&mut **self, node, __ast_path)
112579    }
112580
112581    #[inline]
112582    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
112583        <V as FoldAstPath>::fold_ts_rest_type(&mut **self, node, __ast_path)
112584    }
112585
112586    #[inline]
112587    fn fold_ts_satisfies_expr(
112588        &mut self,
112589        node: TsSatisfiesExpr,
112590        __ast_path: &mut AstKindPath,
112591    ) -> TsSatisfiesExpr {
112592        <V as FoldAstPath>::fold_ts_satisfies_expr(&mut **self, node, __ast_path)
112593    }
112594
112595    #[inline]
112596    fn fold_ts_setter_signature(
112597        &mut self,
112598        node: TsSetterSignature,
112599        __ast_path: &mut AstKindPath,
112600    ) -> TsSetterSignature {
112601        <V as FoldAstPath>::fold_ts_setter_signature(&mut **self, node, __ast_path)
112602    }
112603
112604    #[inline]
112605    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
112606        <V as FoldAstPath>::fold_ts_this_type(&mut **self, node, __ast_path)
112607    }
112608
112609    #[inline]
112610    fn fold_ts_this_type_or_ident(
112611        &mut self,
112612        node: TsThisTypeOrIdent,
112613        __ast_path: &mut AstKindPath,
112614    ) -> TsThisTypeOrIdent {
112615        <V as FoldAstPath>::fold_ts_this_type_or_ident(&mut **self, node, __ast_path)
112616    }
112617
112618    #[inline]
112619    fn fold_ts_tpl_lit_type(
112620        &mut self,
112621        node: TsTplLitType,
112622        __ast_path: &mut AstKindPath,
112623    ) -> TsTplLitType {
112624        <V as FoldAstPath>::fold_ts_tpl_lit_type(&mut **self, node, __ast_path)
112625    }
112626
112627    #[inline]
112628    fn fold_ts_tuple_element(
112629        &mut self,
112630        node: TsTupleElement,
112631        __ast_path: &mut AstKindPath,
112632    ) -> TsTupleElement {
112633        <V as FoldAstPath>::fold_ts_tuple_element(&mut **self, node, __ast_path)
112634    }
112635
112636    #[inline]
112637    fn fold_ts_tuple_elements(
112638        &mut self,
112639        node: Vec<TsTupleElement>,
112640        __ast_path: &mut AstKindPath,
112641    ) -> Vec<TsTupleElement> {
112642        <V as FoldAstPath>::fold_ts_tuple_elements(&mut **self, node, __ast_path)
112643    }
112644
112645    #[inline]
112646    fn fold_ts_tuple_type(
112647        &mut self,
112648        node: TsTupleType,
112649        __ast_path: &mut AstKindPath,
112650    ) -> TsTupleType {
112651        <V as FoldAstPath>::fold_ts_tuple_type(&mut **self, node, __ast_path)
112652    }
112653
112654    #[inline]
112655    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
112656        <V as FoldAstPath>::fold_ts_type(&mut **self, node, __ast_path)
112657    }
112658
112659    #[inline]
112660    fn fold_ts_type_alias_decl(
112661        &mut self,
112662        node: TsTypeAliasDecl,
112663        __ast_path: &mut AstKindPath,
112664    ) -> TsTypeAliasDecl {
112665        <V as FoldAstPath>::fold_ts_type_alias_decl(&mut **self, node, __ast_path)
112666    }
112667
112668    #[inline]
112669    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
112670        <V as FoldAstPath>::fold_ts_type_ann(&mut **self, node, __ast_path)
112671    }
112672
112673    #[inline]
112674    fn fold_ts_type_assertion(
112675        &mut self,
112676        node: TsTypeAssertion,
112677        __ast_path: &mut AstKindPath,
112678    ) -> TsTypeAssertion {
112679        <V as FoldAstPath>::fold_ts_type_assertion(&mut **self, node, __ast_path)
112680    }
112681
112682    #[inline]
112683    fn fold_ts_type_element(
112684        &mut self,
112685        node: TsTypeElement,
112686        __ast_path: &mut AstKindPath,
112687    ) -> TsTypeElement {
112688        <V as FoldAstPath>::fold_ts_type_element(&mut **self, node, __ast_path)
112689    }
112690
112691    #[inline]
112692    fn fold_ts_type_elements(
112693        &mut self,
112694        node: Vec<TsTypeElement>,
112695        __ast_path: &mut AstKindPath,
112696    ) -> Vec<TsTypeElement> {
112697        <V as FoldAstPath>::fold_ts_type_elements(&mut **self, node, __ast_path)
112698    }
112699
112700    #[inline]
112701    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
112702        <V as FoldAstPath>::fold_ts_type_lit(&mut **self, node, __ast_path)
112703    }
112704
112705    #[inline]
112706    fn fold_ts_type_operator(
112707        &mut self,
112708        node: TsTypeOperator,
112709        __ast_path: &mut AstKindPath,
112710    ) -> TsTypeOperator {
112711        <V as FoldAstPath>::fold_ts_type_operator(&mut **self, node, __ast_path)
112712    }
112713
112714    #[inline]
112715    fn fold_ts_type_operator_op(
112716        &mut self,
112717        node: TsTypeOperatorOp,
112718        __ast_path: &mut AstKindPath,
112719    ) -> TsTypeOperatorOp {
112720        <V as FoldAstPath>::fold_ts_type_operator_op(&mut **self, node, __ast_path)
112721    }
112722
112723    #[inline]
112724    fn fold_ts_type_param(
112725        &mut self,
112726        node: TsTypeParam,
112727        __ast_path: &mut AstKindPath,
112728    ) -> TsTypeParam {
112729        <V as FoldAstPath>::fold_ts_type_param(&mut **self, node, __ast_path)
112730    }
112731
112732    #[inline]
112733    fn fold_ts_type_param_decl(
112734        &mut self,
112735        node: TsTypeParamDecl,
112736        __ast_path: &mut AstKindPath,
112737    ) -> TsTypeParamDecl {
112738        <V as FoldAstPath>::fold_ts_type_param_decl(&mut **self, node, __ast_path)
112739    }
112740
112741    #[inline]
112742    fn fold_ts_type_param_instantiation(
112743        &mut self,
112744        node: TsTypeParamInstantiation,
112745        __ast_path: &mut AstKindPath,
112746    ) -> TsTypeParamInstantiation {
112747        <V as FoldAstPath>::fold_ts_type_param_instantiation(&mut **self, node, __ast_path)
112748    }
112749
112750    #[inline]
112751    fn fold_ts_type_params(
112752        &mut self,
112753        node: Vec<TsTypeParam>,
112754        __ast_path: &mut AstKindPath,
112755    ) -> Vec<TsTypeParam> {
112756        <V as FoldAstPath>::fold_ts_type_params(&mut **self, node, __ast_path)
112757    }
112758
112759    #[inline]
112760    fn fold_ts_type_predicate(
112761        &mut self,
112762        node: TsTypePredicate,
112763        __ast_path: &mut AstKindPath,
112764    ) -> TsTypePredicate {
112765        <V as FoldAstPath>::fold_ts_type_predicate(&mut **self, node, __ast_path)
112766    }
112767
112768    #[inline]
112769    fn fold_ts_type_query(
112770        &mut self,
112771        node: TsTypeQuery,
112772        __ast_path: &mut AstKindPath,
112773    ) -> TsTypeQuery {
112774        <V as FoldAstPath>::fold_ts_type_query(&mut **self, node, __ast_path)
112775    }
112776
112777    #[inline]
112778    fn fold_ts_type_query_expr(
112779        &mut self,
112780        node: TsTypeQueryExpr,
112781        __ast_path: &mut AstKindPath,
112782    ) -> TsTypeQueryExpr {
112783        <V as FoldAstPath>::fold_ts_type_query_expr(&mut **self, node, __ast_path)
112784    }
112785
112786    #[inline]
112787    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
112788        <V as FoldAstPath>::fold_ts_type_ref(&mut **self, node, __ast_path)
112789    }
112790
112791    #[inline]
112792    fn fold_ts_types(
112793        &mut self,
112794        node: Vec<Box<TsType>>,
112795        __ast_path: &mut AstKindPath,
112796    ) -> Vec<Box<TsType>> {
112797        <V as FoldAstPath>::fold_ts_types(&mut **self, node, __ast_path)
112798    }
112799
112800    #[inline]
112801    fn fold_ts_union_or_intersection_type(
112802        &mut self,
112803        node: TsUnionOrIntersectionType,
112804        __ast_path: &mut AstKindPath,
112805    ) -> TsUnionOrIntersectionType {
112806        <V as FoldAstPath>::fold_ts_union_or_intersection_type(&mut **self, node, __ast_path)
112807    }
112808
112809    #[inline]
112810    fn fold_ts_union_type(
112811        &mut self,
112812        node: TsUnionType,
112813        __ast_path: &mut AstKindPath,
112814    ) -> TsUnionType {
112815        <V as FoldAstPath>::fold_ts_union_type(&mut **self, node, __ast_path)
112816    }
112817
112818    #[inline]
112819    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
112820        <V as FoldAstPath>::fold_unary_expr(&mut **self, node, __ast_path)
112821    }
112822
112823    #[inline]
112824    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
112825        <V as FoldAstPath>::fold_unary_op(&mut **self, node, __ast_path)
112826    }
112827
112828    #[inline]
112829    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
112830        <V as FoldAstPath>::fold_update_expr(&mut **self, node, __ast_path)
112831    }
112832
112833    #[inline]
112834    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
112835        <V as FoldAstPath>::fold_update_op(&mut **self, node, __ast_path)
112836    }
112837
112838    #[inline]
112839    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
112840        <V as FoldAstPath>::fold_using_decl(&mut **self, node, __ast_path)
112841    }
112842
112843    #[inline]
112844    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
112845        <V as FoldAstPath>::fold_var_decl(&mut **self, node, __ast_path)
112846    }
112847
112848    #[inline]
112849    fn fold_var_decl_kind(
112850        &mut self,
112851        node: VarDeclKind,
112852        __ast_path: &mut AstKindPath,
112853    ) -> VarDeclKind {
112854        <V as FoldAstPath>::fold_var_decl_kind(&mut **self, node, __ast_path)
112855    }
112856
112857    #[inline]
112858    fn fold_var_decl_or_expr(
112859        &mut self,
112860        node: VarDeclOrExpr,
112861        __ast_path: &mut AstKindPath,
112862    ) -> VarDeclOrExpr {
112863        <V as FoldAstPath>::fold_var_decl_or_expr(&mut **self, node, __ast_path)
112864    }
112865
112866    #[inline]
112867    fn fold_var_declarator(
112868        &mut self,
112869        node: VarDeclarator,
112870        __ast_path: &mut AstKindPath,
112871    ) -> VarDeclarator {
112872        <V as FoldAstPath>::fold_var_declarator(&mut **self, node, __ast_path)
112873    }
112874
112875    #[inline]
112876    fn fold_var_declarators(
112877        &mut self,
112878        node: Vec<VarDeclarator>,
112879        __ast_path: &mut AstKindPath,
112880    ) -> Vec<VarDeclarator> {
112881        <V as FoldAstPath>::fold_var_declarators(&mut **self, node, __ast_path)
112882    }
112883
112884    #[inline]
112885    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
112886        <V as FoldAstPath>::fold_while_stmt(&mut **self, node, __ast_path)
112887    }
112888
112889    #[inline]
112890    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
112891        <V as FoldAstPath>::fold_with_stmt(&mut **self, node, __ast_path)
112892    }
112893
112894    #[inline]
112895    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
112896        <V as FoldAstPath>::fold_yield_expr(&mut **self, node, __ast_path)
112897    }
112898}
112899#[cfg(any(docsrs, feature = "path"))]
112900#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
112901impl<V> FoldAstPath for Box<V>
112902where
112903    V: ?Sized + FoldAstPath,
112904{
112905    #[inline]
112906    fn fold_accessibility(
112907        &mut self,
112908        node: Accessibility,
112909        __ast_path: &mut AstKindPath,
112910    ) -> Accessibility {
112911        <V as FoldAstPath>::fold_accessibility(&mut **self, node, __ast_path)
112912    }
112913
112914    #[inline]
112915    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
112916        <V as FoldAstPath>::fold_array_lit(&mut **self, node, __ast_path)
112917    }
112918
112919    #[inline]
112920    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
112921        <V as FoldAstPath>::fold_array_pat(&mut **self, node, __ast_path)
112922    }
112923
112924    #[inline]
112925    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
112926        <V as FoldAstPath>::fold_arrow_expr(&mut **self, node, __ast_path)
112927    }
112928
112929    #[inline]
112930    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
112931        <V as FoldAstPath>::fold_assign_expr(&mut **self, node, __ast_path)
112932    }
112933
112934    #[inline]
112935    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
112936        <V as FoldAstPath>::fold_assign_op(&mut **self, node, __ast_path)
112937    }
112938
112939    #[inline]
112940    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
112941        <V as FoldAstPath>::fold_assign_pat(&mut **self, node, __ast_path)
112942    }
112943
112944    #[inline]
112945    fn fold_assign_pat_prop(
112946        &mut self,
112947        node: AssignPatProp,
112948        __ast_path: &mut AstKindPath,
112949    ) -> AssignPatProp {
112950        <V as FoldAstPath>::fold_assign_pat_prop(&mut **self, node, __ast_path)
112951    }
112952
112953    #[inline]
112954    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
112955        <V as FoldAstPath>::fold_assign_prop(&mut **self, node, __ast_path)
112956    }
112957
112958    #[inline]
112959    fn fold_assign_target(
112960        &mut self,
112961        node: AssignTarget,
112962        __ast_path: &mut AstKindPath,
112963    ) -> AssignTarget {
112964        <V as FoldAstPath>::fold_assign_target(&mut **self, node, __ast_path)
112965    }
112966
112967    #[inline]
112968    fn fold_assign_target_pat(
112969        &mut self,
112970        node: AssignTargetPat,
112971        __ast_path: &mut AstKindPath,
112972    ) -> AssignTargetPat {
112973        <V as FoldAstPath>::fold_assign_target_pat(&mut **self, node, __ast_path)
112974    }
112975
112976    #[inline]
112977    fn fold_atom(
112978        &mut self,
112979        node: swc_atoms::Atom,
112980        __ast_path: &mut AstKindPath,
112981    ) -> swc_atoms::Atom {
112982        <V as FoldAstPath>::fold_atom(&mut **self, node, __ast_path)
112983    }
112984
112985    #[inline]
112986    fn fold_auto_accessor(
112987        &mut self,
112988        node: AutoAccessor,
112989        __ast_path: &mut AstKindPath,
112990    ) -> AutoAccessor {
112991        <V as FoldAstPath>::fold_auto_accessor(&mut **self, node, __ast_path)
112992    }
112993
112994    #[inline]
112995    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
112996        <V as FoldAstPath>::fold_await_expr(&mut **self, node, __ast_path)
112997    }
112998
112999    #[inline]
113000    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
113001        <V as FoldAstPath>::fold_big_int(&mut **self, node, __ast_path)
113002    }
113003
113004    #[inline]
113005    fn fold_big_int_value(
113006        &mut self,
113007        node: BigIntValue,
113008        __ast_path: &mut AstKindPath,
113009    ) -> BigIntValue {
113010        <V as FoldAstPath>::fold_big_int_value(&mut **self, node, __ast_path)
113011    }
113012
113013    #[inline]
113014    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
113015        <V as FoldAstPath>::fold_bin_expr(&mut **self, node, __ast_path)
113016    }
113017
113018    #[inline]
113019    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
113020        <V as FoldAstPath>::fold_binary_op(&mut **self, node, __ast_path)
113021    }
113022
113023    #[inline]
113024    fn fold_binding_ident(
113025        &mut self,
113026        node: BindingIdent,
113027        __ast_path: &mut AstKindPath,
113028    ) -> BindingIdent {
113029        <V as FoldAstPath>::fold_binding_ident(&mut **self, node, __ast_path)
113030    }
113031
113032    #[inline]
113033    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
113034        <V as FoldAstPath>::fold_block_stmt(&mut **self, node, __ast_path)
113035    }
113036
113037    #[inline]
113038    fn fold_block_stmt_or_expr(
113039        &mut self,
113040        node: BlockStmtOrExpr,
113041        __ast_path: &mut AstKindPath,
113042    ) -> BlockStmtOrExpr {
113043        <V as FoldAstPath>::fold_block_stmt_or_expr(&mut **self, node, __ast_path)
113044    }
113045
113046    #[inline]
113047    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
113048        <V as FoldAstPath>::fold_bool(&mut **self, node, __ast_path)
113049    }
113050
113051    #[inline]
113052    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
113053        <V as FoldAstPath>::fold_break_stmt(&mut **self, node, __ast_path)
113054    }
113055
113056    #[inline]
113057    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
113058        <V as FoldAstPath>::fold_call_expr(&mut **self, node, __ast_path)
113059    }
113060
113061    #[inline]
113062    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
113063        <V as FoldAstPath>::fold_callee(&mut **self, node, __ast_path)
113064    }
113065
113066    #[inline]
113067    fn fold_catch_clause(
113068        &mut self,
113069        node: CatchClause,
113070        __ast_path: &mut AstKindPath,
113071    ) -> CatchClause {
113072        <V as FoldAstPath>::fold_catch_clause(&mut **self, node, __ast_path)
113073    }
113074
113075    #[inline]
113076    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
113077        <V as FoldAstPath>::fold_class(&mut **self, node, __ast_path)
113078    }
113079
113080    #[inline]
113081    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
113082        <V as FoldAstPath>::fold_class_decl(&mut **self, node, __ast_path)
113083    }
113084
113085    #[inline]
113086    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
113087        <V as FoldAstPath>::fold_class_expr(&mut **self, node, __ast_path)
113088    }
113089
113090    #[inline]
113091    fn fold_class_member(
113092        &mut self,
113093        node: ClassMember,
113094        __ast_path: &mut AstKindPath,
113095    ) -> ClassMember {
113096        <V as FoldAstPath>::fold_class_member(&mut **self, node, __ast_path)
113097    }
113098
113099    #[inline]
113100    fn fold_class_members(
113101        &mut self,
113102        node: Vec<ClassMember>,
113103        __ast_path: &mut AstKindPath,
113104    ) -> Vec<ClassMember> {
113105        <V as FoldAstPath>::fold_class_members(&mut **self, node, __ast_path)
113106    }
113107
113108    #[inline]
113109    fn fold_class_method(
113110        &mut self,
113111        node: ClassMethod,
113112        __ast_path: &mut AstKindPath,
113113    ) -> ClassMethod {
113114        <V as FoldAstPath>::fold_class_method(&mut **self, node, __ast_path)
113115    }
113116
113117    #[inline]
113118    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
113119        <V as FoldAstPath>::fold_class_prop(&mut **self, node, __ast_path)
113120    }
113121
113122    #[inline]
113123    fn fold_computed_prop_name(
113124        &mut self,
113125        node: ComputedPropName,
113126        __ast_path: &mut AstKindPath,
113127    ) -> ComputedPropName {
113128        <V as FoldAstPath>::fold_computed_prop_name(&mut **self, node, __ast_path)
113129    }
113130
113131    #[inline]
113132    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
113133        <V as FoldAstPath>::fold_cond_expr(&mut **self, node, __ast_path)
113134    }
113135
113136    #[inline]
113137    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
113138        <V as FoldAstPath>::fold_constructor(&mut **self, node, __ast_path)
113139    }
113140
113141    #[inline]
113142    fn fold_continue_stmt(
113143        &mut self,
113144        node: ContinueStmt,
113145        __ast_path: &mut AstKindPath,
113146    ) -> ContinueStmt {
113147        <V as FoldAstPath>::fold_continue_stmt(&mut **self, node, __ast_path)
113148    }
113149
113150    #[inline]
113151    fn fold_debugger_stmt(
113152        &mut self,
113153        node: DebuggerStmt,
113154        __ast_path: &mut AstKindPath,
113155    ) -> DebuggerStmt {
113156        <V as FoldAstPath>::fold_debugger_stmt(&mut **self, node, __ast_path)
113157    }
113158
113159    #[inline]
113160    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
113161        <V as FoldAstPath>::fold_decl(&mut **self, node, __ast_path)
113162    }
113163
113164    #[inline]
113165    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
113166        <V as FoldAstPath>::fold_decorator(&mut **self, node, __ast_path)
113167    }
113168
113169    #[inline]
113170    fn fold_decorators(
113171        &mut self,
113172        node: Vec<Decorator>,
113173        __ast_path: &mut AstKindPath,
113174    ) -> Vec<Decorator> {
113175        <V as FoldAstPath>::fold_decorators(&mut **self, node, __ast_path)
113176    }
113177
113178    #[inline]
113179    fn fold_default_decl(
113180        &mut self,
113181        node: DefaultDecl,
113182        __ast_path: &mut AstKindPath,
113183    ) -> DefaultDecl {
113184        <V as FoldAstPath>::fold_default_decl(&mut **self, node, __ast_path)
113185    }
113186
113187    #[inline]
113188    fn fold_do_while_stmt(
113189        &mut self,
113190        node: DoWhileStmt,
113191        __ast_path: &mut AstKindPath,
113192    ) -> DoWhileStmt {
113193        <V as FoldAstPath>::fold_do_while_stmt(&mut **self, node, __ast_path)
113194    }
113195
113196    #[inline]
113197    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
113198        <V as FoldAstPath>::fold_empty_stmt(&mut **self, node, __ast_path)
113199    }
113200
113201    #[inline]
113202    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
113203        <V as FoldAstPath>::fold_export_all(&mut **self, node, __ast_path)
113204    }
113205
113206    #[inline]
113207    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
113208        <V as FoldAstPath>::fold_export_decl(&mut **self, node, __ast_path)
113209    }
113210
113211    #[inline]
113212    fn fold_export_default_decl(
113213        &mut self,
113214        node: ExportDefaultDecl,
113215        __ast_path: &mut AstKindPath,
113216    ) -> ExportDefaultDecl {
113217        <V as FoldAstPath>::fold_export_default_decl(&mut **self, node, __ast_path)
113218    }
113219
113220    #[inline]
113221    fn fold_export_default_expr(
113222        &mut self,
113223        node: ExportDefaultExpr,
113224        __ast_path: &mut AstKindPath,
113225    ) -> ExportDefaultExpr {
113226        <V as FoldAstPath>::fold_export_default_expr(&mut **self, node, __ast_path)
113227    }
113228
113229    #[inline]
113230    fn fold_export_default_specifier(
113231        &mut self,
113232        node: ExportDefaultSpecifier,
113233        __ast_path: &mut AstKindPath,
113234    ) -> ExportDefaultSpecifier {
113235        <V as FoldAstPath>::fold_export_default_specifier(&mut **self, node, __ast_path)
113236    }
113237
113238    #[inline]
113239    fn fold_export_named_specifier(
113240        &mut self,
113241        node: ExportNamedSpecifier,
113242        __ast_path: &mut AstKindPath,
113243    ) -> ExportNamedSpecifier {
113244        <V as FoldAstPath>::fold_export_named_specifier(&mut **self, node, __ast_path)
113245    }
113246
113247    #[inline]
113248    fn fold_export_namespace_specifier(
113249        &mut self,
113250        node: ExportNamespaceSpecifier,
113251        __ast_path: &mut AstKindPath,
113252    ) -> ExportNamespaceSpecifier {
113253        <V as FoldAstPath>::fold_export_namespace_specifier(&mut **self, node, __ast_path)
113254    }
113255
113256    #[inline]
113257    fn fold_export_specifier(
113258        &mut self,
113259        node: ExportSpecifier,
113260        __ast_path: &mut AstKindPath,
113261    ) -> ExportSpecifier {
113262        <V as FoldAstPath>::fold_export_specifier(&mut **self, node, __ast_path)
113263    }
113264
113265    #[inline]
113266    fn fold_export_specifiers(
113267        &mut self,
113268        node: Vec<ExportSpecifier>,
113269        __ast_path: &mut AstKindPath,
113270    ) -> Vec<ExportSpecifier> {
113271        <V as FoldAstPath>::fold_export_specifiers(&mut **self, node, __ast_path)
113272    }
113273
113274    #[inline]
113275    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
113276        <V as FoldAstPath>::fold_expr(&mut **self, node, __ast_path)
113277    }
113278
113279    #[inline]
113280    fn fold_expr_or_spread(
113281        &mut self,
113282        node: ExprOrSpread,
113283        __ast_path: &mut AstKindPath,
113284    ) -> ExprOrSpread {
113285        <V as FoldAstPath>::fold_expr_or_spread(&mut **self, node, __ast_path)
113286    }
113287
113288    #[inline]
113289    fn fold_expr_or_spreads(
113290        &mut self,
113291        node: Vec<ExprOrSpread>,
113292        __ast_path: &mut AstKindPath,
113293    ) -> Vec<ExprOrSpread> {
113294        <V as FoldAstPath>::fold_expr_or_spreads(&mut **self, node, __ast_path)
113295    }
113296
113297    #[inline]
113298    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
113299        <V as FoldAstPath>::fold_expr_stmt(&mut **self, node, __ast_path)
113300    }
113301
113302    #[inline]
113303    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
113304        <V as FoldAstPath>::fold_exprs(&mut **self, node, __ast_path)
113305    }
113306
113307    #[inline]
113308    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
113309        <V as FoldAstPath>::fold_fn_decl(&mut **self, node, __ast_path)
113310    }
113311
113312    #[inline]
113313    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
113314        <V as FoldAstPath>::fold_fn_expr(&mut **self, node, __ast_path)
113315    }
113316
113317    #[inline]
113318    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
113319        <V as FoldAstPath>::fold_for_head(&mut **self, node, __ast_path)
113320    }
113321
113322    #[inline]
113323    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
113324        <V as FoldAstPath>::fold_for_in_stmt(&mut **self, node, __ast_path)
113325    }
113326
113327    #[inline]
113328    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
113329        <V as FoldAstPath>::fold_for_of_stmt(&mut **self, node, __ast_path)
113330    }
113331
113332    #[inline]
113333    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
113334        <V as FoldAstPath>::fold_for_stmt(&mut **self, node, __ast_path)
113335    }
113336
113337    #[inline]
113338    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
113339        <V as FoldAstPath>::fold_function(&mut **self, node, __ast_path)
113340    }
113341
113342    #[inline]
113343    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
113344        <V as FoldAstPath>::fold_getter_prop(&mut **self, node, __ast_path)
113345    }
113346
113347    #[inline]
113348    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
113349        <V as FoldAstPath>::fold_ident(&mut **self, node, __ast_path)
113350    }
113351
113352    #[inline]
113353    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
113354        <V as FoldAstPath>::fold_ident_name(&mut **self, node, __ast_path)
113355    }
113356
113357    #[inline]
113358    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
113359        <V as FoldAstPath>::fold_if_stmt(&mut **self, node, __ast_path)
113360    }
113361
113362    #[inline]
113363    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
113364        <V as FoldAstPath>::fold_import(&mut **self, node, __ast_path)
113365    }
113366
113367    #[inline]
113368    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
113369        <V as FoldAstPath>::fold_import_decl(&mut **self, node, __ast_path)
113370    }
113371
113372    #[inline]
113373    fn fold_import_default_specifier(
113374        &mut self,
113375        node: ImportDefaultSpecifier,
113376        __ast_path: &mut AstKindPath,
113377    ) -> ImportDefaultSpecifier {
113378        <V as FoldAstPath>::fold_import_default_specifier(&mut **self, node, __ast_path)
113379    }
113380
113381    #[inline]
113382    fn fold_import_named_specifier(
113383        &mut self,
113384        node: ImportNamedSpecifier,
113385        __ast_path: &mut AstKindPath,
113386    ) -> ImportNamedSpecifier {
113387        <V as FoldAstPath>::fold_import_named_specifier(&mut **self, node, __ast_path)
113388    }
113389
113390    #[inline]
113391    fn fold_import_phase(
113392        &mut self,
113393        node: ImportPhase,
113394        __ast_path: &mut AstKindPath,
113395    ) -> ImportPhase {
113396        <V as FoldAstPath>::fold_import_phase(&mut **self, node, __ast_path)
113397    }
113398
113399    #[inline]
113400    fn fold_import_specifier(
113401        &mut self,
113402        node: ImportSpecifier,
113403        __ast_path: &mut AstKindPath,
113404    ) -> ImportSpecifier {
113405        <V as FoldAstPath>::fold_import_specifier(&mut **self, node, __ast_path)
113406    }
113407
113408    #[inline]
113409    fn fold_import_specifiers(
113410        &mut self,
113411        node: Vec<ImportSpecifier>,
113412        __ast_path: &mut AstKindPath,
113413    ) -> Vec<ImportSpecifier> {
113414        <V as FoldAstPath>::fold_import_specifiers(&mut **self, node, __ast_path)
113415    }
113416
113417    #[inline]
113418    fn fold_import_star_as_specifier(
113419        &mut self,
113420        node: ImportStarAsSpecifier,
113421        __ast_path: &mut AstKindPath,
113422    ) -> ImportStarAsSpecifier {
113423        <V as FoldAstPath>::fold_import_star_as_specifier(&mut **self, node, __ast_path)
113424    }
113425
113426    #[inline]
113427    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
113428        <V as FoldAstPath>::fold_import_with(&mut **self, node, __ast_path)
113429    }
113430
113431    #[inline]
113432    fn fold_import_with_item(
113433        &mut self,
113434        node: ImportWithItem,
113435        __ast_path: &mut AstKindPath,
113436    ) -> ImportWithItem {
113437        <V as FoldAstPath>::fold_import_with_item(&mut **self, node, __ast_path)
113438    }
113439
113440    #[inline]
113441    fn fold_import_with_items(
113442        &mut self,
113443        node: Vec<ImportWithItem>,
113444        __ast_path: &mut AstKindPath,
113445    ) -> Vec<ImportWithItem> {
113446        <V as FoldAstPath>::fold_import_with_items(&mut **self, node, __ast_path)
113447    }
113448
113449    #[inline]
113450    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
113451        <V as FoldAstPath>::fold_invalid(&mut **self, node, __ast_path)
113452    }
113453
113454    #[inline]
113455    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
113456        <V as FoldAstPath>::fold_jsx_attr(&mut **self, node, __ast_path)
113457    }
113458
113459    #[inline]
113460    fn fold_jsx_attr_name(
113461        &mut self,
113462        node: JSXAttrName,
113463        __ast_path: &mut AstKindPath,
113464    ) -> JSXAttrName {
113465        <V as FoldAstPath>::fold_jsx_attr_name(&mut **self, node, __ast_path)
113466    }
113467
113468    #[inline]
113469    fn fold_jsx_attr_or_spread(
113470        &mut self,
113471        node: JSXAttrOrSpread,
113472        __ast_path: &mut AstKindPath,
113473    ) -> JSXAttrOrSpread {
113474        <V as FoldAstPath>::fold_jsx_attr_or_spread(&mut **self, node, __ast_path)
113475    }
113476
113477    #[inline]
113478    fn fold_jsx_attr_or_spreads(
113479        &mut self,
113480        node: Vec<JSXAttrOrSpread>,
113481        __ast_path: &mut AstKindPath,
113482    ) -> Vec<JSXAttrOrSpread> {
113483        <V as FoldAstPath>::fold_jsx_attr_or_spreads(&mut **self, node, __ast_path)
113484    }
113485
113486    #[inline]
113487    fn fold_jsx_attr_value(
113488        &mut self,
113489        node: JSXAttrValue,
113490        __ast_path: &mut AstKindPath,
113491    ) -> JSXAttrValue {
113492        <V as FoldAstPath>::fold_jsx_attr_value(&mut **self, node, __ast_path)
113493    }
113494
113495    #[inline]
113496    fn fold_jsx_closing_element(
113497        &mut self,
113498        node: JSXClosingElement,
113499        __ast_path: &mut AstKindPath,
113500    ) -> JSXClosingElement {
113501        <V as FoldAstPath>::fold_jsx_closing_element(&mut **self, node, __ast_path)
113502    }
113503
113504    #[inline]
113505    fn fold_jsx_closing_fragment(
113506        &mut self,
113507        node: JSXClosingFragment,
113508        __ast_path: &mut AstKindPath,
113509    ) -> JSXClosingFragment {
113510        <V as FoldAstPath>::fold_jsx_closing_fragment(&mut **self, node, __ast_path)
113511    }
113512
113513    #[inline]
113514    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
113515        <V as FoldAstPath>::fold_jsx_element(&mut **self, node, __ast_path)
113516    }
113517
113518    #[inline]
113519    fn fold_jsx_element_child(
113520        &mut self,
113521        node: JSXElementChild,
113522        __ast_path: &mut AstKindPath,
113523    ) -> JSXElementChild {
113524        <V as FoldAstPath>::fold_jsx_element_child(&mut **self, node, __ast_path)
113525    }
113526
113527    #[inline]
113528    fn fold_jsx_element_childs(
113529        &mut self,
113530        node: Vec<JSXElementChild>,
113531        __ast_path: &mut AstKindPath,
113532    ) -> Vec<JSXElementChild> {
113533        <V as FoldAstPath>::fold_jsx_element_childs(&mut **self, node, __ast_path)
113534    }
113535
113536    #[inline]
113537    fn fold_jsx_element_name(
113538        &mut self,
113539        node: JSXElementName,
113540        __ast_path: &mut AstKindPath,
113541    ) -> JSXElementName {
113542        <V as FoldAstPath>::fold_jsx_element_name(&mut **self, node, __ast_path)
113543    }
113544
113545    #[inline]
113546    fn fold_jsx_empty_expr(
113547        &mut self,
113548        node: JSXEmptyExpr,
113549        __ast_path: &mut AstKindPath,
113550    ) -> JSXEmptyExpr {
113551        <V as FoldAstPath>::fold_jsx_empty_expr(&mut **self, node, __ast_path)
113552    }
113553
113554    #[inline]
113555    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
113556        <V as FoldAstPath>::fold_jsx_expr(&mut **self, node, __ast_path)
113557    }
113558
113559    #[inline]
113560    fn fold_jsx_expr_container(
113561        &mut self,
113562        node: JSXExprContainer,
113563        __ast_path: &mut AstKindPath,
113564    ) -> JSXExprContainer {
113565        <V as FoldAstPath>::fold_jsx_expr_container(&mut **self, node, __ast_path)
113566    }
113567
113568    #[inline]
113569    fn fold_jsx_fragment(
113570        &mut self,
113571        node: JSXFragment,
113572        __ast_path: &mut AstKindPath,
113573    ) -> JSXFragment {
113574        <V as FoldAstPath>::fold_jsx_fragment(&mut **self, node, __ast_path)
113575    }
113576
113577    #[inline]
113578    fn fold_jsx_member_expr(
113579        &mut self,
113580        node: JSXMemberExpr,
113581        __ast_path: &mut AstKindPath,
113582    ) -> JSXMemberExpr {
113583        <V as FoldAstPath>::fold_jsx_member_expr(&mut **self, node, __ast_path)
113584    }
113585
113586    #[inline]
113587    fn fold_jsx_namespaced_name(
113588        &mut self,
113589        node: JSXNamespacedName,
113590        __ast_path: &mut AstKindPath,
113591    ) -> JSXNamespacedName {
113592        <V as FoldAstPath>::fold_jsx_namespaced_name(&mut **self, node, __ast_path)
113593    }
113594
113595    #[inline]
113596    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
113597        <V as FoldAstPath>::fold_jsx_object(&mut **self, node, __ast_path)
113598    }
113599
113600    #[inline]
113601    fn fold_jsx_opening_element(
113602        &mut self,
113603        node: JSXOpeningElement,
113604        __ast_path: &mut AstKindPath,
113605    ) -> JSXOpeningElement {
113606        <V as FoldAstPath>::fold_jsx_opening_element(&mut **self, node, __ast_path)
113607    }
113608
113609    #[inline]
113610    fn fold_jsx_opening_fragment(
113611        &mut self,
113612        node: JSXOpeningFragment,
113613        __ast_path: &mut AstKindPath,
113614    ) -> JSXOpeningFragment {
113615        <V as FoldAstPath>::fold_jsx_opening_fragment(&mut **self, node, __ast_path)
113616    }
113617
113618    #[inline]
113619    fn fold_jsx_spread_child(
113620        &mut self,
113621        node: JSXSpreadChild,
113622        __ast_path: &mut AstKindPath,
113623    ) -> JSXSpreadChild {
113624        <V as FoldAstPath>::fold_jsx_spread_child(&mut **self, node, __ast_path)
113625    }
113626
113627    #[inline]
113628    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
113629        <V as FoldAstPath>::fold_jsx_text(&mut **self, node, __ast_path)
113630    }
113631
113632    #[inline]
113633    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
113634        <V as FoldAstPath>::fold_key(&mut **self, node, __ast_path)
113635    }
113636
113637    #[inline]
113638    fn fold_key_value_pat_prop(
113639        &mut self,
113640        node: KeyValuePatProp,
113641        __ast_path: &mut AstKindPath,
113642    ) -> KeyValuePatProp {
113643        <V as FoldAstPath>::fold_key_value_pat_prop(&mut **self, node, __ast_path)
113644    }
113645
113646    #[inline]
113647    fn fold_key_value_prop(
113648        &mut self,
113649        node: KeyValueProp,
113650        __ast_path: &mut AstKindPath,
113651    ) -> KeyValueProp {
113652        <V as FoldAstPath>::fold_key_value_prop(&mut **self, node, __ast_path)
113653    }
113654
113655    #[inline]
113656    fn fold_labeled_stmt(
113657        &mut self,
113658        node: LabeledStmt,
113659        __ast_path: &mut AstKindPath,
113660    ) -> LabeledStmt {
113661        <V as FoldAstPath>::fold_labeled_stmt(&mut **self, node, __ast_path)
113662    }
113663
113664    #[inline]
113665    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
113666        <V as FoldAstPath>::fold_lit(&mut **self, node, __ast_path)
113667    }
113668
113669    #[inline]
113670    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
113671        <V as FoldAstPath>::fold_member_expr(&mut **self, node, __ast_path)
113672    }
113673
113674    #[inline]
113675    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
113676        <V as FoldAstPath>::fold_member_prop(&mut **self, node, __ast_path)
113677    }
113678
113679    #[inline]
113680    fn fold_meta_prop_expr(
113681        &mut self,
113682        node: MetaPropExpr,
113683        __ast_path: &mut AstKindPath,
113684    ) -> MetaPropExpr {
113685        <V as FoldAstPath>::fold_meta_prop_expr(&mut **self, node, __ast_path)
113686    }
113687
113688    #[inline]
113689    fn fold_meta_prop_kind(
113690        &mut self,
113691        node: MetaPropKind,
113692        __ast_path: &mut AstKindPath,
113693    ) -> MetaPropKind {
113694        <V as FoldAstPath>::fold_meta_prop_kind(&mut **self, node, __ast_path)
113695    }
113696
113697    #[inline]
113698    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
113699        <V as FoldAstPath>::fold_method_kind(&mut **self, node, __ast_path)
113700    }
113701
113702    #[inline]
113703    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
113704        <V as FoldAstPath>::fold_method_prop(&mut **self, node, __ast_path)
113705    }
113706
113707    #[inline]
113708    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
113709        <V as FoldAstPath>::fold_module(&mut **self, node, __ast_path)
113710    }
113711
113712    #[inline]
113713    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
113714        <V as FoldAstPath>::fold_module_decl(&mut **self, node, __ast_path)
113715    }
113716
113717    #[inline]
113718    fn fold_module_export_name(
113719        &mut self,
113720        node: ModuleExportName,
113721        __ast_path: &mut AstKindPath,
113722    ) -> ModuleExportName {
113723        <V as FoldAstPath>::fold_module_export_name(&mut **self, node, __ast_path)
113724    }
113725
113726    #[inline]
113727    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
113728        <V as FoldAstPath>::fold_module_item(&mut **self, node, __ast_path)
113729    }
113730
113731    #[inline]
113732    fn fold_module_items(
113733        &mut self,
113734        node: Vec<ModuleItem>,
113735        __ast_path: &mut AstKindPath,
113736    ) -> Vec<ModuleItem> {
113737        <V as FoldAstPath>::fold_module_items(&mut **self, node, __ast_path)
113738    }
113739
113740    #[inline]
113741    fn fold_named_export(
113742        &mut self,
113743        node: NamedExport,
113744        __ast_path: &mut AstKindPath,
113745    ) -> NamedExport {
113746        <V as FoldAstPath>::fold_named_export(&mut **self, node, __ast_path)
113747    }
113748
113749    #[inline]
113750    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
113751        <V as FoldAstPath>::fold_new_expr(&mut **self, node, __ast_path)
113752    }
113753
113754    #[inline]
113755    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
113756        <V as FoldAstPath>::fold_null(&mut **self, node, __ast_path)
113757    }
113758
113759    #[inline]
113760    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
113761        <V as FoldAstPath>::fold_number(&mut **self, node, __ast_path)
113762    }
113763
113764    #[inline]
113765    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
113766        <V as FoldAstPath>::fold_object_lit(&mut **self, node, __ast_path)
113767    }
113768
113769    #[inline]
113770    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
113771        <V as FoldAstPath>::fold_object_pat(&mut **self, node, __ast_path)
113772    }
113773
113774    #[inline]
113775    fn fold_object_pat_prop(
113776        &mut self,
113777        node: ObjectPatProp,
113778        __ast_path: &mut AstKindPath,
113779    ) -> ObjectPatProp {
113780        <V as FoldAstPath>::fold_object_pat_prop(&mut **self, node, __ast_path)
113781    }
113782
113783    #[inline]
113784    fn fold_object_pat_props(
113785        &mut self,
113786        node: Vec<ObjectPatProp>,
113787        __ast_path: &mut AstKindPath,
113788    ) -> Vec<ObjectPatProp> {
113789        <V as FoldAstPath>::fold_object_pat_props(&mut **self, node, __ast_path)
113790    }
113791
113792    #[inline]
113793    fn fold_opt_accessibility(
113794        &mut self,
113795        node: Option<Accessibility>,
113796        __ast_path: &mut AstKindPath,
113797    ) -> Option<Accessibility> {
113798        <V as FoldAstPath>::fold_opt_accessibility(&mut **self, node, __ast_path)
113799    }
113800
113801    #[inline]
113802    fn fold_opt_atom(
113803        &mut self,
113804        node: Option<swc_atoms::Atom>,
113805        __ast_path: &mut AstKindPath,
113806    ) -> Option<swc_atoms::Atom> {
113807        <V as FoldAstPath>::fold_opt_atom(&mut **self, node, __ast_path)
113808    }
113809
113810    #[inline]
113811    fn fold_opt_block_stmt(
113812        &mut self,
113813        node: Option<BlockStmt>,
113814        __ast_path: &mut AstKindPath,
113815    ) -> Option<BlockStmt> {
113816        <V as FoldAstPath>::fold_opt_block_stmt(&mut **self, node, __ast_path)
113817    }
113818
113819    #[inline]
113820    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
113821        <V as FoldAstPath>::fold_opt_call(&mut **self, node, __ast_path)
113822    }
113823
113824    #[inline]
113825    fn fold_opt_catch_clause(
113826        &mut self,
113827        node: Option<CatchClause>,
113828        __ast_path: &mut AstKindPath,
113829    ) -> Option<CatchClause> {
113830        <V as FoldAstPath>::fold_opt_catch_clause(&mut **self, node, __ast_path)
113831    }
113832
113833    #[inline]
113834    fn fold_opt_chain_base(
113835        &mut self,
113836        node: OptChainBase,
113837        __ast_path: &mut AstKindPath,
113838    ) -> OptChainBase {
113839        <V as FoldAstPath>::fold_opt_chain_base(&mut **self, node, __ast_path)
113840    }
113841
113842    #[inline]
113843    fn fold_opt_chain_expr(
113844        &mut self,
113845        node: OptChainExpr,
113846        __ast_path: &mut AstKindPath,
113847    ) -> OptChainExpr {
113848        <V as FoldAstPath>::fold_opt_chain_expr(&mut **self, node, __ast_path)
113849    }
113850
113851    #[inline]
113852    fn fold_opt_expr(
113853        &mut self,
113854        node: Option<Box<Expr>>,
113855        __ast_path: &mut AstKindPath,
113856    ) -> Option<Box<Expr>> {
113857        <V as FoldAstPath>::fold_opt_expr(&mut **self, node, __ast_path)
113858    }
113859
113860    #[inline]
113861    fn fold_opt_expr_or_spread(
113862        &mut self,
113863        node: Option<ExprOrSpread>,
113864        __ast_path: &mut AstKindPath,
113865    ) -> Option<ExprOrSpread> {
113866        <V as FoldAstPath>::fold_opt_expr_or_spread(&mut **self, node, __ast_path)
113867    }
113868
113869    #[inline]
113870    fn fold_opt_expr_or_spreads(
113871        &mut self,
113872        node: Option<Vec<ExprOrSpread>>,
113873        __ast_path: &mut AstKindPath,
113874    ) -> Option<Vec<ExprOrSpread>> {
113875        <V as FoldAstPath>::fold_opt_expr_or_spreads(&mut **self, node, __ast_path)
113876    }
113877
113878    #[inline]
113879    fn fold_opt_ident(
113880        &mut self,
113881        node: Option<Ident>,
113882        __ast_path: &mut AstKindPath,
113883    ) -> Option<Ident> {
113884        <V as FoldAstPath>::fold_opt_ident(&mut **self, node, __ast_path)
113885    }
113886
113887    #[inline]
113888    fn fold_opt_jsx_attr_value(
113889        &mut self,
113890        node: Option<JSXAttrValue>,
113891        __ast_path: &mut AstKindPath,
113892    ) -> Option<JSXAttrValue> {
113893        <V as FoldAstPath>::fold_opt_jsx_attr_value(&mut **self, node, __ast_path)
113894    }
113895
113896    #[inline]
113897    fn fold_opt_jsx_closing_element(
113898        &mut self,
113899        node: Option<JSXClosingElement>,
113900        __ast_path: &mut AstKindPath,
113901    ) -> Option<JSXClosingElement> {
113902        <V as FoldAstPath>::fold_opt_jsx_closing_element(&mut **self, node, __ast_path)
113903    }
113904
113905    #[inline]
113906    fn fold_opt_module_export_name(
113907        &mut self,
113908        node: Option<ModuleExportName>,
113909        __ast_path: &mut AstKindPath,
113910    ) -> Option<ModuleExportName> {
113911        <V as FoldAstPath>::fold_opt_module_export_name(&mut **self, node, __ast_path)
113912    }
113913
113914    #[inline]
113915    fn fold_opt_object_lit(
113916        &mut self,
113917        node: Option<Box<ObjectLit>>,
113918        __ast_path: &mut AstKindPath,
113919    ) -> Option<Box<ObjectLit>> {
113920        <V as FoldAstPath>::fold_opt_object_lit(&mut **self, node, __ast_path)
113921    }
113922
113923    #[inline]
113924    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
113925        <V as FoldAstPath>::fold_opt_pat(&mut **self, node, __ast_path)
113926    }
113927
113928    #[inline]
113929    fn fold_opt_span(
113930        &mut self,
113931        node: Option<swc_common::Span>,
113932        __ast_path: &mut AstKindPath,
113933    ) -> Option<swc_common::Span> {
113934        <V as FoldAstPath>::fold_opt_span(&mut **self, node, __ast_path)
113935    }
113936
113937    #[inline]
113938    fn fold_opt_stmt(
113939        &mut self,
113940        node: Option<Box<Stmt>>,
113941        __ast_path: &mut AstKindPath,
113942    ) -> Option<Box<Stmt>> {
113943        <V as FoldAstPath>::fold_opt_stmt(&mut **self, node, __ast_path)
113944    }
113945
113946    #[inline]
113947    fn fold_opt_str(
113948        &mut self,
113949        node: Option<Box<Str>>,
113950        __ast_path: &mut AstKindPath,
113951    ) -> Option<Box<Str>> {
113952        <V as FoldAstPath>::fold_opt_str(&mut **self, node, __ast_path)
113953    }
113954
113955    #[inline]
113956    fn fold_opt_true_plus_minus(
113957        &mut self,
113958        node: Option<TruePlusMinus>,
113959        __ast_path: &mut AstKindPath,
113960    ) -> Option<TruePlusMinus> {
113961        <V as FoldAstPath>::fold_opt_true_plus_minus(&mut **self, node, __ast_path)
113962    }
113963
113964    #[inline]
113965    fn fold_opt_ts_entity_name(
113966        &mut self,
113967        node: Option<TsEntityName>,
113968        __ast_path: &mut AstKindPath,
113969    ) -> Option<TsEntityName> {
113970        <V as FoldAstPath>::fold_opt_ts_entity_name(&mut **self, node, __ast_path)
113971    }
113972
113973    #[inline]
113974    fn fold_opt_ts_namespace_body(
113975        &mut self,
113976        node: Option<TsNamespaceBody>,
113977        __ast_path: &mut AstKindPath,
113978    ) -> Option<TsNamespaceBody> {
113979        <V as FoldAstPath>::fold_opt_ts_namespace_body(&mut **self, node, __ast_path)
113980    }
113981
113982    #[inline]
113983    fn fold_opt_ts_type(
113984        &mut self,
113985        node: Option<Box<TsType>>,
113986        __ast_path: &mut AstKindPath,
113987    ) -> Option<Box<TsType>> {
113988        <V as FoldAstPath>::fold_opt_ts_type(&mut **self, node, __ast_path)
113989    }
113990
113991    #[inline]
113992    fn fold_opt_ts_type_ann(
113993        &mut self,
113994        node: Option<Box<TsTypeAnn>>,
113995        __ast_path: &mut AstKindPath,
113996    ) -> Option<Box<TsTypeAnn>> {
113997        <V as FoldAstPath>::fold_opt_ts_type_ann(&mut **self, node, __ast_path)
113998    }
113999
114000    #[inline]
114001    fn fold_opt_ts_type_param_decl(
114002        &mut self,
114003        node: Option<Box<TsTypeParamDecl>>,
114004        __ast_path: &mut AstKindPath,
114005    ) -> Option<Box<TsTypeParamDecl>> {
114006        <V as FoldAstPath>::fold_opt_ts_type_param_decl(&mut **self, node, __ast_path)
114007    }
114008
114009    #[inline]
114010    fn fold_opt_ts_type_param_instantiation(
114011        &mut self,
114012        node: Option<Box<TsTypeParamInstantiation>>,
114013        __ast_path: &mut AstKindPath,
114014    ) -> Option<Box<TsTypeParamInstantiation>> {
114015        <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(&mut **self, node, __ast_path)
114016    }
114017
114018    #[inline]
114019    fn fold_opt_var_decl_or_expr(
114020        &mut self,
114021        node: Option<VarDeclOrExpr>,
114022        __ast_path: &mut AstKindPath,
114023    ) -> Option<VarDeclOrExpr> {
114024        <V as FoldAstPath>::fold_opt_var_decl_or_expr(&mut **self, node, __ast_path)
114025    }
114026
114027    #[inline]
114028    fn fold_opt_vec_expr_or_spreads(
114029        &mut self,
114030        node: Vec<Option<ExprOrSpread>>,
114031        __ast_path: &mut AstKindPath,
114032    ) -> Vec<Option<ExprOrSpread>> {
114033        <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(&mut **self, node, __ast_path)
114034    }
114035
114036    #[inline]
114037    fn fold_opt_vec_pats(
114038        &mut self,
114039        node: Vec<Option<Pat>>,
114040        __ast_path: &mut AstKindPath,
114041    ) -> Vec<Option<Pat>> {
114042        <V as FoldAstPath>::fold_opt_vec_pats(&mut **self, node, __ast_path)
114043    }
114044
114045    #[inline]
114046    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
114047        <V as FoldAstPath>::fold_param(&mut **self, node, __ast_path)
114048    }
114049
114050    #[inline]
114051    fn fold_param_or_ts_param_prop(
114052        &mut self,
114053        node: ParamOrTsParamProp,
114054        __ast_path: &mut AstKindPath,
114055    ) -> ParamOrTsParamProp {
114056        <V as FoldAstPath>::fold_param_or_ts_param_prop(&mut **self, node, __ast_path)
114057    }
114058
114059    #[inline]
114060    fn fold_param_or_ts_param_props(
114061        &mut self,
114062        node: Vec<ParamOrTsParamProp>,
114063        __ast_path: &mut AstKindPath,
114064    ) -> Vec<ParamOrTsParamProp> {
114065        <V as FoldAstPath>::fold_param_or_ts_param_props(&mut **self, node, __ast_path)
114066    }
114067
114068    #[inline]
114069    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
114070        <V as FoldAstPath>::fold_params(&mut **self, node, __ast_path)
114071    }
114072
114073    #[inline]
114074    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
114075        <V as FoldAstPath>::fold_paren_expr(&mut **self, node, __ast_path)
114076    }
114077
114078    #[inline]
114079    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
114080        <V as FoldAstPath>::fold_pat(&mut **self, node, __ast_path)
114081    }
114082
114083    #[inline]
114084    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
114085        <V as FoldAstPath>::fold_pats(&mut **self, node, __ast_path)
114086    }
114087
114088    #[inline]
114089    fn fold_private_method(
114090        &mut self,
114091        node: PrivateMethod,
114092        __ast_path: &mut AstKindPath,
114093    ) -> PrivateMethod {
114094        <V as FoldAstPath>::fold_private_method(&mut **self, node, __ast_path)
114095    }
114096
114097    #[inline]
114098    fn fold_private_name(
114099        &mut self,
114100        node: PrivateName,
114101        __ast_path: &mut AstKindPath,
114102    ) -> PrivateName {
114103        <V as FoldAstPath>::fold_private_name(&mut **self, node, __ast_path)
114104    }
114105
114106    #[inline]
114107    fn fold_private_prop(
114108        &mut self,
114109        node: PrivateProp,
114110        __ast_path: &mut AstKindPath,
114111    ) -> PrivateProp {
114112        <V as FoldAstPath>::fold_private_prop(&mut **self, node, __ast_path)
114113    }
114114
114115    #[inline]
114116    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
114117        <V as FoldAstPath>::fold_program(&mut **self, node, __ast_path)
114118    }
114119
114120    #[inline]
114121    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
114122        <V as FoldAstPath>::fold_prop(&mut **self, node, __ast_path)
114123    }
114124
114125    #[inline]
114126    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
114127        <V as FoldAstPath>::fold_prop_name(&mut **self, node, __ast_path)
114128    }
114129
114130    #[inline]
114131    fn fold_prop_or_spread(
114132        &mut self,
114133        node: PropOrSpread,
114134        __ast_path: &mut AstKindPath,
114135    ) -> PropOrSpread {
114136        <V as FoldAstPath>::fold_prop_or_spread(&mut **self, node, __ast_path)
114137    }
114138
114139    #[inline]
114140    fn fold_prop_or_spreads(
114141        &mut self,
114142        node: Vec<PropOrSpread>,
114143        __ast_path: &mut AstKindPath,
114144    ) -> Vec<PropOrSpread> {
114145        <V as FoldAstPath>::fold_prop_or_spreads(&mut **self, node, __ast_path)
114146    }
114147
114148    #[inline]
114149    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
114150        <V as FoldAstPath>::fold_regex(&mut **self, node, __ast_path)
114151    }
114152
114153    #[inline]
114154    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
114155        <V as FoldAstPath>::fold_rest_pat(&mut **self, node, __ast_path)
114156    }
114157
114158    #[inline]
114159    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
114160        <V as FoldAstPath>::fold_return_stmt(&mut **self, node, __ast_path)
114161    }
114162
114163    #[inline]
114164    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
114165        <V as FoldAstPath>::fold_script(&mut **self, node, __ast_path)
114166    }
114167
114168    #[inline]
114169    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
114170        <V as FoldAstPath>::fold_seq_expr(&mut **self, node, __ast_path)
114171    }
114172
114173    #[inline]
114174    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
114175        <V as FoldAstPath>::fold_setter_prop(&mut **self, node, __ast_path)
114176    }
114177
114178    #[inline]
114179    fn fold_simple_assign_target(
114180        &mut self,
114181        node: SimpleAssignTarget,
114182        __ast_path: &mut AstKindPath,
114183    ) -> SimpleAssignTarget {
114184        <V as FoldAstPath>::fold_simple_assign_target(&mut **self, node, __ast_path)
114185    }
114186
114187    #[inline]
114188    fn fold_span(
114189        &mut self,
114190        node: swc_common::Span,
114191        __ast_path: &mut AstKindPath,
114192    ) -> swc_common::Span {
114193        <V as FoldAstPath>::fold_span(&mut **self, node, __ast_path)
114194    }
114195
114196    #[inline]
114197    fn fold_spread_element(
114198        &mut self,
114199        node: SpreadElement,
114200        __ast_path: &mut AstKindPath,
114201    ) -> SpreadElement {
114202        <V as FoldAstPath>::fold_spread_element(&mut **self, node, __ast_path)
114203    }
114204
114205    #[inline]
114206    fn fold_static_block(
114207        &mut self,
114208        node: StaticBlock,
114209        __ast_path: &mut AstKindPath,
114210    ) -> StaticBlock {
114211        <V as FoldAstPath>::fold_static_block(&mut **self, node, __ast_path)
114212    }
114213
114214    #[inline]
114215    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
114216        <V as FoldAstPath>::fold_stmt(&mut **self, node, __ast_path)
114217    }
114218
114219    #[inline]
114220    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
114221        <V as FoldAstPath>::fold_stmts(&mut **self, node, __ast_path)
114222    }
114223
114224    #[inline]
114225    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
114226        <V as FoldAstPath>::fold_str(&mut **self, node, __ast_path)
114227    }
114228
114229    #[inline]
114230    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
114231        <V as FoldAstPath>::fold_super(&mut **self, node, __ast_path)
114232    }
114233
114234    #[inline]
114235    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
114236        <V as FoldAstPath>::fold_super_prop(&mut **self, node, __ast_path)
114237    }
114238
114239    #[inline]
114240    fn fold_super_prop_expr(
114241        &mut self,
114242        node: SuperPropExpr,
114243        __ast_path: &mut AstKindPath,
114244    ) -> SuperPropExpr {
114245        <V as FoldAstPath>::fold_super_prop_expr(&mut **self, node, __ast_path)
114246    }
114247
114248    #[inline]
114249    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
114250        <V as FoldAstPath>::fold_switch_case(&mut **self, node, __ast_path)
114251    }
114252
114253    #[inline]
114254    fn fold_switch_cases(
114255        &mut self,
114256        node: Vec<SwitchCase>,
114257        __ast_path: &mut AstKindPath,
114258    ) -> Vec<SwitchCase> {
114259        <V as FoldAstPath>::fold_switch_cases(&mut **self, node, __ast_path)
114260    }
114261
114262    #[inline]
114263    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
114264        <V as FoldAstPath>::fold_switch_stmt(&mut **self, node, __ast_path)
114265    }
114266
114267    #[inline]
114268    fn fold_syntax_context(
114269        &mut self,
114270        node: swc_common::SyntaxContext,
114271        __ast_path: &mut AstKindPath,
114272    ) -> swc_common::SyntaxContext {
114273        <V as FoldAstPath>::fold_syntax_context(&mut **self, node, __ast_path)
114274    }
114275
114276    #[inline]
114277    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
114278        <V as FoldAstPath>::fold_tagged_tpl(&mut **self, node, __ast_path)
114279    }
114280
114281    #[inline]
114282    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
114283        <V as FoldAstPath>::fold_this_expr(&mut **self, node, __ast_path)
114284    }
114285
114286    #[inline]
114287    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
114288        <V as FoldAstPath>::fold_throw_stmt(&mut **self, node, __ast_path)
114289    }
114290
114291    #[inline]
114292    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
114293        <V as FoldAstPath>::fold_tpl(&mut **self, node, __ast_path)
114294    }
114295
114296    #[inline]
114297    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
114298        <V as FoldAstPath>::fold_tpl_element(&mut **self, node, __ast_path)
114299    }
114300
114301    #[inline]
114302    fn fold_tpl_elements(
114303        &mut self,
114304        node: Vec<TplElement>,
114305        __ast_path: &mut AstKindPath,
114306    ) -> Vec<TplElement> {
114307        <V as FoldAstPath>::fold_tpl_elements(&mut **self, node, __ast_path)
114308    }
114309
114310    #[inline]
114311    fn fold_true_plus_minus(
114312        &mut self,
114313        node: TruePlusMinus,
114314        __ast_path: &mut AstKindPath,
114315    ) -> TruePlusMinus {
114316        <V as FoldAstPath>::fold_true_plus_minus(&mut **self, node, __ast_path)
114317    }
114318
114319    #[inline]
114320    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
114321        <V as FoldAstPath>::fold_try_stmt(&mut **self, node, __ast_path)
114322    }
114323
114324    #[inline]
114325    fn fold_ts_array_type(
114326        &mut self,
114327        node: TsArrayType,
114328        __ast_path: &mut AstKindPath,
114329    ) -> TsArrayType {
114330        <V as FoldAstPath>::fold_ts_array_type(&mut **self, node, __ast_path)
114331    }
114332
114333    #[inline]
114334    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
114335        <V as FoldAstPath>::fold_ts_as_expr(&mut **self, node, __ast_path)
114336    }
114337
114338    #[inline]
114339    fn fold_ts_call_signature_decl(
114340        &mut self,
114341        node: TsCallSignatureDecl,
114342        __ast_path: &mut AstKindPath,
114343    ) -> TsCallSignatureDecl {
114344        <V as FoldAstPath>::fold_ts_call_signature_decl(&mut **self, node, __ast_path)
114345    }
114346
114347    #[inline]
114348    fn fold_ts_conditional_type(
114349        &mut self,
114350        node: TsConditionalType,
114351        __ast_path: &mut AstKindPath,
114352    ) -> TsConditionalType {
114353        <V as FoldAstPath>::fold_ts_conditional_type(&mut **self, node, __ast_path)
114354    }
114355
114356    #[inline]
114357    fn fold_ts_const_assertion(
114358        &mut self,
114359        node: TsConstAssertion,
114360        __ast_path: &mut AstKindPath,
114361    ) -> TsConstAssertion {
114362        <V as FoldAstPath>::fold_ts_const_assertion(&mut **self, node, __ast_path)
114363    }
114364
114365    #[inline]
114366    fn fold_ts_construct_signature_decl(
114367        &mut self,
114368        node: TsConstructSignatureDecl,
114369        __ast_path: &mut AstKindPath,
114370    ) -> TsConstructSignatureDecl {
114371        <V as FoldAstPath>::fold_ts_construct_signature_decl(&mut **self, node, __ast_path)
114372    }
114373
114374    #[inline]
114375    fn fold_ts_constructor_type(
114376        &mut self,
114377        node: TsConstructorType,
114378        __ast_path: &mut AstKindPath,
114379    ) -> TsConstructorType {
114380        <V as FoldAstPath>::fold_ts_constructor_type(&mut **self, node, __ast_path)
114381    }
114382
114383    #[inline]
114384    fn fold_ts_entity_name(
114385        &mut self,
114386        node: TsEntityName,
114387        __ast_path: &mut AstKindPath,
114388    ) -> TsEntityName {
114389        <V as FoldAstPath>::fold_ts_entity_name(&mut **self, node, __ast_path)
114390    }
114391
114392    #[inline]
114393    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
114394        <V as FoldAstPath>::fold_ts_enum_decl(&mut **self, node, __ast_path)
114395    }
114396
114397    #[inline]
114398    fn fold_ts_enum_member(
114399        &mut self,
114400        node: TsEnumMember,
114401        __ast_path: &mut AstKindPath,
114402    ) -> TsEnumMember {
114403        <V as FoldAstPath>::fold_ts_enum_member(&mut **self, node, __ast_path)
114404    }
114405
114406    #[inline]
114407    fn fold_ts_enum_member_id(
114408        &mut self,
114409        node: TsEnumMemberId,
114410        __ast_path: &mut AstKindPath,
114411    ) -> TsEnumMemberId {
114412        <V as FoldAstPath>::fold_ts_enum_member_id(&mut **self, node, __ast_path)
114413    }
114414
114415    #[inline]
114416    fn fold_ts_enum_members(
114417        &mut self,
114418        node: Vec<TsEnumMember>,
114419        __ast_path: &mut AstKindPath,
114420    ) -> Vec<TsEnumMember> {
114421        <V as FoldAstPath>::fold_ts_enum_members(&mut **self, node, __ast_path)
114422    }
114423
114424    #[inline]
114425    fn fold_ts_export_assignment(
114426        &mut self,
114427        node: TsExportAssignment,
114428        __ast_path: &mut AstKindPath,
114429    ) -> TsExportAssignment {
114430        <V as FoldAstPath>::fold_ts_export_assignment(&mut **self, node, __ast_path)
114431    }
114432
114433    #[inline]
114434    fn fold_ts_expr_with_type_args(
114435        &mut self,
114436        node: TsExprWithTypeArgs,
114437        __ast_path: &mut AstKindPath,
114438    ) -> TsExprWithTypeArgs {
114439        <V as FoldAstPath>::fold_ts_expr_with_type_args(&mut **self, node, __ast_path)
114440    }
114441
114442    #[inline]
114443    fn fold_ts_expr_with_type_argss(
114444        &mut self,
114445        node: Vec<TsExprWithTypeArgs>,
114446        __ast_path: &mut AstKindPath,
114447    ) -> Vec<TsExprWithTypeArgs> {
114448        <V as FoldAstPath>::fold_ts_expr_with_type_argss(&mut **self, node, __ast_path)
114449    }
114450
114451    #[inline]
114452    fn fold_ts_external_module_ref(
114453        &mut self,
114454        node: TsExternalModuleRef,
114455        __ast_path: &mut AstKindPath,
114456    ) -> TsExternalModuleRef {
114457        <V as FoldAstPath>::fold_ts_external_module_ref(&mut **self, node, __ast_path)
114458    }
114459
114460    #[inline]
114461    fn fold_ts_fn_or_constructor_type(
114462        &mut self,
114463        node: TsFnOrConstructorType,
114464        __ast_path: &mut AstKindPath,
114465    ) -> TsFnOrConstructorType {
114466        <V as FoldAstPath>::fold_ts_fn_or_constructor_type(&mut **self, node, __ast_path)
114467    }
114468
114469    #[inline]
114470    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
114471        <V as FoldAstPath>::fold_ts_fn_param(&mut **self, node, __ast_path)
114472    }
114473
114474    #[inline]
114475    fn fold_ts_fn_params(
114476        &mut self,
114477        node: Vec<TsFnParam>,
114478        __ast_path: &mut AstKindPath,
114479    ) -> Vec<TsFnParam> {
114480        <V as FoldAstPath>::fold_ts_fn_params(&mut **self, node, __ast_path)
114481    }
114482
114483    #[inline]
114484    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
114485        <V as FoldAstPath>::fold_ts_fn_type(&mut **self, node, __ast_path)
114486    }
114487
114488    #[inline]
114489    fn fold_ts_getter_signature(
114490        &mut self,
114491        node: TsGetterSignature,
114492        __ast_path: &mut AstKindPath,
114493    ) -> TsGetterSignature {
114494        <V as FoldAstPath>::fold_ts_getter_signature(&mut **self, node, __ast_path)
114495    }
114496
114497    #[inline]
114498    fn fold_ts_import_equals_decl(
114499        &mut self,
114500        node: TsImportEqualsDecl,
114501        __ast_path: &mut AstKindPath,
114502    ) -> TsImportEqualsDecl {
114503        <V as FoldAstPath>::fold_ts_import_equals_decl(&mut **self, node, __ast_path)
114504    }
114505
114506    #[inline]
114507    fn fold_ts_import_type(
114508        &mut self,
114509        node: TsImportType,
114510        __ast_path: &mut AstKindPath,
114511    ) -> TsImportType {
114512        <V as FoldAstPath>::fold_ts_import_type(&mut **self, node, __ast_path)
114513    }
114514
114515    #[inline]
114516    fn fold_ts_index_signature(
114517        &mut self,
114518        node: TsIndexSignature,
114519        __ast_path: &mut AstKindPath,
114520    ) -> TsIndexSignature {
114521        <V as FoldAstPath>::fold_ts_index_signature(&mut **self, node, __ast_path)
114522    }
114523
114524    #[inline]
114525    fn fold_ts_indexed_access_type(
114526        &mut self,
114527        node: TsIndexedAccessType,
114528        __ast_path: &mut AstKindPath,
114529    ) -> TsIndexedAccessType {
114530        <V as FoldAstPath>::fold_ts_indexed_access_type(&mut **self, node, __ast_path)
114531    }
114532
114533    #[inline]
114534    fn fold_ts_infer_type(
114535        &mut self,
114536        node: TsInferType,
114537        __ast_path: &mut AstKindPath,
114538    ) -> TsInferType {
114539        <V as FoldAstPath>::fold_ts_infer_type(&mut **self, node, __ast_path)
114540    }
114541
114542    #[inline]
114543    fn fold_ts_instantiation(
114544        &mut self,
114545        node: TsInstantiation,
114546        __ast_path: &mut AstKindPath,
114547    ) -> TsInstantiation {
114548        <V as FoldAstPath>::fold_ts_instantiation(&mut **self, node, __ast_path)
114549    }
114550
114551    #[inline]
114552    fn fold_ts_interface_body(
114553        &mut self,
114554        node: TsInterfaceBody,
114555        __ast_path: &mut AstKindPath,
114556    ) -> TsInterfaceBody {
114557        <V as FoldAstPath>::fold_ts_interface_body(&mut **self, node, __ast_path)
114558    }
114559
114560    #[inline]
114561    fn fold_ts_interface_decl(
114562        &mut self,
114563        node: TsInterfaceDecl,
114564        __ast_path: &mut AstKindPath,
114565    ) -> TsInterfaceDecl {
114566        <V as FoldAstPath>::fold_ts_interface_decl(&mut **self, node, __ast_path)
114567    }
114568
114569    #[inline]
114570    fn fold_ts_intersection_type(
114571        &mut self,
114572        node: TsIntersectionType,
114573        __ast_path: &mut AstKindPath,
114574    ) -> TsIntersectionType {
114575        <V as FoldAstPath>::fold_ts_intersection_type(&mut **self, node, __ast_path)
114576    }
114577
114578    #[inline]
114579    fn fold_ts_keyword_type(
114580        &mut self,
114581        node: TsKeywordType,
114582        __ast_path: &mut AstKindPath,
114583    ) -> TsKeywordType {
114584        <V as FoldAstPath>::fold_ts_keyword_type(&mut **self, node, __ast_path)
114585    }
114586
114587    #[inline]
114588    fn fold_ts_keyword_type_kind(
114589        &mut self,
114590        node: TsKeywordTypeKind,
114591        __ast_path: &mut AstKindPath,
114592    ) -> TsKeywordTypeKind {
114593        <V as FoldAstPath>::fold_ts_keyword_type_kind(&mut **self, node, __ast_path)
114594    }
114595
114596    #[inline]
114597    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
114598        <V as FoldAstPath>::fold_ts_lit(&mut **self, node, __ast_path)
114599    }
114600
114601    #[inline]
114602    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
114603        <V as FoldAstPath>::fold_ts_lit_type(&mut **self, node, __ast_path)
114604    }
114605
114606    #[inline]
114607    fn fold_ts_mapped_type(
114608        &mut self,
114609        node: TsMappedType,
114610        __ast_path: &mut AstKindPath,
114611    ) -> TsMappedType {
114612        <V as FoldAstPath>::fold_ts_mapped_type(&mut **self, node, __ast_path)
114613    }
114614
114615    #[inline]
114616    fn fold_ts_method_signature(
114617        &mut self,
114618        node: TsMethodSignature,
114619        __ast_path: &mut AstKindPath,
114620    ) -> TsMethodSignature {
114621        <V as FoldAstPath>::fold_ts_method_signature(&mut **self, node, __ast_path)
114622    }
114623
114624    #[inline]
114625    fn fold_ts_module_block(
114626        &mut self,
114627        node: TsModuleBlock,
114628        __ast_path: &mut AstKindPath,
114629    ) -> TsModuleBlock {
114630        <V as FoldAstPath>::fold_ts_module_block(&mut **self, node, __ast_path)
114631    }
114632
114633    #[inline]
114634    fn fold_ts_module_decl(
114635        &mut self,
114636        node: TsModuleDecl,
114637        __ast_path: &mut AstKindPath,
114638    ) -> TsModuleDecl {
114639        <V as FoldAstPath>::fold_ts_module_decl(&mut **self, node, __ast_path)
114640    }
114641
114642    #[inline]
114643    fn fold_ts_module_name(
114644        &mut self,
114645        node: TsModuleName,
114646        __ast_path: &mut AstKindPath,
114647    ) -> TsModuleName {
114648        <V as FoldAstPath>::fold_ts_module_name(&mut **self, node, __ast_path)
114649    }
114650
114651    #[inline]
114652    fn fold_ts_module_ref(
114653        &mut self,
114654        node: TsModuleRef,
114655        __ast_path: &mut AstKindPath,
114656    ) -> TsModuleRef {
114657        <V as FoldAstPath>::fold_ts_module_ref(&mut **self, node, __ast_path)
114658    }
114659
114660    #[inline]
114661    fn fold_ts_namespace_body(
114662        &mut self,
114663        node: TsNamespaceBody,
114664        __ast_path: &mut AstKindPath,
114665    ) -> TsNamespaceBody {
114666        <V as FoldAstPath>::fold_ts_namespace_body(&mut **self, node, __ast_path)
114667    }
114668
114669    #[inline]
114670    fn fold_ts_namespace_decl(
114671        &mut self,
114672        node: TsNamespaceDecl,
114673        __ast_path: &mut AstKindPath,
114674    ) -> TsNamespaceDecl {
114675        <V as FoldAstPath>::fold_ts_namespace_decl(&mut **self, node, __ast_path)
114676    }
114677
114678    #[inline]
114679    fn fold_ts_namespace_export_decl(
114680        &mut self,
114681        node: TsNamespaceExportDecl,
114682        __ast_path: &mut AstKindPath,
114683    ) -> TsNamespaceExportDecl {
114684        <V as FoldAstPath>::fold_ts_namespace_export_decl(&mut **self, node, __ast_path)
114685    }
114686
114687    #[inline]
114688    fn fold_ts_non_null_expr(
114689        &mut self,
114690        node: TsNonNullExpr,
114691        __ast_path: &mut AstKindPath,
114692    ) -> TsNonNullExpr {
114693        <V as FoldAstPath>::fold_ts_non_null_expr(&mut **self, node, __ast_path)
114694    }
114695
114696    #[inline]
114697    fn fold_ts_optional_type(
114698        &mut self,
114699        node: TsOptionalType,
114700        __ast_path: &mut AstKindPath,
114701    ) -> TsOptionalType {
114702        <V as FoldAstPath>::fold_ts_optional_type(&mut **self, node, __ast_path)
114703    }
114704
114705    #[inline]
114706    fn fold_ts_param_prop(
114707        &mut self,
114708        node: TsParamProp,
114709        __ast_path: &mut AstKindPath,
114710    ) -> TsParamProp {
114711        <V as FoldAstPath>::fold_ts_param_prop(&mut **self, node, __ast_path)
114712    }
114713
114714    #[inline]
114715    fn fold_ts_param_prop_param(
114716        &mut self,
114717        node: TsParamPropParam,
114718        __ast_path: &mut AstKindPath,
114719    ) -> TsParamPropParam {
114720        <V as FoldAstPath>::fold_ts_param_prop_param(&mut **self, node, __ast_path)
114721    }
114722
114723    #[inline]
114724    fn fold_ts_parenthesized_type(
114725        &mut self,
114726        node: TsParenthesizedType,
114727        __ast_path: &mut AstKindPath,
114728    ) -> TsParenthesizedType {
114729        <V as FoldAstPath>::fold_ts_parenthesized_type(&mut **self, node, __ast_path)
114730    }
114731
114732    #[inline]
114733    fn fold_ts_property_signature(
114734        &mut self,
114735        node: TsPropertySignature,
114736        __ast_path: &mut AstKindPath,
114737    ) -> TsPropertySignature {
114738        <V as FoldAstPath>::fold_ts_property_signature(&mut **self, node, __ast_path)
114739    }
114740
114741    #[inline]
114742    fn fold_ts_qualified_name(
114743        &mut self,
114744        node: TsQualifiedName,
114745        __ast_path: &mut AstKindPath,
114746    ) -> TsQualifiedName {
114747        <V as FoldAstPath>::fold_ts_qualified_name(&mut **self, node, __ast_path)
114748    }
114749
114750    #[inline]
114751    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
114752        <V as FoldAstPath>::fold_ts_rest_type(&mut **self, node, __ast_path)
114753    }
114754
114755    #[inline]
114756    fn fold_ts_satisfies_expr(
114757        &mut self,
114758        node: TsSatisfiesExpr,
114759        __ast_path: &mut AstKindPath,
114760    ) -> TsSatisfiesExpr {
114761        <V as FoldAstPath>::fold_ts_satisfies_expr(&mut **self, node, __ast_path)
114762    }
114763
114764    #[inline]
114765    fn fold_ts_setter_signature(
114766        &mut self,
114767        node: TsSetterSignature,
114768        __ast_path: &mut AstKindPath,
114769    ) -> TsSetterSignature {
114770        <V as FoldAstPath>::fold_ts_setter_signature(&mut **self, node, __ast_path)
114771    }
114772
114773    #[inline]
114774    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
114775        <V as FoldAstPath>::fold_ts_this_type(&mut **self, node, __ast_path)
114776    }
114777
114778    #[inline]
114779    fn fold_ts_this_type_or_ident(
114780        &mut self,
114781        node: TsThisTypeOrIdent,
114782        __ast_path: &mut AstKindPath,
114783    ) -> TsThisTypeOrIdent {
114784        <V as FoldAstPath>::fold_ts_this_type_or_ident(&mut **self, node, __ast_path)
114785    }
114786
114787    #[inline]
114788    fn fold_ts_tpl_lit_type(
114789        &mut self,
114790        node: TsTplLitType,
114791        __ast_path: &mut AstKindPath,
114792    ) -> TsTplLitType {
114793        <V as FoldAstPath>::fold_ts_tpl_lit_type(&mut **self, node, __ast_path)
114794    }
114795
114796    #[inline]
114797    fn fold_ts_tuple_element(
114798        &mut self,
114799        node: TsTupleElement,
114800        __ast_path: &mut AstKindPath,
114801    ) -> TsTupleElement {
114802        <V as FoldAstPath>::fold_ts_tuple_element(&mut **self, node, __ast_path)
114803    }
114804
114805    #[inline]
114806    fn fold_ts_tuple_elements(
114807        &mut self,
114808        node: Vec<TsTupleElement>,
114809        __ast_path: &mut AstKindPath,
114810    ) -> Vec<TsTupleElement> {
114811        <V as FoldAstPath>::fold_ts_tuple_elements(&mut **self, node, __ast_path)
114812    }
114813
114814    #[inline]
114815    fn fold_ts_tuple_type(
114816        &mut self,
114817        node: TsTupleType,
114818        __ast_path: &mut AstKindPath,
114819    ) -> TsTupleType {
114820        <V as FoldAstPath>::fold_ts_tuple_type(&mut **self, node, __ast_path)
114821    }
114822
114823    #[inline]
114824    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
114825        <V as FoldAstPath>::fold_ts_type(&mut **self, node, __ast_path)
114826    }
114827
114828    #[inline]
114829    fn fold_ts_type_alias_decl(
114830        &mut self,
114831        node: TsTypeAliasDecl,
114832        __ast_path: &mut AstKindPath,
114833    ) -> TsTypeAliasDecl {
114834        <V as FoldAstPath>::fold_ts_type_alias_decl(&mut **self, node, __ast_path)
114835    }
114836
114837    #[inline]
114838    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
114839        <V as FoldAstPath>::fold_ts_type_ann(&mut **self, node, __ast_path)
114840    }
114841
114842    #[inline]
114843    fn fold_ts_type_assertion(
114844        &mut self,
114845        node: TsTypeAssertion,
114846        __ast_path: &mut AstKindPath,
114847    ) -> TsTypeAssertion {
114848        <V as FoldAstPath>::fold_ts_type_assertion(&mut **self, node, __ast_path)
114849    }
114850
114851    #[inline]
114852    fn fold_ts_type_element(
114853        &mut self,
114854        node: TsTypeElement,
114855        __ast_path: &mut AstKindPath,
114856    ) -> TsTypeElement {
114857        <V as FoldAstPath>::fold_ts_type_element(&mut **self, node, __ast_path)
114858    }
114859
114860    #[inline]
114861    fn fold_ts_type_elements(
114862        &mut self,
114863        node: Vec<TsTypeElement>,
114864        __ast_path: &mut AstKindPath,
114865    ) -> Vec<TsTypeElement> {
114866        <V as FoldAstPath>::fold_ts_type_elements(&mut **self, node, __ast_path)
114867    }
114868
114869    #[inline]
114870    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
114871        <V as FoldAstPath>::fold_ts_type_lit(&mut **self, node, __ast_path)
114872    }
114873
114874    #[inline]
114875    fn fold_ts_type_operator(
114876        &mut self,
114877        node: TsTypeOperator,
114878        __ast_path: &mut AstKindPath,
114879    ) -> TsTypeOperator {
114880        <V as FoldAstPath>::fold_ts_type_operator(&mut **self, node, __ast_path)
114881    }
114882
114883    #[inline]
114884    fn fold_ts_type_operator_op(
114885        &mut self,
114886        node: TsTypeOperatorOp,
114887        __ast_path: &mut AstKindPath,
114888    ) -> TsTypeOperatorOp {
114889        <V as FoldAstPath>::fold_ts_type_operator_op(&mut **self, node, __ast_path)
114890    }
114891
114892    #[inline]
114893    fn fold_ts_type_param(
114894        &mut self,
114895        node: TsTypeParam,
114896        __ast_path: &mut AstKindPath,
114897    ) -> TsTypeParam {
114898        <V as FoldAstPath>::fold_ts_type_param(&mut **self, node, __ast_path)
114899    }
114900
114901    #[inline]
114902    fn fold_ts_type_param_decl(
114903        &mut self,
114904        node: TsTypeParamDecl,
114905        __ast_path: &mut AstKindPath,
114906    ) -> TsTypeParamDecl {
114907        <V as FoldAstPath>::fold_ts_type_param_decl(&mut **self, node, __ast_path)
114908    }
114909
114910    #[inline]
114911    fn fold_ts_type_param_instantiation(
114912        &mut self,
114913        node: TsTypeParamInstantiation,
114914        __ast_path: &mut AstKindPath,
114915    ) -> TsTypeParamInstantiation {
114916        <V as FoldAstPath>::fold_ts_type_param_instantiation(&mut **self, node, __ast_path)
114917    }
114918
114919    #[inline]
114920    fn fold_ts_type_params(
114921        &mut self,
114922        node: Vec<TsTypeParam>,
114923        __ast_path: &mut AstKindPath,
114924    ) -> Vec<TsTypeParam> {
114925        <V as FoldAstPath>::fold_ts_type_params(&mut **self, node, __ast_path)
114926    }
114927
114928    #[inline]
114929    fn fold_ts_type_predicate(
114930        &mut self,
114931        node: TsTypePredicate,
114932        __ast_path: &mut AstKindPath,
114933    ) -> TsTypePredicate {
114934        <V as FoldAstPath>::fold_ts_type_predicate(&mut **self, node, __ast_path)
114935    }
114936
114937    #[inline]
114938    fn fold_ts_type_query(
114939        &mut self,
114940        node: TsTypeQuery,
114941        __ast_path: &mut AstKindPath,
114942    ) -> TsTypeQuery {
114943        <V as FoldAstPath>::fold_ts_type_query(&mut **self, node, __ast_path)
114944    }
114945
114946    #[inline]
114947    fn fold_ts_type_query_expr(
114948        &mut self,
114949        node: TsTypeQueryExpr,
114950        __ast_path: &mut AstKindPath,
114951    ) -> TsTypeQueryExpr {
114952        <V as FoldAstPath>::fold_ts_type_query_expr(&mut **self, node, __ast_path)
114953    }
114954
114955    #[inline]
114956    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
114957        <V as FoldAstPath>::fold_ts_type_ref(&mut **self, node, __ast_path)
114958    }
114959
114960    #[inline]
114961    fn fold_ts_types(
114962        &mut self,
114963        node: Vec<Box<TsType>>,
114964        __ast_path: &mut AstKindPath,
114965    ) -> Vec<Box<TsType>> {
114966        <V as FoldAstPath>::fold_ts_types(&mut **self, node, __ast_path)
114967    }
114968
114969    #[inline]
114970    fn fold_ts_union_or_intersection_type(
114971        &mut self,
114972        node: TsUnionOrIntersectionType,
114973        __ast_path: &mut AstKindPath,
114974    ) -> TsUnionOrIntersectionType {
114975        <V as FoldAstPath>::fold_ts_union_or_intersection_type(&mut **self, node, __ast_path)
114976    }
114977
114978    #[inline]
114979    fn fold_ts_union_type(
114980        &mut self,
114981        node: TsUnionType,
114982        __ast_path: &mut AstKindPath,
114983    ) -> TsUnionType {
114984        <V as FoldAstPath>::fold_ts_union_type(&mut **self, node, __ast_path)
114985    }
114986
114987    #[inline]
114988    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
114989        <V as FoldAstPath>::fold_unary_expr(&mut **self, node, __ast_path)
114990    }
114991
114992    #[inline]
114993    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
114994        <V as FoldAstPath>::fold_unary_op(&mut **self, node, __ast_path)
114995    }
114996
114997    #[inline]
114998    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
114999        <V as FoldAstPath>::fold_update_expr(&mut **self, node, __ast_path)
115000    }
115001
115002    #[inline]
115003    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
115004        <V as FoldAstPath>::fold_update_op(&mut **self, node, __ast_path)
115005    }
115006
115007    #[inline]
115008    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
115009        <V as FoldAstPath>::fold_using_decl(&mut **self, node, __ast_path)
115010    }
115011
115012    #[inline]
115013    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
115014        <V as FoldAstPath>::fold_var_decl(&mut **self, node, __ast_path)
115015    }
115016
115017    #[inline]
115018    fn fold_var_decl_kind(
115019        &mut self,
115020        node: VarDeclKind,
115021        __ast_path: &mut AstKindPath,
115022    ) -> VarDeclKind {
115023        <V as FoldAstPath>::fold_var_decl_kind(&mut **self, node, __ast_path)
115024    }
115025
115026    #[inline]
115027    fn fold_var_decl_or_expr(
115028        &mut self,
115029        node: VarDeclOrExpr,
115030        __ast_path: &mut AstKindPath,
115031    ) -> VarDeclOrExpr {
115032        <V as FoldAstPath>::fold_var_decl_or_expr(&mut **self, node, __ast_path)
115033    }
115034
115035    #[inline]
115036    fn fold_var_declarator(
115037        &mut self,
115038        node: VarDeclarator,
115039        __ast_path: &mut AstKindPath,
115040    ) -> VarDeclarator {
115041        <V as FoldAstPath>::fold_var_declarator(&mut **self, node, __ast_path)
115042    }
115043
115044    #[inline]
115045    fn fold_var_declarators(
115046        &mut self,
115047        node: Vec<VarDeclarator>,
115048        __ast_path: &mut AstKindPath,
115049    ) -> Vec<VarDeclarator> {
115050        <V as FoldAstPath>::fold_var_declarators(&mut **self, node, __ast_path)
115051    }
115052
115053    #[inline]
115054    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
115055        <V as FoldAstPath>::fold_while_stmt(&mut **self, node, __ast_path)
115056    }
115057
115058    #[inline]
115059    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
115060        <V as FoldAstPath>::fold_with_stmt(&mut **self, node, __ast_path)
115061    }
115062
115063    #[inline]
115064    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
115065        <V as FoldAstPath>::fold_yield_expr(&mut **self, node, __ast_path)
115066    }
115067}
115068#[cfg(any(docsrs, feature = "path"))]
115069#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
115070impl<A, B> FoldAstPath for ::swc_visit::Either<A, B>
115071where
115072    A: FoldAstPath,
115073    B: FoldAstPath,
115074{
115075    #[inline]
115076    fn fold_accessibility(
115077        &mut self,
115078        node: Accessibility,
115079        __ast_path: &mut AstKindPath,
115080    ) -> Accessibility {
115081        match self {
115082            swc_visit::Either::Left(visitor) => {
115083                FoldAstPath::fold_accessibility(visitor, node, __ast_path)
115084            }
115085            swc_visit::Either::Right(visitor) => {
115086                FoldAstPath::fold_accessibility(visitor, node, __ast_path)
115087            }
115088        }
115089    }
115090
115091    #[inline]
115092    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
115093        match self {
115094            swc_visit::Either::Left(visitor) => {
115095                FoldAstPath::fold_array_lit(visitor, node, __ast_path)
115096            }
115097            swc_visit::Either::Right(visitor) => {
115098                FoldAstPath::fold_array_lit(visitor, node, __ast_path)
115099            }
115100        }
115101    }
115102
115103    #[inline]
115104    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
115105        match self {
115106            swc_visit::Either::Left(visitor) => {
115107                FoldAstPath::fold_array_pat(visitor, node, __ast_path)
115108            }
115109            swc_visit::Either::Right(visitor) => {
115110                FoldAstPath::fold_array_pat(visitor, node, __ast_path)
115111            }
115112        }
115113    }
115114
115115    #[inline]
115116    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
115117        match self {
115118            swc_visit::Either::Left(visitor) => {
115119                FoldAstPath::fold_arrow_expr(visitor, node, __ast_path)
115120            }
115121            swc_visit::Either::Right(visitor) => {
115122                FoldAstPath::fold_arrow_expr(visitor, node, __ast_path)
115123            }
115124        }
115125    }
115126
115127    #[inline]
115128    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
115129        match self {
115130            swc_visit::Either::Left(visitor) => {
115131                FoldAstPath::fold_assign_expr(visitor, node, __ast_path)
115132            }
115133            swc_visit::Either::Right(visitor) => {
115134                FoldAstPath::fold_assign_expr(visitor, node, __ast_path)
115135            }
115136        }
115137    }
115138
115139    #[inline]
115140    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
115141        match self {
115142            swc_visit::Either::Left(visitor) => {
115143                FoldAstPath::fold_assign_op(visitor, node, __ast_path)
115144            }
115145            swc_visit::Either::Right(visitor) => {
115146                FoldAstPath::fold_assign_op(visitor, node, __ast_path)
115147            }
115148        }
115149    }
115150
115151    #[inline]
115152    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
115153        match self {
115154            swc_visit::Either::Left(visitor) => {
115155                FoldAstPath::fold_assign_pat(visitor, node, __ast_path)
115156            }
115157            swc_visit::Either::Right(visitor) => {
115158                FoldAstPath::fold_assign_pat(visitor, node, __ast_path)
115159            }
115160        }
115161    }
115162
115163    #[inline]
115164    fn fold_assign_pat_prop(
115165        &mut self,
115166        node: AssignPatProp,
115167        __ast_path: &mut AstKindPath,
115168    ) -> AssignPatProp {
115169        match self {
115170            swc_visit::Either::Left(visitor) => {
115171                FoldAstPath::fold_assign_pat_prop(visitor, node, __ast_path)
115172            }
115173            swc_visit::Either::Right(visitor) => {
115174                FoldAstPath::fold_assign_pat_prop(visitor, node, __ast_path)
115175            }
115176        }
115177    }
115178
115179    #[inline]
115180    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
115181        match self {
115182            swc_visit::Either::Left(visitor) => {
115183                FoldAstPath::fold_assign_prop(visitor, node, __ast_path)
115184            }
115185            swc_visit::Either::Right(visitor) => {
115186                FoldAstPath::fold_assign_prop(visitor, node, __ast_path)
115187            }
115188        }
115189    }
115190
115191    #[inline]
115192    fn fold_assign_target(
115193        &mut self,
115194        node: AssignTarget,
115195        __ast_path: &mut AstKindPath,
115196    ) -> AssignTarget {
115197        match self {
115198            swc_visit::Either::Left(visitor) => {
115199                FoldAstPath::fold_assign_target(visitor, node, __ast_path)
115200            }
115201            swc_visit::Either::Right(visitor) => {
115202                FoldAstPath::fold_assign_target(visitor, node, __ast_path)
115203            }
115204        }
115205    }
115206
115207    #[inline]
115208    fn fold_assign_target_pat(
115209        &mut self,
115210        node: AssignTargetPat,
115211        __ast_path: &mut AstKindPath,
115212    ) -> AssignTargetPat {
115213        match self {
115214            swc_visit::Either::Left(visitor) => {
115215                FoldAstPath::fold_assign_target_pat(visitor, node, __ast_path)
115216            }
115217            swc_visit::Either::Right(visitor) => {
115218                FoldAstPath::fold_assign_target_pat(visitor, node, __ast_path)
115219            }
115220        }
115221    }
115222
115223    #[inline]
115224    fn fold_atom(
115225        &mut self,
115226        node: swc_atoms::Atom,
115227        __ast_path: &mut AstKindPath,
115228    ) -> swc_atoms::Atom {
115229        match self {
115230            swc_visit::Either::Left(visitor) => FoldAstPath::fold_atom(visitor, node, __ast_path),
115231            swc_visit::Either::Right(visitor) => FoldAstPath::fold_atom(visitor, node, __ast_path),
115232        }
115233    }
115234
115235    #[inline]
115236    fn fold_auto_accessor(
115237        &mut self,
115238        node: AutoAccessor,
115239        __ast_path: &mut AstKindPath,
115240    ) -> AutoAccessor {
115241        match self {
115242            swc_visit::Either::Left(visitor) => {
115243                FoldAstPath::fold_auto_accessor(visitor, node, __ast_path)
115244            }
115245            swc_visit::Either::Right(visitor) => {
115246                FoldAstPath::fold_auto_accessor(visitor, node, __ast_path)
115247            }
115248        }
115249    }
115250
115251    #[inline]
115252    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
115253        match self {
115254            swc_visit::Either::Left(visitor) => {
115255                FoldAstPath::fold_await_expr(visitor, node, __ast_path)
115256            }
115257            swc_visit::Either::Right(visitor) => {
115258                FoldAstPath::fold_await_expr(visitor, node, __ast_path)
115259            }
115260        }
115261    }
115262
115263    #[inline]
115264    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
115265        match self {
115266            swc_visit::Either::Left(visitor) => {
115267                FoldAstPath::fold_big_int(visitor, node, __ast_path)
115268            }
115269            swc_visit::Either::Right(visitor) => {
115270                FoldAstPath::fold_big_int(visitor, node, __ast_path)
115271            }
115272        }
115273    }
115274
115275    #[inline]
115276    fn fold_big_int_value(
115277        &mut self,
115278        node: BigIntValue,
115279        __ast_path: &mut AstKindPath,
115280    ) -> BigIntValue {
115281        match self {
115282            swc_visit::Either::Left(visitor) => {
115283                FoldAstPath::fold_big_int_value(visitor, node, __ast_path)
115284            }
115285            swc_visit::Either::Right(visitor) => {
115286                FoldAstPath::fold_big_int_value(visitor, node, __ast_path)
115287            }
115288        }
115289    }
115290
115291    #[inline]
115292    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
115293        match self {
115294            swc_visit::Either::Left(visitor) => {
115295                FoldAstPath::fold_bin_expr(visitor, node, __ast_path)
115296            }
115297            swc_visit::Either::Right(visitor) => {
115298                FoldAstPath::fold_bin_expr(visitor, node, __ast_path)
115299            }
115300        }
115301    }
115302
115303    #[inline]
115304    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
115305        match self {
115306            swc_visit::Either::Left(visitor) => {
115307                FoldAstPath::fold_binary_op(visitor, node, __ast_path)
115308            }
115309            swc_visit::Either::Right(visitor) => {
115310                FoldAstPath::fold_binary_op(visitor, node, __ast_path)
115311            }
115312        }
115313    }
115314
115315    #[inline]
115316    fn fold_binding_ident(
115317        &mut self,
115318        node: BindingIdent,
115319        __ast_path: &mut AstKindPath,
115320    ) -> BindingIdent {
115321        match self {
115322            swc_visit::Either::Left(visitor) => {
115323                FoldAstPath::fold_binding_ident(visitor, node, __ast_path)
115324            }
115325            swc_visit::Either::Right(visitor) => {
115326                FoldAstPath::fold_binding_ident(visitor, node, __ast_path)
115327            }
115328        }
115329    }
115330
115331    #[inline]
115332    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
115333        match self {
115334            swc_visit::Either::Left(visitor) => {
115335                FoldAstPath::fold_block_stmt(visitor, node, __ast_path)
115336            }
115337            swc_visit::Either::Right(visitor) => {
115338                FoldAstPath::fold_block_stmt(visitor, node, __ast_path)
115339            }
115340        }
115341    }
115342
115343    #[inline]
115344    fn fold_block_stmt_or_expr(
115345        &mut self,
115346        node: BlockStmtOrExpr,
115347        __ast_path: &mut AstKindPath,
115348    ) -> BlockStmtOrExpr {
115349        match self {
115350            swc_visit::Either::Left(visitor) => {
115351                FoldAstPath::fold_block_stmt_or_expr(visitor, node, __ast_path)
115352            }
115353            swc_visit::Either::Right(visitor) => {
115354                FoldAstPath::fold_block_stmt_or_expr(visitor, node, __ast_path)
115355            }
115356        }
115357    }
115358
115359    #[inline]
115360    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
115361        match self {
115362            swc_visit::Either::Left(visitor) => FoldAstPath::fold_bool(visitor, node, __ast_path),
115363            swc_visit::Either::Right(visitor) => FoldAstPath::fold_bool(visitor, node, __ast_path),
115364        }
115365    }
115366
115367    #[inline]
115368    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
115369        match self {
115370            swc_visit::Either::Left(visitor) => {
115371                FoldAstPath::fold_break_stmt(visitor, node, __ast_path)
115372            }
115373            swc_visit::Either::Right(visitor) => {
115374                FoldAstPath::fold_break_stmt(visitor, node, __ast_path)
115375            }
115376        }
115377    }
115378
115379    #[inline]
115380    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
115381        match self {
115382            swc_visit::Either::Left(visitor) => {
115383                FoldAstPath::fold_call_expr(visitor, node, __ast_path)
115384            }
115385            swc_visit::Either::Right(visitor) => {
115386                FoldAstPath::fold_call_expr(visitor, node, __ast_path)
115387            }
115388        }
115389    }
115390
115391    #[inline]
115392    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
115393        match self {
115394            swc_visit::Either::Left(visitor) => FoldAstPath::fold_callee(visitor, node, __ast_path),
115395            swc_visit::Either::Right(visitor) => {
115396                FoldAstPath::fold_callee(visitor, node, __ast_path)
115397            }
115398        }
115399    }
115400
115401    #[inline]
115402    fn fold_catch_clause(
115403        &mut self,
115404        node: CatchClause,
115405        __ast_path: &mut AstKindPath,
115406    ) -> CatchClause {
115407        match self {
115408            swc_visit::Either::Left(visitor) => {
115409                FoldAstPath::fold_catch_clause(visitor, node, __ast_path)
115410            }
115411            swc_visit::Either::Right(visitor) => {
115412                FoldAstPath::fold_catch_clause(visitor, node, __ast_path)
115413            }
115414        }
115415    }
115416
115417    #[inline]
115418    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
115419        match self {
115420            swc_visit::Either::Left(visitor) => FoldAstPath::fold_class(visitor, node, __ast_path),
115421            swc_visit::Either::Right(visitor) => FoldAstPath::fold_class(visitor, node, __ast_path),
115422        }
115423    }
115424
115425    #[inline]
115426    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
115427        match self {
115428            swc_visit::Either::Left(visitor) => {
115429                FoldAstPath::fold_class_decl(visitor, node, __ast_path)
115430            }
115431            swc_visit::Either::Right(visitor) => {
115432                FoldAstPath::fold_class_decl(visitor, node, __ast_path)
115433            }
115434        }
115435    }
115436
115437    #[inline]
115438    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
115439        match self {
115440            swc_visit::Either::Left(visitor) => {
115441                FoldAstPath::fold_class_expr(visitor, node, __ast_path)
115442            }
115443            swc_visit::Either::Right(visitor) => {
115444                FoldAstPath::fold_class_expr(visitor, node, __ast_path)
115445            }
115446        }
115447    }
115448
115449    #[inline]
115450    fn fold_class_member(
115451        &mut self,
115452        node: ClassMember,
115453        __ast_path: &mut AstKindPath,
115454    ) -> ClassMember {
115455        match self {
115456            swc_visit::Either::Left(visitor) => {
115457                FoldAstPath::fold_class_member(visitor, node, __ast_path)
115458            }
115459            swc_visit::Either::Right(visitor) => {
115460                FoldAstPath::fold_class_member(visitor, node, __ast_path)
115461            }
115462        }
115463    }
115464
115465    #[inline]
115466    fn fold_class_members(
115467        &mut self,
115468        node: Vec<ClassMember>,
115469        __ast_path: &mut AstKindPath,
115470    ) -> Vec<ClassMember> {
115471        match self {
115472            swc_visit::Either::Left(visitor) => {
115473                FoldAstPath::fold_class_members(visitor, node, __ast_path)
115474            }
115475            swc_visit::Either::Right(visitor) => {
115476                FoldAstPath::fold_class_members(visitor, node, __ast_path)
115477            }
115478        }
115479    }
115480
115481    #[inline]
115482    fn fold_class_method(
115483        &mut self,
115484        node: ClassMethod,
115485        __ast_path: &mut AstKindPath,
115486    ) -> ClassMethod {
115487        match self {
115488            swc_visit::Either::Left(visitor) => {
115489                FoldAstPath::fold_class_method(visitor, node, __ast_path)
115490            }
115491            swc_visit::Either::Right(visitor) => {
115492                FoldAstPath::fold_class_method(visitor, node, __ast_path)
115493            }
115494        }
115495    }
115496
115497    #[inline]
115498    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
115499        match self {
115500            swc_visit::Either::Left(visitor) => {
115501                FoldAstPath::fold_class_prop(visitor, node, __ast_path)
115502            }
115503            swc_visit::Either::Right(visitor) => {
115504                FoldAstPath::fold_class_prop(visitor, node, __ast_path)
115505            }
115506        }
115507    }
115508
115509    #[inline]
115510    fn fold_computed_prop_name(
115511        &mut self,
115512        node: ComputedPropName,
115513        __ast_path: &mut AstKindPath,
115514    ) -> ComputedPropName {
115515        match self {
115516            swc_visit::Either::Left(visitor) => {
115517                FoldAstPath::fold_computed_prop_name(visitor, node, __ast_path)
115518            }
115519            swc_visit::Either::Right(visitor) => {
115520                FoldAstPath::fold_computed_prop_name(visitor, node, __ast_path)
115521            }
115522        }
115523    }
115524
115525    #[inline]
115526    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
115527        match self {
115528            swc_visit::Either::Left(visitor) => {
115529                FoldAstPath::fold_cond_expr(visitor, node, __ast_path)
115530            }
115531            swc_visit::Either::Right(visitor) => {
115532                FoldAstPath::fold_cond_expr(visitor, node, __ast_path)
115533            }
115534        }
115535    }
115536
115537    #[inline]
115538    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
115539        match self {
115540            swc_visit::Either::Left(visitor) => {
115541                FoldAstPath::fold_constructor(visitor, node, __ast_path)
115542            }
115543            swc_visit::Either::Right(visitor) => {
115544                FoldAstPath::fold_constructor(visitor, node, __ast_path)
115545            }
115546        }
115547    }
115548
115549    #[inline]
115550    fn fold_continue_stmt(
115551        &mut self,
115552        node: ContinueStmt,
115553        __ast_path: &mut AstKindPath,
115554    ) -> ContinueStmt {
115555        match self {
115556            swc_visit::Either::Left(visitor) => {
115557                FoldAstPath::fold_continue_stmt(visitor, node, __ast_path)
115558            }
115559            swc_visit::Either::Right(visitor) => {
115560                FoldAstPath::fold_continue_stmt(visitor, node, __ast_path)
115561            }
115562        }
115563    }
115564
115565    #[inline]
115566    fn fold_debugger_stmt(
115567        &mut self,
115568        node: DebuggerStmt,
115569        __ast_path: &mut AstKindPath,
115570    ) -> DebuggerStmt {
115571        match self {
115572            swc_visit::Either::Left(visitor) => {
115573                FoldAstPath::fold_debugger_stmt(visitor, node, __ast_path)
115574            }
115575            swc_visit::Either::Right(visitor) => {
115576                FoldAstPath::fold_debugger_stmt(visitor, node, __ast_path)
115577            }
115578        }
115579    }
115580
115581    #[inline]
115582    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
115583        match self {
115584            swc_visit::Either::Left(visitor) => FoldAstPath::fold_decl(visitor, node, __ast_path),
115585            swc_visit::Either::Right(visitor) => FoldAstPath::fold_decl(visitor, node, __ast_path),
115586        }
115587    }
115588
115589    #[inline]
115590    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
115591        match self {
115592            swc_visit::Either::Left(visitor) => {
115593                FoldAstPath::fold_decorator(visitor, node, __ast_path)
115594            }
115595            swc_visit::Either::Right(visitor) => {
115596                FoldAstPath::fold_decorator(visitor, node, __ast_path)
115597            }
115598        }
115599    }
115600
115601    #[inline]
115602    fn fold_decorators(
115603        &mut self,
115604        node: Vec<Decorator>,
115605        __ast_path: &mut AstKindPath,
115606    ) -> Vec<Decorator> {
115607        match self {
115608            swc_visit::Either::Left(visitor) => {
115609                FoldAstPath::fold_decorators(visitor, node, __ast_path)
115610            }
115611            swc_visit::Either::Right(visitor) => {
115612                FoldAstPath::fold_decorators(visitor, node, __ast_path)
115613            }
115614        }
115615    }
115616
115617    #[inline]
115618    fn fold_default_decl(
115619        &mut self,
115620        node: DefaultDecl,
115621        __ast_path: &mut AstKindPath,
115622    ) -> DefaultDecl {
115623        match self {
115624            swc_visit::Either::Left(visitor) => {
115625                FoldAstPath::fold_default_decl(visitor, node, __ast_path)
115626            }
115627            swc_visit::Either::Right(visitor) => {
115628                FoldAstPath::fold_default_decl(visitor, node, __ast_path)
115629            }
115630        }
115631    }
115632
115633    #[inline]
115634    fn fold_do_while_stmt(
115635        &mut self,
115636        node: DoWhileStmt,
115637        __ast_path: &mut AstKindPath,
115638    ) -> DoWhileStmt {
115639        match self {
115640            swc_visit::Either::Left(visitor) => {
115641                FoldAstPath::fold_do_while_stmt(visitor, node, __ast_path)
115642            }
115643            swc_visit::Either::Right(visitor) => {
115644                FoldAstPath::fold_do_while_stmt(visitor, node, __ast_path)
115645            }
115646        }
115647    }
115648
115649    #[inline]
115650    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
115651        match self {
115652            swc_visit::Either::Left(visitor) => {
115653                FoldAstPath::fold_empty_stmt(visitor, node, __ast_path)
115654            }
115655            swc_visit::Either::Right(visitor) => {
115656                FoldAstPath::fold_empty_stmt(visitor, node, __ast_path)
115657            }
115658        }
115659    }
115660
115661    #[inline]
115662    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
115663        match self {
115664            swc_visit::Either::Left(visitor) => {
115665                FoldAstPath::fold_export_all(visitor, node, __ast_path)
115666            }
115667            swc_visit::Either::Right(visitor) => {
115668                FoldAstPath::fold_export_all(visitor, node, __ast_path)
115669            }
115670        }
115671    }
115672
115673    #[inline]
115674    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
115675        match self {
115676            swc_visit::Either::Left(visitor) => {
115677                FoldAstPath::fold_export_decl(visitor, node, __ast_path)
115678            }
115679            swc_visit::Either::Right(visitor) => {
115680                FoldAstPath::fold_export_decl(visitor, node, __ast_path)
115681            }
115682        }
115683    }
115684
115685    #[inline]
115686    fn fold_export_default_decl(
115687        &mut self,
115688        node: ExportDefaultDecl,
115689        __ast_path: &mut AstKindPath,
115690    ) -> ExportDefaultDecl {
115691        match self {
115692            swc_visit::Either::Left(visitor) => {
115693                FoldAstPath::fold_export_default_decl(visitor, node, __ast_path)
115694            }
115695            swc_visit::Either::Right(visitor) => {
115696                FoldAstPath::fold_export_default_decl(visitor, node, __ast_path)
115697            }
115698        }
115699    }
115700
115701    #[inline]
115702    fn fold_export_default_expr(
115703        &mut self,
115704        node: ExportDefaultExpr,
115705        __ast_path: &mut AstKindPath,
115706    ) -> ExportDefaultExpr {
115707        match self {
115708            swc_visit::Either::Left(visitor) => {
115709                FoldAstPath::fold_export_default_expr(visitor, node, __ast_path)
115710            }
115711            swc_visit::Either::Right(visitor) => {
115712                FoldAstPath::fold_export_default_expr(visitor, node, __ast_path)
115713            }
115714        }
115715    }
115716
115717    #[inline]
115718    fn fold_export_default_specifier(
115719        &mut self,
115720        node: ExportDefaultSpecifier,
115721        __ast_path: &mut AstKindPath,
115722    ) -> ExportDefaultSpecifier {
115723        match self {
115724            swc_visit::Either::Left(visitor) => {
115725                FoldAstPath::fold_export_default_specifier(visitor, node, __ast_path)
115726            }
115727            swc_visit::Either::Right(visitor) => {
115728                FoldAstPath::fold_export_default_specifier(visitor, node, __ast_path)
115729            }
115730        }
115731    }
115732
115733    #[inline]
115734    fn fold_export_named_specifier(
115735        &mut self,
115736        node: ExportNamedSpecifier,
115737        __ast_path: &mut AstKindPath,
115738    ) -> ExportNamedSpecifier {
115739        match self {
115740            swc_visit::Either::Left(visitor) => {
115741                FoldAstPath::fold_export_named_specifier(visitor, node, __ast_path)
115742            }
115743            swc_visit::Either::Right(visitor) => {
115744                FoldAstPath::fold_export_named_specifier(visitor, node, __ast_path)
115745            }
115746        }
115747    }
115748
115749    #[inline]
115750    fn fold_export_namespace_specifier(
115751        &mut self,
115752        node: ExportNamespaceSpecifier,
115753        __ast_path: &mut AstKindPath,
115754    ) -> ExportNamespaceSpecifier {
115755        match self {
115756            swc_visit::Either::Left(visitor) => {
115757                FoldAstPath::fold_export_namespace_specifier(visitor, node, __ast_path)
115758            }
115759            swc_visit::Either::Right(visitor) => {
115760                FoldAstPath::fold_export_namespace_specifier(visitor, node, __ast_path)
115761            }
115762        }
115763    }
115764
115765    #[inline]
115766    fn fold_export_specifier(
115767        &mut self,
115768        node: ExportSpecifier,
115769        __ast_path: &mut AstKindPath,
115770    ) -> ExportSpecifier {
115771        match self {
115772            swc_visit::Either::Left(visitor) => {
115773                FoldAstPath::fold_export_specifier(visitor, node, __ast_path)
115774            }
115775            swc_visit::Either::Right(visitor) => {
115776                FoldAstPath::fold_export_specifier(visitor, node, __ast_path)
115777            }
115778        }
115779    }
115780
115781    #[inline]
115782    fn fold_export_specifiers(
115783        &mut self,
115784        node: Vec<ExportSpecifier>,
115785        __ast_path: &mut AstKindPath,
115786    ) -> Vec<ExportSpecifier> {
115787        match self {
115788            swc_visit::Either::Left(visitor) => {
115789                FoldAstPath::fold_export_specifiers(visitor, node, __ast_path)
115790            }
115791            swc_visit::Either::Right(visitor) => {
115792                FoldAstPath::fold_export_specifiers(visitor, node, __ast_path)
115793            }
115794        }
115795    }
115796
115797    #[inline]
115798    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
115799        match self {
115800            swc_visit::Either::Left(visitor) => FoldAstPath::fold_expr(visitor, node, __ast_path),
115801            swc_visit::Either::Right(visitor) => FoldAstPath::fold_expr(visitor, node, __ast_path),
115802        }
115803    }
115804
115805    #[inline]
115806    fn fold_expr_or_spread(
115807        &mut self,
115808        node: ExprOrSpread,
115809        __ast_path: &mut AstKindPath,
115810    ) -> ExprOrSpread {
115811        match self {
115812            swc_visit::Either::Left(visitor) => {
115813                FoldAstPath::fold_expr_or_spread(visitor, node, __ast_path)
115814            }
115815            swc_visit::Either::Right(visitor) => {
115816                FoldAstPath::fold_expr_or_spread(visitor, node, __ast_path)
115817            }
115818        }
115819    }
115820
115821    #[inline]
115822    fn fold_expr_or_spreads(
115823        &mut self,
115824        node: Vec<ExprOrSpread>,
115825        __ast_path: &mut AstKindPath,
115826    ) -> Vec<ExprOrSpread> {
115827        match self {
115828            swc_visit::Either::Left(visitor) => {
115829                FoldAstPath::fold_expr_or_spreads(visitor, node, __ast_path)
115830            }
115831            swc_visit::Either::Right(visitor) => {
115832                FoldAstPath::fold_expr_or_spreads(visitor, node, __ast_path)
115833            }
115834        }
115835    }
115836
115837    #[inline]
115838    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
115839        match self {
115840            swc_visit::Either::Left(visitor) => {
115841                FoldAstPath::fold_expr_stmt(visitor, node, __ast_path)
115842            }
115843            swc_visit::Either::Right(visitor) => {
115844                FoldAstPath::fold_expr_stmt(visitor, node, __ast_path)
115845            }
115846        }
115847    }
115848
115849    #[inline]
115850    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
115851        match self {
115852            swc_visit::Either::Left(visitor) => FoldAstPath::fold_exprs(visitor, node, __ast_path),
115853            swc_visit::Either::Right(visitor) => FoldAstPath::fold_exprs(visitor, node, __ast_path),
115854        }
115855    }
115856
115857    #[inline]
115858    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
115859        match self {
115860            swc_visit::Either::Left(visitor) => {
115861                FoldAstPath::fold_fn_decl(visitor, node, __ast_path)
115862            }
115863            swc_visit::Either::Right(visitor) => {
115864                FoldAstPath::fold_fn_decl(visitor, node, __ast_path)
115865            }
115866        }
115867    }
115868
115869    #[inline]
115870    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
115871        match self {
115872            swc_visit::Either::Left(visitor) => {
115873                FoldAstPath::fold_fn_expr(visitor, node, __ast_path)
115874            }
115875            swc_visit::Either::Right(visitor) => {
115876                FoldAstPath::fold_fn_expr(visitor, node, __ast_path)
115877            }
115878        }
115879    }
115880
115881    #[inline]
115882    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
115883        match self {
115884            swc_visit::Either::Left(visitor) => {
115885                FoldAstPath::fold_for_head(visitor, node, __ast_path)
115886            }
115887            swc_visit::Either::Right(visitor) => {
115888                FoldAstPath::fold_for_head(visitor, node, __ast_path)
115889            }
115890        }
115891    }
115892
115893    #[inline]
115894    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
115895        match self {
115896            swc_visit::Either::Left(visitor) => {
115897                FoldAstPath::fold_for_in_stmt(visitor, node, __ast_path)
115898            }
115899            swc_visit::Either::Right(visitor) => {
115900                FoldAstPath::fold_for_in_stmt(visitor, node, __ast_path)
115901            }
115902        }
115903    }
115904
115905    #[inline]
115906    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
115907        match self {
115908            swc_visit::Either::Left(visitor) => {
115909                FoldAstPath::fold_for_of_stmt(visitor, node, __ast_path)
115910            }
115911            swc_visit::Either::Right(visitor) => {
115912                FoldAstPath::fold_for_of_stmt(visitor, node, __ast_path)
115913            }
115914        }
115915    }
115916
115917    #[inline]
115918    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
115919        match self {
115920            swc_visit::Either::Left(visitor) => {
115921                FoldAstPath::fold_for_stmt(visitor, node, __ast_path)
115922            }
115923            swc_visit::Either::Right(visitor) => {
115924                FoldAstPath::fold_for_stmt(visitor, node, __ast_path)
115925            }
115926        }
115927    }
115928
115929    #[inline]
115930    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
115931        match self {
115932            swc_visit::Either::Left(visitor) => {
115933                FoldAstPath::fold_function(visitor, node, __ast_path)
115934            }
115935            swc_visit::Either::Right(visitor) => {
115936                FoldAstPath::fold_function(visitor, node, __ast_path)
115937            }
115938        }
115939    }
115940
115941    #[inline]
115942    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
115943        match self {
115944            swc_visit::Either::Left(visitor) => {
115945                FoldAstPath::fold_getter_prop(visitor, node, __ast_path)
115946            }
115947            swc_visit::Either::Right(visitor) => {
115948                FoldAstPath::fold_getter_prop(visitor, node, __ast_path)
115949            }
115950        }
115951    }
115952
115953    #[inline]
115954    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
115955        match self {
115956            swc_visit::Either::Left(visitor) => FoldAstPath::fold_ident(visitor, node, __ast_path),
115957            swc_visit::Either::Right(visitor) => FoldAstPath::fold_ident(visitor, node, __ast_path),
115958        }
115959    }
115960
115961    #[inline]
115962    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
115963        match self {
115964            swc_visit::Either::Left(visitor) => {
115965                FoldAstPath::fold_ident_name(visitor, node, __ast_path)
115966            }
115967            swc_visit::Either::Right(visitor) => {
115968                FoldAstPath::fold_ident_name(visitor, node, __ast_path)
115969            }
115970        }
115971    }
115972
115973    #[inline]
115974    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
115975        match self {
115976            swc_visit::Either::Left(visitor) => {
115977                FoldAstPath::fold_if_stmt(visitor, node, __ast_path)
115978            }
115979            swc_visit::Either::Right(visitor) => {
115980                FoldAstPath::fold_if_stmt(visitor, node, __ast_path)
115981            }
115982        }
115983    }
115984
115985    #[inline]
115986    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
115987        match self {
115988            swc_visit::Either::Left(visitor) => FoldAstPath::fold_import(visitor, node, __ast_path),
115989            swc_visit::Either::Right(visitor) => {
115990                FoldAstPath::fold_import(visitor, node, __ast_path)
115991            }
115992        }
115993    }
115994
115995    #[inline]
115996    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
115997        match self {
115998            swc_visit::Either::Left(visitor) => {
115999                FoldAstPath::fold_import_decl(visitor, node, __ast_path)
116000            }
116001            swc_visit::Either::Right(visitor) => {
116002                FoldAstPath::fold_import_decl(visitor, node, __ast_path)
116003            }
116004        }
116005    }
116006
116007    #[inline]
116008    fn fold_import_default_specifier(
116009        &mut self,
116010        node: ImportDefaultSpecifier,
116011        __ast_path: &mut AstKindPath,
116012    ) -> ImportDefaultSpecifier {
116013        match self {
116014            swc_visit::Either::Left(visitor) => {
116015                FoldAstPath::fold_import_default_specifier(visitor, node, __ast_path)
116016            }
116017            swc_visit::Either::Right(visitor) => {
116018                FoldAstPath::fold_import_default_specifier(visitor, node, __ast_path)
116019            }
116020        }
116021    }
116022
116023    #[inline]
116024    fn fold_import_named_specifier(
116025        &mut self,
116026        node: ImportNamedSpecifier,
116027        __ast_path: &mut AstKindPath,
116028    ) -> ImportNamedSpecifier {
116029        match self {
116030            swc_visit::Either::Left(visitor) => {
116031                FoldAstPath::fold_import_named_specifier(visitor, node, __ast_path)
116032            }
116033            swc_visit::Either::Right(visitor) => {
116034                FoldAstPath::fold_import_named_specifier(visitor, node, __ast_path)
116035            }
116036        }
116037    }
116038
116039    #[inline]
116040    fn fold_import_phase(
116041        &mut self,
116042        node: ImportPhase,
116043        __ast_path: &mut AstKindPath,
116044    ) -> ImportPhase {
116045        match self {
116046            swc_visit::Either::Left(visitor) => {
116047                FoldAstPath::fold_import_phase(visitor, node, __ast_path)
116048            }
116049            swc_visit::Either::Right(visitor) => {
116050                FoldAstPath::fold_import_phase(visitor, node, __ast_path)
116051            }
116052        }
116053    }
116054
116055    #[inline]
116056    fn fold_import_specifier(
116057        &mut self,
116058        node: ImportSpecifier,
116059        __ast_path: &mut AstKindPath,
116060    ) -> ImportSpecifier {
116061        match self {
116062            swc_visit::Either::Left(visitor) => {
116063                FoldAstPath::fold_import_specifier(visitor, node, __ast_path)
116064            }
116065            swc_visit::Either::Right(visitor) => {
116066                FoldAstPath::fold_import_specifier(visitor, node, __ast_path)
116067            }
116068        }
116069    }
116070
116071    #[inline]
116072    fn fold_import_specifiers(
116073        &mut self,
116074        node: Vec<ImportSpecifier>,
116075        __ast_path: &mut AstKindPath,
116076    ) -> Vec<ImportSpecifier> {
116077        match self {
116078            swc_visit::Either::Left(visitor) => {
116079                FoldAstPath::fold_import_specifiers(visitor, node, __ast_path)
116080            }
116081            swc_visit::Either::Right(visitor) => {
116082                FoldAstPath::fold_import_specifiers(visitor, node, __ast_path)
116083            }
116084        }
116085    }
116086
116087    #[inline]
116088    fn fold_import_star_as_specifier(
116089        &mut self,
116090        node: ImportStarAsSpecifier,
116091        __ast_path: &mut AstKindPath,
116092    ) -> ImportStarAsSpecifier {
116093        match self {
116094            swc_visit::Either::Left(visitor) => {
116095                FoldAstPath::fold_import_star_as_specifier(visitor, node, __ast_path)
116096            }
116097            swc_visit::Either::Right(visitor) => {
116098                FoldAstPath::fold_import_star_as_specifier(visitor, node, __ast_path)
116099            }
116100        }
116101    }
116102
116103    #[inline]
116104    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
116105        match self {
116106            swc_visit::Either::Left(visitor) => {
116107                FoldAstPath::fold_import_with(visitor, node, __ast_path)
116108            }
116109            swc_visit::Either::Right(visitor) => {
116110                FoldAstPath::fold_import_with(visitor, node, __ast_path)
116111            }
116112        }
116113    }
116114
116115    #[inline]
116116    fn fold_import_with_item(
116117        &mut self,
116118        node: ImportWithItem,
116119        __ast_path: &mut AstKindPath,
116120    ) -> ImportWithItem {
116121        match self {
116122            swc_visit::Either::Left(visitor) => {
116123                FoldAstPath::fold_import_with_item(visitor, node, __ast_path)
116124            }
116125            swc_visit::Either::Right(visitor) => {
116126                FoldAstPath::fold_import_with_item(visitor, node, __ast_path)
116127            }
116128        }
116129    }
116130
116131    #[inline]
116132    fn fold_import_with_items(
116133        &mut self,
116134        node: Vec<ImportWithItem>,
116135        __ast_path: &mut AstKindPath,
116136    ) -> Vec<ImportWithItem> {
116137        match self {
116138            swc_visit::Either::Left(visitor) => {
116139                FoldAstPath::fold_import_with_items(visitor, node, __ast_path)
116140            }
116141            swc_visit::Either::Right(visitor) => {
116142                FoldAstPath::fold_import_with_items(visitor, node, __ast_path)
116143            }
116144        }
116145    }
116146
116147    #[inline]
116148    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
116149        match self {
116150            swc_visit::Either::Left(visitor) => {
116151                FoldAstPath::fold_invalid(visitor, node, __ast_path)
116152            }
116153            swc_visit::Either::Right(visitor) => {
116154                FoldAstPath::fold_invalid(visitor, node, __ast_path)
116155            }
116156        }
116157    }
116158
116159    #[inline]
116160    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
116161        match self {
116162            swc_visit::Either::Left(visitor) => {
116163                FoldAstPath::fold_jsx_attr(visitor, node, __ast_path)
116164            }
116165            swc_visit::Either::Right(visitor) => {
116166                FoldAstPath::fold_jsx_attr(visitor, node, __ast_path)
116167            }
116168        }
116169    }
116170
116171    #[inline]
116172    fn fold_jsx_attr_name(
116173        &mut self,
116174        node: JSXAttrName,
116175        __ast_path: &mut AstKindPath,
116176    ) -> JSXAttrName {
116177        match self {
116178            swc_visit::Either::Left(visitor) => {
116179                FoldAstPath::fold_jsx_attr_name(visitor, node, __ast_path)
116180            }
116181            swc_visit::Either::Right(visitor) => {
116182                FoldAstPath::fold_jsx_attr_name(visitor, node, __ast_path)
116183            }
116184        }
116185    }
116186
116187    #[inline]
116188    fn fold_jsx_attr_or_spread(
116189        &mut self,
116190        node: JSXAttrOrSpread,
116191        __ast_path: &mut AstKindPath,
116192    ) -> JSXAttrOrSpread {
116193        match self {
116194            swc_visit::Either::Left(visitor) => {
116195                FoldAstPath::fold_jsx_attr_or_spread(visitor, node, __ast_path)
116196            }
116197            swc_visit::Either::Right(visitor) => {
116198                FoldAstPath::fold_jsx_attr_or_spread(visitor, node, __ast_path)
116199            }
116200        }
116201    }
116202
116203    #[inline]
116204    fn fold_jsx_attr_or_spreads(
116205        &mut self,
116206        node: Vec<JSXAttrOrSpread>,
116207        __ast_path: &mut AstKindPath,
116208    ) -> Vec<JSXAttrOrSpread> {
116209        match self {
116210            swc_visit::Either::Left(visitor) => {
116211                FoldAstPath::fold_jsx_attr_or_spreads(visitor, node, __ast_path)
116212            }
116213            swc_visit::Either::Right(visitor) => {
116214                FoldAstPath::fold_jsx_attr_or_spreads(visitor, node, __ast_path)
116215            }
116216        }
116217    }
116218
116219    #[inline]
116220    fn fold_jsx_attr_value(
116221        &mut self,
116222        node: JSXAttrValue,
116223        __ast_path: &mut AstKindPath,
116224    ) -> JSXAttrValue {
116225        match self {
116226            swc_visit::Either::Left(visitor) => {
116227                FoldAstPath::fold_jsx_attr_value(visitor, node, __ast_path)
116228            }
116229            swc_visit::Either::Right(visitor) => {
116230                FoldAstPath::fold_jsx_attr_value(visitor, node, __ast_path)
116231            }
116232        }
116233    }
116234
116235    #[inline]
116236    fn fold_jsx_closing_element(
116237        &mut self,
116238        node: JSXClosingElement,
116239        __ast_path: &mut AstKindPath,
116240    ) -> JSXClosingElement {
116241        match self {
116242            swc_visit::Either::Left(visitor) => {
116243                FoldAstPath::fold_jsx_closing_element(visitor, node, __ast_path)
116244            }
116245            swc_visit::Either::Right(visitor) => {
116246                FoldAstPath::fold_jsx_closing_element(visitor, node, __ast_path)
116247            }
116248        }
116249    }
116250
116251    #[inline]
116252    fn fold_jsx_closing_fragment(
116253        &mut self,
116254        node: JSXClosingFragment,
116255        __ast_path: &mut AstKindPath,
116256    ) -> JSXClosingFragment {
116257        match self {
116258            swc_visit::Either::Left(visitor) => {
116259                FoldAstPath::fold_jsx_closing_fragment(visitor, node, __ast_path)
116260            }
116261            swc_visit::Either::Right(visitor) => {
116262                FoldAstPath::fold_jsx_closing_fragment(visitor, node, __ast_path)
116263            }
116264        }
116265    }
116266
116267    #[inline]
116268    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
116269        match self {
116270            swc_visit::Either::Left(visitor) => {
116271                FoldAstPath::fold_jsx_element(visitor, node, __ast_path)
116272            }
116273            swc_visit::Either::Right(visitor) => {
116274                FoldAstPath::fold_jsx_element(visitor, node, __ast_path)
116275            }
116276        }
116277    }
116278
116279    #[inline]
116280    fn fold_jsx_element_child(
116281        &mut self,
116282        node: JSXElementChild,
116283        __ast_path: &mut AstKindPath,
116284    ) -> JSXElementChild {
116285        match self {
116286            swc_visit::Either::Left(visitor) => {
116287                FoldAstPath::fold_jsx_element_child(visitor, node, __ast_path)
116288            }
116289            swc_visit::Either::Right(visitor) => {
116290                FoldAstPath::fold_jsx_element_child(visitor, node, __ast_path)
116291            }
116292        }
116293    }
116294
116295    #[inline]
116296    fn fold_jsx_element_childs(
116297        &mut self,
116298        node: Vec<JSXElementChild>,
116299        __ast_path: &mut AstKindPath,
116300    ) -> Vec<JSXElementChild> {
116301        match self {
116302            swc_visit::Either::Left(visitor) => {
116303                FoldAstPath::fold_jsx_element_childs(visitor, node, __ast_path)
116304            }
116305            swc_visit::Either::Right(visitor) => {
116306                FoldAstPath::fold_jsx_element_childs(visitor, node, __ast_path)
116307            }
116308        }
116309    }
116310
116311    #[inline]
116312    fn fold_jsx_element_name(
116313        &mut self,
116314        node: JSXElementName,
116315        __ast_path: &mut AstKindPath,
116316    ) -> JSXElementName {
116317        match self {
116318            swc_visit::Either::Left(visitor) => {
116319                FoldAstPath::fold_jsx_element_name(visitor, node, __ast_path)
116320            }
116321            swc_visit::Either::Right(visitor) => {
116322                FoldAstPath::fold_jsx_element_name(visitor, node, __ast_path)
116323            }
116324        }
116325    }
116326
116327    #[inline]
116328    fn fold_jsx_empty_expr(
116329        &mut self,
116330        node: JSXEmptyExpr,
116331        __ast_path: &mut AstKindPath,
116332    ) -> JSXEmptyExpr {
116333        match self {
116334            swc_visit::Either::Left(visitor) => {
116335                FoldAstPath::fold_jsx_empty_expr(visitor, node, __ast_path)
116336            }
116337            swc_visit::Either::Right(visitor) => {
116338                FoldAstPath::fold_jsx_empty_expr(visitor, node, __ast_path)
116339            }
116340        }
116341    }
116342
116343    #[inline]
116344    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
116345        match self {
116346            swc_visit::Either::Left(visitor) => {
116347                FoldAstPath::fold_jsx_expr(visitor, node, __ast_path)
116348            }
116349            swc_visit::Either::Right(visitor) => {
116350                FoldAstPath::fold_jsx_expr(visitor, node, __ast_path)
116351            }
116352        }
116353    }
116354
116355    #[inline]
116356    fn fold_jsx_expr_container(
116357        &mut self,
116358        node: JSXExprContainer,
116359        __ast_path: &mut AstKindPath,
116360    ) -> JSXExprContainer {
116361        match self {
116362            swc_visit::Either::Left(visitor) => {
116363                FoldAstPath::fold_jsx_expr_container(visitor, node, __ast_path)
116364            }
116365            swc_visit::Either::Right(visitor) => {
116366                FoldAstPath::fold_jsx_expr_container(visitor, node, __ast_path)
116367            }
116368        }
116369    }
116370
116371    #[inline]
116372    fn fold_jsx_fragment(
116373        &mut self,
116374        node: JSXFragment,
116375        __ast_path: &mut AstKindPath,
116376    ) -> JSXFragment {
116377        match self {
116378            swc_visit::Either::Left(visitor) => {
116379                FoldAstPath::fold_jsx_fragment(visitor, node, __ast_path)
116380            }
116381            swc_visit::Either::Right(visitor) => {
116382                FoldAstPath::fold_jsx_fragment(visitor, node, __ast_path)
116383            }
116384        }
116385    }
116386
116387    #[inline]
116388    fn fold_jsx_member_expr(
116389        &mut self,
116390        node: JSXMemberExpr,
116391        __ast_path: &mut AstKindPath,
116392    ) -> JSXMemberExpr {
116393        match self {
116394            swc_visit::Either::Left(visitor) => {
116395                FoldAstPath::fold_jsx_member_expr(visitor, node, __ast_path)
116396            }
116397            swc_visit::Either::Right(visitor) => {
116398                FoldAstPath::fold_jsx_member_expr(visitor, node, __ast_path)
116399            }
116400        }
116401    }
116402
116403    #[inline]
116404    fn fold_jsx_namespaced_name(
116405        &mut self,
116406        node: JSXNamespacedName,
116407        __ast_path: &mut AstKindPath,
116408    ) -> JSXNamespacedName {
116409        match self {
116410            swc_visit::Either::Left(visitor) => {
116411                FoldAstPath::fold_jsx_namespaced_name(visitor, node, __ast_path)
116412            }
116413            swc_visit::Either::Right(visitor) => {
116414                FoldAstPath::fold_jsx_namespaced_name(visitor, node, __ast_path)
116415            }
116416        }
116417    }
116418
116419    #[inline]
116420    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
116421        match self {
116422            swc_visit::Either::Left(visitor) => {
116423                FoldAstPath::fold_jsx_object(visitor, node, __ast_path)
116424            }
116425            swc_visit::Either::Right(visitor) => {
116426                FoldAstPath::fold_jsx_object(visitor, node, __ast_path)
116427            }
116428        }
116429    }
116430
116431    #[inline]
116432    fn fold_jsx_opening_element(
116433        &mut self,
116434        node: JSXOpeningElement,
116435        __ast_path: &mut AstKindPath,
116436    ) -> JSXOpeningElement {
116437        match self {
116438            swc_visit::Either::Left(visitor) => {
116439                FoldAstPath::fold_jsx_opening_element(visitor, node, __ast_path)
116440            }
116441            swc_visit::Either::Right(visitor) => {
116442                FoldAstPath::fold_jsx_opening_element(visitor, node, __ast_path)
116443            }
116444        }
116445    }
116446
116447    #[inline]
116448    fn fold_jsx_opening_fragment(
116449        &mut self,
116450        node: JSXOpeningFragment,
116451        __ast_path: &mut AstKindPath,
116452    ) -> JSXOpeningFragment {
116453        match self {
116454            swc_visit::Either::Left(visitor) => {
116455                FoldAstPath::fold_jsx_opening_fragment(visitor, node, __ast_path)
116456            }
116457            swc_visit::Either::Right(visitor) => {
116458                FoldAstPath::fold_jsx_opening_fragment(visitor, node, __ast_path)
116459            }
116460        }
116461    }
116462
116463    #[inline]
116464    fn fold_jsx_spread_child(
116465        &mut self,
116466        node: JSXSpreadChild,
116467        __ast_path: &mut AstKindPath,
116468    ) -> JSXSpreadChild {
116469        match self {
116470            swc_visit::Either::Left(visitor) => {
116471                FoldAstPath::fold_jsx_spread_child(visitor, node, __ast_path)
116472            }
116473            swc_visit::Either::Right(visitor) => {
116474                FoldAstPath::fold_jsx_spread_child(visitor, node, __ast_path)
116475            }
116476        }
116477    }
116478
116479    #[inline]
116480    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
116481        match self {
116482            swc_visit::Either::Left(visitor) => {
116483                FoldAstPath::fold_jsx_text(visitor, node, __ast_path)
116484            }
116485            swc_visit::Either::Right(visitor) => {
116486                FoldAstPath::fold_jsx_text(visitor, node, __ast_path)
116487            }
116488        }
116489    }
116490
116491    #[inline]
116492    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
116493        match self {
116494            swc_visit::Either::Left(visitor) => FoldAstPath::fold_key(visitor, node, __ast_path),
116495            swc_visit::Either::Right(visitor) => FoldAstPath::fold_key(visitor, node, __ast_path),
116496        }
116497    }
116498
116499    #[inline]
116500    fn fold_key_value_pat_prop(
116501        &mut self,
116502        node: KeyValuePatProp,
116503        __ast_path: &mut AstKindPath,
116504    ) -> KeyValuePatProp {
116505        match self {
116506            swc_visit::Either::Left(visitor) => {
116507                FoldAstPath::fold_key_value_pat_prop(visitor, node, __ast_path)
116508            }
116509            swc_visit::Either::Right(visitor) => {
116510                FoldAstPath::fold_key_value_pat_prop(visitor, node, __ast_path)
116511            }
116512        }
116513    }
116514
116515    #[inline]
116516    fn fold_key_value_prop(
116517        &mut self,
116518        node: KeyValueProp,
116519        __ast_path: &mut AstKindPath,
116520    ) -> KeyValueProp {
116521        match self {
116522            swc_visit::Either::Left(visitor) => {
116523                FoldAstPath::fold_key_value_prop(visitor, node, __ast_path)
116524            }
116525            swc_visit::Either::Right(visitor) => {
116526                FoldAstPath::fold_key_value_prop(visitor, node, __ast_path)
116527            }
116528        }
116529    }
116530
116531    #[inline]
116532    fn fold_labeled_stmt(
116533        &mut self,
116534        node: LabeledStmt,
116535        __ast_path: &mut AstKindPath,
116536    ) -> LabeledStmt {
116537        match self {
116538            swc_visit::Either::Left(visitor) => {
116539                FoldAstPath::fold_labeled_stmt(visitor, node, __ast_path)
116540            }
116541            swc_visit::Either::Right(visitor) => {
116542                FoldAstPath::fold_labeled_stmt(visitor, node, __ast_path)
116543            }
116544        }
116545    }
116546
116547    #[inline]
116548    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
116549        match self {
116550            swc_visit::Either::Left(visitor) => FoldAstPath::fold_lit(visitor, node, __ast_path),
116551            swc_visit::Either::Right(visitor) => FoldAstPath::fold_lit(visitor, node, __ast_path),
116552        }
116553    }
116554
116555    #[inline]
116556    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
116557        match self {
116558            swc_visit::Either::Left(visitor) => {
116559                FoldAstPath::fold_member_expr(visitor, node, __ast_path)
116560            }
116561            swc_visit::Either::Right(visitor) => {
116562                FoldAstPath::fold_member_expr(visitor, node, __ast_path)
116563            }
116564        }
116565    }
116566
116567    #[inline]
116568    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
116569        match self {
116570            swc_visit::Either::Left(visitor) => {
116571                FoldAstPath::fold_member_prop(visitor, node, __ast_path)
116572            }
116573            swc_visit::Either::Right(visitor) => {
116574                FoldAstPath::fold_member_prop(visitor, node, __ast_path)
116575            }
116576        }
116577    }
116578
116579    #[inline]
116580    fn fold_meta_prop_expr(
116581        &mut self,
116582        node: MetaPropExpr,
116583        __ast_path: &mut AstKindPath,
116584    ) -> MetaPropExpr {
116585        match self {
116586            swc_visit::Either::Left(visitor) => {
116587                FoldAstPath::fold_meta_prop_expr(visitor, node, __ast_path)
116588            }
116589            swc_visit::Either::Right(visitor) => {
116590                FoldAstPath::fold_meta_prop_expr(visitor, node, __ast_path)
116591            }
116592        }
116593    }
116594
116595    #[inline]
116596    fn fold_meta_prop_kind(
116597        &mut self,
116598        node: MetaPropKind,
116599        __ast_path: &mut AstKindPath,
116600    ) -> MetaPropKind {
116601        match self {
116602            swc_visit::Either::Left(visitor) => {
116603                FoldAstPath::fold_meta_prop_kind(visitor, node, __ast_path)
116604            }
116605            swc_visit::Either::Right(visitor) => {
116606                FoldAstPath::fold_meta_prop_kind(visitor, node, __ast_path)
116607            }
116608        }
116609    }
116610
116611    #[inline]
116612    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
116613        match self {
116614            swc_visit::Either::Left(visitor) => {
116615                FoldAstPath::fold_method_kind(visitor, node, __ast_path)
116616            }
116617            swc_visit::Either::Right(visitor) => {
116618                FoldAstPath::fold_method_kind(visitor, node, __ast_path)
116619            }
116620        }
116621    }
116622
116623    #[inline]
116624    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
116625        match self {
116626            swc_visit::Either::Left(visitor) => {
116627                FoldAstPath::fold_method_prop(visitor, node, __ast_path)
116628            }
116629            swc_visit::Either::Right(visitor) => {
116630                FoldAstPath::fold_method_prop(visitor, node, __ast_path)
116631            }
116632        }
116633    }
116634
116635    #[inline]
116636    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
116637        match self {
116638            swc_visit::Either::Left(visitor) => FoldAstPath::fold_module(visitor, node, __ast_path),
116639            swc_visit::Either::Right(visitor) => {
116640                FoldAstPath::fold_module(visitor, node, __ast_path)
116641            }
116642        }
116643    }
116644
116645    #[inline]
116646    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
116647        match self {
116648            swc_visit::Either::Left(visitor) => {
116649                FoldAstPath::fold_module_decl(visitor, node, __ast_path)
116650            }
116651            swc_visit::Either::Right(visitor) => {
116652                FoldAstPath::fold_module_decl(visitor, node, __ast_path)
116653            }
116654        }
116655    }
116656
116657    #[inline]
116658    fn fold_module_export_name(
116659        &mut self,
116660        node: ModuleExportName,
116661        __ast_path: &mut AstKindPath,
116662    ) -> ModuleExportName {
116663        match self {
116664            swc_visit::Either::Left(visitor) => {
116665                FoldAstPath::fold_module_export_name(visitor, node, __ast_path)
116666            }
116667            swc_visit::Either::Right(visitor) => {
116668                FoldAstPath::fold_module_export_name(visitor, node, __ast_path)
116669            }
116670        }
116671    }
116672
116673    #[inline]
116674    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
116675        match self {
116676            swc_visit::Either::Left(visitor) => {
116677                FoldAstPath::fold_module_item(visitor, node, __ast_path)
116678            }
116679            swc_visit::Either::Right(visitor) => {
116680                FoldAstPath::fold_module_item(visitor, node, __ast_path)
116681            }
116682        }
116683    }
116684
116685    #[inline]
116686    fn fold_module_items(
116687        &mut self,
116688        node: Vec<ModuleItem>,
116689        __ast_path: &mut AstKindPath,
116690    ) -> Vec<ModuleItem> {
116691        match self {
116692            swc_visit::Either::Left(visitor) => {
116693                FoldAstPath::fold_module_items(visitor, node, __ast_path)
116694            }
116695            swc_visit::Either::Right(visitor) => {
116696                FoldAstPath::fold_module_items(visitor, node, __ast_path)
116697            }
116698        }
116699    }
116700
116701    #[inline]
116702    fn fold_named_export(
116703        &mut self,
116704        node: NamedExport,
116705        __ast_path: &mut AstKindPath,
116706    ) -> NamedExport {
116707        match self {
116708            swc_visit::Either::Left(visitor) => {
116709                FoldAstPath::fold_named_export(visitor, node, __ast_path)
116710            }
116711            swc_visit::Either::Right(visitor) => {
116712                FoldAstPath::fold_named_export(visitor, node, __ast_path)
116713            }
116714        }
116715    }
116716
116717    #[inline]
116718    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
116719        match self {
116720            swc_visit::Either::Left(visitor) => {
116721                FoldAstPath::fold_new_expr(visitor, node, __ast_path)
116722            }
116723            swc_visit::Either::Right(visitor) => {
116724                FoldAstPath::fold_new_expr(visitor, node, __ast_path)
116725            }
116726        }
116727    }
116728
116729    #[inline]
116730    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
116731        match self {
116732            swc_visit::Either::Left(visitor) => FoldAstPath::fold_null(visitor, node, __ast_path),
116733            swc_visit::Either::Right(visitor) => FoldAstPath::fold_null(visitor, node, __ast_path),
116734        }
116735    }
116736
116737    #[inline]
116738    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
116739        match self {
116740            swc_visit::Either::Left(visitor) => FoldAstPath::fold_number(visitor, node, __ast_path),
116741            swc_visit::Either::Right(visitor) => {
116742                FoldAstPath::fold_number(visitor, node, __ast_path)
116743            }
116744        }
116745    }
116746
116747    #[inline]
116748    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
116749        match self {
116750            swc_visit::Either::Left(visitor) => {
116751                FoldAstPath::fold_object_lit(visitor, node, __ast_path)
116752            }
116753            swc_visit::Either::Right(visitor) => {
116754                FoldAstPath::fold_object_lit(visitor, node, __ast_path)
116755            }
116756        }
116757    }
116758
116759    #[inline]
116760    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
116761        match self {
116762            swc_visit::Either::Left(visitor) => {
116763                FoldAstPath::fold_object_pat(visitor, node, __ast_path)
116764            }
116765            swc_visit::Either::Right(visitor) => {
116766                FoldAstPath::fold_object_pat(visitor, node, __ast_path)
116767            }
116768        }
116769    }
116770
116771    #[inline]
116772    fn fold_object_pat_prop(
116773        &mut self,
116774        node: ObjectPatProp,
116775        __ast_path: &mut AstKindPath,
116776    ) -> ObjectPatProp {
116777        match self {
116778            swc_visit::Either::Left(visitor) => {
116779                FoldAstPath::fold_object_pat_prop(visitor, node, __ast_path)
116780            }
116781            swc_visit::Either::Right(visitor) => {
116782                FoldAstPath::fold_object_pat_prop(visitor, node, __ast_path)
116783            }
116784        }
116785    }
116786
116787    #[inline]
116788    fn fold_object_pat_props(
116789        &mut self,
116790        node: Vec<ObjectPatProp>,
116791        __ast_path: &mut AstKindPath,
116792    ) -> Vec<ObjectPatProp> {
116793        match self {
116794            swc_visit::Either::Left(visitor) => {
116795                FoldAstPath::fold_object_pat_props(visitor, node, __ast_path)
116796            }
116797            swc_visit::Either::Right(visitor) => {
116798                FoldAstPath::fold_object_pat_props(visitor, node, __ast_path)
116799            }
116800        }
116801    }
116802
116803    #[inline]
116804    fn fold_opt_accessibility(
116805        &mut self,
116806        node: Option<Accessibility>,
116807        __ast_path: &mut AstKindPath,
116808    ) -> Option<Accessibility> {
116809        match self {
116810            swc_visit::Either::Left(visitor) => {
116811                FoldAstPath::fold_opt_accessibility(visitor, node, __ast_path)
116812            }
116813            swc_visit::Either::Right(visitor) => {
116814                FoldAstPath::fold_opt_accessibility(visitor, node, __ast_path)
116815            }
116816        }
116817    }
116818
116819    #[inline]
116820    fn fold_opt_atom(
116821        &mut self,
116822        node: Option<swc_atoms::Atom>,
116823        __ast_path: &mut AstKindPath,
116824    ) -> Option<swc_atoms::Atom> {
116825        match self {
116826            swc_visit::Either::Left(visitor) => {
116827                FoldAstPath::fold_opt_atom(visitor, node, __ast_path)
116828            }
116829            swc_visit::Either::Right(visitor) => {
116830                FoldAstPath::fold_opt_atom(visitor, node, __ast_path)
116831            }
116832        }
116833    }
116834
116835    #[inline]
116836    fn fold_opt_block_stmt(
116837        &mut self,
116838        node: Option<BlockStmt>,
116839        __ast_path: &mut AstKindPath,
116840    ) -> Option<BlockStmt> {
116841        match self {
116842            swc_visit::Either::Left(visitor) => {
116843                FoldAstPath::fold_opt_block_stmt(visitor, node, __ast_path)
116844            }
116845            swc_visit::Either::Right(visitor) => {
116846                FoldAstPath::fold_opt_block_stmt(visitor, node, __ast_path)
116847            }
116848        }
116849    }
116850
116851    #[inline]
116852    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
116853        match self {
116854            swc_visit::Either::Left(visitor) => {
116855                FoldAstPath::fold_opt_call(visitor, node, __ast_path)
116856            }
116857            swc_visit::Either::Right(visitor) => {
116858                FoldAstPath::fold_opt_call(visitor, node, __ast_path)
116859            }
116860        }
116861    }
116862
116863    #[inline]
116864    fn fold_opt_catch_clause(
116865        &mut self,
116866        node: Option<CatchClause>,
116867        __ast_path: &mut AstKindPath,
116868    ) -> Option<CatchClause> {
116869        match self {
116870            swc_visit::Either::Left(visitor) => {
116871                FoldAstPath::fold_opt_catch_clause(visitor, node, __ast_path)
116872            }
116873            swc_visit::Either::Right(visitor) => {
116874                FoldAstPath::fold_opt_catch_clause(visitor, node, __ast_path)
116875            }
116876        }
116877    }
116878
116879    #[inline]
116880    fn fold_opt_chain_base(
116881        &mut self,
116882        node: OptChainBase,
116883        __ast_path: &mut AstKindPath,
116884    ) -> OptChainBase {
116885        match self {
116886            swc_visit::Either::Left(visitor) => {
116887                FoldAstPath::fold_opt_chain_base(visitor, node, __ast_path)
116888            }
116889            swc_visit::Either::Right(visitor) => {
116890                FoldAstPath::fold_opt_chain_base(visitor, node, __ast_path)
116891            }
116892        }
116893    }
116894
116895    #[inline]
116896    fn fold_opt_chain_expr(
116897        &mut self,
116898        node: OptChainExpr,
116899        __ast_path: &mut AstKindPath,
116900    ) -> OptChainExpr {
116901        match self {
116902            swc_visit::Either::Left(visitor) => {
116903                FoldAstPath::fold_opt_chain_expr(visitor, node, __ast_path)
116904            }
116905            swc_visit::Either::Right(visitor) => {
116906                FoldAstPath::fold_opt_chain_expr(visitor, node, __ast_path)
116907            }
116908        }
116909    }
116910
116911    #[inline]
116912    fn fold_opt_expr(
116913        &mut self,
116914        node: Option<Box<Expr>>,
116915        __ast_path: &mut AstKindPath,
116916    ) -> Option<Box<Expr>> {
116917        match self {
116918            swc_visit::Either::Left(visitor) => {
116919                FoldAstPath::fold_opt_expr(visitor, node, __ast_path)
116920            }
116921            swc_visit::Either::Right(visitor) => {
116922                FoldAstPath::fold_opt_expr(visitor, node, __ast_path)
116923            }
116924        }
116925    }
116926
116927    #[inline]
116928    fn fold_opt_expr_or_spread(
116929        &mut self,
116930        node: Option<ExprOrSpread>,
116931        __ast_path: &mut AstKindPath,
116932    ) -> Option<ExprOrSpread> {
116933        match self {
116934            swc_visit::Either::Left(visitor) => {
116935                FoldAstPath::fold_opt_expr_or_spread(visitor, node, __ast_path)
116936            }
116937            swc_visit::Either::Right(visitor) => {
116938                FoldAstPath::fold_opt_expr_or_spread(visitor, node, __ast_path)
116939            }
116940        }
116941    }
116942
116943    #[inline]
116944    fn fold_opt_expr_or_spreads(
116945        &mut self,
116946        node: Option<Vec<ExprOrSpread>>,
116947        __ast_path: &mut AstKindPath,
116948    ) -> Option<Vec<ExprOrSpread>> {
116949        match self {
116950            swc_visit::Either::Left(visitor) => {
116951                FoldAstPath::fold_opt_expr_or_spreads(visitor, node, __ast_path)
116952            }
116953            swc_visit::Either::Right(visitor) => {
116954                FoldAstPath::fold_opt_expr_or_spreads(visitor, node, __ast_path)
116955            }
116956        }
116957    }
116958
116959    #[inline]
116960    fn fold_opt_ident(
116961        &mut self,
116962        node: Option<Ident>,
116963        __ast_path: &mut AstKindPath,
116964    ) -> Option<Ident> {
116965        match self {
116966            swc_visit::Either::Left(visitor) => {
116967                FoldAstPath::fold_opt_ident(visitor, node, __ast_path)
116968            }
116969            swc_visit::Either::Right(visitor) => {
116970                FoldAstPath::fold_opt_ident(visitor, node, __ast_path)
116971            }
116972        }
116973    }
116974
116975    #[inline]
116976    fn fold_opt_jsx_attr_value(
116977        &mut self,
116978        node: Option<JSXAttrValue>,
116979        __ast_path: &mut AstKindPath,
116980    ) -> Option<JSXAttrValue> {
116981        match self {
116982            swc_visit::Either::Left(visitor) => {
116983                FoldAstPath::fold_opt_jsx_attr_value(visitor, node, __ast_path)
116984            }
116985            swc_visit::Either::Right(visitor) => {
116986                FoldAstPath::fold_opt_jsx_attr_value(visitor, node, __ast_path)
116987            }
116988        }
116989    }
116990
116991    #[inline]
116992    fn fold_opt_jsx_closing_element(
116993        &mut self,
116994        node: Option<JSXClosingElement>,
116995        __ast_path: &mut AstKindPath,
116996    ) -> Option<JSXClosingElement> {
116997        match self {
116998            swc_visit::Either::Left(visitor) => {
116999                FoldAstPath::fold_opt_jsx_closing_element(visitor, node, __ast_path)
117000            }
117001            swc_visit::Either::Right(visitor) => {
117002                FoldAstPath::fold_opt_jsx_closing_element(visitor, node, __ast_path)
117003            }
117004        }
117005    }
117006
117007    #[inline]
117008    fn fold_opt_module_export_name(
117009        &mut self,
117010        node: Option<ModuleExportName>,
117011        __ast_path: &mut AstKindPath,
117012    ) -> Option<ModuleExportName> {
117013        match self {
117014            swc_visit::Either::Left(visitor) => {
117015                FoldAstPath::fold_opt_module_export_name(visitor, node, __ast_path)
117016            }
117017            swc_visit::Either::Right(visitor) => {
117018                FoldAstPath::fold_opt_module_export_name(visitor, node, __ast_path)
117019            }
117020        }
117021    }
117022
117023    #[inline]
117024    fn fold_opt_object_lit(
117025        &mut self,
117026        node: Option<Box<ObjectLit>>,
117027        __ast_path: &mut AstKindPath,
117028    ) -> Option<Box<ObjectLit>> {
117029        match self {
117030            swc_visit::Either::Left(visitor) => {
117031                FoldAstPath::fold_opt_object_lit(visitor, node, __ast_path)
117032            }
117033            swc_visit::Either::Right(visitor) => {
117034                FoldAstPath::fold_opt_object_lit(visitor, node, __ast_path)
117035            }
117036        }
117037    }
117038
117039    #[inline]
117040    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
117041        match self {
117042            swc_visit::Either::Left(visitor) => {
117043                FoldAstPath::fold_opt_pat(visitor, node, __ast_path)
117044            }
117045            swc_visit::Either::Right(visitor) => {
117046                FoldAstPath::fold_opt_pat(visitor, node, __ast_path)
117047            }
117048        }
117049    }
117050
117051    #[inline]
117052    fn fold_opt_span(
117053        &mut self,
117054        node: Option<swc_common::Span>,
117055        __ast_path: &mut AstKindPath,
117056    ) -> Option<swc_common::Span> {
117057        match self {
117058            swc_visit::Either::Left(visitor) => {
117059                FoldAstPath::fold_opt_span(visitor, node, __ast_path)
117060            }
117061            swc_visit::Either::Right(visitor) => {
117062                FoldAstPath::fold_opt_span(visitor, node, __ast_path)
117063            }
117064        }
117065    }
117066
117067    #[inline]
117068    fn fold_opt_stmt(
117069        &mut self,
117070        node: Option<Box<Stmt>>,
117071        __ast_path: &mut AstKindPath,
117072    ) -> Option<Box<Stmt>> {
117073        match self {
117074            swc_visit::Either::Left(visitor) => {
117075                FoldAstPath::fold_opt_stmt(visitor, node, __ast_path)
117076            }
117077            swc_visit::Either::Right(visitor) => {
117078                FoldAstPath::fold_opt_stmt(visitor, node, __ast_path)
117079            }
117080        }
117081    }
117082
117083    #[inline]
117084    fn fold_opt_str(
117085        &mut self,
117086        node: Option<Box<Str>>,
117087        __ast_path: &mut AstKindPath,
117088    ) -> Option<Box<Str>> {
117089        match self {
117090            swc_visit::Either::Left(visitor) => {
117091                FoldAstPath::fold_opt_str(visitor, node, __ast_path)
117092            }
117093            swc_visit::Either::Right(visitor) => {
117094                FoldAstPath::fold_opt_str(visitor, node, __ast_path)
117095            }
117096        }
117097    }
117098
117099    #[inline]
117100    fn fold_opt_true_plus_minus(
117101        &mut self,
117102        node: Option<TruePlusMinus>,
117103        __ast_path: &mut AstKindPath,
117104    ) -> Option<TruePlusMinus> {
117105        match self {
117106            swc_visit::Either::Left(visitor) => {
117107                FoldAstPath::fold_opt_true_plus_minus(visitor, node, __ast_path)
117108            }
117109            swc_visit::Either::Right(visitor) => {
117110                FoldAstPath::fold_opt_true_plus_minus(visitor, node, __ast_path)
117111            }
117112        }
117113    }
117114
117115    #[inline]
117116    fn fold_opt_ts_entity_name(
117117        &mut self,
117118        node: Option<TsEntityName>,
117119        __ast_path: &mut AstKindPath,
117120    ) -> Option<TsEntityName> {
117121        match self {
117122            swc_visit::Either::Left(visitor) => {
117123                FoldAstPath::fold_opt_ts_entity_name(visitor, node, __ast_path)
117124            }
117125            swc_visit::Either::Right(visitor) => {
117126                FoldAstPath::fold_opt_ts_entity_name(visitor, node, __ast_path)
117127            }
117128        }
117129    }
117130
117131    #[inline]
117132    fn fold_opt_ts_namespace_body(
117133        &mut self,
117134        node: Option<TsNamespaceBody>,
117135        __ast_path: &mut AstKindPath,
117136    ) -> Option<TsNamespaceBody> {
117137        match self {
117138            swc_visit::Either::Left(visitor) => {
117139                FoldAstPath::fold_opt_ts_namespace_body(visitor, node, __ast_path)
117140            }
117141            swc_visit::Either::Right(visitor) => {
117142                FoldAstPath::fold_opt_ts_namespace_body(visitor, node, __ast_path)
117143            }
117144        }
117145    }
117146
117147    #[inline]
117148    fn fold_opt_ts_type(
117149        &mut self,
117150        node: Option<Box<TsType>>,
117151        __ast_path: &mut AstKindPath,
117152    ) -> Option<Box<TsType>> {
117153        match self {
117154            swc_visit::Either::Left(visitor) => {
117155                FoldAstPath::fold_opt_ts_type(visitor, node, __ast_path)
117156            }
117157            swc_visit::Either::Right(visitor) => {
117158                FoldAstPath::fold_opt_ts_type(visitor, node, __ast_path)
117159            }
117160        }
117161    }
117162
117163    #[inline]
117164    fn fold_opt_ts_type_ann(
117165        &mut self,
117166        node: Option<Box<TsTypeAnn>>,
117167        __ast_path: &mut AstKindPath,
117168    ) -> Option<Box<TsTypeAnn>> {
117169        match self {
117170            swc_visit::Either::Left(visitor) => {
117171                FoldAstPath::fold_opt_ts_type_ann(visitor, node, __ast_path)
117172            }
117173            swc_visit::Either::Right(visitor) => {
117174                FoldAstPath::fold_opt_ts_type_ann(visitor, node, __ast_path)
117175            }
117176        }
117177    }
117178
117179    #[inline]
117180    fn fold_opt_ts_type_param_decl(
117181        &mut self,
117182        node: Option<Box<TsTypeParamDecl>>,
117183        __ast_path: &mut AstKindPath,
117184    ) -> Option<Box<TsTypeParamDecl>> {
117185        match self {
117186            swc_visit::Either::Left(visitor) => {
117187                FoldAstPath::fold_opt_ts_type_param_decl(visitor, node, __ast_path)
117188            }
117189            swc_visit::Either::Right(visitor) => {
117190                FoldAstPath::fold_opt_ts_type_param_decl(visitor, node, __ast_path)
117191            }
117192        }
117193    }
117194
117195    #[inline]
117196    fn fold_opt_ts_type_param_instantiation(
117197        &mut self,
117198        node: Option<Box<TsTypeParamInstantiation>>,
117199        __ast_path: &mut AstKindPath,
117200    ) -> Option<Box<TsTypeParamInstantiation>> {
117201        match self {
117202            swc_visit::Either::Left(visitor) => {
117203                FoldAstPath::fold_opt_ts_type_param_instantiation(visitor, node, __ast_path)
117204            }
117205            swc_visit::Either::Right(visitor) => {
117206                FoldAstPath::fold_opt_ts_type_param_instantiation(visitor, node, __ast_path)
117207            }
117208        }
117209    }
117210
117211    #[inline]
117212    fn fold_opt_var_decl_or_expr(
117213        &mut self,
117214        node: Option<VarDeclOrExpr>,
117215        __ast_path: &mut AstKindPath,
117216    ) -> Option<VarDeclOrExpr> {
117217        match self {
117218            swc_visit::Either::Left(visitor) => {
117219                FoldAstPath::fold_opt_var_decl_or_expr(visitor, node, __ast_path)
117220            }
117221            swc_visit::Either::Right(visitor) => {
117222                FoldAstPath::fold_opt_var_decl_or_expr(visitor, node, __ast_path)
117223            }
117224        }
117225    }
117226
117227    #[inline]
117228    fn fold_opt_vec_expr_or_spreads(
117229        &mut self,
117230        node: Vec<Option<ExprOrSpread>>,
117231        __ast_path: &mut AstKindPath,
117232    ) -> Vec<Option<ExprOrSpread>> {
117233        match self {
117234            swc_visit::Either::Left(visitor) => {
117235                FoldAstPath::fold_opt_vec_expr_or_spreads(visitor, node, __ast_path)
117236            }
117237            swc_visit::Either::Right(visitor) => {
117238                FoldAstPath::fold_opt_vec_expr_or_spreads(visitor, node, __ast_path)
117239            }
117240        }
117241    }
117242
117243    #[inline]
117244    fn fold_opt_vec_pats(
117245        &mut self,
117246        node: Vec<Option<Pat>>,
117247        __ast_path: &mut AstKindPath,
117248    ) -> Vec<Option<Pat>> {
117249        match self {
117250            swc_visit::Either::Left(visitor) => {
117251                FoldAstPath::fold_opt_vec_pats(visitor, node, __ast_path)
117252            }
117253            swc_visit::Either::Right(visitor) => {
117254                FoldAstPath::fold_opt_vec_pats(visitor, node, __ast_path)
117255            }
117256        }
117257    }
117258
117259    #[inline]
117260    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
117261        match self {
117262            swc_visit::Either::Left(visitor) => FoldAstPath::fold_param(visitor, node, __ast_path),
117263            swc_visit::Either::Right(visitor) => FoldAstPath::fold_param(visitor, node, __ast_path),
117264        }
117265    }
117266
117267    #[inline]
117268    fn fold_param_or_ts_param_prop(
117269        &mut self,
117270        node: ParamOrTsParamProp,
117271        __ast_path: &mut AstKindPath,
117272    ) -> ParamOrTsParamProp {
117273        match self {
117274            swc_visit::Either::Left(visitor) => {
117275                FoldAstPath::fold_param_or_ts_param_prop(visitor, node, __ast_path)
117276            }
117277            swc_visit::Either::Right(visitor) => {
117278                FoldAstPath::fold_param_or_ts_param_prop(visitor, node, __ast_path)
117279            }
117280        }
117281    }
117282
117283    #[inline]
117284    fn fold_param_or_ts_param_props(
117285        &mut self,
117286        node: Vec<ParamOrTsParamProp>,
117287        __ast_path: &mut AstKindPath,
117288    ) -> Vec<ParamOrTsParamProp> {
117289        match self {
117290            swc_visit::Either::Left(visitor) => {
117291                FoldAstPath::fold_param_or_ts_param_props(visitor, node, __ast_path)
117292            }
117293            swc_visit::Either::Right(visitor) => {
117294                FoldAstPath::fold_param_or_ts_param_props(visitor, node, __ast_path)
117295            }
117296        }
117297    }
117298
117299    #[inline]
117300    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
117301        match self {
117302            swc_visit::Either::Left(visitor) => FoldAstPath::fold_params(visitor, node, __ast_path),
117303            swc_visit::Either::Right(visitor) => {
117304                FoldAstPath::fold_params(visitor, node, __ast_path)
117305            }
117306        }
117307    }
117308
117309    #[inline]
117310    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
117311        match self {
117312            swc_visit::Either::Left(visitor) => {
117313                FoldAstPath::fold_paren_expr(visitor, node, __ast_path)
117314            }
117315            swc_visit::Either::Right(visitor) => {
117316                FoldAstPath::fold_paren_expr(visitor, node, __ast_path)
117317            }
117318        }
117319    }
117320
117321    #[inline]
117322    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
117323        match self {
117324            swc_visit::Either::Left(visitor) => FoldAstPath::fold_pat(visitor, node, __ast_path),
117325            swc_visit::Either::Right(visitor) => FoldAstPath::fold_pat(visitor, node, __ast_path),
117326        }
117327    }
117328
117329    #[inline]
117330    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
117331        match self {
117332            swc_visit::Either::Left(visitor) => FoldAstPath::fold_pats(visitor, node, __ast_path),
117333            swc_visit::Either::Right(visitor) => FoldAstPath::fold_pats(visitor, node, __ast_path),
117334        }
117335    }
117336
117337    #[inline]
117338    fn fold_private_method(
117339        &mut self,
117340        node: PrivateMethod,
117341        __ast_path: &mut AstKindPath,
117342    ) -> PrivateMethod {
117343        match self {
117344            swc_visit::Either::Left(visitor) => {
117345                FoldAstPath::fold_private_method(visitor, node, __ast_path)
117346            }
117347            swc_visit::Either::Right(visitor) => {
117348                FoldAstPath::fold_private_method(visitor, node, __ast_path)
117349            }
117350        }
117351    }
117352
117353    #[inline]
117354    fn fold_private_name(
117355        &mut self,
117356        node: PrivateName,
117357        __ast_path: &mut AstKindPath,
117358    ) -> PrivateName {
117359        match self {
117360            swc_visit::Either::Left(visitor) => {
117361                FoldAstPath::fold_private_name(visitor, node, __ast_path)
117362            }
117363            swc_visit::Either::Right(visitor) => {
117364                FoldAstPath::fold_private_name(visitor, node, __ast_path)
117365            }
117366        }
117367    }
117368
117369    #[inline]
117370    fn fold_private_prop(
117371        &mut self,
117372        node: PrivateProp,
117373        __ast_path: &mut AstKindPath,
117374    ) -> PrivateProp {
117375        match self {
117376            swc_visit::Either::Left(visitor) => {
117377                FoldAstPath::fold_private_prop(visitor, node, __ast_path)
117378            }
117379            swc_visit::Either::Right(visitor) => {
117380                FoldAstPath::fold_private_prop(visitor, node, __ast_path)
117381            }
117382        }
117383    }
117384
117385    #[inline]
117386    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
117387        match self {
117388            swc_visit::Either::Left(visitor) => {
117389                FoldAstPath::fold_program(visitor, node, __ast_path)
117390            }
117391            swc_visit::Either::Right(visitor) => {
117392                FoldAstPath::fold_program(visitor, node, __ast_path)
117393            }
117394        }
117395    }
117396
117397    #[inline]
117398    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
117399        match self {
117400            swc_visit::Either::Left(visitor) => FoldAstPath::fold_prop(visitor, node, __ast_path),
117401            swc_visit::Either::Right(visitor) => FoldAstPath::fold_prop(visitor, node, __ast_path),
117402        }
117403    }
117404
117405    #[inline]
117406    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
117407        match self {
117408            swc_visit::Either::Left(visitor) => {
117409                FoldAstPath::fold_prop_name(visitor, node, __ast_path)
117410            }
117411            swc_visit::Either::Right(visitor) => {
117412                FoldAstPath::fold_prop_name(visitor, node, __ast_path)
117413            }
117414        }
117415    }
117416
117417    #[inline]
117418    fn fold_prop_or_spread(
117419        &mut self,
117420        node: PropOrSpread,
117421        __ast_path: &mut AstKindPath,
117422    ) -> PropOrSpread {
117423        match self {
117424            swc_visit::Either::Left(visitor) => {
117425                FoldAstPath::fold_prop_or_spread(visitor, node, __ast_path)
117426            }
117427            swc_visit::Either::Right(visitor) => {
117428                FoldAstPath::fold_prop_or_spread(visitor, node, __ast_path)
117429            }
117430        }
117431    }
117432
117433    #[inline]
117434    fn fold_prop_or_spreads(
117435        &mut self,
117436        node: Vec<PropOrSpread>,
117437        __ast_path: &mut AstKindPath,
117438    ) -> Vec<PropOrSpread> {
117439        match self {
117440            swc_visit::Either::Left(visitor) => {
117441                FoldAstPath::fold_prop_or_spreads(visitor, node, __ast_path)
117442            }
117443            swc_visit::Either::Right(visitor) => {
117444                FoldAstPath::fold_prop_or_spreads(visitor, node, __ast_path)
117445            }
117446        }
117447    }
117448
117449    #[inline]
117450    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
117451        match self {
117452            swc_visit::Either::Left(visitor) => FoldAstPath::fold_regex(visitor, node, __ast_path),
117453            swc_visit::Either::Right(visitor) => FoldAstPath::fold_regex(visitor, node, __ast_path),
117454        }
117455    }
117456
117457    #[inline]
117458    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
117459        match self {
117460            swc_visit::Either::Left(visitor) => {
117461                FoldAstPath::fold_rest_pat(visitor, node, __ast_path)
117462            }
117463            swc_visit::Either::Right(visitor) => {
117464                FoldAstPath::fold_rest_pat(visitor, node, __ast_path)
117465            }
117466        }
117467    }
117468
117469    #[inline]
117470    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
117471        match self {
117472            swc_visit::Either::Left(visitor) => {
117473                FoldAstPath::fold_return_stmt(visitor, node, __ast_path)
117474            }
117475            swc_visit::Either::Right(visitor) => {
117476                FoldAstPath::fold_return_stmt(visitor, node, __ast_path)
117477            }
117478        }
117479    }
117480
117481    #[inline]
117482    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
117483        match self {
117484            swc_visit::Either::Left(visitor) => FoldAstPath::fold_script(visitor, node, __ast_path),
117485            swc_visit::Either::Right(visitor) => {
117486                FoldAstPath::fold_script(visitor, node, __ast_path)
117487            }
117488        }
117489    }
117490
117491    #[inline]
117492    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
117493        match self {
117494            swc_visit::Either::Left(visitor) => {
117495                FoldAstPath::fold_seq_expr(visitor, node, __ast_path)
117496            }
117497            swc_visit::Either::Right(visitor) => {
117498                FoldAstPath::fold_seq_expr(visitor, node, __ast_path)
117499            }
117500        }
117501    }
117502
117503    #[inline]
117504    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
117505        match self {
117506            swc_visit::Either::Left(visitor) => {
117507                FoldAstPath::fold_setter_prop(visitor, node, __ast_path)
117508            }
117509            swc_visit::Either::Right(visitor) => {
117510                FoldAstPath::fold_setter_prop(visitor, node, __ast_path)
117511            }
117512        }
117513    }
117514
117515    #[inline]
117516    fn fold_simple_assign_target(
117517        &mut self,
117518        node: SimpleAssignTarget,
117519        __ast_path: &mut AstKindPath,
117520    ) -> SimpleAssignTarget {
117521        match self {
117522            swc_visit::Either::Left(visitor) => {
117523                FoldAstPath::fold_simple_assign_target(visitor, node, __ast_path)
117524            }
117525            swc_visit::Either::Right(visitor) => {
117526                FoldAstPath::fold_simple_assign_target(visitor, node, __ast_path)
117527            }
117528        }
117529    }
117530
117531    #[inline]
117532    fn fold_span(
117533        &mut self,
117534        node: swc_common::Span,
117535        __ast_path: &mut AstKindPath,
117536    ) -> swc_common::Span {
117537        match self {
117538            swc_visit::Either::Left(visitor) => FoldAstPath::fold_span(visitor, node, __ast_path),
117539            swc_visit::Either::Right(visitor) => FoldAstPath::fold_span(visitor, node, __ast_path),
117540        }
117541    }
117542
117543    #[inline]
117544    fn fold_spread_element(
117545        &mut self,
117546        node: SpreadElement,
117547        __ast_path: &mut AstKindPath,
117548    ) -> SpreadElement {
117549        match self {
117550            swc_visit::Either::Left(visitor) => {
117551                FoldAstPath::fold_spread_element(visitor, node, __ast_path)
117552            }
117553            swc_visit::Either::Right(visitor) => {
117554                FoldAstPath::fold_spread_element(visitor, node, __ast_path)
117555            }
117556        }
117557    }
117558
117559    #[inline]
117560    fn fold_static_block(
117561        &mut self,
117562        node: StaticBlock,
117563        __ast_path: &mut AstKindPath,
117564    ) -> StaticBlock {
117565        match self {
117566            swc_visit::Either::Left(visitor) => {
117567                FoldAstPath::fold_static_block(visitor, node, __ast_path)
117568            }
117569            swc_visit::Either::Right(visitor) => {
117570                FoldAstPath::fold_static_block(visitor, node, __ast_path)
117571            }
117572        }
117573    }
117574
117575    #[inline]
117576    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
117577        match self {
117578            swc_visit::Either::Left(visitor) => FoldAstPath::fold_stmt(visitor, node, __ast_path),
117579            swc_visit::Either::Right(visitor) => FoldAstPath::fold_stmt(visitor, node, __ast_path),
117580        }
117581    }
117582
117583    #[inline]
117584    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
117585        match self {
117586            swc_visit::Either::Left(visitor) => FoldAstPath::fold_stmts(visitor, node, __ast_path),
117587            swc_visit::Either::Right(visitor) => FoldAstPath::fold_stmts(visitor, node, __ast_path),
117588        }
117589    }
117590
117591    #[inline]
117592    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
117593        match self {
117594            swc_visit::Either::Left(visitor) => FoldAstPath::fold_str(visitor, node, __ast_path),
117595            swc_visit::Either::Right(visitor) => FoldAstPath::fold_str(visitor, node, __ast_path),
117596        }
117597    }
117598
117599    #[inline]
117600    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
117601        match self {
117602            swc_visit::Either::Left(visitor) => FoldAstPath::fold_super(visitor, node, __ast_path),
117603            swc_visit::Either::Right(visitor) => FoldAstPath::fold_super(visitor, node, __ast_path),
117604        }
117605    }
117606
117607    #[inline]
117608    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
117609        match self {
117610            swc_visit::Either::Left(visitor) => {
117611                FoldAstPath::fold_super_prop(visitor, node, __ast_path)
117612            }
117613            swc_visit::Either::Right(visitor) => {
117614                FoldAstPath::fold_super_prop(visitor, node, __ast_path)
117615            }
117616        }
117617    }
117618
117619    #[inline]
117620    fn fold_super_prop_expr(
117621        &mut self,
117622        node: SuperPropExpr,
117623        __ast_path: &mut AstKindPath,
117624    ) -> SuperPropExpr {
117625        match self {
117626            swc_visit::Either::Left(visitor) => {
117627                FoldAstPath::fold_super_prop_expr(visitor, node, __ast_path)
117628            }
117629            swc_visit::Either::Right(visitor) => {
117630                FoldAstPath::fold_super_prop_expr(visitor, node, __ast_path)
117631            }
117632        }
117633    }
117634
117635    #[inline]
117636    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
117637        match self {
117638            swc_visit::Either::Left(visitor) => {
117639                FoldAstPath::fold_switch_case(visitor, node, __ast_path)
117640            }
117641            swc_visit::Either::Right(visitor) => {
117642                FoldAstPath::fold_switch_case(visitor, node, __ast_path)
117643            }
117644        }
117645    }
117646
117647    #[inline]
117648    fn fold_switch_cases(
117649        &mut self,
117650        node: Vec<SwitchCase>,
117651        __ast_path: &mut AstKindPath,
117652    ) -> Vec<SwitchCase> {
117653        match self {
117654            swc_visit::Either::Left(visitor) => {
117655                FoldAstPath::fold_switch_cases(visitor, node, __ast_path)
117656            }
117657            swc_visit::Either::Right(visitor) => {
117658                FoldAstPath::fold_switch_cases(visitor, node, __ast_path)
117659            }
117660        }
117661    }
117662
117663    #[inline]
117664    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
117665        match self {
117666            swc_visit::Either::Left(visitor) => {
117667                FoldAstPath::fold_switch_stmt(visitor, node, __ast_path)
117668            }
117669            swc_visit::Either::Right(visitor) => {
117670                FoldAstPath::fold_switch_stmt(visitor, node, __ast_path)
117671            }
117672        }
117673    }
117674
117675    #[inline]
117676    fn fold_syntax_context(
117677        &mut self,
117678        node: swc_common::SyntaxContext,
117679        __ast_path: &mut AstKindPath,
117680    ) -> swc_common::SyntaxContext {
117681        match self {
117682            swc_visit::Either::Left(visitor) => {
117683                FoldAstPath::fold_syntax_context(visitor, node, __ast_path)
117684            }
117685            swc_visit::Either::Right(visitor) => {
117686                FoldAstPath::fold_syntax_context(visitor, node, __ast_path)
117687            }
117688        }
117689    }
117690
117691    #[inline]
117692    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
117693        match self {
117694            swc_visit::Either::Left(visitor) => {
117695                FoldAstPath::fold_tagged_tpl(visitor, node, __ast_path)
117696            }
117697            swc_visit::Either::Right(visitor) => {
117698                FoldAstPath::fold_tagged_tpl(visitor, node, __ast_path)
117699            }
117700        }
117701    }
117702
117703    #[inline]
117704    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
117705        match self {
117706            swc_visit::Either::Left(visitor) => {
117707                FoldAstPath::fold_this_expr(visitor, node, __ast_path)
117708            }
117709            swc_visit::Either::Right(visitor) => {
117710                FoldAstPath::fold_this_expr(visitor, node, __ast_path)
117711            }
117712        }
117713    }
117714
117715    #[inline]
117716    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
117717        match self {
117718            swc_visit::Either::Left(visitor) => {
117719                FoldAstPath::fold_throw_stmt(visitor, node, __ast_path)
117720            }
117721            swc_visit::Either::Right(visitor) => {
117722                FoldAstPath::fold_throw_stmt(visitor, node, __ast_path)
117723            }
117724        }
117725    }
117726
117727    #[inline]
117728    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
117729        match self {
117730            swc_visit::Either::Left(visitor) => FoldAstPath::fold_tpl(visitor, node, __ast_path),
117731            swc_visit::Either::Right(visitor) => FoldAstPath::fold_tpl(visitor, node, __ast_path),
117732        }
117733    }
117734
117735    #[inline]
117736    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
117737        match self {
117738            swc_visit::Either::Left(visitor) => {
117739                FoldAstPath::fold_tpl_element(visitor, node, __ast_path)
117740            }
117741            swc_visit::Either::Right(visitor) => {
117742                FoldAstPath::fold_tpl_element(visitor, node, __ast_path)
117743            }
117744        }
117745    }
117746
117747    #[inline]
117748    fn fold_tpl_elements(
117749        &mut self,
117750        node: Vec<TplElement>,
117751        __ast_path: &mut AstKindPath,
117752    ) -> Vec<TplElement> {
117753        match self {
117754            swc_visit::Either::Left(visitor) => {
117755                FoldAstPath::fold_tpl_elements(visitor, node, __ast_path)
117756            }
117757            swc_visit::Either::Right(visitor) => {
117758                FoldAstPath::fold_tpl_elements(visitor, node, __ast_path)
117759            }
117760        }
117761    }
117762
117763    #[inline]
117764    fn fold_true_plus_minus(
117765        &mut self,
117766        node: TruePlusMinus,
117767        __ast_path: &mut AstKindPath,
117768    ) -> TruePlusMinus {
117769        match self {
117770            swc_visit::Either::Left(visitor) => {
117771                FoldAstPath::fold_true_plus_minus(visitor, node, __ast_path)
117772            }
117773            swc_visit::Either::Right(visitor) => {
117774                FoldAstPath::fold_true_plus_minus(visitor, node, __ast_path)
117775            }
117776        }
117777    }
117778
117779    #[inline]
117780    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
117781        match self {
117782            swc_visit::Either::Left(visitor) => {
117783                FoldAstPath::fold_try_stmt(visitor, node, __ast_path)
117784            }
117785            swc_visit::Either::Right(visitor) => {
117786                FoldAstPath::fold_try_stmt(visitor, node, __ast_path)
117787            }
117788        }
117789    }
117790
117791    #[inline]
117792    fn fold_ts_array_type(
117793        &mut self,
117794        node: TsArrayType,
117795        __ast_path: &mut AstKindPath,
117796    ) -> TsArrayType {
117797        match self {
117798            swc_visit::Either::Left(visitor) => {
117799                FoldAstPath::fold_ts_array_type(visitor, node, __ast_path)
117800            }
117801            swc_visit::Either::Right(visitor) => {
117802                FoldAstPath::fold_ts_array_type(visitor, node, __ast_path)
117803            }
117804        }
117805    }
117806
117807    #[inline]
117808    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
117809        match self {
117810            swc_visit::Either::Left(visitor) => {
117811                FoldAstPath::fold_ts_as_expr(visitor, node, __ast_path)
117812            }
117813            swc_visit::Either::Right(visitor) => {
117814                FoldAstPath::fold_ts_as_expr(visitor, node, __ast_path)
117815            }
117816        }
117817    }
117818
117819    #[inline]
117820    fn fold_ts_call_signature_decl(
117821        &mut self,
117822        node: TsCallSignatureDecl,
117823        __ast_path: &mut AstKindPath,
117824    ) -> TsCallSignatureDecl {
117825        match self {
117826            swc_visit::Either::Left(visitor) => {
117827                FoldAstPath::fold_ts_call_signature_decl(visitor, node, __ast_path)
117828            }
117829            swc_visit::Either::Right(visitor) => {
117830                FoldAstPath::fold_ts_call_signature_decl(visitor, node, __ast_path)
117831            }
117832        }
117833    }
117834
117835    #[inline]
117836    fn fold_ts_conditional_type(
117837        &mut self,
117838        node: TsConditionalType,
117839        __ast_path: &mut AstKindPath,
117840    ) -> TsConditionalType {
117841        match self {
117842            swc_visit::Either::Left(visitor) => {
117843                FoldAstPath::fold_ts_conditional_type(visitor, node, __ast_path)
117844            }
117845            swc_visit::Either::Right(visitor) => {
117846                FoldAstPath::fold_ts_conditional_type(visitor, node, __ast_path)
117847            }
117848        }
117849    }
117850
117851    #[inline]
117852    fn fold_ts_const_assertion(
117853        &mut self,
117854        node: TsConstAssertion,
117855        __ast_path: &mut AstKindPath,
117856    ) -> TsConstAssertion {
117857        match self {
117858            swc_visit::Either::Left(visitor) => {
117859                FoldAstPath::fold_ts_const_assertion(visitor, node, __ast_path)
117860            }
117861            swc_visit::Either::Right(visitor) => {
117862                FoldAstPath::fold_ts_const_assertion(visitor, node, __ast_path)
117863            }
117864        }
117865    }
117866
117867    #[inline]
117868    fn fold_ts_construct_signature_decl(
117869        &mut self,
117870        node: TsConstructSignatureDecl,
117871        __ast_path: &mut AstKindPath,
117872    ) -> TsConstructSignatureDecl {
117873        match self {
117874            swc_visit::Either::Left(visitor) => {
117875                FoldAstPath::fold_ts_construct_signature_decl(visitor, node, __ast_path)
117876            }
117877            swc_visit::Either::Right(visitor) => {
117878                FoldAstPath::fold_ts_construct_signature_decl(visitor, node, __ast_path)
117879            }
117880        }
117881    }
117882
117883    #[inline]
117884    fn fold_ts_constructor_type(
117885        &mut self,
117886        node: TsConstructorType,
117887        __ast_path: &mut AstKindPath,
117888    ) -> TsConstructorType {
117889        match self {
117890            swc_visit::Either::Left(visitor) => {
117891                FoldAstPath::fold_ts_constructor_type(visitor, node, __ast_path)
117892            }
117893            swc_visit::Either::Right(visitor) => {
117894                FoldAstPath::fold_ts_constructor_type(visitor, node, __ast_path)
117895            }
117896        }
117897    }
117898
117899    #[inline]
117900    fn fold_ts_entity_name(
117901        &mut self,
117902        node: TsEntityName,
117903        __ast_path: &mut AstKindPath,
117904    ) -> TsEntityName {
117905        match self {
117906            swc_visit::Either::Left(visitor) => {
117907                FoldAstPath::fold_ts_entity_name(visitor, node, __ast_path)
117908            }
117909            swc_visit::Either::Right(visitor) => {
117910                FoldAstPath::fold_ts_entity_name(visitor, node, __ast_path)
117911            }
117912        }
117913    }
117914
117915    #[inline]
117916    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
117917        match self {
117918            swc_visit::Either::Left(visitor) => {
117919                FoldAstPath::fold_ts_enum_decl(visitor, node, __ast_path)
117920            }
117921            swc_visit::Either::Right(visitor) => {
117922                FoldAstPath::fold_ts_enum_decl(visitor, node, __ast_path)
117923            }
117924        }
117925    }
117926
117927    #[inline]
117928    fn fold_ts_enum_member(
117929        &mut self,
117930        node: TsEnumMember,
117931        __ast_path: &mut AstKindPath,
117932    ) -> TsEnumMember {
117933        match self {
117934            swc_visit::Either::Left(visitor) => {
117935                FoldAstPath::fold_ts_enum_member(visitor, node, __ast_path)
117936            }
117937            swc_visit::Either::Right(visitor) => {
117938                FoldAstPath::fold_ts_enum_member(visitor, node, __ast_path)
117939            }
117940        }
117941    }
117942
117943    #[inline]
117944    fn fold_ts_enum_member_id(
117945        &mut self,
117946        node: TsEnumMemberId,
117947        __ast_path: &mut AstKindPath,
117948    ) -> TsEnumMemberId {
117949        match self {
117950            swc_visit::Either::Left(visitor) => {
117951                FoldAstPath::fold_ts_enum_member_id(visitor, node, __ast_path)
117952            }
117953            swc_visit::Either::Right(visitor) => {
117954                FoldAstPath::fold_ts_enum_member_id(visitor, node, __ast_path)
117955            }
117956        }
117957    }
117958
117959    #[inline]
117960    fn fold_ts_enum_members(
117961        &mut self,
117962        node: Vec<TsEnumMember>,
117963        __ast_path: &mut AstKindPath,
117964    ) -> Vec<TsEnumMember> {
117965        match self {
117966            swc_visit::Either::Left(visitor) => {
117967                FoldAstPath::fold_ts_enum_members(visitor, node, __ast_path)
117968            }
117969            swc_visit::Either::Right(visitor) => {
117970                FoldAstPath::fold_ts_enum_members(visitor, node, __ast_path)
117971            }
117972        }
117973    }
117974
117975    #[inline]
117976    fn fold_ts_export_assignment(
117977        &mut self,
117978        node: TsExportAssignment,
117979        __ast_path: &mut AstKindPath,
117980    ) -> TsExportAssignment {
117981        match self {
117982            swc_visit::Either::Left(visitor) => {
117983                FoldAstPath::fold_ts_export_assignment(visitor, node, __ast_path)
117984            }
117985            swc_visit::Either::Right(visitor) => {
117986                FoldAstPath::fold_ts_export_assignment(visitor, node, __ast_path)
117987            }
117988        }
117989    }
117990
117991    #[inline]
117992    fn fold_ts_expr_with_type_args(
117993        &mut self,
117994        node: TsExprWithTypeArgs,
117995        __ast_path: &mut AstKindPath,
117996    ) -> TsExprWithTypeArgs {
117997        match self {
117998            swc_visit::Either::Left(visitor) => {
117999                FoldAstPath::fold_ts_expr_with_type_args(visitor, node, __ast_path)
118000            }
118001            swc_visit::Either::Right(visitor) => {
118002                FoldAstPath::fold_ts_expr_with_type_args(visitor, node, __ast_path)
118003            }
118004        }
118005    }
118006
118007    #[inline]
118008    fn fold_ts_expr_with_type_argss(
118009        &mut self,
118010        node: Vec<TsExprWithTypeArgs>,
118011        __ast_path: &mut AstKindPath,
118012    ) -> Vec<TsExprWithTypeArgs> {
118013        match self {
118014            swc_visit::Either::Left(visitor) => {
118015                FoldAstPath::fold_ts_expr_with_type_argss(visitor, node, __ast_path)
118016            }
118017            swc_visit::Either::Right(visitor) => {
118018                FoldAstPath::fold_ts_expr_with_type_argss(visitor, node, __ast_path)
118019            }
118020        }
118021    }
118022
118023    #[inline]
118024    fn fold_ts_external_module_ref(
118025        &mut self,
118026        node: TsExternalModuleRef,
118027        __ast_path: &mut AstKindPath,
118028    ) -> TsExternalModuleRef {
118029        match self {
118030            swc_visit::Either::Left(visitor) => {
118031                FoldAstPath::fold_ts_external_module_ref(visitor, node, __ast_path)
118032            }
118033            swc_visit::Either::Right(visitor) => {
118034                FoldAstPath::fold_ts_external_module_ref(visitor, node, __ast_path)
118035            }
118036        }
118037    }
118038
118039    #[inline]
118040    fn fold_ts_fn_or_constructor_type(
118041        &mut self,
118042        node: TsFnOrConstructorType,
118043        __ast_path: &mut AstKindPath,
118044    ) -> TsFnOrConstructorType {
118045        match self {
118046            swc_visit::Either::Left(visitor) => {
118047                FoldAstPath::fold_ts_fn_or_constructor_type(visitor, node, __ast_path)
118048            }
118049            swc_visit::Either::Right(visitor) => {
118050                FoldAstPath::fold_ts_fn_or_constructor_type(visitor, node, __ast_path)
118051            }
118052        }
118053    }
118054
118055    #[inline]
118056    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
118057        match self {
118058            swc_visit::Either::Left(visitor) => {
118059                FoldAstPath::fold_ts_fn_param(visitor, node, __ast_path)
118060            }
118061            swc_visit::Either::Right(visitor) => {
118062                FoldAstPath::fold_ts_fn_param(visitor, node, __ast_path)
118063            }
118064        }
118065    }
118066
118067    #[inline]
118068    fn fold_ts_fn_params(
118069        &mut self,
118070        node: Vec<TsFnParam>,
118071        __ast_path: &mut AstKindPath,
118072    ) -> Vec<TsFnParam> {
118073        match self {
118074            swc_visit::Either::Left(visitor) => {
118075                FoldAstPath::fold_ts_fn_params(visitor, node, __ast_path)
118076            }
118077            swc_visit::Either::Right(visitor) => {
118078                FoldAstPath::fold_ts_fn_params(visitor, node, __ast_path)
118079            }
118080        }
118081    }
118082
118083    #[inline]
118084    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
118085        match self {
118086            swc_visit::Either::Left(visitor) => {
118087                FoldAstPath::fold_ts_fn_type(visitor, node, __ast_path)
118088            }
118089            swc_visit::Either::Right(visitor) => {
118090                FoldAstPath::fold_ts_fn_type(visitor, node, __ast_path)
118091            }
118092        }
118093    }
118094
118095    #[inline]
118096    fn fold_ts_getter_signature(
118097        &mut self,
118098        node: TsGetterSignature,
118099        __ast_path: &mut AstKindPath,
118100    ) -> TsGetterSignature {
118101        match self {
118102            swc_visit::Either::Left(visitor) => {
118103                FoldAstPath::fold_ts_getter_signature(visitor, node, __ast_path)
118104            }
118105            swc_visit::Either::Right(visitor) => {
118106                FoldAstPath::fold_ts_getter_signature(visitor, node, __ast_path)
118107            }
118108        }
118109    }
118110
118111    #[inline]
118112    fn fold_ts_import_equals_decl(
118113        &mut self,
118114        node: TsImportEqualsDecl,
118115        __ast_path: &mut AstKindPath,
118116    ) -> TsImportEqualsDecl {
118117        match self {
118118            swc_visit::Either::Left(visitor) => {
118119                FoldAstPath::fold_ts_import_equals_decl(visitor, node, __ast_path)
118120            }
118121            swc_visit::Either::Right(visitor) => {
118122                FoldAstPath::fold_ts_import_equals_decl(visitor, node, __ast_path)
118123            }
118124        }
118125    }
118126
118127    #[inline]
118128    fn fold_ts_import_type(
118129        &mut self,
118130        node: TsImportType,
118131        __ast_path: &mut AstKindPath,
118132    ) -> TsImportType {
118133        match self {
118134            swc_visit::Either::Left(visitor) => {
118135                FoldAstPath::fold_ts_import_type(visitor, node, __ast_path)
118136            }
118137            swc_visit::Either::Right(visitor) => {
118138                FoldAstPath::fold_ts_import_type(visitor, node, __ast_path)
118139            }
118140        }
118141    }
118142
118143    #[inline]
118144    fn fold_ts_index_signature(
118145        &mut self,
118146        node: TsIndexSignature,
118147        __ast_path: &mut AstKindPath,
118148    ) -> TsIndexSignature {
118149        match self {
118150            swc_visit::Either::Left(visitor) => {
118151                FoldAstPath::fold_ts_index_signature(visitor, node, __ast_path)
118152            }
118153            swc_visit::Either::Right(visitor) => {
118154                FoldAstPath::fold_ts_index_signature(visitor, node, __ast_path)
118155            }
118156        }
118157    }
118158
118159    #[inline]
118160    fn fold_ts_indexed_access_type(
118161        &mut self,
118162        node: TsIndexedAccessType,
118163        __ast_path: &mut AstKindPath,
118164    ) -> TsIndexedAccessType {
118165        match self {
118166            swc_visit::Either::Left(visitor) => {
118167                FoldAstPath::fold_ts_indexed_access_type(visitor, node, __ast_path)
118168            }
118169            swc_visit::Either::Right(visitor) => {
118170                FoldAstPath::fold_ts_indexed_access_type(visitor, node, __ast_path)
118171            }
118172        }
118173    }
118174
118175    #[inline]
118176    fn fold_ts_infer_type(
118177        &mut self,
118178        node: TsInferType,
118179        __ast_path: &mut AstKindPath,
118180    ) -> TsInferType {
118181        match self {
118182            swc_visit::Either::Left(visitor) => {
118183                FoldAstPath::fold_ts_infer_type(visitor, node, __ast_path)
118184            }
118185            swc_visit::Either::Right(visitor) => {
118186                FoldAstPath::fold_ts_infer_type(visitor, node, __ast_path)
118187            }
118188        }
118189    }
118190
118191    #[inline]
118192    fn fold_ts_instantiation(
118193        &mut self,
118194        node: TsInstantiation,
118195        __ast_path: &mut AstKindPath,
118196    ) -> TsInstantiation {
118197        match self {
118198            swc_visit::Either::Left(visitor) => {
118199                FoldAstPath::fold_ts_instantiation(visitor, node, __ast_path)
118200            }
118201            swc_visit::Either::Right(visitor) => {
118202                FoldAstPath::fold_ts_instantiation(visitor, node, __ast_path)
118203            }
118204        }
118205    }
118206
118207    #[inline]
118208    fn fold_ts_interface_body(
118209        &mut self,
118210        node: TsInterfaceBody,
118211        __ast_path: &mut AstKindPath,
118212    ) -> TsInterfaceBody {
118213        match self {
118214            swc_visit::Either::Left(visitor) => {
118215                FoldAstPath::fold_ts_interface_body(visitor, node, __ast_path)
118216            }
118217            swc_visit::Either::Right(visitor) => {
118218                FoldAstPath::fold_ts_interface_body(visitor, node, __ast_path)
118219            }
118220        }
118221    }
118222
118223    #[inline]
118224    fn fold_ts_interface_decl(
118225        &mut self,
118226        node: TsInterfaceDecl,
118227        __ast_path: &mut AstKindPath,
118228    ) -> TsInterfaceDecl {
118229        match self {
118230            swc_visit::Either::Left(visitor) => {
118231                FoldAstPath::fold_ts_interface_decl(visitor, node, __ast_path)
118232            }
118233            swc_visit::Either::Right(visitor) => {
118234                FoldAstPath::fold_ts_interface_decl(visitor, node, __ast_path)
118235            }
118236        }
118237    }
118238
118239    #[inline]
118240    fn fold_ts_intersection_type(
118241        &mut self,
118242        node: TsIntersectionType,
118243        __ast_path: &mut AstKindPath,
118244    ) -> TsIntersectionType {
118245        match self {
118246            swc_visit::Either::Left(visitor) => {
118247                FoldAstPath::fold_ts_intersection_type(visitor, node, __ast_path)
118248            }
118249            swc_visit::Either::Right(visitor) => {
118250                FoldAstPath::fold_ts_intersection_type(visitor, node, __ast_path)
118251            }
118252        }
118253    }
118254
118255    #[inline]
118256    fn fold_ts_keyword_type(
118257        &mut self,
118258        node: TsKeywordType,
118259        __ast_path: &mut AstKindPath,
118260    ) -> TsKeywordType {
118261        match self {
118262            swc_visit::Either::Left(visitor) => {
118263                FoldAstPath::fold_ts_keyword_type(visitor, node, __ast_path)
118264            }
118265            swc_visit::Either::Right(visitor) => {
118266                FoldAstPath::fold_ts_keyword_type(visitor, node, __ast_path)
118267            }
118268        }
118269    }
118270
118271    #[inline]
118272    fn fold_ts_keyword_type_kind(
118273        &mut self,
118274        node: TsKeywordTypeKind,
118275        __ast_path: &mut AstKindPath,
118276    ) -> TsKeywordTypeKind {
118277        match self {
118278            swc_visit::Either::Left(visitor) => {
118279                FoldAstPath::fold_ts_keyword_type_kind(visitor, node, __ast_path)
118280            }
118281            swc_visit::Either::Right(visitor) => {
118282                FoldAstPath::fold_ts_keyword_type_kind(visitor, node, __ast_path)
118283            }
118284        }
118285    }
118286
118287    #[inline]
118288    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
118289        match self {
118290            swc_visit::Either::Left(visitor) => FoldAstPath::fold_ts_lit(visitor, node, __ast_path),
118291            swc_visit::Either::Right(visitor) => {
118292                FoldAstPath::fold_ts_lit(visitor, node, __ast_path)
118293            }
118294        }
118295    }
118296
118297    #[inline]
118298    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
118299        match self {
118300            swc_visit::Either::Left(visitor) => {
118301                FoldAstPath::fold_ts_lit_type(visitor, node, __ast_path)
118302            }
118303            swc_visit::Either::Right(visitor) => {
118304                FoldAstPath::fold_ts_lit_type(visitor, node, __ast_path)
118305            }
118306        }
118307    }
118308
118309    #[inline]
118310    fn fold_ts_mapped_type(
118311        &mut self,
118312        node: TsMappedType,
118313        __ast_path: &mut AstKindPath,
118314    ) -> TsMappedType {
118315        match self {
118316            swc_visit::Either::Left(visitor) => {
118317                FoldAstPath::fold_ts_mapped_type(visitor, node, __ast_path)
118318            }
118319            swc_visit::Either::Right(visitor) => {
118320                FoldAstPath::fold_ts_mapped_type(visitor, node, __ast_path)
118321            }
118322        }
118323    }
118324
118325    #[inline]
118326    fn fold_ts_method_signature(
118327        &mut self,
118328        node: TsMethodSignature,
118329        __ast_path: &mut AstKindPath,
118330    ) -> TsMethodSignature {
118331        match self {
118332            swc_visit::Either::Left(visitor) => {
118333                FoldAstPath::fold_ts_method_signature(visitor, node, __ast_path)
118334            }
118335            swc_visit::Either::Right(visitor) => {
118336                FoldAstPath::fold_ts_method_signature(visitor, node, __ast_path)
118337            }
118338        }
118339    }
118340
118341    #[inline]
118342    fn fold_ts_module_block(
118343        &mut self,
118344        node: TsModuleBlock,
118345        __ast_path: &mut AstKindPath,
118346    ) -> TsModuleBlock {
118347        match self {
118348            swc_visit::Either::Left(visitor) => {
118349                FoldAstPath::fold_ts_module_block(visitor, node, __ast_path)
118350            }
118351            swc_visit::Either::Right(visitor) => {
118352                FoldAstPath::fold_ts_module_block(visitor, node, __ast_path)
118353            }
118354        }
118355    }
118356
118357    #[inline]
118358    fn fold_ts_module_decl(
118359        &mut self,
118360        node: TsModuleDecl,
118361        __ast_path: &mut AstKindPath,
118362    ) -> TsModuleDecl {
118363        match self {
118364            swc_visit::Either::Left(visitor) => {
118365                FoldAstPath::fold_ts_module_decl(visitor, node, __ast_path)
118366            }
118367            swc_visit::Either::Right(visitor) => {
118368                FoldAstPath::fold_ts_module_decl(visitor, node, __ast_path)
118369            }
118370        }
118371    }
118372
118373    #[inline]
118374    fn fold_ts_module_name(
118375        &mut self,
118376        node: TsModuleName,
118377        __ast_path: &mut AstKindPath,
118378    ) -> TsModuleName {
118379        match self {
118380            swc_visit::Either::Left(visitor) => {
118381                FoldAstPath::fold_ts_module_name(visitor, node, __ast_path)
118382            }
118383            swc_visit::Either::Right(visitor) => {
118384                FoldAstPath::fold_ts_module_name(visitor, node, __ast_path)
118385            }
118386        }
118387    }
118388
118389    #[inline]
118390    fn fold_ts_module_ref(
118391        &mut self,
118392        node: TsModuleRef,
118393        __ast_path: &mut AstKindPath,
118394    ) -> TsModuleRef {
118395        match self {
118396            swc_visit::Either::Left(visitor) => {
118397                FoldAstPath::fold_ts_module_ref(visitor, node, __ast_path)
118398            }
118399            swc_visit::Either::Right(visitor) => {
118400                FoldAstPath::fold_ts_module_ref(visitor, node, __ast_path)
118401            }
118402        }
118403    }
118404
118405    #[inline]
118406    fn fold_ts_namespace_body(
118407        &mut self,
118408        node: TsNamespaceBody,
118409        __ast_path: &mut AstKindPath,
118410    ) -> TsNamespaceBody {
118411        match self {
118412            swc_visit::Either::Left(visitor) => {
118413                FoldAstPath::fold_ts_namespace_body(visitor, node, __ast_path)
118414            }
118415            swc_visit::Either::Right(visitor) => {
118416                FoldAstPath::fold_ts_namespace_body(visitor, node, __ast_path)
118417            }
118418        }
118419    }
118420
118421    #[inline]
118422    fn fold_ts_namespace_decl(
118423        &mut self,
118424        node: TsNamespaceDecl,
118425        __ast_path: &mut AstKindPath,
118426    ) -> TsNamespaceDecl {
118427        match self {
118428            swc_visit::Either::Left(visitor) => {
118429                FoldAstPath::fold_ts_namespace_decl(visitor, node, __ast_path)
118430            }
118431            swc_visit::Either::Right(visitor) => {
118432                FoldAstPath::fold_ts_namespace_decl(visitor, node, __ast_path)
118433            }
118434        }
118435    }
118436
118437    #[inline]
118438    fn fold_ts_namespace_export_decl(
118439        &mut self,
118440        node: TsNamespaceExportDecl,
118441        __ast_path: &mut AstKindPath,
118442    ) -> TsNamespaceExportDecl {
118443        match self {
118444            swc_visit::Either::Left(visitor) => {
118445                FoldAstPath::fold_ts_namespace_export_decl(visitor, node, __ast_path)
118446            }
118447            swc_visit::Either::Right(visitor) => {
118448                FoldAstPath::fold_ts_namespace_export_decl(visitor, node, __ast_path)
118449            }
118450        }
118451    }
118452
118453    #[inline]
118454    fn fold_ts_non_null_expr(
118455        &mut self,
118456        node: TsNonNullExpr,
118457        __ast_path: &mut AstKindPath,
118458    ) -> TsNonNullExpr {
118459        match self {
118460            swc_visit::Either::Left(visitor) => {
118461                FoldAstPath::fold_ts_non_null_expr(visitor, node, __ast_path)
118462            }
118463            swc_visit::Either::Right(visitor) => {
118464                FoldAstPath::fold_ts_non_null_expr(visitor, node, __ast_path)
118465            }
118466        }
118467    }
118468
118469    #[inline]
118470    fn fold_ts_optional_type(
118471        &mut self,
118472        node: TsOptionalType,
118473        __ast_path: &mut AstKindPath,
118474    ) -> TsOptionalType {
118475        match self {
118476            swc_visit::Either::Left(visitor) => {
118477                FoldAstPath::fold_ts_optional_type(visitor, node, __ast_path)
118478            }
118479            swc_visit::Either::Right(visitor) => {
118480                FoldAstPath::fold_ts_optional_type(visitor, node, __ast_path)
118481            }
118482        }
118483    }
118484
118485    #[inline]
118486    fn fold_ts_param_prop(
118487        &mut self,
118488        node: TsParamProp,
118489        __ast_path: &mut AstKindPath,
118490    ) -> TsParamProp {
118491        match self {
118492            swc_visit::Either::Left(visitor) => {
118493                FoldAstPath::fold_ts_param_prop(visitor, node, __ast_path)
118494            }
118495            swc_visit::Either::Right(visitor) => {
118496                FoldAstPath::fold_ts_param_prop(visitor, node, __ast_path)
118497            }
118498        }
118499    }
118500
118501    #[inline]
118502    fn fold_ts_param_prop_param(
118503        &mut self,
118504        node: TsParamPropParam,
118505        __ast_path: &mut AstKindPath,
118506    ) -> TsParamPropParam {
118507        match self {
118508            swc_visit::Either::Left(visitor) => {
118509                FoldAstPath::fold_ts_param_prop_param(visitor, node, __ast_path)
118510            }
118511            swc_visit::Either::Right(visitor) => {
118512                FoldAstPath::fold_ts_param_prop_param(visitor, node, __ast_path)
118513            }
118514        }
118515    }
118516
118517    #[inline]
118518    fn fold_ts_parenthesized_type(
118519        &mut self,
118520        node: TsParenthesizedType,
118521        __ast_path: &mut AstKindPath,
118522    ) -> TsParenthesizedType {
118523        match self {
118524            swc_visit::Either::Left(visitor) => {
118525                FoldAstPath::fold_ts_parenthesized_type(visitor, node, __ast_path)
118526            }
118527            swc_visit::Either::Right(visitor) => {
118528                FoldAstPath::fold_ts_parenthesized_type(visitor, node, __ast_path)
118529            }
118530        }
118531    }
118532
118533    #[inline]
118534    fn fold_ts_property_signature(
118535        &mut self,
118536        node: TsPropertySignature,
118537        __ast_path: &mut AstKindPath,
118538    ) -> TsPropertySignature {
118539        match self {
118540            swc_visit::Either::Left(visitor) => {
118541                FoldAstPath::fold_ts_property_signature(visitor, node, __ast_path)
118542            }
118543            swc_visit::Either::Right(visitor) => {
118544                FoldAstPath::fold_ts_property_signature(visitor, node, __ast_path)
118545            }
118546        }
118547    }
118548
118549    #[inline]
118550    fn fold_ts_qualified_name(
118551        &mut self,
118552        node: TsQualifiedName,
118553        __ast_path: &mut AstKindPath,
118554    ) -> TsQualifiedName {
118555        match self {
118556            swc_visit::Either::Left(visitor) => {
118557                FoldAstPath::fold_ts_qualified_name(visitor, node, __ast_path)
118558            }
118559            swc_visit::Either::Right(visitor) => {
118560                FoldAstPath::fold_ts_qualified_name(visitor, node, __ast_path)
118561            }
118562        }
118563    }
118564
118565    #[inline]
118566    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
118567        match self {
118568            swc_visit::Either::Left(visitor) => {
118569                FoldAstPath::fold_ts_rest_type(visitor, node, __ast_path)
118570            }
118571            swc_visit::Either::Right(visitor) => {
118572                FoldAstPath::fold_ts_rest_type(visitor, node, __ast_path)
118573            }
118574        }
118575    }
118576
118577    #[inline]
118578    fn fold_ts_satisfies_expr(
118579        &mut self,
118580        node: TsSatisfiesExpr,
118581        __ast_path: &mut AstKindPath,
118582    ) -> TsSatisfiesExpr {
118583        match self {
118584            swc_visit::Either::Left(visitor) => {
118585                FoldAstPath::fold_ts_satisfies_expr(visitor, node, __ast_path)
118586            }
118587            swc_visit::Either::Right(visitor) => {
118588                FoldAstPath::fold_ts_satisfies_expr(visitor, node, __ast_path)
118589            }
118590        }
118591    }
118592
118593    #[inline]
118594    fn fold_ts_setter_signature(
118595        &mut self,
118596        node: TsSetterSignature,
118597        __ast_path: &mut AstKindPath,
118598    ) -> TsSetterSignature {
118599        match self {
118600            swc_visit::Either::Left(visitor) => {
118601                FoldAstPath::fold_ts_setter_signature(visitor, node, __ast_path)
118602            }
118603            swc_visit::Either::Right(visitor) => {
118604                FoldAstPath::fold_ts_setter_signature(visitor, node, __ast_path)
118605            }
118606        }
118607    }
118608
118609    #[inline]
118610    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
118611        match self {
118612            swc_visit::Either::Left(visitor) => {
118613                FoldAstPath::fold_ts_this_type(visitor, node, __ast_path)
118614            }
118615            swc_visit::Either::Right(visitor) => {
118616                FoldAstPath::fold_ts_this_type(visitor, node, __ast_path)
118617            }
118618        }
118619    }
118620
118621    #[inline]
118622    fn fold_ts_this_type_or_ident(
118623        &mut self,
118624        node: TsThisTypeOrIdent,
118625        __ast_path: &mut AstKindPath,
118626    ) -> TsThisTypeOrIdent {
118627        match self {
118628            swc_visit::Either::Left(visitor) => {
118629                FoldAstPath::fold_ts_this_type_or_ident(visitor, node, __ast_path)
118630            }
118631            swc_visit::Either::Right(visitor) => {
118632                FoldAstPath::fold_ts_this_type_or_ident(visitor, node, __ast_path)
118633            }
118634        }
118635    }
118636
118637    #[inline]
118638    fn fold_ts_tpl_lit_type(
118639        &mut self,
118640        node: TsTplLitType,
118641        __ast_path: &mut AstKindPath,
118642    ) -> TsTplLitType {
118643        match self {
118644            swc_visit::Either::Left(visitor) => {
118645                FoldAstPath::fold_ts_tpl_lit_type(visitor, node, __ast_path)
118646            }
118647            swc_visit::Either::Right(visitor) => {
118648                FoldAstPath::fold_ts_tpl_lit_type(visitor, node, __ast_path)
118649            }
118650        }
118651    }
118652
118653    #[inline]
118654    fn fold_ts_tuple_element(
118655        &mut self,
118656        node: TsTupleElement,
118657        __ast_path: &mut AstKindPath,
118658    ) -> TsTupleElement {
118659        match self {
118660            swc_visit::Either::Left(visitor) => {
118661                FoldAstPath::fold_ts_tuple_element(visitor, node, __ast_path)
118662            }
118663            swc_visit::Either::Right(visitor) => {
118664                FoldAstPath::fold_ts_tuple_element(visitor, node, __ast_path)
118665            }
118666        }
118667    }
118668
118669    #[inline]
118670    fn fold_ts_tuple_elements(
118671        &mut self,
118672        node: Vec<TsTupleElement>,
118673        __ast_path: &mut AstKindPath,
118674    ) -> Vec<TsTupleElement> {
118675        match self {
118676            swc_visit::Either::Left(visitor) => {
118677                FoldAstPath::fold_ts_tuple_elements(visitor, node, __ast_path)
118678            }
118679            swc_visit::Either::Right(visitor) => {
118680                FoldAstPath::fold_ts_tuple_elements(visitor, node, __ast_path)
118681            }
118682        }
118683    }
118684
118685    #[inline]
118686    fn fold_ts_tuple_type(
118687        &mut self,
118688        node: TsTupleType,
118689        __ast_path: &mut AstKindPath,
118690    ) -> TsTupleType {
118691        match self {
118692            swc_visit::Either::Left(visitor) => {
118693                FoldAstPath::fold_ts_tuple_type(visitor, node, __ast_path)
118694            }
118695            swc_visit::Either::Right(visitor) => {
118696                FoldAstPath::fold_ts_tuple_type(visitor, node, __ast_path)
118697            }
118698        }
118699    }
118700
118701    #[inline]
118702    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
118703        match self {
118704            swc_visit::Either::Left(visitor) => {
118705                FoldAstPath::fold_ts_type(visitor, node, __ast_path)
118706            }
118707            swc_visit::Either::Right(visitor) => {
118708                FoldAstPath::fold_ts_type(visitor, node, __ast_path)
118709            }
118710        }
118711    }
118712
118713    #[inline]
118714    fn fold_ts_type_alias_decl(
118715        &mut self,
118716        node: TsTypeAliasDecl,
118717        __ast_path: &mut AstKindPath,
118718    ) -> TsTypeAliasDecl {
118719        match self {
118720            swc_visit::Either::Left(visitor) => {
118721                FoldAstPath::fold_ts_type_alias_decl(visitor, node, __ast_path)
118722            }
118723            swc_visit::Either::Right(visitor) => {
118724                FoldAstPath::fold_ts_type_alias_decl(visitor, node, __ast_path)
118725            }
118726        }
118727    }
118728
118729    #[inline]
118730    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
118731        match self {
118732            swc_visit::Either::Left(visitor) => {
118733                FoldAstPath::fold_ts_type_ann(visitor, node, __ast_path)
118734            }
118735            swc_visit::Either::Right(visitor) => {
118736                FoldAstPath::fold_ts_type_ann(visitor, node, __ast_path)
118737            }
118738        }
118739    }
118740
118741    #[inline]
118742    fn fold_ts_type_assertion(
118743        &mut self,
118744        node: TsTypeAssertion,
118745        __ast_path: &mut AstKindPath,
118746    ) -> TsTypeAssertion {
118747        match self {
118748            swc_visit::Either::Left(visitor) => {
118749                FoldAstPath::fold_ts_type_assertion(visitor, node, __ast_path)
118750            }
118751            swc_visit::Either::Right(visitor) => {
118752                FoldAstPath::fold_ts_type_assertion(visitor, node, __ast_path)
118753            }
118754        }
118755    }
118756
118757    #[inline]
118758    fn fold_ts_type_element(
118759        &mut self,
118760        node: TsTypeElement,
118761        __ast_path: &mut AstKindPath,
118762    ) -> TsTypeElement {
118763        match self {
118764            swc_visit::Either::Left(visitor) => {
118765                FoldAstPath::fold_ts_type_element(visitor, node, __ast_path)
118766            }
118767            swc_visit::Either::Right(visitor) => {
118768                FoldAstPath::fold_ts_type_element(visitor, node, __ast_path)
118769            }
118770        }
118771    }
118772
118773    #[inline]
118774    fn fold_ts_type_elements(
118775        &mut self,
118776        node: Vec<TsTypeElement>,
118777        __ast_path: &mut AstKindPath,
118778    ) -> Vec<TsTypeElement> {
118779        match self {
118780            swc_visit::Either::Left(visitor) => {
118781                FoldAstPath::fold_ts_type_elements(visitor, node, __ast_path)
118782            }
118783            swc_visit::Either::Right(visitor) => {
118784                FoldAstPath::fold_ts_type_elements(visitor, node, __ast_path)
118785            }
118786        }
118787    }
118788
118789    #[inline]
118790    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
118791        match self {
118792            swc_visit::Either::Left(visitor) => {
118793                FoldAstPath::fold_ts_type_lit(visitor, node, __ast_path)
118794            }
118795            swc_visit::Either::Right(visitor) => {
118796                FoldAstPath::fold_ts_type_lit(visitor, node, __ast_path)
118797            }
118798        }
118799    }
118800
118801    #[inline]
118802    fn fold_ts_type_operator(
118803        &mut self,
118804        node: TsTypeOperator,
118805        __ast_path: &mut AstKindPath,
118806    ) -> TsTypeOperator {
118807        match self {
118808            swc_visit::Either::Left(visitor) => {
118809                FoldAstPath::fold_ts_type_operator(visitor, node, __ast_path)
118810            }
118811            swc_visit::Either::Right(visitor) => {
118812                FoldAstPath::fold_ts_type_operator(visitor, node, __ast_path)
118813            }
118814        }
118815    }
118816
118817    #[inline]
118818    fn fold_ts_type_operator_op(
118819        &mut self,
118820        node: TsTypeOperatorOp,
118821        __ast_path: &mut AstKindPath,
118822    ) -> TsTypeOperatorOp {
118823        match self {
118824            swc_visit::Either::Left(visitor) => {
118825                FoldAstPath::fold_ts_type_operator_op(visitor, node, __ast_path)
118826            }
118827            swc_visit::Either::Right(visitor) => {
118828                FoldAstPath::fold_ts_type_operator_op(visitor, node, __ast_path)
118829            }
118830        }
118831    }
118832
118833    #[inline]
118834    fn fold_ts_type_param(
118835        &mut self,
118836        node: TsTypeParam,
118837        __ast_path: &mut AstKindPath,
118838    ) -> TsTypeParam {
118839        match self {
118840            swc_visit::Either::Left(visitor) => {
118841                FoldAstPath::fold_ts_type_param(visitor, node, __ast_path)
118842            }
118843            swc_visit::Either::Right(visitor) => {
118844                FoldAstPath::fold_ts_type_param(visitor, node, __ast_path)
118845            }
118846        }
118847    }
118848
118849    #[inline]
118850    fn fold_ts_type_param_decl(
118851        &mut self,
118852        node: TsTypeParamDecl,
118853        __ast_path: &mut AstKindPath,
118854    ) -> TsTypeParamDecl {
118855        match self {
118856            swc_visit::Either::Left(visitor) => {
118857                FoldAstPath::fold_ts_type_param_decl(visitor, node, __ast_path)
118858            }
118859            swc_visit::Either::Right(visitor) => {
118860                FoldAstPath::fold_ts_type_param_decl(visitor, node, __ast_path)
118861            }
118862        }
118863    }
118864
118865    #[inline]
118866    fn fold_ts_type_param_instantiation(
118867        &mut self,
118868        node: TsTypeParamInstantiation,
118869        __ast_path: &mut AstKindPath,
118870    ) -> TsTypeParamInstantiation {
118871        match self {
118872            swc_visit::Either::Left(visitor) => {
118873                FoldAstPath::fold_ts_type_param_instantiation(visitor, node, __ast_path)
118874            }
118875            swc_visit::Either::Right(visitor) => {
118876                FoldAstPath::fold_ts_type_param_instantiation(visitor, node, __ast_path)
118877            }
118878        }
118879    }
118880
118881    #[inline]
118882    fn fold_ts_type_params(
118883        &mut self,
118884        node: Vec<TsTypeParam>,
118885        __ast_path: &mut AstKindPath,
118886    ) -> Vec<TsTypeParam> {
118887        match self {
118888            swc_visit::Either::Left(visitor) => {
118889                FoldAstPath::fold_ts_type_params(visitor, node, __ast_path)
118890            }
118891            swc_visit::Either::Right(visitor) => {
118892                FoldAstPath::fold_ts_type_params(visitor, node, __ast_path)
118893            }
118894        }
118895    }
118896
118897    #[inline]
118898    fn fold_ts_type_predicate(
118899        &mut self,
118900        node: TsTypePredicate,
118901        __ast_path: &mut AstKindPath,
118902    ) -> TsTypePredicate {
118903        match self {
118904            swc_visit::Either::Left(visitor) => {
118905                FoldAstPath::fold_ts_type_predicate(visitor, node, __ast_path)
118906            }
118907            swc_visit::Either::Right(visitor) => {
118908                FoldAstPath::fold_ts_type_predicate(visitor, node, __ast_path)
118909            }
118910        }
118911    }
118912
118913    #[inline]
118914    fn fold_ts_type_query(
118915        &mut self,
118916        node: TsTypeQuery,
118917        __ast_path: &mut AstKindPath,
118918    ) -> TsTypeQuery {
118919        match self {
118920            swc_visit::Either::Left(visitor) => {
118921                FoldAstPath::fold_ts_type_query(visitor, node, __ast_path)
118922            }
118923            swc_visit::Either::Right(visitor) => {
118924                FoldAstPath::fold_ts_type_query(visitor, node, __ast_path)
118925            }
118926        }
118927    }
118928
118929    #[inline]
118930    fn fold_ts_type_query_expr(
118931        &mut self,
118932        node: TsTypeQueryExpr,
118933        __ast_path: &mut AstKindPath,
118934    ) -> TsTypeQueryExpr {
118935        match self {
118936            swc_visit::Either::Left(visitor) => {
118937                FoldAstPath::fold_ts_type_query_expr(visitor, node, __ast_path)
118938            }
118939            swc_visit::Either::Right(visitor) => {
118940                FoldAstPath::fold_ts_type_query_expr(visitor, node, __ast_path)
118941            }
118942        }
118943    }
118944
118945    #[inline]
118946    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
118947        match self {
118948            swc_visit::Either::Left(visitor) => {
118949                FoldAstPath::fold_ts_type_ref(visitor, node, __ast_path)
118950            }
118951            swc_visit::Either::Right(visitor) => {
118952                FoldAstPath::fold_ts_type_ref(visitor, node, __ast_path)
118953            }
118954        }
118955    }
118956
118957    #[inline]
118958    fn fold_ts_types(
118959        &mut self,
118960        node: Vec<Box<TsType>>,
118961        __ast_path: &mut AstKindPath,
118962    ) -> Vec<Box<TsType>> {
118963        match self {
118964            swc_visit::Either::Left(visitor) => {
118965                FoldAstPath::fold_ts_types(visitor, node, __ast_path)
118966            }
118967            swc_visit::Either::Right(visitor) => {
118968                FoldAstPath::fold_ts_types(visitor, node, __ast_path)
118969            }
118970        }
118971    }
118972
118973    #[inline]
118974    fn fold_ts_union_or_intersection_type(
118975        &mut self,
118976        node: TsUnionOrIntersectionType,
118977        __ast_path: &mut AstKindPath,
118978    ) -> TsUnionOrIntersectionType {
118979        match self {
118980            swc_visit::Either::Left(visitor) => {
118981                FoldAstPath::fold_ts_union_or_intersection_type(visitor, node, __ast_path)
118982            }
118983            swc_visit::Either::Right(visitor) => {
118984                FoldAstPath::fold_ts_union_or_intersection_type(visitor, node, __ast_path)
118985            }
118986        }
118987    }
118988
118989    #[inline]
118990    fn fold_ts_union_type(
118991        &mut self,
118992        node: TsUnionType,
118993        __ast_path: &mut AstKindPath,
118994    ) -> TsUnionType {
118995        match self {
118996            swc_visit::Either::Left(visitor) => {
118997                FoldAstPath::fold_ts_union_type(visitor, node, __ast_path)
118998            }
118999            swc_visit::Either::Right(visitor) => {
119000                FoldAstPath::fold_ts_union_type(visitor, node, __ast_path)
119001            }
119002        }
119003    }
119004
119005    #[inline]
119006    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
119007        match self {
119008            swc_visit::Either::Left(visitor) => {
119009                FoldAstPath::fold_unary_expr(visitor, node, __ast_path)
119010            }
119011            swc_visit::Either::Right(visitor) => {
119012                FoldAstPath::fold_unary_expr(visitor, node, __ast_path)
119013            }
119014        }
119015    }
119016
119017    #[inline]
119018    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
119019        match self {
119020            swc_visit::Either::Left(visitor) => {
119021                FoldAstPath::fold_unary_op(visitor, node, __ast_path)
119022            }
119023            swc_visit::Either::Right(visitor) => {
119024                FoldAstPath::fold_unary_op(visitor, node, __ast_path)
119025            }
119026        }
119027    }
119028
119029    #[inline]
119030    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
119031        match self {
119032            swc_visit::Either::Left(visitor) => {
119033                FoldAstPath::fold_update_expr(visitor, node, __ast_path)
119034            }
119035            swc_visit::Either::Right(visitor) => {
119036                FoldAstPath::fold_update_expr(visitor, node, __ast_path)
119037            }
119038        }
119039    }
119040
119041    #[inline]
119042    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
119043        match self {
119044            swc_visit::Either::Left(visitor) => {
119045                FoldAstPath::fold_update_op(visitor, node, __ast_path)
119046            }
119047            swc_visit::Either::Right(visitor) => {
119048                FoldAstPath::fold_update_op(visitor, node, __ast_path)
119049            }
119050        }
119051    }
119052
119053    #[inline]
119054    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
119055        match self {
119056            swc_visit::Either::Left(visitor) => {
119057                FoldAstPath::fold_using_decl(visitor, node, __ast_path)
119058            }
119059            swc_visit::Either::Right(visitor) => {
119060                FoldAstPath::fold_using_decl(visitor, node, __ast_path)
119061            }
119062        }
119063    }
119064
119065    #[inline]
119066    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
119067        match self {
119068            swc_visit::Either::Left(visitor) => {
119069                FoldAstPath::fold_var_decl(visitor, node, __ast_path)
119070            }
119071            swc_visit::Either::Right(visitor) => {
119072                FoldAstPath::fold_var_decl(visitor, node, __ast_path)
119073            }
119074        }
119075    }
119076
119077    #[inline]
119078    fn fold_var_decl_kind(
119079        &mut self,
119080        node: VarDeclKind,
119081        __ast_path: &mut AstKindPath,
119082    ) -> VarDeclKind {
119083        match self {
119084            swc_visit::Either::Left(visitor) => {
119085                FoldAstPath::fold_var_decl_kind(visitor, node, __ast_path)
119086            }
119087            swc_visit::Either::Right(visitor) => {
119088                FoldAstPath::fold_var_decl_kind(visitor, node, __ast_path)
119089            }
119090        }
119091    }
119092
119093    #[inline]
119094    fn fold_var_decl_or_expr(
119095        &mut self,
119096        node: VarDeclOrExpr,
119097        __ast_path: &mut AstKindPath,
119098    ) -> VarDeclOrExpr {
119099        match self {
119100            swc_visit::Either::Left(visitor) => {
119101                FoldAstPath::fold_var_decl_or_expr(visitor, node, __ast_path)
119102            }
119103            swc_visit::Either::Right(visitor) => {
119104                FoldAstPath::fold_var_decl_or_expr(visitor, node, __ast_path)
119105            }
119106        }
119107    }
119108
119109    #[inline]
119110    fn fold_var_declarator(
119111        &mut self,
119112        node: VarDeclarator,
119113        __ast_path: &mut AstKindPath,
119114    ) -> VarDeclarator {
119115        match self {
119116            swc_visit::Either::Left(visitor) => {
119117                FoldAstPath::fold_var_declarator(visitor, node, __ast_path)
119118            }
119119            swc_visit::Either::Right(visitor) => {
119120                FoldAstPath::fold_var_declarator(visitor, node, __ast_path)
119121            }
119122        }
119123    }
119124
119125    #[inline]
119126    fn fold_var_declarators(
119127        &mut self,
119128        node: Vec<VarDeclarator>,
119129        __ast_path: &mut AstKindPath,
119130    ) -> Vec<VarDeclarator> {
119131        match self {
119132            swc_visit::Either::Left(visitor) => {
119133                FoldAstPath::fold_var_declarators(visitor, node, __ast_path)
119134            }
119135            swc_visit::Either::Right(visitor) => {
119136                FoldAstPath::fold_var_declarators(visitor, node, __ast_path)
119137            }
119138        }
119139    }
119140
119141    #[inline]
119142    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
119143        match self {
119144            swc_visit::Either::Left(visitor) => {
119145                FoldAstPath::fold_while_stmt(visitor, node, __ast_path)
119146            }
119147            swc_visit::Either::Right(visitor) => {
119148                FoldAstPath::fold_while_stmt(visitor, node, __ast_path)
119149            }
119150        }
119151    }
119152
119153    #[inline]
119154    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
119155        match self {
119156            swc_visit::Either::Left(visitor) => {
119157                FoldAstPath::fold_with_stmt(visitor, node, __ast_path)
119158            }
119159            swc_visit::Either::Right(visitor) => {
119160                FoldAstPath::fold_with_stmt(visitor, node, __ast_path)
119161            }
119162        }
119163    }
119164
119165    #[inline]
119166    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
119167        match self {
119168            swc_visit::Either::Left(visitor) => {
119169                FoldAstPath::fold_yield_expr(visitor, node, __ast_path)
119170            }
119171            swc_visit::Either::Right(visitor) => {
119172                FoldAstPath::fold_yield_expr(visitor, node, __ast_path)
119173            }
119174        }
119175    }
119176}
119177#[cfg(any(docsrs, feature = "path"))]
119178#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
119179impl<V> FoldAstPath for ::swc_visit::Optional<V>
119180where
119181    V: FoldAstPath,
119182{
119183    #[inline]
119184    fn fold_accessibility(
119185        &mut self,
119186        node: Accessibility,
119187        __ast_path: &mut AstKindPath,
119188    ) -> Accessibility {
119189        if self.enabled {
119190            <V as FoldAstPath>::fold_accessibility(&mut self.visitor, node, __ast_path)
119191        } else {
119192            node
119193        }
119194    }
119195
119196    #[inline]
119197    fn fold_array_lit(&mut self, node: ArrayLit, __ast_path: &mut AstKindPath) -> ArrayLit {
119198        if self.enabled {
119199            <V as FoldAstPath>::fold_array_lit(&mut self.visitor, node, __ast_path)
119200        } else {
119201            node
119202        }
119203    }
119204
119205    #[inline]
119206    fn fold_array_pat(&mut self, node: ArrayPat, __ast_path: &mut AstKindPath) -> ArrayPat {
119207        if self.enabled {
119208            <V as FoldAstPath>::fold_array_pat(&mut self.visitor, node, __ast_path)
119209        } else {
119210            node
119211        }
119212    }
119213
119214    #[inline]
119215    fn fold_arrow_expr(&mut self, node: ArrowExpr, __ast_path: &mut AstKindPath) -> ArrowExpr {
119216        if self.enabled {
119217            <V as FoldAstPath>::fold_arrow_expr(&mut self.visitor, node, __ast_path)
119218        } else {
119219            node
119220        }
119221    }
119222
119223    #[inline]
119224    fn fold_assign_expr(&mut self, node: AssignExpr, __ast_path: &mut AstKindPath) -> AssignExpr {
119225        if self.enabled {
119226            <V as FoldAstPath>::fold_assign_expr(&mut self.visitor, node, __ast_path)
119227        } else {
119228            node
119229        }
119230    }
119231
119232    #[inline]
119233    fn fold_assign_op(&mut self, node: AssignOp, __ast_path: &mut AstKindPath) -> AssignOp {
119234        if self.enabled {
119235            <V as FoldAstPath>::fold_assign_op(&mut self.visitor, node, __ast_path)
119236        } else {
119237            node
119238        }
119239    }
119240
119241    #[inline]
119242    fn fold_assign_pat(&mut self, node: AssignPat, __ast_path: &mut AstKindPath) -> AssignPat {
119243        if self.enabled {
119244            <V as FoldAstPath>::fold_assign_pat(&mut self.visitor, node, __ast_path)
119245        } else {
119246            node
119247        }
119248    }
119249
119250    #[inline]
119251    fn fold_assign_pat_prop(
119252        &mut self,
119253        node: AssignPatProp,
119254        __ast_path: &mut AstKindPath,
119255    ) -> AssignPatProp {
119256        if self.enabled {
119257            <V as FoldAstPath>::fold_assign_pat_prop(&mut self.visitor, node, __ast_path)
119258        } else {
119259            node
119260        }
119261    }
119262
119263    #[inline]
119264    fn fold_assign_prop(&mut self, node: AssignProp, __ast_path: &mut AstKindPath) -> AssignProp {
119265        if self.enabled {
119266            <V as FoldAstPath>::fold_assign_prop(&mut self.visitor, node, __ast_path)
119267        } else {
119268            node
119269        }
119270    }
119271
119272    #[inline]
119273    fn fold_assign_target(
119274        &mut self,
119275        node: AssignTarget,
119276        __ast_path: &mut AstKindPath,
119277    ) -> AssignTarget {
119278        if self.enabled {
119279            <V as FoldAstPath>::fold_assign_target(&mut self.visitor, node, __ast_path)
119280        } else {
119281            node
119282        }
119283    }
119284
119285    #[inline]
119286    fn fold_assign_target_pat(
119287        &mut self,
119288        node: AssignTargetPat,
119289        __ast_path: &mut AstKindPath,
119290    ) -> AssignTargetPat {
119291        if self.enabled {
119292            <V as FoldAstPath>::fold_assign_target_pat(&mut self.visitor, node, __ast_path)
119293        } else {
119294            node
119295        }
119296    }
119297
119298    #[inline]
119299    fn fold_atom(
119300        &mut self,
119301        node: swc_atoms::Atom,
119302        __ast_path: &mut AstKindPath,
119303    ) -> swc_atoms::Atom {
119304        if self.enabled {
119305            <V as FoldAstPath>::fold_atom(&mut self.visitor, node, __ast_path)
119306        } else {
119307            node
119308        }
119309    }
119310
119311    #[inline]
119312    fn fold_auto_accessor(
119313        &mut self,
119314        node: AutoAccessor,
119315        __ast_path: &mut AstKindPath,
119316    ) -> AutoAccessor {
119317        if self.enabled {
119318            <V as FoldAstPath>::fold_auto_accessor(&mut self.visitor, node, __ast_path)
119319        } else {
119320            node
119321        }
119322    }
119323
119324    #[inline]
119325    fn fold_await_expr(&mut self, node: AwaitExpr, __ast_path: &mut AstKindPath) -> AwaitExpr {
119326        if self.enabled {
119327            <V as FoldAstPath>::fold_await_expr(&mut self.visitor, node, __ast_path)
119328        } else {
119329            node
119330        }
119331    }
119332
119333    #[inline]
119334    fn fold_big_int(&mut self, node: BigInt, __ast_path: &mut AstKindPath) -> BigInt {
119335        if self.enabled {
119336            <V as FoldAstPath>::fold_big_int(&mut self.visitor, node, __ast_path)
119337        } else {
119338            node
119339        }
119340    }
119341
119342    #[inline]
119343    fn fold_big_int_value(
119344        &mut self,
119345        node: BigIntValue,
119346        __ast_path: &mut AstKindPath,
119347    ) -> BigIntValue {
119348        if self.enabled {
119349            <V as FoldAstPath>::fold_big_int_value(&mut self.visitor, node, __ast_path)
119350        } else {
119351            node
119352        }
119353    }
119354
119355    #[inline]
119356    fn fold_bin_expr(&mut self, node: BinExpr, __ast_path: &mut AstKindPath) -> BinExpr {
119357        if self.enabled {
119358            <V as FoldAstPath>::fold_bin_expr(&mut self.visitor, node, __ast_path)
119359        } else {
119360            node
119361        }
119362    }
119363
119364    #[inline]
119365    fn fold_binary_op(&mut self, node: BinaryOp, __ast_path: &mut AstKindPath) -> BinaryOp {
119366        if self.enabled {
119367            <V as FoldAstPath>::fold_binary_op(&mut self.visitor, node, __ast_path)
119368        } else {
119369            node
119370        }
119371    }
119372
119373    #[inline]
119374    fn fold_binding_ident(
119375        &mut self,
119376        node: BindingIdent,
119377        __ast_path: &mut AstKindPath,
119378    ) -> BindingIdent {
119379        if self.enabled {
119380            <V as FoldAstPath>::fold_binding_ident(&mut self.visitor, node, __ast_path)
119381        } else {
119382            node
119383        }
119384    }
119385
119386    #[inline]
119387    fn fold_block_stmt(&mut self, node: BlockStmt, __ast_path: &mut AstKindPath) -> BlockStmt {
119388        if self.enabled {
119389            <V as FoldAstPath>::fold_block_stmt(&mut self.visitor, node, __ast_path)
119390        } else {
119391            node
119392        }
119393    }
119394
119395    #[inline]
119396    fn fold_block_stmt_or_expr(
119397        &mut self,
119398        node: BlockStmtOrExpr,
119399        __ast_path: &mut AstKindPath,
119400    ) -> BlockStmtOrExpr {
119401        if self.enabled {
119402            <V as FoldAstPath>::fold_block_stmt_or_expr(&mut self.visitor, node, __ast_path)
119403        } else {
119404            node
119405        }
119406    }
119407
119408    #[inline]
119409    fn fold_bool(&mut self, node: Bool, __ast_path: &mut AstKindPath) -> Bool {
119410        if self.enabled {
119411            <V as FoldAstPath>::fold_bool(&mut self.visitor, node, __ast_path)
119412        } else {
119413            node
119414        }
119415    }
119416
119417    #[inline]
119418    fn fold_break_stmt(&mut self, node: BreakStmt, __ast_path: &mut AstKindPath) -> BreakStmt {
119419        if self.enabled {
119420            <V as FoldAstPath>::fold_break_stmt(&mut self.visitor, node, __ast_path)
119421        } else {
119422            node
119423        }
119424    }
119425
119426    #[inline]
119427    fn fold_call_expr(&mut self, node: CallExpr, __ast_path: &mut AstKindPath) -> CallExpr {
119428        if self.enabled {
119429            <V as FoldAstPath>::fold_call_expr(&mut self.visitor, node, __ast_path)
119430        } else {
119431            node
119432        }
119433    }
119434
119435    #[inline]
119436    fn fold_callee(&mut self, node: Callee, __ast_path: &mut AstKindPath) -> Callee {
119437        if self.enabled {
119438            <V as FoldAstPath>::fold_callee(&mut self.visitor, node, __ast_path)
119439        } else {
119440            node
119441        }
119442    }
119443
119444    #[inline]
119445    fn fold_catch_clause(
119446        &mut self,
119447        node: CatchClause,
119448        __ast_path: &mut AstKindPath,
119449    ) -> CatchClause {
119450        if self.enabled {
119451            <V as FoldAstPath>::fold_catch_clause(&mut self.visitor, node, __ast_path)
119452        } else {
119453            node
119454        }
119455    }
119456
119457    #[inline]
119458    fn fold_class(&mut self, node: Class, __ast_path: &mut AstKindPath) -> Class {
119459        if self.enabled {
119460            <V as FoldAstPath>::fold_class(&mut self.visitor, node, __ast_path)
119461        } else {
119462            node
119463        }
119464    }
119465
119466    #[inline]
119467    fn fold_class_decl(&mut self, node: ClassDecl, __ast_path: &mut AstKindPath) -> ClassDecl {
119468        if self.enabled {
119469            <V as FoldAstPath>::fold_class_decl(&mut self.visitor, node, __ast_path)
119470        } else {
119471            node
119472        }
119473    }
119474
119475    #[inline]
119476    fn fold_class_expr(&mut self, node: ClassExpr, __ast_path: &mut AstKindPath) -> ClassExpr {
119477        if self.enabled {
119478            <V as FoldAstPath>::fold_class_expr(&mut self.visitor, node, __ast_path)
119479        } else {
119480            node
119481        }
119482    }
119483
119484    #[inline]
119485    fn fold_class_member(
119486        &mut self,
119487        node: ClassMember,
119488        __ast_path: &mut AstKindPath,
119489    ) -> ClassMember {
119490        if self.enabled {
119491            <V as FoldAstPath>::fold_class_member(&mut self.visitor, node, __ast_path)
119492        } else {
119493            node
119494        }
119495    }
119496
119497    #[inline]
119498    fn fold_class_members(
119499        &mut self,
119500        node: Vec<ClassMember>,
119501        __ast_path: &mut AstKindPath,
119502    ) -> Vec<ClassMember> {
119503        if self.enabled {
119504            <V as FoldAstPath>::fold_class_members(&mut self.visitor, node, __ast_path)
119505        } else {
119506            node
119507        }
119508    }
119509
119510    #[inline]
119511    fn fold_class_method(
119512        &mut self,
119513        node: ClassMethod,
119514        __ast_path: &mut AstKindPath,
119515    ) -> ClassMethod {
119516        if self.enabled {
119517            <V as FoldAstPath>::fold_class_method(&mut self.visitor, node, __ast_path)
119518        } else {
119519            node
119520        }
119521    }
119522
119523    #[inline]
119524    fn fold_class_prop(&mut self, node: ClassProp, __ast_path: &mut AstKindPath) -> ClassProp {
119525        if self.enabled {
119526            <V as FoldAstPath>::fold_class_prop(&mut self.visitor, node, __ast_path)
119527        } else {
119528            node
119529        }
119530    }
119531
119532    #[inline]
119533    fn fold_computed_prop_name(
119534        &mut self,
119535        node: ComputedPropName,
119536        __ast_path: &mut AstKindPath,
119537    ) -> ComputedPropName {
119538        if self.enabled {
119539            <V as FoldAstPath>::fold_computed_prop_name(&mut self.visitor, node, __ast_path)
119540        } else {
119541            node
119542        }
119543    }
119544
119545    #[inline]
119546    fn fold_cond_expr(&mut self, node: CondExpr, __ast_path: &mut AstKindPath) -> CondExpr {
119547        if self.enabled {
119548            <V as FoldAstPath>::fold_cond_expr(&mut self.visitor, node, __ast_path)
119549        } else {
119550            node
119551        }
119552    }
119553
119554    #[inline]
119555    fn fold_constructor(&mut self, node: Constructor, __ast_path: &mut AstKindPath) -> Constructor {
119556        if self.enabled {
119557            <V as FoldAstPath>::fold_constructor(&mut self.visitor, node, __ast_path)
119558        } else {
119559            node
119560        }
119561    }
119562
119563    #[inline]
119564    fn fold_continue_stmt(
119565        &mut self,
119566        node: ContinueStmt,
119567        __ast_path: &mut AstKindPath,
119568    ) -> ContinueStmt {
119569        if self.enabled {
119570            <V as FoldAstPath>::fold_continue_stmt(&mut self.visitor, node, __ast_path)
119571        } else {
119572            node
119573        }
119574    }
119575
119576    #[inline]
119577    fn fold_debugger_stmt(
119578        &mut self,
119579        node: DebuggerStmt,
119580        __ast_path: &mut AstKindPath,
119581    ) -> DebuggerStmt {
119582        if self.enabled {
119583            <V as FoldAstPath>::fold_debugger_stmt(&mut self.visitor, node, __ast_path)
119584        } else {
119585            node
119586        }
119587    }
119588
119589    #[inline]
119590    fn fold_decl(&mut self, node: Decl, __ast_path: &mut AstKindPath) -> Decl {
119591        if self.enabled {
119592            <V as FoldAstPath>::fold_decl(&mut self.visitor, node, __ast_path)
119593        } else {
119594            node
119595        }
119596    }
119597
119598    #[inline]
119599    fn fold_decorator(&mut self, node: Decorator, __ast_path: &mut AstKindPath) -> Decorator {
119600        if self.enabled {
119601            <V as FoldAstPath>::fold_decorator(&mut self.visitor, node, __ast_path)
119602        } else {
119603            node
119604        }
119605    }
119606
119607    #[inline]
119608    fn fold_decorators(
119609        &mut self,
119610        node: Vec<Decorator>,
119611        __ast_path: &mut AstKindPath,
119612    ) -> Vec<Decorator> {
119613        if self.enabled {
119614            <V as FoldAstPath>::fold_decorators(&mut self.visitor, node, __ast_path)
119615        } else {
119616            node
119617        }
119618    }
119619
119620    #[inline]
119621    fn fold_default_decl(
119622        &mut self,
119623        node: DefaultDecl,
119624        __ast_path: &mut AstKindPath,
119625    ) -> DefaultDecl {
119626        if self.enabled {
119627            <V as FoldAstPath>::fold_default_decl(&mut self.visitor, node, __ast_path)
119628        } else {
119629            node
119630        }
119631    }
119632
119633    #[inline]
119634    fn fold_do_while_stmt(
119635        &mut self,
119636        node: DoWhileStmt,
119637        __ast_path: &mut AstKindPath,
119638    ) -> DoWhileStmt {
119639        if self.enabled {
119640            <V as FoldAstPath>::fold_do_while_stmt(&mut self.visitor, node, __ast_path)
119641        } else {
119642            node
119643        }
119644    }
119645
119646    #[inline]
119647    fn fold_empty_stmt(&mut self, node: EmptyStmt, __ast_path: &mut AstKindPath) -> EmptyStmt {
119648        if self.enabled {
119649            <V as FoldAstPath>::fold_empty_stmt(&mut self.visitor, node, __ast_path)
119650        } else {
119651            node
119652        }
119653    }
119654
119655    #[inline]
119656    fn fold_export_all(&mut self, node: ExportAll, __ast_path: &mut AstKindPath) -> ExportAll {
119657        if self.enabled {
119658            <V as FoldAstPath>::fold_export_all(&mut self.visitor, node, __ast_path)
119659        } else {
119660            node
119661        }
119662    }
119663
119664    #[inline]
119665    fn fold_export_decl(&mut self, node: ExportDecl, __ast_path: &mut AstKindPath) -> ExportDecl {
119666        if self.enabled {
119667            <V as FoldAstPath>::fold_export_decl(&mut self.visitor, node, __ast_path)
119668        } else {
119669            node
119670        }
119671    }
119672
119673    #[inline]
119674    fn fold_export_default_decl(
119675        &mut self,
119676        node: ExportDefaultDecl,
119677        __ast_path: &mut AstKindPath,
119678    ) -> ExportDefaultDecl {
119679        if self.enabled {
119680            <V as FoldAstPath>::fold_export_default_decl(&mut self.visitor, node, __ast_path)
119681        } else {
119682            node
119683        }
119684    }
119685
119686    #[inline]
119687    fn fold_export_default_expr(
119688        &mut self,
119689        node: ExportDefaultExpr,
119690        __ast_path: &mut AstKindPath,
119691    ) -> ExportDefaultExpr {
119692        if self.enabled {
119693            <V as FoldAstPath>::fold_export_default_expr(&mut self.visitor, node, __ast_path)
119694        } else {
119695            node
119696        }
119697    }
119698
119699    #[inline]
119700    fn fold_export_default_specifier(
119701        &mut self,
119702        node: ExportDefaultSpecifier,
119703        __ast_path: &mut AstKindPath,
119704    ) -> ExportDefaultSpecifier {
119705        if self.enabled {
119706            <V as FoldAstPath>::fold_export_default_specifier(&mut self.visitor, node, __ast_path)
119707        } else {
119708            node
119709        }
119710    }
119711
119712    #[inline]
119713    fn fold_export_named_specifier(
119714        &mut self,
119715        node: ExportNamedSpecifier,
119716        __ast_path: &mut AstKindPath,
119717    ) -> ExportNamedSpecifier {
119718        if self.enabled {
119719            <V as FoldAstPath>::fold_export_named_specifier(&mut self.visitor, node, __ast_path)
119720        } else {
119721            node
119722        }
119723    }
119724
119725    #[inline]
119726    fn fold_export_namespace_specifier(
119727        &mut self,
119728        node: ExportNamespaceSpecifier,
119729        __ast_path: &mut AstKindPath,
119730    ) -> ExportNamespaceSpecifier {
119731        if self.enabled {
119732            <V as FoldAstPath>::fold_export_namespace_specifier(&mut self.visitor, node, __ast_path)
119733        } else {
119734            node
119735        }
119736    }
119737
119738    #[inline]
119739    fn fold_export_specifier(
119740        &mut self,
119741        node: ExportSpecifier,
119742        __ast_path: &mut AstKindPath,
119743    ) -> ExportSpecifier {
119744        if self.enabled {
119745            <V as FoldAstPath>::fold_export_specifier(&mut self.visitor, node, __ast_path)
119746        } else {
119747            node
119748        }
119749    }
119750
119751    #[inline]
119752    fn fold_export_specifiers(
119753        &mut self,
119754        node: Vec<ExportSpecifier>,
119755        __ast_path: &mut AstKindPath,
119756    ) -> Vec<ExportSpecifier> {
119757        if self.enabled {
119758            <V as FoldAstPath>::fold_export_specifiers(&mut self.visitor, node, __ast_path)
119759        } else {
119760            node
119761        }
119762    }
119763
119764    #[inline]
119765    fn fold_expr(&mut self, node: Expr, __ast_path: &mut AstKindPath) -> Expr {
119766        if self.enabled {
119767            <V as FoldAstPath>::fold_expr(&mut self.visitor, node, __ast_path)
119768        } else {
119769            node
119770        }
119771    }
119772
119773    #[inline]
119774    fn fold_expr_or_spread(
119775        &mut self,
119776        node: ExprOrSpread,
119777        __ast_path: &mut AstKindPath,
119778    ) -> ExprOrSpread {
119779        if self.enabled {
119780            <V as FoldAstPath>::fold_expr_or_spread(&mut self.visitor, node, __ast_path)
119781        } else {
119782            node
119783        }
119784    }
119785
119786    #[inline]
119787    fn fold_expr_or_spreads(
119788        &mut self,
119789        node: Vec<ExprOrSpread>,
119790        __ast_path: &mut AstKindPath,
119791    ) -> Vec<ExprOrSpread> {
119792        if self.enabled {
119793            <V as FoldAstPath>::fold_expr_or_spreads(&mut self.visitor, node, __ast_path)
119794        } else {
119795            node
119796        }
119797    }
119798
119799    #[inline]
119800    fn fold_expr_stmt(&mut self, node: ExprStmt, __ast_path: &mut AstKindPath) -> ExprStmt {
119801        if self.enabled {
119802            <V as FoldAstPath>::fold_expr_stmt(&mut self.visitor, node, __ast_path)
119803        } else {
119804            node
119805        }
119806    }
119807
119808    #[inline]
119809    fn fold_exprs(&mut self, node: Vec<Box<Expr>>, __ast_path: &mut AstKindPath) -> Vec<Box<Expr>> {
119810        if self.enabled {
119811            <V as FoldAstPath>::fold_exprs(&mut self.visitor, node, __ast_path)
119812        } else {
119813            node
119814        }
119815    }
119816
119817    #[inline]
119818    fn fold_fn_decl(&mut self, node: FnDecl, __ast_path: &mut AstKindPath) -> FnDecl {
119819        if self.enabled {
119820            <V as FoldAstPath>::fold_fn_decl(&mut self.visitor, node, __ast_path)
119821        } else {
119822            node
119823        }
119824    }
119825
119826    #[inline]
119827    fn fold_fn_expr(&mut self, node: FnExpr, __ast_path: &mut AstKindPath) -> FnExpr {
119828        if self.enabled {
119829            <V as FoldAstPath>::fold_fn_expr(&mut self.visitor, node, __ast_path)
119830        } else {
119831            node
119832        }
119833    }
119834
119835    #[inline]
119836    fn fold_for_head(&mut self, node: ForHead, __ast_path: &mut AstKindPath) -> ForHead {
119837        if self.enabled {
119838            <V as FoldAstPath>::fold_for_head(&mut self.visitor, node, __ast_path)
119839        } else {
119840            node
119841        }
119842    }
119843
119844    #[inline]
119845    fn fold_for_in_stmt(&mut self, node: ForInStmt, __ast_path: &mut AstKindPath) -> ForInStmt {
119846        if self.enabled {
119847            <V as FoldAstPath>::fold_for_in_stmt(&mut self.visitor, node, __ast_path)
119848        } else {
119849            node
119850        }
119851    }
119852
119853    #[inline]
119854    fn fold_for_of_stmt(&mut self, node: ForOfStmt, __ast_path: &mut AstKindPath) -> ForOfStmt {
119855        if self.enabled {
119856            <V as FoldAstPath>::fold_for_of_stmt(&mut self.visitor, node, __ast_path)
119857        } else {
119858            node
119859        }
119860    }
119861
119862    #[inline]
119863    fn fold_for_stmt(&mut self, node: ForStmt, __ast_path: &mut AstKindPath) -> ForStmt {
119864        if self.enabled {
119865            <V as FoldAstPath>::fold_for_stmt(&mut self.visitor, node, __ast_path)
119866        } else {
119867            node
119868        }
119869    }
119870
119871    #[inline]
119872    fn fold_function(&mut self, node: Function, __ast_path: &mut AstKindPath) -> Function {
119873        if self.enabled {
119874            <V as FoldAstPath>::fold_function(&mut self.visitor, node, __ast_path)
119875        } else {
119876            node
119877        }
119878    }
119879
119880    #[inline]
119881    fn fold_getter_prop(&mut self, node: GetterProp, __ast_path: &mut AstKindPath) -> GetterProp {
119882        if self.enabled {
119883            <V as FoldAstPath>::fold_getter_prop(&mut self.visitor, node, __ast_path)
119884        } else {
119885            node
119886        }
119887    }
119888
119889    #[inline]
119890    fn fold_ident(&mut self, node: Ident, __ast_path: &mut AstKindPath) -> Ident {
119891        if self.enabled {
119892            <V as FoldAstPath>::fold_ident(&mut self.visitor, node, __ast_path)
119893        } else {
119894            node
119895        }
119896    }
119897
119898    #[inline]
119899    fn fold_ident_name(&mut self, node: IdentName, __ast_path: &mut AstKindPath) -> IdentName {
119900        if self.enabled {
119901            <V as FoldAstPath>::fold_ident_name(&mut self.visitor, node, __ast_path)
119902        } else {
119903            node
119904        }
119905    }
119906
119907    #[inline]
119908    fn fold_if_stmt(&mut self, node: IfStmt, __ast_path: &mut AstKindPath) -> IfStmt {
119909        if self.enabled {
119910            <V as FoldAstPath>::fold_if_stmt(&mut self.visitor, node, __ast_path)
119911        } else {
119912            node
119913        }
119914    }
119915
119916    #[inline]
119917    fn fold_import(&mut self, node: Import, __ast_path: &mut AstKindPath) -> Import {
119918        if self.enabled {
119919            <V as FoldAstPath>::fold_import(&mut self.visitor, node, __ast_path)
119920        } else {
119921            node
119922        }
119923    }
119924
119925    #[inline]
119926    fn fold_import_decl(&mut self, node: ImportDecl, __ast_path: &mut AstKindPath) -> ImportDecl {
119927        if self.enabled {
119928            <V as FoldAstPath>::fold_import_decl(&mut self.visitor, node, __ast_path)
119929        } else {
119930            node
119931        }
119932    }
119933
119934    #[inline]
119935    fn fold_import_default_specifier(
119936        &mut self,
119937        node: ImportDefaultSpecifier,
119938        __ast_path: &mut AstKindPath,
119939    ) -> ImportDefaultSpecifier {
119940        if self.enabled {
119941            <V as FoldAstPath>::fold_import_default_specifier(&mut self.visitor, node, __ast_path)
119942        } else {
119943            node
119944        }
119945    }
119946
119947    #[inline]
119948    fn fold_import_named_specifier(
119949        &mut self,
119950        node: ImportNamedSpecifier,
119951        __ast_path: &mut AstKindPath,
119952    ) -> ImportNamedSpecifier {
119953        if self.enabled {
119954            <V as FoldAstPath>::fold_import_named_specifier(&mut self.visitor, node, __ast_path)
119955        } else {
119956            node
119957        }
119958    }
119959
119960    #[inline]
119961    fn fold_import_phase(
119962        &mut self,
119963        node: ImportPhase,
119964        __ast_path: &mut AstKindPath,
119965    ) -> ImportPhase {
119966        if self.enabled {
119967            <V as FoldAstPath>::fold_import_phase(&mut self.visitor, node, __ast_path)
119968        } else {
119969            node
119970        }
119971    }
119972
119973    #[inline]
119974    fn fold_import_specifier(
119975        &mut self,
119976        node: ImportSpecifier,
119977        __ast_path: &mut AstKindPath,
119978    ) -> ImportSpecifier {
119979        if self.enabled {
119980            <V as FoldAstPath>::fold_import_specifier(&mut self.visitor, node, __ast_path)
119981        } else {
119982            node
119983        }
119984    }
119985
119986    #[inline]
119987    fn fold_import_specifiers(
119988        &mut self,
119989        node: Vec<ImportSpecifier>,
119990        __ast_path: &mut AstKindPath,
119991    ) -> Vec<ImportSpecifier> {
119992        if self.enabled {
119993            <V as FoldAstPath>::fold_import_specifiers(&mut self.visitor, node, __ast_path)
119994        } else {
119995            node
119996        }
119997    }
119998
119999    #[inline]
120000    fn fold_import_star_as_specifier(
120001        &mut self,
120002        node: ImportStarAsSpecifier,
120003        __ast_path: &mut AstKindPath,
120004    ) -> ImportStarAsSpecifier {
120005        if self.enabled {
120006            <V as FoldAstPath>::fold_import_star_as_specifier(&mut self.visitor, node, __ast_path)
120007        } else {
120008            node
120009        }
120010    }
120011
120012    #[inline]
120013    fn fold_import_with(&mut self, node: ImportWith, __ast_path: &mut AstKindPath) -> ImportWith {
120014        if self.enabled {
120015            <V as FoldAstPath>::fold_import_with(&mut self.visitor, node, __ast_path)
120016        } else {
120017            node
120018        }
120019    }
120020
120021    #[inline]
120022    fn fold_import_with_item(
120023        &mut self,
120024        node: ImportWithItem,
120025        __ast_path: &mut AstKindPath,
120026    ) -> ImportWithItem {
120027        if self.enabled {
120028            <V as FoldAstPath>::fold_import_with_item(&mut self.visitor, node, __ast_path)
120029        } else {
120030            node
120031        }
120032    }
120033
120034    #[inline]
120035    fn fold_import_with_items(
120036        &mut self,
120037        node: Vec<ImportWithItem>,
120038        __ast_path: &mut AstKindPath,
120039    ) -> Vec<ImportWithItem> {
120040        if self.enabled {
120041            <V as FoldAstPath>::fold_import_with_items(&mut self.visitor, node, __ast_path)
120042        } else {
120043            node
120044        }
120045    }
120046
120047    #[inline]
120048    fn fold_invalid(&mut self, node: Invalid, __ast_path: &mut AstKindPath) -> Invalid {
120049        if self.enabled {
120050            <V as FoldAstPath>::fold_invalid(&mut self.visitor, node, __ast_path)
120051        } else {
120052            node
120053        }
120054    }
120055
120056    #[inline]
120057    fn fold_jsx_attr(&mut self, node: JSXAttr, __ast_path: &mut AstKindPath) -> JSXAttr {
120058        if self.enabled {
120059            <V as FoldAstPath>::fold_jsx_attr(&mut self.visitor, node, __ast_path)
120060        } else {
120061            node
120062        }
120063    }
120064
120065    #[inline]
120066    fn fold_jsx_attr_name(
120067        &mut self,
120068        node: JSXAttrName,
120069        __ast_path: &mut AstKindPath,
120070    ) -> JSXAttrName {
120071        if self.enabled {
120072            <V as FoldAstPath>::fold_jsx_attr_name(&mut self.visitor, node, __ast_path)
120073        } else {
120074            node
120075        }
120076    }
120077
120078    #[inline]
120079    fn fold_jsx_attr_or_spread(
120080        &mut self,
120081        node: JSXAttrOrSpread,
120082        __ast_path: &mut AstKindPath,
120083    ) -> JSXAttrOrSpread {
120084        if self.enabled {
120085            <V as FoldAstPath>::fold_jsx_attr_or_spread(&mut self.visitor, node, __ast_path)
120086        } else {
120087            node
120088        }
120089    }
120090
120091    #[inline]
120092    fn fold_jsx_attr_or_spreads(
120093        &mut self,
120094        node: Vec<JSXAttrOrSpread>,
120095        __ast_path: &mut AstKindPath,
120096    ) -> Vec<JSXAttrOrSpread> {
120097        if self.enabled {
120098            <V as FoldAstPath>::fold_jsx_attr_or_spreads(&mut self.visitor, node, __ast_path)
120099        } else {
120100            node
120101        }
120102    }
120103
120104    #[inline]
120105    fn fold_jsx_attr_value(
120106        &mut self,
120107        node: JSXAttrValue,
120108        __ast_path: &mut AstKindPath,
120109    ) -> JSXAttrValue {
120110        if self.enabled {
120111            <V as FoldAstPath>::fold_jsx_attr_value(&mut self.visitor, node, __ast_path)
120112        } else {
120113            node
120114        }
120115    }
120116
120117    #[inline]
120118    fn fold_jsx_closing_element(
120119        &mut self,
120120        node: JSXClosingElement,
120121        __ast_path: &mut AstKindPath,
120122    ) -> JSXClosingElement {
120123        if self.enabled {
120124            <V as FoldAstPath>::fold_jsx_closing_element(&mut self.visitor, node, __ast_path)
120125        } else {
120126            node
120127        }
120128    }
120129
120130    #[inline]
120131    fn fold_jsx_closing_fragment(
120132        &mut self,
120133        node: JSXClosingFragment,
120134        __ast_path: &mut AstKindPath,
120135    ) -> JSXClosingFragment {
120136        if self.enabled {
120137            <V as FoldAstPath>::fold_jsx_closing_fragment(&mut self.visitor, node, __ast_path)
120138        } else {
120139            node
120140        }
120141    }
120142
120143    #[inline]
120144    fn fold_jsx_element(&mut self, node: JSXElement, __ast_path: &mut AstKindPath) -> JSXElement {
120145        if self.enabled {
120146            <V as FoldAstPath>::fold_jsx_element(&mut self.visitor, node, __ast_path)
120147        } else {
120148            node
120149        }
120150    }
120151
120152    #[inline]
120153    fn fold_jsx_element_child(
120154        &mut self,
120155        node: JSXElementChild,
120156        __ast_path: &mut AstKindPath,
120157    ) -> JSXElementChild {
120158        if self.enabled {
120159            <V as FoldAstPath>::fold_jsx_element_child(&mut self.visitor, node, __ast_path)
120160        } else {
120161            node
120162        }
120163    }
120164
120165    #[inline]
120166    fn fold_jsx_element_childs(
120167        &mut self,
120168        node: Vec<JSXElementChild>,
120169        __ast_path: &mut AstKindPath,
120170    ) -> Vec<JSXElementChild> {
120171        if self.enabled {
120172            <V as FoldAstPath>::fold_jsx_element_childs(&mut self.visitor, node, __ast_path)
120173        } else {
120174            node
120175        }
120176    }
120177
120178    #[inline]
120179    fn fold_jsx_element_name(
120180        &mut self,
120181        node: JSXElementName,
120182        __ast_path: &mut AstKindPath,
120183    ) -> JSXElementName {
120184        if self.enabled {
120185            <V as FoldAstPath>::fold_jsx_element_name(&mut self.visitor, node, __ast_path)
120186        } else {
120187            node
120188        }
120189    }
120190
120191    #[inline]
120192    fn fold_jsx_empty_expr(
120193        &mut self,
120194        node: JSXEmptyExpr,
120195        __ast_path: &mut AstKindPath,
120196    ) -> JSXEmptyExpr {
120197        if self.enabled {
120198            <V as FoldAstPath>::fold_jsx_empty_expr(&mut self.visitor, node, __ast_path)
120199        } else {
120200            node
120201        }
120202    }
120203
120204    #[inline]
120205    fn fold_jsx_expr(&mut self, node: JSXExpr, __ast_path: &mut AstKindPath) -> JSXExpr {
120206        if self.enabled {
120207            <V as FoldAstPath>::fold_jsx_expr(&mut self.visitor, node, __ast_path)
120208        } else {
120209            node
120210        }
120211    }
120212
120213    #[inline]
120214    fn fold_jsx_expr_container(
120215        &mut self,
120216        node: JSXExprContainer,
120217        __ast_path: &mut AstKindPath,
120218    ) -> JSXExprContainer {
120219        if self.enabled {
120220            <V as FoldAstPath>::fold_jsx_expr_container(&mut self.visitor, node, __ast_path)
120221        } else {
120222            node
120223        }
120224    }
120225
120226    #[inline]
120227    fn fold_jsx_fragment(
120228        &mut self,
120229        node: JSXFragment,
120230        __ast_path: &mut AstKindPath,
120231    ) -> JSXFragment {
120232        if self.enabled {
120233            <V as FoldAstPath>::fold_jsx_fragment(&mut self.visitor, node, __ast_path)
120234        } else {
120235            node
120236        }
120237    }
120238
120239    #[inline]
120240    fn fold_jsx_member_expr(
120241        &mut self,
120242        node: JSXMemberExpr,
120243        __ast_path: &mut AstKindPath,
120244    ) -> JSXMemberExpr {
120245        if self.enabled {
120246            <V as FoldAstPath>::fold_jsx_member_expr(&mut self.visitor, node, __ast_path)
120247        } else {
120248            node
120249        }
120250    }
120251
120252    #[inline]
120253    fn fold_jsx_namespaced_name(
120254        &mut self,
120255        node: JSXNamespacedName,
120256        __ast_path: &mut AstKindPath,
120257    ) -> JSXNamespacedName {
120258        if self.enabled {
120259            <V as FoldAstPath>::fold_jsx_namespaced_name(&mut self.visitor, node, __ast_path)
120260        } else {
120261            node
120262        }
120263    }
120264
120265    #[inline]
120266    fn fold_jsx_object(&mut self, node: JSXObject, __ast_path: &mut AstKindPath) -> JSXObject {
120267        if self.enabled {
120268            <V as FoldAstPath>::fold_jsx_object(&mut self.visitor, node, __ast_path)
120269        } else {
120270            node
120271        }
120272    }
120273
120274    #[inline]
120275    fn fold_jsx_opening_element(
120276        &mut self,
120277        node: JSXOpeningElement,
120278        __ast_path: &mut AstKindPath,
120279    ) -> JSXOpeningElement {
120280        if self.enabled {
120281            <V as FoldAstPath>::fold_jsx_opening_element(&mut self.visitor, node, __ast_path)
120282        } else {
120283            node
120284        }
120285    }
120286
120287    #[inline]
120288    fn fold_jsx_opening_fragment(
120289        &mut self,
120290        node: JSXOpeningFragment,
120291        __ast_path: &mut AstKindPath,
120292    ) -> JSXOpeningFragment {
120293        if self.enabled {
120294            <V as FoldAstPath>::fold_jsx_opening_fragment(&mut self.visitor, node, __ast_path)
120295        } else {
120296            node
120297        }
120298    }
120299
120300    #[inline]
120301    fn fold_jsx_spread_child(
120302        &mut self,
120303        node: JSXSpreadChild,
120304        __ast_path: &mut AstKindPath,
120305    ) -> JSXSpreadChild {
120306        if self.enabled {
120307            <V as FoldAstPath>::fold_jsx_spread_child(&mut self.visitor, node, __ast_path)
120308        } else {
120309            node
120310        }
120311    }
120312
120313    #[inline]
120314    fn fold_jsx_text(&mut self, node: JSXText, __ast_path: &mut AstKindPath) -> JSXText {
120315        if self.enabled {
120316            <V as FoldAstPath>::fold_jsx_text(&mut self.visitor, node, __ast_path)
120317        } else {
120318            node
120319        }
120320    }
120321
120322    #[inline]
120323    fn fold_key(&mut self, node: Key, __ast_path: &mut AstKindPath) -> Key {
120324        if self.enabled {
120325            <V as FoldAstPath>::fold_key(&mut self.visitor, node, __ast_path)
120326        } else {
120327            node
120328        }
120329    }
120330
120331    #[inline]
120332    fn fold_key_value_pat_prop(
120333        &mut self,
120334        node: KeyValuePatProp,
120335        __ast_path: &mut AstKindPath,
120336    ) -> KeyValuePatProp {
120337        if self.enabled {
120338            <V as FoldAstPath>::fold_key_value_pat_prop(&mut self.visitor, node, __ast_path)
120339        } else {
120340            node
120341        }
120342    }
120343
120344    #[inline]
120345    fn fold_key_value_prop(
120346        &mut self,
120347        node: KeyValueProp,
120348        __ast_path: &mut AstKindPath,
120349    ) -> KeyValueProp {
120350        if self.enabled {
120351            <V as FoldAstPath>::fold_key_value_prop(&mut self.visitor, node, __ast_path)
120352        } else {
120353            node
120354        }
120355    }
120356
120357    #[inline]
120358    fn fold_labeled_stmt(
120359        &mut self,
120360        node: LabeledStmt,
120361        __ast_path: &mut AstKindPath,
120362    ) -> LabeledStmt {
120363        if self.enabled {
120364            <V as FoldAstPath>::fold_labeled_stmt(&mut self.visitor, node, __ast_path)
120365        } else {
120366            node
120367        }
120368    }
120369
120370    #[inline]
120371    fn fold_lit(&mut self, node: Lit, __ast_path: &mut AstKindPath) -> Lit {
120372        if self.enabled {
120373            <V as FoldAstPath>::fold_lit(&mut self.visitor, node, __ast_path)
120374        } else {
120375            node
120376        }
120377    }
120378
120379    #[inline]
120380    fn fold_member_expr(&mut self, node: MemberExpr, __ast_path: &mut AstKindPath) -> MemberExpr {
120381        if self.enabled {
120382            <V as FoldAstPath>::fold_member_expr(&mut self.visitor, node, __ast_path)
120383        } else {
120384            node
120385        }
120386    }
120387
120388    #[inline]
120389    fn fold_member_prop(&mut self, node: MemberProp, __ast_path: &mut AstKindPath) -> MemberProp {
120390        if self.enabled {
120391            <V as FoldAstPath>::fold_member_prop(&mut self.visitor, node, __ast_path)
120392        } else {
120393            node
120394        }
120395    }
120396
120397    #[inline]
120398    fn fold_meta_prop_expr(
120399        &mut self,
120400        node: MetaPropExpr,
120401        __ast_path: &mut AstKindPath,
120402    ) -> MetaPropExpr {
120403        if self.enabled {
120404            <V as FoldAstPath>::fold_meta_prop_expr(&mut self.visitor, node, __ast_path)
120405        } else {
120406            node
120407        }
120408    }
120409
120410    #[inline]
120411    fn fold_meta_prop_kind(
120412        &mut self,
120413        node: MetaPropKind,
120414        __ast_path: &mut AstKindPath,
120415    ) -> MetaPropKind {
120416        if self.enabled {
120417            <V as FoldAstPath>::fold_meta_prop_kind(&mut self.visitor, node, __ast_path)
120418        } else {
120419            node
120420        }
120421    }
120422
120423    #[inline]
120424    fn fold_method_kind(&mut self, node: MethodKind, __ast_path: &mut AstKindPath) -> MethodKind {
120425        if self.enabled {
120426            <V as FoldAstPath>::fold_method_kind(&mut self.visitor, node, __ast_path)
120427        } else {
120428            node
120429        }
120430    }
120431
120432    #[inline]
120433    fn fold_method_prop(&mut self, node: MethodProp, __ast_path: &mut AstKindPath) -> MethodProp {
120434        if self.enabled {
120435            <V as FoldAstPath>::fold_method_prop(&mut self.visitor, node, __ast_path)
120436        } else {
120437            node
120438        }
120439    }
120440
120441    #[inline]
120442    fn fold_module(&mut self, node: Module, __ast_path: &mut AstKindPath) -> Module {
120443        if self.enabled {
120444            <V as FoldAstPath>::fold_module(&mut self.visitor, node, __ast_path)
120445        } else {
120446            node
120447        }
120448    }
120449
120450    #[inline]
120451    fn fold_module_decl(&mut self, node: ModuleDecl, __ast_path: &mut AstKindPath) -> ModuleDecl {
120452        if self.enabled {
120453            <V as FoldAstPath>::fold_module_decl(&mut self.visitor, node, __ast_path)
120454        } else {
120455            node
120456        }
120457    }
120458
120459    #[inline]
120460    fn fold_module_export_name(
120461        &mut self,
120462        node: ModuleExportName,
120463        __ast_path: &mut AstKindPath,
120464    ) -> ModuleExportName {
120465        if self.enabled {
120466            <V as FoldAstPath>::fold_module_export_name(&mut self.visitor, node, __ast_path)
120467        } else {
120468            node
120469        }
120470    }
120471
120472    #[inline]
120473    fn fold_module_item(&mut self, node: ModuleItem, __ast_path: &mut AstKindPath) -> ModuleItem {
120474        if self.enabled {
120475            <V as FoldAstPath>::fold_module_item(&mut self.visitor, node, __ast_path)
120476        } else {
120477            node
120478        }
120479    }
120480
120481    #[inline]
120482    fn fold_module_items(
120483        &mut self,
120484        node: Vec<ModuleItem>,
120485        __ast_path: &mut AstKindPath,
120486    ) -> Vec<ModuleItem> {
120487        if self.enabled {
120488            <V as FoldAstPath>::fold_module_items(&mut self.visitor, node, __ast_path)
120489        } else {
120490            node
120491        }
120492    }
120493
120494    #[inline]
120495    fn fold_named_export(
120496        &mut self,
120497        node: NamedExport,
120498        __ast_path: &mut AstKindPath,
120499    ) -> NamedExport {
120500        if self.enabled {
120501            <V as FoldAstPath>::fold_named_export(&mut self.visitor, node, __ast_path)
120502        } else {
120503            node
120504        }
120505    }
120506
120507    #[inline]
120508    fn fold_new_expr(&mut self, node: NewExpr, __ast_path: &mut AstKindPath) -> NewExpr {
120509        if self.enabled {
120510            <V as FoldAstPath>::fold_new_expr(&mut self.visitor, node, __ast_path)
120511        } else {
120512            node
120513        }
120514    }
120515
120516    #[inline]
120517    fn fold_null(&mut self, node: Null, __ast_path: &mut AstKindPath) -> Null {
120518        if self.enabled {
120519            <V as FoldAstPath>::fold_null(&mut self.visitor, node, __ast_path)
120520        } else {
120521            node
120522        }
120523    }
120524
120525    #[inline]
120526    fn fold_number(&mut self, node: Number, __ast_path: &mut AstKindPath) -> Number {
120527        if self.enabled {
120528            <V as FoldAstPath>::fold_number(&mut self.visitor, node, __ast_path)
120529        } else {
120530            node
120531        }
120532    }
120533
120534    #[inline]
120535    fn fold_object_lit(&mut self, node: ObjectLit, __ast_path: &mut AstKindPath) -> ObjectLit {
120536        if self.enabled {
120537            <V as FoldAstPath>::fold_object_lit(&mut self.visitor, node, __ast_path)
120538        } else {
120539            node
120540        }
120541    }
120542
120543    #[inline]
120544    fn fold_object_pat(&mut self, node: ObjectPat, __ast_path: &mut AstKindPath) -> ObjectPat {
120545        if self.enabled {
120546            <V as FoldAstPath>::fold_object_pat(&mut self.visitor, node, __ast_path)
120547        } else {
120548            node
120549        }
120550    }
120551
120552    #[inline]
120553    fn fold_object_pat_prop(
120554        &mut self,
120555        node: ObjectPatProp,
120556        __ast_path: &mut AstKindPath,
120557    ) -> ObjectPatProp {
120558        if self.enabled {
120559            <V as FoldAstPath>::fold_object_pat_prop(&mut self.visitor, node, __ast_path)
120560        } else {
120561            node
120562        }
120563    }
120564
120565    #[inline]
120566    fn fold_object_pat_props(
120567        &mut self,
120568        node: Vec<ObjectPatProp>,
120569        __ast_path: &mut AstKindPath,
120570    ) -> Vec<ObjectPatProp> {
120571        if self.enabled {
120572            <V as FoldAstPath>::fold_object_pat_props(&mut self.visitor, node, __ast_path)
120573        } else {
120574            node
120575        }
120576    }
120577
120578    #[inline]
120579    fn fold_opt_accessibility(
120580        &mut self,
120581        node: Option<Accessibility>,
120582        __ast_path: &mut AstKindPath,
120583    ) -> Option<Accessibility> {
120584        if self.enabled {
120585            <V as FoldAstPath>::fold_opt_accessibility(&mut self.visitor, node, __ast_path)
120586        } else {
120587            node
120588        }
120589    }
120590
120591    #[inline]
120592    fn fold_opt_atom(
120593        &mut self,
120594        node: Option<swc_atoms::Atom>,
120595        __ast_path: &mut AstKindPath,
120596    ) -> Option<swc_atoms::Atom> {
120597        if self.enabled {
120598            <V as FoldAstPath>::fold_opt_atom(&mut self.visitor, node, __ast_path)
120599        } else {
120600            node
120601        }
120602    }
120603
120604    #[inline]
120605    fn fold_opt_block_stmt(
120606        &mut self,
120607        node: Option<BlockStmt>,
120608        __ast_path: &mut AstKindPath,
120609    ) -> Option<BlockStmt> {
120610        if self.enabled {
120611            <V as FoldAstPath>::fold_opt_block_stmt(&mut self.visitor, node, __ast_path)
120612        } else {
120613            node
120614        }
120615    }
120616
120617    #[inline]
120618    fn fold_opt_call(&mut self, node: OptCall, __ast_path: &mut AstKindPath) -> OptCall {
120619        if self.enabled {
120620            <V as FoldAstPath>::fold_opt_call(&mut self.visitor, node, __ast_path)
120621        } else {
120622            node
120623        }
120624    }
120625
120626    #[inline]
120627    fn fold_opt_catch_clause(
120628        &mut self,
120629        node: Option<CatchClause>,
120630        __ast_path: &mut AstKindPath,
120631    ) -> Option<CatchClause> {
120632        if self.enabled {
120633            <V as FoldAstPath>::fold_opt_catch_clause(&mut self.visitor, node, __ast_path)
120634        } else {
120635            node
120636        }
120637    }
120638
120639    #[inline]
120640    fn fold_opt_chain_base(
120641        &mut self,
120642        node: OptChainBase,
120643        __ast_path: &mut AstKindPath,
120644    ) -> OptChainBase {
120645        if self.enabled {
120646            <V as FoldAstPath>::fold_opt_chain_base(&mut self.visitor, node, __ast_path)
120647        } else {
120648            node
120649        }
120650    }
120651
120652    #[inline]
120653    fn fold_opt_chain_expr(
120654        &mut self,
120655        node: OptChainExpr,
120656        __ast_path: &mut AstKindPath,
120657    ) -> OptChainExpr {
120658        if self.enabled {
120659            <V as FoldAstPath>::fold_opt_chain_expr(&mut self.visitor, node, __ast_path)
120660        } else {
120661            node
120662        }
120663    }
120664
120665    #[inline]
120666    fn fold_opt_expr(
120667        &mut self,
120668        node: Option<Box<Expr>>,
120669        __ast_path: &mut AstKindPath,
120670    ) -> Option<Box<Expr>> {
120671        if self.enabled {
120672            <V as FoldAstPath>::fold_opt_expr(&mut self.visitor, node, __ast_path)
120673        } else {
120674            node
120675        }
120676    }
120677
120678    #[inline]
120679    fn fold_opt_expr_or_spread(
120680        &mut self,
120681        node: Option<ExprOrSpread>,
120682        __ast_path: &mut AstKindPath,
120683    ) -> Option<ExprOrSpread> {
120684        if self.enabled {
120685            <V as FoldAstPath>::fold_opt_expr_or_spread(&mut self.visitor, node, __ast_path)
120686        } else {
120687            node
120688        }
120689    }
120690
120691    #[inline]
120692    fn fold_opt_expr_or_spreads(
120693        &mut self,
120694        node: Option<Vec<ExprOrSpread>>,
120695        __ast_path: &mut AstKindPath,
120696    ) -> Option<Vec<ExprOrSpread>> {
120697        if self.enabled {
120698            <V as FoldAstPath>::fold_opt_expr_or_spreads(&mut self.visitor, node, __ast_path)
120699        } else {
120700            node
120701        }
120702    }
120703
120704    #[inline]
120705    fn fold_opt_ident(
120706        &mut self,
120707        node: Option<Ident>,
120708        __ast_path: &mut AstKindPath,
120709    ) -> Option<Ident> {
120710        if self.enabled {
120711            <V as FoldAstPath>::fold_opt_ident(&mut self.visitor, node, __ast_path)
120712        } else {
120713            node
120714        }
120715    }
120716
120717    #[inline]
120718    fn fold_opt_jsx_attr_value(
120719        &mut self,
120720        node: Option<JSXAttrValue>,
120721        __ast_path: &mut AstKindPath,
120722    ) -> Option<JSXAttrValue> {
120723        if self.enabled {
120724            <V as FoldAstPath>::fold_opt_jsx_attr_value(&mut self.visitor, node, __ast_path)
120725        } else {
120726            node
120727        }
120728    }
120729
120730    #[inline]
120731    fn fold_opt_jsx_closing_element(
120732        &mut self,
120733        node: Option<JSXClosingElement>,
120734        __ast_path: &mut AstKindPath,
120735    ) -> Option<JSXClosingElement> {
120736        if self.enabled {
120737            <V as FoldAstPath>::fold_opt_jsx_closing_element(&mut self.visitor, node, __ast_path)
120738        } else {
120739            node
120740        }
120741    }
120742
120743    #[inline]
120744    fn fold_opt_module_export_name(
120745        &mut self,
120746        node: Option<ModuleExportName>,
120747        __ast_path: &mut AstKindPath,
120748    ) -> Option<ModuleExportName> {
120749        if self.enabled {
120750            <V as FoldAstPath>::fold_opt_module_export_name(&mut self.visitor, node, __ast_path)
120751        } else {
120752            node
120753        }
120754    }
120755
120756    #[inline]
120757    fn fold_opt_object_lit(
120758        &mut self,
120759        node: Option<Box<ObjectLit>>,
120760        __ast_path: &mut AstKindPath,
120761    ) -> Option<Box<ObjectLit>> {
120762        if self.enabled {
120763            <V as FoldAstPath>::fold_opt_object_lit(&mut self.visitor, node, __ast_path)
120764        } else {
120765            node
120766        }
120767    }
120768
120769    #[inline]
120770    fn fold_opt_pat(&mut self, node: Option<Pat>, __ast_path: &mut AstKindPath) -> Option<Pat> {
120771        if self.enabled {
120772            <V as FoldAstPath>::fold_opt_pat(&mut self.visitor, node, __ast_path)
120773        } else {
120774            node
120775        }
120776    }
120777
120778    #[inline]
120779    fn fold_opt_span(
120780        &mut self,
120781        node: Option<swc_common::Span>,
120782        __ast_path: &mut AstKindPath,
120783    ) -> Option<swc_common::Span> {
120784        if self.enabled {
120785            <V as FoldAstPath>::fold_opt_span(&mut self.visitor, node, __ast_path)
120786        } else {
120787            node
120788        }
120789    }
120790
120791    #[inline]
120792    fn fold_opt_stmt(
120793        &mut self,
120794        node: Option<Box<Stmt>>,
120795        __ast_path: &mut AstKindPath,
120796    ) -> Option<Box<Stmt>> {
120797        if self.enabled {
120798            <V as FoldAstPath>::fold_opt_stmt(&mut self.visitor, node, __ast_path)
120799        } else {
120800            node
120801        }
120802    }
120803
120804    #[inline]
120805    fn fold_opt_str(
120806        &mut self,
120807        node: Option<Box<Str>>,
120808        __ast_path: &mut AstKindPath,
120809    ) -> Option<Box<Str>> {
120810        if self.enabled {
120811            <V as FoldAstPath>::fold_opt_str(&mut self.visitor, node, __ast_path)
120812        } else {
120813            node
120814        }
120815    }
120816
120817    #[inline]
120818    fn fold_opt_true_plus_minus(
120819        &mut self,
120820        node: Option<TruePlusMinus>,
120821        __ast_path: &mut AstKindPath,
120822    ) -> Option<TruePlusMinus> {
120823        if self.enabled {
120824            <V as FoldAstPath>::fold_opt_true_plus_minus(&mut self.visitor, node, __ast_path)
120825        } else {
120826            node
120827        }
120828    }
120829
120830    #[inline]
120831    fn fold_opt_ts_entity_name(
120832        &mut self,
120833        node: Option<TsEntityName>,
120834        __ast_path: &mut AstKindPath,
120835    ) -> Option<TsEntityName> {
120836        if self.enabled {
120837            <V as FoldAstPath>::fold_opt_ts_entity_name(&mut self.visitor, node, __ast_path)
120838        } else {
120839            node
120840        }
120841    }
120842
120843    #[inline]
120844    fn fold_opt_ts_namespace_body(
120845        &mut self,
120846        node: Option<TsNamespaceBody>,
120847        __ast_path: &mut AstKindPath,
120848    ) -> Option<TsNamespaceBody> {
120849        if self.enabled {
120850            <V as FoldAstPath>::fold_opt_ts_namespace_body(&mut self.visitor, node, __ast_path)
120851        } else {
120852            node
120853        }
120854    }
120855
120856    #[inline]
120857    fn fold_opt_ts_type(
120858        &mut self,
120859        node: Option<Box<TsType>>,
120860        __ast_path: &mut AstKindPath,
120861    ) -> Option<Box<TsType>> {
120862        if self.enabled {
120863            <V as FoldAstPath>::fold_opt_ts_type(&mut self.visitor, node, __ast_path)
120864        } else {
120865            node
120866        }
120867    }
120868
120869    #[inline]
120870    fn fold_opt_ts_type_ann(
120871        &mut self,
120872        node: Option<Box<TsTypeAnn>>,
120873        __ast_path: &mut AstKindPath,
120874    ) -> Option<Box<TsTypeAnn>> {
120875        if self.enabled {
120876            <V as FoldAstPath>::fold_opt_ts_type_ann(&mut self.visitor, node, __ast_path)
120877        } else {
120878            node
120879        }
120880    }
120881
120882    #[inline]
120883    fn fold_opt_ts_type_param_decl(
120884        &mut self,
120885        node: Option<Box<TsTypeParamDecl>>,
120886        __ast_path: &mut AstKindPath,
120887    ) -> Option<Box<TsTypeParamDecl>> {
120888        if self.enabled {
120889            <V as FoldAstPath>::fold_opt_ts_type_param_decl(&mut self.visitor, node, __ast_path)
120890        } else {
120891            node
120892        }
120893    }
120894
120895    #[inline]
120896    fn fold_opt_ts_type_param_instantiation(
120897        &mut self,
120898        node: Option<Box<TsTypeParamInstantiation>>,
120899        __ast_path: &mut AstKindPath,
120900    ) -> Option<Box<TsTypeParamInstantiation>> {
120901        if self.enabled {
120902            <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(
120903                &mut self.visitor,
120904                node,
120905                __ast_path,
120906            )
120907        } else {
120908            node
120909        }
120910    }
120911
120912    #[inline]
120913    fn fold_opt_var_decl_or_expr(
120914        &mut self,
120915        node: Option<VarDeclOrExpr>,
120916        __ast_path: &mut AstKindPath,
120917    ) -> Option<VarDeclOrExpr> {
120918        if self.enabled {
120919            <V as FoldAstPath>::fold_opt_var_decl_or_expr(&mut self.visitor, node, __ast_path)
120920        } else {
120921            node
120922        }
120923    }
120924
120925    #[inline]
120926    fn fold_opt_vec_expr_or_spreads(
120927        &mut self,
120928        node: Vec<Option<ExprOrSpread>>,
120929        __ast_path: &mut AstKindPath,
120930    ) -> Vec<Option<ExprOrSpread>> {
120931        if self.enabled {
120932            <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(&mut self.visitor, node, __ast_path)
120933        } else {
120934            node
120935        }
120936    }
120937
120938    #[inline]
120939    fn fold_opt_vec_pats(
120940        &mut self,
120941        node: Vec<Option<Pat>>,
120942        __ast_path: &mut AstKindPath,
120943    ) -> Vec<Option<Pat>> {
120944        if self.enabled {
120945            <V as FoldAstPath>::fold_opt_vec_pats(&mut self.visitor, node, __ast_path)
120946        } else {
120947            node
120948        }
120949    }
120950
120951    #[inline]
120952    fn fold_param(&mut self, node: Param, __ast_path: &mut AstKindPath) -> Param {
120953        if self.enabled {
120954            <V as FoldAstPath>::fold_param(&mut self.visitor, node, __ast_path)
120955        } else {
120956            node
120957        }
120958    }
120959
120960    #[inline]
120961    fn fold_param_or_ts_param_prop(
120962        &mut self,
120963        node: ParamOrTsParamProp,
120964        __ast_path: &mut AstKindPath,
120965    ) -> ParamOrTsParamProp {
120966        if self.enabled {
120967            <V as FoldAstPath>::fold_param_or_ts_param_prop(&mut self.visitor, node, __ast_path)
120968        } else {
120969            node
120970        }
120971    }
120972
120973    #[inline]
120974    fn fold_param_or_ts_param_props(
120975        &mut self,
120976        node: Vec<ParamOrTsParamProp>,
120977        __ast_path: &mut AstKindPath,
120978    ) -> Vec<ParamOrTsParamProp> {
120979        if self.enabled {
120980            <V as FoldAstPath>::fold_param_or_ts_param_props(&mut self.visitor, node, __ast_path)
120981        } else {
120982            node
120983        }
120984    }
120985
120986    #[inline]
120987    fn fold_params(&mut self, node: Vec<Param>, __ast_path: &mut AstKindPath) -> Vec<Param> {
120988        if self.enabled {
120989            <V as FoldAstPath>::fold_params(&mut self.visitor, node, __ast_path)
120990        } else {
120991            node
120992        }
120993    }
120994
120995    #[inline]
120996    fn fold_paren_expr(&mut self, node: ParenExpr, __ast_path: &mut AstKindPath) -> ParenExpr {
120997        if self.enabled {
120998            <V as FoldAstPath>::fold_paren_expr(&mut self.visitor, node, __ast_path)
120999        } else {
121000            node
121001        }
121002    }
121003
121004    #[inline]
121005    fn fold_pat(&mut self, node: Pat, __ast_path: &mut AstKindPath) -> Pat {
121006        if self.enabled {
121007            <V as FoldAstPath>::fold_pat(&mut self.visitor, node, __ast_path)
121008        } else {
121009            node
121010        }
121011    }
121012
121013    #[inline]
121014    fn fold_pats(&mut self, node: Vec<Pat>, __ast_path: &mut AstKindPath) -> Vec<Pat> {
121015        if self.enabled {
121016            <V as FoldAstPath>::fold_pats(&mut self.visitor, node, __ast_path)
121017        } else {
121018            node
121019        }
121020    }
121021
121022    #[inline]
121023    fn fold_private_method(
121024        &mut self,
121025        node: PrivateMethod,
121026        __ast_path: &mut AstKindPath,
121027    ) -> PrivateMethod {
121028        if self.enabled {
121029            <V as FoldAstPath>::fold_private_method(&mut self.visitor, node, __ast_path)
121030        } else {
121031            node
121032        }
121033    }
121034
121035    #[inline]
121036    fn fold_private_name(
121037        &mut self,
121038        node: PrivateName,
121039        __ast_path: &mut AstKindPath,
121040    ) -> PrivateName {
121041        if self.enabled {
121042            <V as FoldAstPath>::fold_private_name(&mut self.visitor, node, __ast_path)
121043        } else {
121044            node
121045        }
121046    }
121047
121048    #[inline]
121049    fn fold_private_prop(
121050        &mut self,
121051        node: PrivateProp,
121052        __ast_path: &mut AstKindPath,
121053    ) -> PrivateProp {
121054        if self.enabled {
121055            <V as FoldAstPath>::fold_private_prop(&mut self.visitor, node, __ast_path)
121056        } else {
121057            node
121058        }
121059    }
121060
121061    #[inline]
121062    fn fold_program(&mut self, node: Program, __ast_path: &mut AstKindPath) -> Program {
121063        if self.enabled {
121064            <V as FoldAstPath>::fold_program(&mut self.visitor, node, __ast_path)
121065        } else {
121066            node
121067        }
121068    }
121069
121070    #[inline]
121071    fn fold_prop(&mut self, node: Prop, __ast_path: &mut AstKindPath) -> Prop {
121072        if self.enabled {
121073            <V as FoldAstPath>::fold_prop(&mut self.visitor, node, __ast_path)
121074        } else {
121075            node
121076        }
121077    }
121078
121079    #[inline]
121080    fn fold_prop_name(&mut self, node: PropName, __ast_path: &mut AstKindPath) -> PropName {
121081        if self.enabled {
121082            <V as FoldAstPath>::fold_prop_name(&mut self.visitor, node, __ast_path)
121083        } else {
121084            node
121085        }
121086    }
121087
121088    #[inline]
121089    fn fold_prop_or_spread(
121090        &mut self,
121091        node: PropOrSpread,
121092        __ast_path: &mut AstKindPath,
121093    ) -> PropOrSpread {
121094        if self.enabled {
121095            <V as FoldAstPath>::fold_prop_or_spread(&mut self.visitor, node, __ast_path)
121096        } else {
121097            node
121098        }
121099    }
121100
121101    #[inline]
121102    fn fold_prop_or_spreads(
121103        &mut self,
121104        node: Vec<PropOrSpread>,
121105        __ast_path: &mut AstKindPath,
121106    ) -> Vec<PropOrSpread> {
121107        if self.enabled {
121108            <V as FoldAstPath>::fold_prop_or_spreads(&mut self.visitor, node, __ast_path)
121109        } else {
121110            node
121111        }
121112    }
121113
121114    #[inline]
121115    fn fold_regex(&mut self, node: Regex, __ast_path: &mut AstKindPath) -> Regex {
121116        if self.enabled {
121117            <V as FoldAstPath>::fold_regex(&mut self.visitor, node, __ast_path)
121118        } else {
121119            node
121120        }
121121    }
121122
121123    #[inline]
121124    fn fold_rest_pat(&mut self, node: RestPat, __ast_path: &mut AstKindPath) -> RestPat {
121125        if self.enabled {
121126            <V as FoldAstPath>::fold_rest_pat(&mut self.visitor, node, __ast_path)
121127        } else {
121128            node
121129        }
121130    }
121131
121132    #[inline]
121133    fn fold_return_stmt(&mut self, node: ReturnStmt, __ast_path: &mut AstKindPath) -> ReturnStmt {
121134        if self.enabled {
121135            <V as FoldAstPath>::fold_return_stmt(&mut self.visitor, node, __ast_path)
121136        } else {
121137            node
121138        }
121139    }
121140
121141    #[inline]
121142    fn fold_script(&mut self, node: Script, __ast_path: &mut AstKindPath) -> Script {
121143        if self.enabled {
121144            <V as FoldAstPath>::fold_script(&mut self.visitor, node, __ast_path)
121145        } else {
121146            node
121147        }
121148    }
121149
121150    #[inline]
121151    fn fold_seq_expr(&mut self, node: SeqExpr, __ast_path: &mut AstKindPath) -> SeqExpr {
121152        if self.enabled {
121153            <V as FoldAstPath>::fold_seq_expr(&mut self.visitor, node, __ast_path)
121154        } else {
121155            node
121156        }
121157    }
121158
121159    #[inline]
121160    fn fold_setter_prop(&mut self, node: SetterProp, __ast_path: &mut AstKindPath) -> SetterProp {
121161        if self.enabled {
121162            <V as FoldAstPath>::fold_setter_prop(&mut self.visitor, node, __ast_path)
121163        } else {
121164            node
121165        }
121166    }
121167
121168    #[inline]
121169    fn fold_simple_assign_target(
121170        &mut self,
121171        node: SimpleAssignTarget,
121172        __ast_path: &mut AstKindPath,
121173    ) -> SimpleAssignTarget {
121174        if self.enabled {
121175            <V as FoldAstPath>::fold_simple_assign_target(&mut self.visitor, node, __ast_path)
121176        } else {
121177            node
121178        }
121179    }
121180
121181    #[inline]
121182    fn fold_span(
121183        &mut self,
121184        node: swc_common::Span,
121185        __ast_path: &mut AstKindPath,
121186    ) -> swc_common::Span {
121187        if self.enabled {
121188            <V as FoldAstPath>::fold_span(&mut self.visitor, node, __ast_path)
121189        } else {
121190            node
121191        }
121192    }
121193
121194    #[inline]
121195    fn fold_spread_element(
121196        &mut self,
121197        node: SpreadElement,
121198        __ast_path: &mut AstKindPath,
121199    ) -> SpreadElement {
121200        if self.enabled {
121201            <V as FoldAstPath>::fold_spread_element(&mut self.visitor, node, __ast_path)
121202        } else {
121203            node
121204        }
121205    }
121206
121207    #[inline]
121208    fn fold_static_block(
121209        &mut self,
121210        node: StaticBlock,
121211        __ast_path: &mut AstKindPath,
121212    ) -> StaticBlock {
121213        if self.enabled {
121214            <V as FoldAstPath>::fold_static_block(&mut self.visitor, node, __ast_path)
121215        } else {
121216            node
121217        }
121218    }
121219
121220    #[inline]
121221    fn fold_stmt(&mut self, node: Stmt, __ast_path: &mut AstKindPath) -> Stmt {
121222        if self.enabled {
121223            <V as FoldAstPath>::fold_stmt(&mut self.visitor, node, __ast_path)
121224        } else {
121225            node
121226        }
121227    }
121228
121229    #[inline]
121230    fn fold_stmts(&mut self, node: Vec<Stmt>, __ast_path: &mut AstKindPath) -> Vec<Stmt> {
121231        if self.enabled {
121232            <V as FoldAstPath>::fold_stmts(&mut self.visitor, node, __ast_path)
121233        } else {
121234            node
121235        }
121236    }
121237
121238    #[inline]
121239    fn fold_str(&mut self, node: Str, __ast_path: &mut AstKindPath) -> Str {
121240        if self.enabled {
121241            <V as FoldAstPath>::fold_str(&mut self.visitor, node, __ast_path)
121242        } else {
121243            node
121244        }
121245    }
121246
121247    #[inline]
121248    fn fold_super(&mut self, node: Super, __ast_path: &mut AstKindPath) -> Super {
121249        if self.enabled {
121250            <V as FoldAstPath>::fold_super(&mut self.visitor, node, __ast_path)
121251        } else {
121252            node
121253        }
121254    }
121255
121256    #[inline]
121257    fn fold_super_prop(&mut self, node: SuperProp, __ast_path: &mut AstKindPath) -> SuperProp {
121258        if self.enabled {
121259            <V as FoldAstPath>::fold_super_prop(&mut self.visitor, node, __ast_path)
121260        } else {
121261            node
121262        }
121263    }
121264
121265    #[inline]
121266    fn fold_super_prop_expr(
121267        &mut self,
121268        node: SuperPropExpr,
121269        __ast_path: &mut AstKindPath,
121270    ) -> SuperPropExpr {
121271        if self.enabled {
121272            <V as FoldAstPath>::fold_super_prop_expr(&mut self.visitor, node, __ast_path)
121273        } else {
121274            node
121275        }
121276    }
121277
121278    #[inline]
121279    fn fold_switch_case(&mut self, node: SwitchCase, __ast_path: &mut AstKindPath) -> SwitchCase {
121280        if self.enabled {
121281            <V as FoldAstPath>::fold_switch_case(&mut self.visitor, node, __ast_path)
121282        } else {
121283            node
121284        }
121285    }
121286
121287    #[inline]
121288    fn fold_switch_cases(
121289        &mut self,
121290        node: Vec<SwitchCase>,
121291        __ast_path: &mut AstKindPath,
121292    ) -> Vec<SwitchCase> {
121293        if self.enabled {
121294            <V as FoldAstPath>::fold_switch_cases(&mut self.visitor, node, __ast_path)
121295        } else {
121296            node
121297        }
121298    }
121299
121300    #[inline]
121301    fn fold_switch_stmt(&mut self, node: SwitchStmt, __ast_path: &mut AstKindPath) -> SwitchStmt {
121302        if self.enabled {
121303            <V as FoldAstPath>::fold_switch_stmt(&mut self.visitor, node, __ast_path)
121304        } else {
121305            node
121306        }
121307    }
121308
121309    #[inline]
121310    fn fold_syntax_context(
121311        &mut self,
121312        node: swc_common::SyntaxContext,
121313        __ast_path: &mut AstKindPath,
121314    ) -> swc_common::SyntaxContext {
121315        if self.enabled {
121316            <V as FoldAstPath>::fold_syntax_context(&mut self.visitor, node, __ast_path)
121317        } else {
121318            node
121319        }
121320    }
121321
121322    #[inline]
121323    fn fold_tagged_tpl(&mut self, node: TaggedTpl, __ast_path: &mut AstKindPath) -> TaggedTpl {
121324        if self.enabled {
121325            <V as FoldAstPath>::fold_tagged_tpl(&mut self.visitor, node, __ast_path)
121326        } else {
121327            node
121328        }
121329    }
121330
121331    #[inline]
121332    fn fold_this_expr(&mut self, node: ThisExpr, __ast_path: &mut AstKindPath) -> ThisExpr {
121333        if self.enabled {
121334            <V as FoldAstPath>::fold_this_expr(&mut self.visitor, node, __ast_path)
121335        } else {
121336            node
121337        }
121338    }
121339
121340    #[inline]
121341    fn fold_throw_stmt(&mut self, node: ThrowStmt, __ast_path: &mut AstKindPath) -> ThrowStmt {
121342        if self.enabled {
121343            <V as FoldAstPath>::fold_throw_stmt(&mut self.visitor, node, __ast_path)
121344        } else {
121345            node
121346        }
121347    }
121348
121349    #[inline]
121350    fn fold_tpl(&mut self, node: Tpl, __ast_path: &mut AstKindPath) -> Tpl {
121351        if self.enabled {
121352            <V as FoldAstPath>::fold_tpl(&mut self.visitor, node, __ast_path)
121353        } else {
121354            node
121355        }
121356    }
121357
121358    #[inline]
121359    fn fold_tpl_element(&mut self, node: TplElement, __ast_path: &mut AstKindPath) -> TplElement {
121360        if self.enabled {
121361            <V as FoldAstPath>::fold_tpl_element(&mut self.visitor, node, __ast_path)
121362        } else {
121363            node
121364        }
121365    }
121366
121367    #[inline]
121368    fn fold_tpl_elements(
121369        &mut self,
121370        node: Vec<TplElement>,
121371        __ast_path: &mut AstKindPath,
121372    ) -> Vec<TplElement> {
121373        if self.enabled {
121374            <V as FoldAstPath>::fold_tpl_elements(&mut self.visitor, node, __ast_path)
121375        } else {
121376            node
121377        }
121378    }
121379
121380    #[inline]
121381    fn fold_true_plus_minus(
121382        &mut self,
121383        node: TruePlusMinus,
121384        __ast_path: &mut AstKindPath,
121385    ) -> TruePlusMinus {
121386        if self.enabled {
121387            <V as FoldAstPath>::fold_true_plus_minus(&mut self.visitor, node, __ast_path)
121388        } else {
121389            node
121390        }
121391    }
121392
121393    #[inline]
121394    fn fold_try_stmt(&mut self, node: TryStmt, __ast_path: &mut AstKindPath) -> TryStmt {
121395        if self.enabled {
121396            <V as FoldAstPath>::fold_try_stmt(&mut self.visitor, node, __ast_path)
121397        } else {
121398            node
121399        }
121400    }
121401
121402    #[inline]
121403    fn fold_ts_array_type(
121404        &mut self,
121405        node: TsArrayType,
121406        __ast_path: &mut AstKindPath,
121407    ) -> TsArrayType {
121408        if self.enabled {
121409            <V as FoldAstPath>::fold_ts_array_type(&mut self.visitor, node, __ast_path)
121410        } else {
121411            node
121412        }
121413    }
121414
121415    #[inline]
121416    fn fold_ts_as_expr(&mut self, node: TsAsExpr, __ast_path: &mut AstKindPath) -> TsAsExpr {
121417        if self.enabled {
121418            <V as FoldAstPath>::fold_ts_as_expr(&mut self.visitor, node, __ast_path)
121419        } else {
121420            node
121421        }
121422    }
121423
121424    #[inline]
121425    fn fold_ts_call_signature_decl(
121426        &mut self,
121427        node: TsCallSignatureDecl,
121428        __ast_path: &mut AstKindPath,
121429    ) -> TsCallSignatureDecl {
121430        if self.enabled {
121431            <V as FoldAstPath>::fold_ts_call_signature_decl(&mut self.visitor, node, __ast_path)
121432        } else {
121433            node
121434        }
121435    }
121436
121437    #[inline]
121438    fn fold_ts_conditional_type(
121439        &mut self,
121440        node: TsConditionalType,
121441        __ast_path: &mut AstKindPath,
121442    ) -> TsConditionalType {
121443        if self.enabled {
121444            <V as FoldAstPath>::fold_ts_conditional_type(&mut self.visitor, node, __ast_path)
121445        } else {
121446            node
121447        }
121448    }
121449
121450    #[inline]
121451    fn fold_ts_const_assertion(
121452        &mut self,
121453        node: TsConstAssertion,
121454        __ast_path: &mut AstKindPath,
121455    ) -> TsConstAssertion {
121456        if self.enabled {
121457            <V as FoldAstPath>::fold_ts_const_assertion(&mut self.visitor, node, __ast_path)
121458        } else {
121459            node
121460        }
121461    }
121462
121463    #[inline]
121464    fn fold_ts_construct_signature_decl(
121465        &mut self,
121466        node: TsConstructSignatureDecl,
121467        __ast_path: &mut AstKindPath,
121468    ) -> TsConstructSignatureDecl {
121469        if self.enabled {
121470            <V as FoldAstPath>::fold_ts_construct_signature_decl(
121471                &mut self.visitor,
121472                node,
121473                __ast_path,
121474            )
121475        } else {
121476            node
121477        }
121478    }
121479
121480    #[inline]
121481    fn fold_ts_constructor_type(
121482        &mut self,
121483        node: TsConstructorType,
121484        __ast_path: &mut AstKindPath,
121485    ) -> TsConstructorType {
121486        if self.enabled {
121487            <V as FoldAstPath>::fold_ts_constructor_type(&mut self.visitor, node, __ast_path)
121488        } else {
121489            node
121490        }
121491    }
121492
121493    #[inline]
121494    fn fold_ts_entity_name(
121495        &mut self,
121496        node: TsEntityName,
121497        __ast_path: &mut AstKindPath,
121498    ) -> TsEntityName {
121499        if self.enabled {
121500            <V as FoldAstPath>::fold_ts_entity_name(&mut self.visitor, node, __ast_path)
121501        } else {
121502            node
121503        }
121504    }
121505
121506    #[inline]
121507    fn fold_ts_enum_decl(&mut self, node: TsEnumDecl, __ast_path: &mut AstKindPath) -> TsEnumDecl {
121508        if self.enabled {
121509            <V as FoldAstPath>::fold_ts_enum_decl(&mut self.visitor, node, __ast_path)
121510        } else {
121511            node
121512        }
121513    }
121514
121515    #[inline]
121516    fn fold_ts_enum_member(
121517        &mut self,
121518        node: TsEnumMember,
121519        __ast_path: &mut AstKindPath,
121520    ) -> TsEnumMember {
121521        if self.enabled {
121522            <V as FoldAstPath>::fold_ts_enum_member(&mut self.visitor, node, __ast_path)
121523        } else {
121524            node
121525        }
121526    }
121527
121528    #[inline]
121529    fn fold_ts_enum_member_id(
121530        &mut self,
121531        node: TsEnumMemberId,
121532        __ast_path: &mut AstKindPath,
121533    ) -> TsEnumMemberId {
121534        if self.enabled {
121535            <V as FoldAstPath>::fold_ts_enum_member_id(&mut self.visitor, node, __ast_path)
121536        } else {
121537            node
121538        }
121539    }
121540
121541    #[inline]
121542    fn fold_ts_enum_members(
121543        &mut self,
121544        node: Vec<TsEnumMember>,
121545        __ast_path: &mut AstKindPath,
121546    ) -> Vec<TsEnumMember> {
121547        if self.enabled {
121548            <V as FoldAstPath>::fold_ts_enum_members(&mut self.visitor, node, __ast_path)
121549        } else {
121550            node
121551        }
121552    }
121553
121554    #[inline]
121555    fn fold_ts_export_assignment(
121556        &mut self,
121557        node: TsExportAssignment,
121558        __ast_path: &mut AstKindPath,
121559    ) -> TsExportAssignment {
121560        if self.enabled {
121561            <V as FoldAstPath>::fold_ts_export_assignment(&mut self.visitor, node, __ast_path)
121562        } else {
121563            node
121564        }
121565    }
121566
121567    #[inline]
121568    fn fold_ts_expr_with_type_args(
121569        &mut self,
121570        node: TsExprWithTypeArgs,
121571        __ast_path: &mut AstKindPath,
121572    ) -> TsExprWithTypeArgs {
121573        if self.enabled {
121574            <V as FoldAstPath>::fold_ts_expr_with_type_args(&mut self.visitor, node, __ast_path)
121575        } else {
121576            node
121577        }
121578    }
121579
121580    #[inline]
121581    fn fold_ts_expr_with_type_argss(
121582        &mut self,
121583        node: Vec<TsExprWithTypeArgs>,
121584        __ast_path: &mut AstKindPath,
121585    ) -> Vec<TsExprWithTypeArgs> {
121586        if self.enabled {
121587            <V as FoldAstPath>::fold_ts_expr_with_type_argss(&mut self.visitor, node, __ast_path)
121588        } else {
121589            node
121590        }
121591    }
121592
121593    #[inline]
121594    fn fold_ts_external_module_ref(
121595        &mut self,
121596        node: TsExternalModuleRef,
121597        __ast_path: &mut AstKindPath,
121598    ) -> TsExternalModuleRef {
121599        if self.enabled {
121600            <V as FoldAstPath>::fold_ts_external_module_ref(&mut self.visitor, node, __ast_path)
121601        } else {
121602            node
121603        }
121604    }
121605
121606    #[inline]
121607    fn fold_ts_fn_or_constructor_type(
121608        &mut self,
121609        node: TsFnOrConstructorType,
121610        __ast_path: &mut AstKindPath,
121611    ) -> TsFnOrConstructorType {
121612        if self.enabled {
121613            <V as FoldAstPath>::fold_ts_fn_or_constructor_type(&mut self.visitor, node, __ast_path)
121614        } else {
121615            node
121616        }
121617    }
121618
121619    #[inline]
121620    fn fold_ts_fn_param(&mut self, node: TsFnParam, __ast_path: &mut AstKindPath) -> TsFnParam {
121621        if self.enabled {
121622            <V as FoldAstPath>::fold_ts_fn_param(&mut self.visitor, node, __ast_path)
121623        } else {
121624            node
121625        }
121626    }
121627
121628    #[inline]
121629    fn fold_ts_fn_params(
121630        &mut self,
121631        node: Vec<TsFnParam>,
121632        __ast_path: &mut AstKindPath,
121633    ) -> Vec<TsFnParam> {
121634        if self.enabled {
121635            <V as FoldAstPath>::fold_ts_fn_params(&mut self.visitor, node, __ast_path)
121636        } else {
121637            node
121638        }
121639    }
121640
121641    #[inline]
121642    fn fold_ts_fn_type(&mut self, node: TsFnType, __ast_path: &mut AstKindPath) -> TsFnType {
121643        if self.enabled {
121644            <V as FoldAstPath>::fold_ts_fn_type(&mut self.visitor, node, __ast_path)
121645        } else {
121646            node
121647        }
121648    }
121649
121650    #[inline]
121651    fn fold_ts_getter_signature(
121652        &mut self,
121653        node: TsGetterSignature,
121654        __ast_path: &mut AstKindPath,
121655    ) -> TsGetterSignature {
121656        if self.enabled {
121657            <V as FoldAstPath>::fold_ts_getter_signature(&mut self.visitor, node, __ast_path)
121658        } else {
121659            node
121660        }
121661    }
121662
121663    #[inline]
121664    fn fold_ts_import_equals_decl(
121665        &mut self,
121666        node: TsImportEqualsDecl,
121667        __ast_path: &mut AstKindPath,
121668    ) -> TsImportEqualsDecl {
121669        if self.enabled {
121670            <V as FoldAstPath>::fold_ts_import_equals_decl(&mut self.visitor, node, __ast_path)
121671        } else {
121672            node
121673        }
121674    }
121675
121676    #[inline]
121677    fn fold_ts_import_type(
121678        &mut self,
121679        node: TsImportType,
121680        __ast_path: &mut AstKindPath,
121681    ) -> TsImportType {
121682        if self.enabled {
121683            <V as FoldAstPath>::fold_ts_import_type(&mut self.visitor, node, __ast_path)
121684        } else {
121685            node
121686        }
121687    }
121688
121689    #[inline]
121690    fn fold_ts_index_signature(
121691        &mut self,
121692        node: TsIndexSignature,
121693        __ast_path: &mut AstKindPath,
121694    ) -> TsIndexSignature {
121695        if self.enabled {
121696            <V as FoldAstPath>::fold_ts_index_signature(&mut self.visitor, node, __ast_path)
121697        } else {
121698            node
121699        }
121700    }
121701
121702    #[inline]
121703    fn fold_ts_indexed_access_type(
121704        &mut self,
121705        node: TsIndexedAccessType,
121706        __ast_path: &mut AstKindPath,
121707    ) -> TsIndexedAccessType {
121708        if self.enabled {
121709            <V as FoldAstPath>::fold_ts_indexed_access_type(&mut self.visitor, node, __ast_path)
121710        } else {
121711            node
121712        }
121713    }
121714
121715    #[inline]
121716    fn fold_ts_infer_type(
121717        &mut self,
121718        node: TsInferType,
121719        __ast_path: &mut AstKindPath,
121720    ) -> TsInferType {
121721        if self.enabled {
121722            <V as FoldAstPath>::fold_ts_infer_type(&mut self.visitor, node, __ast_path)
121723        } else {
121724            node
121725        }
121726    }
121727
121728    #[inline]
121729    fn fold_ts_instantiation(
121730        &mut self,
121731        node: TsInstantiation,
121732        __ast_path: &mut AstKindPath,
121733    ) -> TsInstantiation {
121734        if self.enabled {
121735            <V as FoldAstPath>::fold_ts_instantiation(&mut self.visitor, node, __ast_path)
121736        } else {
121737            node
121738        }
121739    }
121740
121741    #[inline]
121742    fn fold_ts_interface_body(
121743        &mut self,
121744        node: TsInterfaceBody,
121745        __ast_path: &mut AstKindPath,
121746    ) -> TsInterfaceBody {
121747        if self.enabled {
121748            <V as FoldAstPath>::fold_ts_interface_body(&mut self.visitor, node, __ast_path)
121749        } else {
121750            node
121751        }
121752    }
121753
121754    #[inline]
121755    fn fold_ts_interface_decl(
121756        &mut self,
121757        node: TsInterfaceDecl,
121758        __ast_path: &mut AstKindPath,
121759    ) -> TsInterfaceDecl {
121760        if self.enabled {
121761            <V as FoldAstPath>::fold_ts_interface_decl(&mut self.visitor, node, __ast_path)
121762        } else {
121763            node
121764        }
121765    }
121766
121767    #[inline]
121768    fn fold_ts_intersection_type(
121769        &mut self,
121770        node: TsIntersectionType,
121771        __ast_path: &mut AstKindPath,
121772    ) -> TsIntersectionType {
121773        if self.enabled {
121774            <V as FoldAstPath>::fold_ts_intersection_type(&mut self.visitor, node, __ast_path)
121775        } else {
121776            node
121777        }
121778    }
121779
121780    #[inline]
121781    fn fold_ts_keyword_type(
121782        &mut self,
121783        node: TsKeywordType,
121784        __ast_path: &mut AstKindPath,
121785    ) -> TsKeywordType {
121786        if self.enabled {
121787            <V as FoldAstPath>::fold_ts_keyword_type(&mut self.visitor, node, __ast_path)
121788        } else {
121789            node
121790        }
121791    }
121792
121793    #[inline]
121794    fn fold_ts_keyword_type_kind(
121795        &mut self,
121796        node: TsKeywordTypeKind,
121797        __ast_path: &mut AstKindPath,
121798    ) -> TsKeywordTypeKind {
121799        if self.enabled {
121800            <V as FoldAstPath>::fold_ts_keyword_type_kind(&mut self.visitor, node, __ast_path)
121801        } else {
121802            node
121803        }
121804    }
121805
121806    #[inline]
121807    fn fold_ts_lit(&mut self, node: TsLit, __ast_path: &mut AstKindPath) -> TsLit {
121808        if self.enabled {
121809            <V as FoldAstPath>::fold_ts_lit(&mut self.visitor, node, __ast_path)
121810        } else {
121811            node
121812        }
121813    }
121814
121815    #[inline]
121816    fn fold_ts_lit_type(&mut self, node: TsLitType, __ast_path: &mut AstKindPath) -> TsLitType {
121817        if self.enabled {
121818            <V as FoldAstPath>::fold_ts_lit_type(&mut self.visitor, node, __ast_path)
121819        } else {
121820            node
121821        }
121822    }
121823
121824    #[inline]
121825    fn fold_ts_mapped_type(
121826        &mut self,
121827        node: TsMappedType,
121828        __ast_path: &mut AstKindPath,
121829    ) -> TsMappedType {
121830        if self.enabled {
121831            <V as FoldAstPath>::fold_ts_mapped_type(&mut self.visitor, node, __ast_path)
121832        } else {
121833            node
121834        }
121835    }
121836
121837    #[inline]
121838    fn fold_ts_method_signature(
121839        &mut self,
121840        node: TsMethodSignature,
121841        __ast_path: &mut AstKindPath,
121842    ) -> TsMethodSignature {
121843        if self.enabled {
121844            <V as FoldAstPath>::fold_ts_method_signature(&mut self.visitor, node, __ast_path)
121845        } else {
121846            node
121847        }
121848    }
121849
121850    #[inline]
121851    fn fold_ts_module_block(
121852        &mut self,
121853        node: TsModuleBlock,
121854        __ast_path: &mut AstKindPath,
121855    ) -> TsModuleBlock {
121856        if self.enabled {
121857            <V as FoldAstPath>::fold_ts_module_block(&mut self.visitor, node, __ast_path)
121858        } else {
121859            node
121860        }
121861    }
121862
121863    #[inline]
121864    fn fold_ts_module_decl(
121865        &mut self,
121866        node: TsModuleDecl,
121867        __ast_path: &mut AstKindPath,
121868    ) -> TsModuleDecl {
121869        if self.enabled {
121870            <V as FoldAstPath>::fold_ts_module_decl(&mut self.visitor, node, __ast_path)
121871        } else {
121872            node
121873        }
121874    }
121875
121876    #[inline]
121877    fn fold_ts_module_name(
121878        &mut self,
121879        node: TsModuleName,
121880        __ast_path: &mut AstKindPath,
121881    ) -> TsModuleName {
121882        if self.enabled {
121883            <V as FoldAstPath>::fold_ts_module_name(&mut self.visitor, node, __ast_path)
121884        } else {
121885            node
121886        }
121887    }
121888
121889    #[inline]
121890    fn fold_ts_module_ref(
121891        &mut self,
121892        node: TsModuleRef,
121893        __ast_path: &mut AstKindPath,
121894    ) -> TsModuleRef {
121895        if self.enabled {
121896            <V as FoldAstPath>::fold_ts_module_ref(&mut self.visitor, node, __ast_path)
121897        } else {
121898            node
121899        }
121900    }
121901
121902    #[inline]
121903    fn fold_ts_namespace_body(
121904        &mut self,
121905        node: TsNamespaceBody,
121906        __ast_path: &mut AstKindPath,
121907    ) -> TsNamespaceBody {
121908        if self.enabled {
121909            <V as FoldAstPath>::fold_ts_namespace_body(&mut self.visitor, node, __ast_path)
121910        } else {
121911            node
121912        }
121913    }
121914
121915    #[inline]
121916    fn fold_ts_namespace_decl(
121917        &mut self,
121918        node: TsNamespaceDecl,
121919        __ast_path: &mut AstKindPath,
121920    ) -> TsNamespaceDecl {
121921        if self.enabled {
121922            <V as FoldAstPath>::fold_ts_namespace_decl(&mut self.visitor, node, __ast_path)
121923        } else {
121924            node
121925        }
121926    }
121927
121928    #[inline]
121929    fn fold_ts_namespace_export_decl(
121930        &mut self,
121931        node: TsNamespaceExportDecl,
121932        __ast_path: &mut AstKindPath,
121933    ) -> TsNamespaceExportDecl {
121934        if self.enabled {
121935            <V as FoldAstPath>::fold_ts_namespace_export_decl(&mut self.visitor, node, __ast_path)
121936        } else {
121937            node
121938        }
121939    }
121940
121941    #[inline]
121942    fn fold_ts_non_null_expr(
121943        &mut self,
121944        node: TsNonNullExpr,
121945        __ast_path: &mut AstKindPath,
121946    ) -> TsNonNullExpr {
121947        if self.enabled {
121948            <V as FoldAstPath>::fold_ts_non_null_expr(&mut self.visitor, node, __ast_path)
121949        } else {
121950            node
121951        }
121952    }
121953
121954    #[inline]
121955    fn fold_ts_optional_type(
121956        &mut self,
121957        node: TsOptionalType,
121958        __ast_path: &mut AstKindPath,
121959    ) -> TsOptionalType {
121960        if self.enabled {
121961            <V as FoldAstPath>::fold_ts_optional_type(&mut self.visitor, node, __ast_path)
121962        } else {
121963            node
121964        }
121965    }
121966
121967    #[inline]
121968    fn fold_ts_param_prop(
121969        &mut self,
121970        node: TsParamProp,
121971        __ast_path: &mut AstKindPath,
121972    ) -> TsParamProp {
121973        if self.enabled {
121974            <V as FoldAstPath>::fold_ts_param_prop(&mut self.visitor, node, __ast_path)
121975        } else {
121976            node
121977        }
121978    }
121979
121980    #[inline]
121981    fn fold_ts_param_prop_param(
121982        &mut self,
121983        node: TsParamPropParam,
121984        __ast_path: &mut AstKindPath,
121985    ) -> TsParamPropParam {
121986        if self.enabled {
121987            <V as FoldAstPath>::fold_ts_param_prop_param(&mut self.visitor, node, __ast_path)
121988        } else {
121989            node
121990        }
121991    }
121992
121993    #[inline]
121994    fn fold_ts_parenthesized_type(
121995        &mut self,
121996        node: TsParenthesizedType,
121997        __ast_path: &mut AstKindPath,
121998    ) -> TsParenthesizedType {
121999        if self.enabled {
122000            <V as FoldAstPath>::fold_ts_parenthesized_type(&mut self.visitor, node, __ast_path)
122001        } else {
122002            node
122003        }
122004    }
122005
122006    #[inline]
122007    fn fold_ts_property_signature(
122008        &mut self,
122009        node: TsPropertySignature,
122010        __ast_path: &mut AstKindPath,
122011    ) -> TsPropertySignature {
122012        if self.enabled {
122013            <V as FoldAstPath>::fold_ts_property_signature(&mut self.visitor, node, __ast_path)
122014        } else {
122015            node
122016        }
122017    }
122018
122019    #[inline]
122020    fn fold_ts_qualified_name(
122021        &mut self,
122022        node: TsQualifiedName,
122023        __ast_path: &mut AstKindPath,
122024    ) -> TsQualifiedName {
122025        if self.enabled {
122026            <V as FoldAstPath>::fold_ts_qualified_name(&mut self.visitor, node, __ast_path)
122027        } else {
122028            node
122029        }
122030    }
122031
122032    #[inline]
122033    fn fold_ts_rest_type(&mut self, node: TsRestType, __ast_path: &mut AstKindPath) -> TsRestType {
122034        if self.enabled {
122035            <V as FoldAstPath>::fold_ts_rest_type(&mut self.visitor, node, __ast_path)
122036        } else {
122037            node
122038        }
122039    }
122040
122041    #[inline]
122042    fn fold_ts_satisfies_expr(
122043        &mut self,
122044        node: TsSatisfiesExpr,
122045        __ast_path: &mut AstKindPath,
122046    ) -> TsSatisfiesExpr {
122047        if self.enabled {
122048            <V as FoldAstPath>::fold_ts_satisfies_expr(&mut self.visitor, node, __ast_path)
122049        } else {
122050            node
122051        }
122052    }
122053
122054    #[inline]
122055    fn fold_ts_setter_signature(
122056        &mut self,
122057        node: TsSetterSignature,
122058        __ast_path: &mut AstKindPath,
122059    ) -> TsSetterSignature {
122060        if self.enabled {
122061            <V as FoldAstPath>::fold_ts_setter_signature(&mut self.visitor, node, __ast_path)
122062        } else {
122063            node
122064        }
122065    }
122066
122067    #[inline]
122068    fn fold_ts_this_type(&mut self, node: TsThisType, __ast_path: &mut AstKindPath) -> TsThisType {
122069        if self.enabled {
122070            <V as FoldAstPath>::fold_ts_this_type(&mut self.visitor, node, __ast_path)
122071        } else {
122072            node
122073        }
122074    }
122075
122076    #[inline]
122077    fn fold_ts_this_type_or_ident(
122078        &mut self,
122079        node: TsThisTypeOrIdent,
122080        __ast_path: &mut AstKindPath,
122081    ) -> TsThisTypeOrIdent {
122082        if self.enabled {
122083            <V as FoldAstPath>::fold_ts_this_type_or_ident(&mut self.visitor, node, __ast_path)
122084        } else {
122085            node
122086        }
122087    }
122088
122089    #[inline]
122090    fn fold_ts_tpl_lit_type(
122091        &mut self,
122092        node: TsTplLitType,
122093        __ast_path: &mut AstKindPath,
122094    ) -> TsTplLitType {
122095        if self.enabled {
122096            <V as FoldAstPath>::fold_ts_tpl_lit_type(&mut self.visitor, node, __ast_path)
122097        } else {
122098            node
122099        }
122100    }
122101
122102    #[inline]
122103    fn fold_ts_tuple_element(
122104        &mut self,
122105        node: TsTupleElement,
122106        __ast_path: &mut AstKindPath,
122107    ) -> TsTupleElement {
122108        if self.enabled {
122109            <V as FoldAstPath>::fold_ts_tuple_element(&mut self.visitor, node, __ast_path)
122110        } else {
122111            node
122112        }
122113    }
122114
122115    #[inline]
122116    fn fold_ts_tuple_elements(
122117        &mut self,
122118        node: Vec<TsTupleElement>,
122119        __ast_path: &mut AstKindPath,
122120    ) -> Vec<TsTupleElement> {
122121        if self.enabled {
122122            <V as FoldAstPath>::fold_ts_tuple_elements(&mut self.visitor, node, __ast_path)
122123        } else {
122124            node
122125        }
122126    }
122127
122128    #[inline]
122129    fn fold_ts_tuple_type(
122130        &mut self,
122131        node: TsTupleType,
122132        __ast_path: &mut AstKindPath,
122133    ) -> TsTupleType {
122134        if self.enabled {
122135            <V as FoldAstPath>::fold_ts_tuple_type(&mut self.visitor, node, __ast_path)
122136        } else {
122137            node
122138        }
122139    }
122140
122141    #[inline]
122142    fn fold_ts_type(&mut self, node: TsType, __ast_path: &mut AstKindPath) -> TsType {
122143        if self.enabled {
122144            <V as FoldAstPath>::fold_ts_type(&mut self.visitor, node, __ast_path)
122145        } else {
122146            node
122147        }
122148    }
122149
122150    #[inline]
122151    fn fold_ts_type_alias_decl(
122152        &mut self,
122153        node: TsTypeAliasDecl,
122154        __ast_path: &mut AstKindPath,
122155    ) -> TsTypeAliasDecl {
122156        if self.enabled {
122157            <V as FoldAstPath>::fold_ts_type_alias_decl(&mut self.visitor, node, __ast_path)
122158        } else {
122159            node
122160        }
122161    }
122162
122163    #[inline]
122164    fn fold_ts_type_ann(&mut self, node: TsTypeAnn, __ast_path: &mut AstKindPath) -> TsTypeAnn {
122165        if self.enabled {
122166            <V as FoldAstPath>::fold_ts_type_ann(&mut self.visitor, node, __ast_path)
122167        } else {
122168            node
122169        }
122170    }
122171
122172    #[inline]
122173    fn fold_ts_type_assertion(
122174        &mut self,
122175        node: TsTypeAssertion,
122176        __ast_path: &mut AstKindPath,
122177    ) -> TsTypeAssertion {
122178        if self.enabled {
122179            <V as FoldAstPath>::fold_ts_type_assertion(&mut self.visitor, node, __ast_path)
122180        } else {
122181            node
122182        }
122183    }
122184
122185    #[inline]
122186    fn fold_ts_type_element(
122187        &mut self,
122188        node: TsTypeElement,
122189        __ast_path: &mut AstKindPath,
122190    ) -> TsTypeElement {
122191        if self.enabled {
122192            <V as FoldAstPath>::fold_ts_type_element(&mut self.visitor, node, __ast_path)
122193        } else {
122194            node
122195        }
122196    }
122197
122198    #[inline]
122199    fn fold_ts_type_elements(
122200        &mut self,
122201        node: Vec<TsTypeElement>,
122202        __ast_path: &mut AstKindPath,
122203    ) -> Vec<TsTypeElement> {
122204        if self.enabled {
122205            <V as FoldAstPath>::fold_ts_type_elements(&mut self.visitor, node, __ast_path)
122206        } else {
122207            node
122208        }
122209    }
122210
122211    #[inline]
122212    fn fold_ts_type_lit(&mut self, node: TsTypeLit, __ast_path: &mut AstKindPath) -> TsTypeLit {
122213        if self.enabled {
122214            <V as FoldAstPath>::fold_ts_type_lit(&mut self.visitor, node, __ast_path)
122215        } else {
122216            node
122217        }
122218    }
122219
122220    #[inline]
122221    fn fold_ts_type_operator(
122222        &mut self,
122223        node: TsTypeOperator,
122224        __ast_path: &mut AstKindPath,
122225    ) -> TsTypeOperator {
122226        if self.enabled {
122227            <V as FoldAstPath>::fold_ts_type_operator(&mut self.visitor, node, __ast_path)
122228        } else {
122229            node
122230        }
122231    }
122232
122233    #[inline]
122234    fn fold_ts_type_operator_op(
122235        &mut self,
122236        node: TsTypeOperatorOp,
122237        __ast_path: &mut AstKindPath,
122238    ) -> TsTypeOperatorOp {
122239        if self.enabled {
122240            <V as FoldAstPath>::fold_ts_type_operator_op(&mut self.visitor, node, __ast_path)
122241        } else {
122242            node
122243        }
122244    }
122245
122246    #[inline]
122247    fn fold_ts_type_param(
122248        &mut self,
122249        node: TsTypeParam,
122250        __ast_path: &mut AstKindPath,
122251    ) -> TsTypeParam {
122252        if self.enabled {
122253            <V as FoldAstPath>::fold_ts_type_param(&mut self.visitor, node, __ast_path)
122254        } else {
122255            node
122256        }
122257    }
122258
122259    #[inline]
122260    fn fold_ts_type_param_decl(
122261        &mut self,
122262        node: TsTypeParamDecl,
122263        __ast_path: &mut AstKindPath,
122264    ) -> TsTypeParamDecl {
122265        if self.enabled {
122266            <V as FoldAstPath>::fold_ts_type_param_decl(&mut self.visitor, node, __ast_path)
122267        } else {
122268            node
122269        }
122270    }
122271
122272    #[inline]
122273    fn fold_ts_type_param_instantiation(
122274        &mut self,
122275        node: TsTypeParamInstantiation,
122276        __ast_path: &mut AstKindPath,
122277    ) -> TsTypeParamInstantiation {
122278        if self.enabled {
122279            <V as FoldAstPath>::fold_ts_type_param_instantiation(
122280                &mut self.visitor,
122281                node,
122282                __ast_path,
122283            )
122284        } else {
122285            node
122286        }
122287    }
122288
122289    #[inline]
122290    fn fold_ts_type_params(
122291        &mut self,
122292        node: Vec<TsTypeParam>,
122293        __ast_path: &mut AstKindPath,
122294    ) -> Vec<TsTypeParam> {
122295        if self.enabled {
122296            <V as FoldAstPath>::fold_ts_type_params(&mut self.visitor, node, __ast_path)
122297        } else {
122298            node
122299        }
122300    }
122301
122302    #[inline]
122303    fn fold_ts_type_predicate(
122304        &mut self,
122305        node: TsTypePredicate,
122306        __ast_path: &mut AstKindPath,
122307    ) -> TsTypePredicate {
122308        if self.enabled {
122309            <V as FoldAstPath>::fold_ts_type_predicate(&mut self.visitor, node, __ast_path)
122310        } else {
122311            node
122312        }
122313    }
122314
122315    #[inline]
122316    fn fold_ts_type_query(
122317        &mut self,
122318        node: TsTypeQuery,
122319        __ast_path: &mut AstKindPath,
122320    ) -> TsTypeQuery {
122321        if self.enabled {
122322            <V as FoldAstPath>::fold_ts_type_query(&mut self.visitor, node, __ast_path)
122323        } else {
122324            node
122325        }
122326    }
122327
122328    #[inline]
122329    fn fold_ts_type_query_expr(
122330        &mut self,
122331        node: TsTypeQueryExpr,
122332        __ast_path: &mut AstKindPath,
122333    ) -> TsTypeQueryExpr {
122334        if self.enabled {
122335            <V as FoldAstPath>::fold_ts_type_query_expr(&mut self.visitor, node, __ast_path)
122336        } else {
122337            node
122338        }
122339    }
122340
122341    #[inline]
122342    fn fold_ts_type_ref(&mut self, node: TsTypeRef, __ast_path: &mut AstKindPath) -> TsTypeRef {
122343        if self.enabled {
122344            <V as FoldAstPath>::fold_ts_type_ref(&mut self.visitor, node, __ast_path)
122345        } else {
122346            node
122347        }
122348    }
122349
122350    #[inline]
122351    fn fold_ts_types(
122352        &mut self,
122353        node: Vec<Box<TsType>>,
122354        __ast_path: &mut AstKindPath,
122355    ) -> Vec<Box<TsType>> {
122356        if self.enabled {
122357            <V as FoldAstPath>::fold_ts_types(&mut self.visitor, node, __ast_path)
122358        } else {
122359            node
122360        }
122361    }
122362
122363    #[inline]
122364    fn fold_ts_union_or_intersection_type(
122365        &mut self,
122366        node: TsUnionOrIntersectionType,
122367        __ast_path: &mut AstKindPath,
122368    ) -> TsUnionOrIntersectionType {
122369        if self.enabled {
122370            <V as FoldAstPath>::fold_ts_union_or_intersection_type(
122371                &mut self.visitor,
122372                node,
122373                __ast_path,
122374            )
122375        } else {
122376            node
122377        }
122378    }
122379
122380    #[inline]
122381    fn fold_ts_union_type(
122382        &mut self,
122383        node: TsUnionType,
122384        __ast_path: &mut AstKindPath,
122385    ) -> TsUnionType {
122386        if self.enabled {
122387            <V as FoldAstPath>::fold_ts_union_type(&mut self.visitor, node, __ast_path)
122388        } else {
122389            node
122390        }
122391    }
122392
122393    #[inline]
122394    fn fold_unary_expr(&mut self, node: UnaryExpr, __ast_path: &mut AstKindPath) -> UnaryExpr {
122395        if self.enabled {
122396            <V as FoldAstPath>::fold_unary_expr(&mut self.visitor, node, __ast_path)
122397        } else {
122398            node
122399        }
122400    }
122401
122402    #[inline]
122403    fn fold_unary_op(&mut self, node: UnaryOp, __ast_path: &mut AstKindPath) -> UnaryOp {
122404        if self.enabled {
122405            <V as FoldAstPath>::fold_unary_op(&mut self.visitor, node, __ast_path)
122406        } else {
122407            node
122408        }
122409    }
122410
122411    #[inline]
122412    fn fold_update_expr(&mut self, node: UpdateExpr, __ast_path: &mut AstKindPath) -> UpdateExpr {
122413        if self.enabled {
122414            <V as FoldAstPath>::fold_update_expr(&mut self.visitor, node, __ast_path)
122415        } else {
122416            node
122417        }
122418    }
122419
122420    #[inline]
122421    fn fold_update_op(&mut self, node: UpdateOp, __ast_path: &mut AstKindPath) -> UpdateOp {
122422        if self.enabled {
122423            <V as FoldAstPath>::fold_update_op(&mut self.visitor, node, __ast_path)
122424        } else {
122425            node
122426        }
122427    }
122428
122429    #[inline]
122430    fn fold_using_decl(&mut self, node: UsingDecl, __ast_path: &mut AstKindPath) -> UsingDecl {
122431        if self.enabled {
122432            <V as FoldAstPath>::fold_using_decl(&mut self.visitor, node, __ast_path)
122433        } else {
122434            node
122435        }
122436    }
122437
122438    #[inline]
122439    fn fold_var_decl(&mut self, node: VarDecl, __ast_path: &mut AstKindPath) -> VarDecl {
122440        if self.enabled {
122441            <V as FoldAstPath>::fold_var_decl(&mut self.visitor, node, __ast_path)
122442        } else {
122443            node
122444        }
122445    }
122446
122447    #[inline]
122448    fn fold_var_decl_kind(
122449        &mut self,
122450        node: VarDeclKind,
122451        __ast_path: &mut AstKindPath,
122452    ) -> VarDeclKind {
122453        if self.enabled {
122454            <V as FoldAstPath>::fold_var_decl_kind(&mut self.visitor, node, __ast_path)
122455        } else {
122456            node
122457        }
122458    }
122459
122460    #[inline]
122461    fn fold_var_decl_or_expr(
122462        &mut self,
122463        node: VarDeclOrExpr,
122464        __ast_path: &mut AstKindPath,
122465    ) -> VarDeclOrExpr {
122466        if self.enabled {
122467            <V as FoldAstPath>::fold_var_decl_or_expr(&mut self.visitor, node, __ast_path)
122468        } else {
122469            node
122470        }
122471    }
122472
122473    #[inline]
122474    fn fold_var_declarator(
122475        &mut self,
122476        node: VarDeclarator,
122477        __ast_path: &mut AstKindPath,
122478    ) -> VarDeclarator {
122479        if self.enabled {
122480            <V as FoldAstPath>::fold_var_declarator(&mut self.visitor, node, __ast_path)
122481        } else {
122482            node
122483        }
122484    }
122485
122486    #[inline]
122487    fn fold_var_declarators(
122488        &mut self,
122489        node: Vec<VarDeclarator>,
122490        __ast_path: &mut AstKindPath,
122491    ) -> Vec<VarDeclarator> {
122492        if self.enabled {
122493            <V as FoldAstPath>::fold_var_declarators(&mut self.visitor, node, __ast_path)
122494        } else {
122495            node
122496        }
122497    }
122498
122499    #[inline]
122500    fn fold_while_stmt(&mut self, node: WhileStmt, __ast_path: &mut AstKindPath) -> WhileStmt {
122501        if self.enabled {
122502            <V as FoldAstPath>::fold_while_stmt(&mut self.visitor, node, __ast_path)
122503        } else {
122504            node
122505        }
122506    }
122507
122508    #[inline]
122509    fn fold_with_stmt(&mut self, node: WithStmt, __ast_path: &mut AstKindPath) -> WithStmt {
122510        if self.enabled {
122511            <V as FoldAstPath>::fold_with_stmt(&mut self.visitor, node, __ast_path)
122512        } else {
122513            node
122514        }
122515    }
122516
122517    #[inline]
122518    fn fold_yield_expr(&mut self, node: YieldExpr, __ast_path: &mut AstKindPath) -> YieldExpr {
122519        if self.enabled {
122520            <V as FoldAstPath>::fold_yield_expr(&mut self.visitor, node, __ast_path)
122521        } else {
122522            node
122523        }
122524    }
122525}
122526#[doc = r" A trait implemented for types that can be visited using a visitor."]
122527#[cfg(any(docsrs, feature = "path"))]
122528#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122529pub trait FoldWithAstPath<V: ?Sized + FoldAstPath> {
122530    #[doc = r" Calls a visitor method (visitor.fold_xxx) with self."]
122531    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self;
122532    #[doc = r" Visit children nodes of `self`` with `visitor`."]
122533    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self;
122534}
122535#[cfg(any(docsrs, feature = "path"))]
122536#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122537impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Accessibility {
122538    #[doc = "Calls [FoldAstPath`::fold_accessibility`] with `self`."]
122539    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122540        <V as FoldAstPath>::fold_accessibility(visitor, self, __ast_path)
122541    }
122542
122543    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122544        match self {
122545            Accessibility::Public => Accessibility::Public,
122546            Accessibility::Protected => Accessibility::Protected,
122547            Accessibility::Private => Accessibility::Private,
122548        }
122549    }
122550}
122551#[cfg(any(docsrs, feature = "path"))]
122552#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122553impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ArrayLit {
122554    #[doc = "Calls [FoldAstPath`::fold_array_lit`] with `self`."]
122555    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122556        <V as FoldAstPath>::fold_array_lit(visitor, self, __ast_path)
122557    }
122558
122559    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122560        match self {
122561            ArrayLit { span, elems } => {
122562                let span = {
122563                    let mut __ast_path = __ast_path
122564                        .with_guard(AstParentKind::ArrayLit(self::fields::ArrayLitField::Span));
122565                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122566                        span,
122567                        visitor,
122568                        &mut *__ast_path,
122569                    )
122570                };
122571                let elems = {
122572                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayLit(
122573                        self::fields::ArrayLitField::Elems(usize::MAX),
122574                    ));
122575                    <Vec<Option<ExprOrSpread>> as FoldWithAstPath<V>>::fold_with_ast_path(
122576                        elems,
122577                        visitor,
122578                        &mut *__ast_path,
122579                    )
122580                };
122581                ArrayLit { span, elems }
122582            }
122583        }
122584    }
122585}
122586#[cfg(any(docsrs, feature = "path"))]
122587#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122588impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ArrayPat {
122589    #[doc = "Calls [FoldAstPath`::fold_array_pat`] with `self`."]
122590    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122591        <V as FoldAstPath>::fold_array_pat(visitor, self, __ast_path)
122592    }
122593
122594    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122595        match self {
122596            ArrayPat {
122597                span,
122598                elems,
122599                optional,
122600                type_ann,
122601            } => {
122602                let span = {
122603                    let mut __ast_path = __ast_path
122604                        .with_guard(AstParentKind::ArrayPat(self::fields::ArrayPatField::Span));
122605                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122606                        span,
122607                        visitor,
122608                        &mut *__ast_path,
122609                    )
122610                };
122611                let elems = {
122612                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
122613                        self::fields::ArrayPatField::Elems(usize::MAX),
122614                    ));
122615                    <Vec<Option<Pat>> as FoldWithAstPath<V>>::fold_with_ast_path(
122616                        elems,
122617                        visitor,
122618                        &mut *__ast_path,
122619                    )
122620                };
122621                let type_ann = {
122622                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrayPat(
122623                        self::fields::ArrayPatField::TypeAnn,
122624                    ));
122625                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
122626                        type_ann,
122627                        visitor,
122628                        &mut *__ast_path,
122629                    )
122630                };
122631                ArrayPat {
122632                    span,
122633                    elems,
122634                    optional,
122635                    type_ann,
122636                }
122637            }
122638        }
122639    }
122640}
122641#[cfg(any(docsrs, feature = "path"))]
122642#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122643impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ArrowExpr {
122644    #[doc = "Calls [FoldAstPath`::fold_arrow_expr`] with `self`."]
122645    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122646        <V as FoldAstPath>::fold_arrow_expr(visitor, self, __ast_path)
122647    }
122648
122649    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122650        match self {
122651            ArrowExpr {
122652                span,
122653                ctxt,
122654                params,
122655                body,
122656                is_async,
122657                is_generator,
122658                type_params,
122659                return_type,
122660            } => {
122661                let span = {
122662                    let mut __ast_path = __ast_path
122663                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Span));
122664                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122665                        span,
122666                        visitor,
122667                        &mut *__ast_path,
122668                    )
122669                };
122670                let ctxt = {
122671                    let mut __ast_path = __ast_path
122672                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Ctxt));
122673                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
122674                        ctxt,
122675                        visitor,
122676                        &mut *__ast_path,
122677                    )
122678                };
122679                let params = {
122680                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
122681                        self::fields::ArrowExprField::Params(usize::MAX),
122682                    ));
122683                    <Vec<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
122684                        params,
122685                        visitor,
122686                        &mut *__ast_path,
122687                    )
122688                };
122689                let body = {
122690                    let mut __ast_path = __ast_path
122691                        .with_guard(AstParentKind::ArrowExpr(self::fields::ArrowExprField::Body));
122692                    <Box<BlockStmtOrExpr> as FoldWithAstPath<V>>::fold_with_ast_path(
122693                        body,
122694                        visitor,
122695                        &mut *__ast_path,
122696                    )
122697                };
122698                let type_params = {
122699                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
122700                        self::fields::ArrowExprField::TypeParams,
122701                    ));
122702                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
122703                        type_params,
122704                        visitor,
122705                        &mut *__ast_path,
122706                    )
122707                };
122708                let return_type = {
122709                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ArrowExpr(
122710                        self::fields::ArrowExprField::ReturnType,
122711                    ));
122712                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
122713                        return_type,
122714                        visitor,
122715                        &mut *__ast_path,
122716                    )
122717                };
122718                ArrowExpr {
122719                    span,
122720                    ctxt,
122721                    params,
122722                    body,
122723                    is_async,
122724                    is_generator,
122725                    type_params,
122726                    return_type,
122727                }
122728            }
122729        }
122730    }
122731}
122732#[cfg(any(docsrs, feature = "path"))]
122733#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122734impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignExpr {
122735    #[doc = "Calls [FoldAstPath`::fold_assign_expr`] with `self`."]
122736    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122737        <V as FoldAstPath>::fold_assign_expr(visitor, self, __ast_path)
122738    }
122739
122740    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122741        match self {
122742            AssignExpr {
122743                span,
122744                op,
122745                left,
122746                right,
122747            } => {
122748                let span = {
122749                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
122750                        self::fields::AssignExprField::Span,
122751                    ));
122752                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122753                        span,
122754                        visitor,
122755                        &mut *__ast_path,
122756                    )
122757                };
122758                let op = {
122759                    let mut __ast_path = __ast_path
122760                        .with_guard(AstParentKind::AssignExpr(self::fields::AssignExprField::Op));
122761                    <AssignOp as FoldWithAstPath<V>>::fold_with_ast_path(
122762                        op,
122763                        visitor,
122764                        &mut *__ast_path,
122765                    )
122766                };
122767                let left = {
122768                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
122769                        self::fields::AssignExprField::Left,
122770                    ));
122771                    <AssignTarget as FoldWithAstPath<V>>::fold_with_ast_path(
122772                        left,
122773                        visitor,
122774                        &mut *__ast_path,
122775                    )
122776                };
122777                let right = {
122778                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignExpr(
122779                        self::fields::AssignExprField::Right,
122780                    ));
122781                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
122782                        right,
122783                        visitor,
122784                        &mut *__ast_path,
122785                    )
122786                };
122787                AssignExpr {
122788                    span,
122789                    op,
122790                    left,
122791                    right,
122792                }
122793            }
122794        }
122795    }
122796}
122797#[cfg(any(docsrs, feature = "path"))]
122798#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122799impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignOp {
122800    #[doc = "Calls [FoldAstPath`::fold_assign_op`] with `self`."]
122801    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122802        <V as FoldAstPath>::fold_assign_op(visitor, self, __ast_path)
122803    }
122804
122805    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122806        match self {
122807            AssignOp::Assign => AssignOp::Assign,
122808            AssignOp::AddAssign => AssignOp::AddAssign,
122809            AssignOp::SubAssign => AssignOp::SubAssign,
122810            AssignOp::MulAssign => AssignOp::MulAssign,
122811            AssignOp::DivAssign => AssignOp::DivAssign,
122812            AssignOp::ModAssign => AssignOp::ModAssign,
122813            AssignOp::LShiftAssign => AssignOp::LShiftAssign,
122814            AssignOp::RShiftAssign => AssignOp::RShiftAssign,
122815            AssignOp::ZeroFillRShiftAssign => AssignOp::ZeroFillRShiftAssign,
122816            AssignOp::BitOrAssign => AssignOp::BitOrAssign,
122817            AssignOp::BitXorAssign => AssignOp::BitXorAssign,
122818            AssignOp::BitAndAssign => AssignOp::BitAndAssign,
122819            AssignOp::ExpAssign => AssignOp::ExpAssign,
122820            AssignOp::AndAssign => AssignOp::AndAssign,
122821            AssignOp::OrAssign => AssignOp::OrAssign,
122822            AssignOp::NullishAssign => AssignOp::NullishAssign,
122823        }
122824    }
122825}
122826#[cfg(any(docsrs, feature = "path"))]
122827#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122828impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignPat {
122829    #[doc = "Calls [FoldAstPath`::fold_assign_pat`] with `self`."]
122830    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122831        <V as FoldAstPath>::fold_assign_pat(visitor, self, __ast_path)
122832    }
122833
122834    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122835        match self {
122836            AssignPat { span, left, right } => {
122837                let span = {
122838                    let mut __ast_path = __ast_path
122839                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Span));
122840                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122841                        span,
122842                        visitor,
122843                        &mut *__ast_path,
122844                    )
122845                };
122846                let left = {
122847                    let mut __ast_path = __ast_path
122848                        .with_guard(AstParentKind::AssignPat(self::fields::AssignPatField::Left));
122849                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
122850                        left,
122851                        visitor,
122852                        &mut *__ast_path,
122853                    )
122854                };
122855                let right = {
122856                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPat(
122857                        self::fields::AssignPatField::Right,
122858                    ));
122859                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
122860                        right,
122861                        visitor,
122862                        &mut *__ast_path,
122863                    )
122864                };
122865                AssignPat { span, left, right }
122866            }
122867        }
122868    }
122869}
122870#[cfg(any(docsrs, feature = "path"))]
122871#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122872impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignPatProp {
122873    #[doc = "Calls [FoldAstPath`::fold_assign_pat_prop`] with `self`."]
122874    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122875        <V as FoldAstPath>::fold_assign_pat_prop(visitor, self, __ast_path)
122876    }
122877
122878    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122879        match self {
122880            AssignPatProp { span, key, value } => {
122881                let span = {
122882                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
122883                        self::fields::AssignPatPropField::Span,
122884                    ));
122885                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122886                        span,
122887                        visitor,
122888                        &mut *__ast_path,
122889                    )
122890                };
122891                let key = {
122892                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
122893                        self::fields::AssignPatPropField::Key,
122894                    ));
122895                    <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
122896                        key,
122897                        visitor,
122898                        &mut *__ast_path,
122899                    )
122900                };
122901                let value = {
122902                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignPatProp(
122903                        self::fields::AssignPatPropField::Value,
122904                    ));
122905                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
122906                        value,
122907                        visitor,
122908                        &mut *__ast_path,
122909                    )
122910                };
122911                AssignPatProp { span, key, value }
122912            }
122913        }
122914    }
122915}
122916#[cfg(any(docsrs, feature = "path"))]
122917#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122918impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignProp {
122919    #[doc = "Calls [FoldAstPath`::fold_assign_prop`] with `self`."]
122920    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122921        <V as FoldAstPath>::fold_assign_prop(visitor, self, __ast_path)
122922    }
122923
122924    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122925        match self {
122926            AssignProp { span, key, value } => {
122927                let span = {
122928                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
122929                        self::fields::AssignPropField::Span,
122930                    ));
122931                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
122932                        span,
122933                        visitor,
122934                        &mut *__ast_path,
122935                    )
122936                };
122937                let key = {
122938                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
122939                        self::fields::AssignPropField::Key,
122940                    ));
122941                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
122942                        key,
122943                        visitor,
122944                        &mut *__ast_path,
122945                    )
122946                };
122947                let value = {
122948                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignProp(
122949                        self::fields::AssignPropField::Value,
122950                    ));
122951                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
122952                        value,
122953                        visitor,
122954                        &mut *__ast_path,
122955                    )
122956                };
122957                AssignProp { span, key, value }
122958            }
122959        }
122960    }
122961}
122962#[cfg(any(docsrs, feature = "path"))]
122963#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122964impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignTarget {
122965    #[doc = "Calls [FoldAstPath`::fold_assign_target`] with `self`."]
122966    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122967        <V as FoldAstPath>::fold_assign_target(visitor, self, __ast_path)
122968    }
122969
122970    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
122971        match self {
122972            AssignTarget::Simple { 0: _field_0 } => {
122973                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
122974                    self::fields::AssignTargetField::Simple,
122975                ));
122976                let _field_0 = <SimpleAssignTarget as FoldWithAstPath<V>>::fold_with_ast_path(
122977                    _field_0,
122978                    visitor,
122979                    &mut *__ast_path,
122980                );
122981                AssignTarget::Simple { 0: _field_0 }
122982            }
122983            AssignTarget::Pat { 0: _field_0 } => {
122984                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTarget(
122985                    self::fields::AssignTargetField::Pat,
122986                ));
122987                let _field_0 = <AssignTargetPat as FoldWithAstPath<V>>::fold_with_ast_path(
122988                    _field_0,
122989                    visitor,
122990                    &mut *__ast_path,
122991                );
122992                AssignTarget::Pat { 0: _field_0 }
122993            }
122994        }
122995    }
122996}
122997#[cfg(any(docsrs, feature = "path"))]
122998#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
122999impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AssignTargetPat {
123000    #[doc = "Calls [FoldAstPath`::fold_assign_target_pat`] with `self`."]
123001    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123002        <V as FoldAstPath>::fold_assign_target_pat(visitor, self, __ast_path)
123003    }
123004
123005    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123006        match self {
123007            AssignTargetPat::Array { 0: _field_0 } => {
123008                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
123009                    self::fields::AssignTargetPatField::Array,
123010                ));
123011                let _field_0 = <ArrayPat as FoldWithAstPath<V>>::fold_with_ast_path(
123012                    _field_0,
123013                    visitor,
123014                    &mut *__ast_path,
123015                );
123016                AssignTargetPat::Array { 0: _field_0 }
123017            }
123018            AssignTargetPat::Object { 0: _field_0 } => {
123019                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
123020                    self::fields::AssignTargetPatField::Object,
123021                ));
123022                let _field_0 = <ObjectPat as FoldWithAstPath<V>>::fold_with_ast_path(
123023                    _field_0,
123024                    visitor,
123025                    &mut *__ast_path,
123026                );
123027                AssignTargetPat::Object { 0: _field_0 }
123028            }
123029            AssignTargetPat::Invalid { 0: _field_0 } => {
123030                let mut __ast_path = __ast_path.with_guard(AstParentKind::AssignTargetPat(
123031                    self::fields::AssignTargetPatField::Invalid,
123032                ));
123033                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
123034                    _field_0,
123035                    visitor,
123036                    &mut *__ast_path,
123037                );
123038                AssignTargetPat::Invalid { 0: _field_0 }
123039            }
123040        }
123041    }
123042}
123043#[cfg(any(docsrs, feature = "path"))]
123044#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123045impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AutoAccessor {
123046    #[doc = "Calls [FoldAstPath`::fold_auto_accessor`] with `self`."]
123047    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123048        <V as FoldAstPath>::fold_auto_accessor(visitor, self, __ast_path)
123049    }
123050
123051    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123052        match self {
123053            AutoAccessor {
123054                span,
123055                key,
123056                value,
123057                type_ann,
123058                is_static,
123059                decorators,
123060                accessibility,
123061                is_abstract,
123062                is_override,
123063                definite,
123064            } => {
123065                let span = {
123066                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123067                        self::fields::AutoAccessorField::Span,
123068                    ));
123069                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123070                        span,
123071                        visitor,
123072                        &mut *__ast_path,
123073                    )
123074                };
123075                let key = {
123076                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123077                        self::fields::AutoAccessorField::Key,
123078                    ));
123079                    <Key as FoldWithAstPath<V>>::fold_with_ast_path(key, visitor, &mut *__ast_path)
123080                };
123081                let value = {
123082                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123083                        self::fields::AutoAccessorField::Value,
123084                    ));
123085                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
123086                        value,
123087                        visitor,
123088                        &mut *__ast_path,
123089                    )
123090                };
123091                let type_ann = {
123092                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123093                        self::fields::AutoAccessorField::TypeAnn,
123094                    ));
123095                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
123096                        type_ann,
123097                        visitor,
123098                        &mut *__ast_path,
123099                    )
123100                };
123101                let decorators = {
123102                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123103                        self::fields::AutoAccessorField::Decorators(usize::MAX),
123104                    ));
123105                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
123106                        decorators,
123107                        visitor,
123108                        &mut *__ast_path,
123109                    )
123110                };
123111                let accessibility = {
123112                    let mut __ast_path = __ast_path.with_guard(AstParentKind::AutoAccessor(
123113                        self::fields::AutoAccessorField::Accessibility,
123114                    ));
123115                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
123116                        accessibility,
123117                        visitor,
123118                        &mut *__ast_path,
123119                    )
123120                };
123121                AutoAccessor {
123122                    span,
123123                    key,
123124                    value,
123125                    type_ann,
123126                    is_static,
123127                    decorators,
123128                    accessibility,
123129                    is_abstract,
123130                    is_override,
123131                    definite,
123132                }
123133            }
123134        }
123135    }
123136}
123137#[cfg(any(docsrs, feature = "path"))]
123138#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123139impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for AwaitExpr {
123140    #[doc = "Calls [FoldAstPath`::fold_await_expr`] with `self`."]
123141    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123142        <V as FoldAstPath>::fold_await_expr(visitor, self, __ast_path)
123143    }
123144
123145    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123146        match self {
123147            AwaitExpr { span, arg } => {
123148                let span = {
123149                    let mut __ast_path = __ast_path
123150                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Span));
123151                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123152                        span,
123153                        visitor,
123154                        &mut *__ast_path,
123155                    )
123156                };
123157                let arg = {
123158                    let mut __ast_path = __ast_path
123159                        .with_guard(AstParentKind::AwaitExpr(self::fields::AwaitExprField::Arg));
123160                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123161                        arg,
123162                        visitor,
123163                        &mut *__ast_path,
123164                    )
123165                };
123166                AwaitExpr { span, arg }
123167            }
123168        }
123169    }
123170}
123171#[cfg(any(docsrs, feature = "path"))]
123172#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123173impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BigInt {
123174    #[doc = "Calls [FoldAstPath`::fold_big_int`] with `self`."]
123175    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123176        <V as FoldAstPath>::fold_big_int(visitor, self, __ast_path)
123177    }
123178
123179    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123180        match self {
123181            BigInt { span, value, raw } => {
123182                let span = {
123183                    let mut __ast_path = __ast_path
123184                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Span));
123185                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123186                        span,
123187                        visitor,
123188                        &mut *__ast_path,
123189                    )
123190                };
123191                let value = {
123192                    let mut __ast_path = __ast_path
123193                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Value));
123194                    <Box<BigIntValue> as FoldWithAstPath<V>>::fold_with_ast_path(
123195                        value,
123196                        visitor,
123197                        &mut *__ast_path,
123198                    )
123199                };
123200                let raw = {
123201                    let mut __ast_path = __ast_path
123202                        .with_guard(AstParentKind::BigInt(self::fields::BigIntField::Raw));
123203                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
123204                        raw,
123205                        visitor,
123206                        &mut *__ast_path,
123207                    )
123208                };
123209                BigInt { span, value, raw }
123210            }
123211        }
123212    }
123213}
123214#[cfg(any(docsrs, feature = "path"))]
123215#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123216impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BinExpr {
123217    #[doc = "Calls [FoldAstPath`::fold_bin_expr`] with `self`."]
123218    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123219        <V as FoldAstPath>::fold_bin_expr(visitor, self, __ast_path)
123220    }
123221
123222    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123223        match self {
123224            BinExpr {
123225                span,
123226                op,
123227                left,
123228                right,
123229            } => {
123230                let span = {
123231                    let mut __ast_path = __ast_path
123232                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Span));
123233                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123234                        span,
123235                        visitor,
123236                        &mut *__ast_path,
123237                    )
123238                };
123239                let op = {
123240                    let mut __ast_path = __ast_path
123241                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Op));
123242                    <BinaryOp as FoldWithAstPath<V>>::fold_with_ast_path(
123243                        op,
123244                        visitor,
123245                        &mut *__ast_path,
123246                    )
123247                };
123248                let left = {
123249                    let mut __ast_path = __ast_path
123250                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Left));
123251                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123252                        left,
123253                        visitor,
123254                        &mut *__ast_path,
123255                    )
123256                };
123257                let right = {
123258                    let mut __ast_path = __ast_path
123259                        .with_guard(AstParentKind::BinExpr(self::fields::BinExprField::Right));
123260                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123261                        right,
123262                        visitor,
123263                        &mut *__ast_path,
123264                    )
123265                };
123266                BinExpr {
123267                    span,
123268                    op,
123269                    left,
123270                    right,
123271                }
123272            }
123273        }
123274    }
123275}
123276#[cfg(any(docsrs, feature = "path"))]
123277#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123278impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BinaryOp {
123279    #[doc = "Calls [FoldAstPath`::fold_binary_op`] with `self`."]
123280    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123281        <V as FoldAstPath>::fold_binary_op(visitor, self, __ast_path)
123282    }
123283
123284    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123285        match self {
123286            BinaryOp::EqEq => BinaryOp::EqEq,
123287            BinaryOp::NotEq => BinaryOp::NotEq,
123288            BinaryOp::EqEqEq => BinaryOp::EqEqEq,
123289            BinaryOp::NotEqEq => BinaryOp::NotEqEq,
123290            BinaryOp::Lt => BinaryOp::Lt,
123291            BinaryOp::LtEq => BinaryOp::LtEq,
123292            BinaryOp::Gt => BinaryOp::Gt,
123293            BinaryOp::GtEq => BinaryOp::GtEq,
123294            BinaryOp::LShift => BinaryOp::LShift,
123295            BinaryOp::RShift => BinaryOp::RShift,
123296            BinaryOp::ZeroFillRShift => BinaryOp::ZeroFillRShift,
123297            BinaryOp::Add => BinaryOp::Add,
123298            BinaryOp::Sub => BinaryOp::Sub,
123299            BinaryOp::Mul => BinaryOp::Mul,
123300            BinaryOp::Div => BinaryOp::Div,
123301            BinaryOp::Mod => BinaryOp::Mod,
123302            BinaryOp::BitOr => BinaryOp::BitOr,
123303            BinaryOp::BitXor => BinaryOp::BitXor,
123304            BinaryOp::BitAnd => BinaryOp::BitAnd,
123305            BinaryOp::LogicalOr => BinaryOp::LogicalOr,
123306            BinaryOp::LogicalAnd => BinaryOp::LogicalAnd,
123307            BinaryOp::In => BinaryOp::In,
123308            BinaryOp::InstanceOf => BinaryOp::InstanceOf,
123309            BinaryOp::Exp => BinaryOp::Exp,
123310            BinaryOp::NullishCoalescing => BinaryOp::NullishCoalescing,
123311        }
123312    }
123313}
123314#[cfg(any(docsrs, feature = "path"))]
123315#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123316impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BindingIdent {
123317    #[doc = "Calls [FoldAstPath`::fold_binding_ident`] with `self`."]
123318    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123319        <V as FoldAstPath>::fold_binding_ident(visitor, self, __ast_path)
123320    }
123321
123322    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123323        match self {
123324            BindingIdent { id, type_ann } => {
123325                let id = {
123326                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
123327                        self::fields::BindingIdentField::Id,
123328                    ));
123329                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
123330                };
123331                let type_ann = {
123332                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BindingIdent(
123333                        self::fields::BindingIdentField::TypeAnn,
123334                    ));
123335                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
123336                        type_ann,
123337                        visitor,
123338                        &mut *__ast_path,
123339                    )
123340                };
123341                BindingIdent { id, type_ann }
123342            }
123343        }
123344    }
123345}
123346#[cfg(any(docsrs, feature = "path"))]
123347#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123348impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BlockStmt {
123349    #[doc = "Calls [FoldAstPath`::fold_block_stmt`] with `self`."]
123350    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123351        <V as FoldAstPath>::fold_block_stmt(visitor, self, __ast_path)
123352    }
123353
123354    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123355        match self {
123356            BlockStmt { span, ctxt, stmts } => {
123357                let span = {
123358                    let mut __ast_path = __ast_path
123359                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Span));
123360                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123361                        span,
123362                        visitor,
123363                        &mut *__ast_path,
123364                    )
123365                };
123366                let ctxt = {
123367                    let mut __ast_path = __ast_path
123368                        .with_guard(AstParentKind::BlockStmt(self::fields::BlockStmtField::Ctxt));
123369                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
123370                        ctxt,
123371                        visitor,
123372                        &mut *__ast_path,
123373                    )
123374                };
123375                let stmts = {
123376                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmt(
123377                        self::fields::BlockStmtField::Stmts(usize::MAX),
123378                    ));
123379                    <Vec<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
123380                        stmts,
123381                        visitor,
123382                        &mut *__ast_path,
123383                    )
123384                };
123385                BlockStmt { span, ctxt, stmts }
123386            }
123387        }
123388    }
123389}
123390#[cfg(any(docsrs, feature = "path"))]
123391#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123392impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BlockStmtOrExpr {
123393    #[doc = "Calls [FoldAstPath`::fold_block_stmt_or_expr`] with `self`."]
123394    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123395        <V as FoldAstPath>::fold_block_stmt_or_expr(visitor, self, __ast_path)
123396    }
123397
123398    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123399        match self {
123400            BlockStmtOrExpr::BlockStmt { 0: _field_0 } => {
123401                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
123402                    self::fields::BlockStmtOrExprField::BlockStmt,
123403                ));
123404                let _field_0 = <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
123405                    _field_0,
123406                    visitor,
123407                    &mut *__ast_path,
123408                );
123409                BlockStmtOrExpr::BlockStmt { 0: _field_0 }
123410            }
123411            BlockStmtOrExpr::Expr { 0: _field_0 } => {
123412                let mut __ast_path = __ast_path.with_guard(AstParentKind::BlockStmtOrExpr(
123413                    self::fields::BlockStmtOrExprField::Expr,
123414                ));
123415                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123416                    _field_0,
123417                    visitor,
123418                    &mut *__ast_path,
123419                );
123420                BlockStmtOrExpr::Expr { 0: _field_0 }
123421            }
123422        }
123423    }
123424}
123425#[cfg(any(docsrs, feature = "path"))]
123426#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123427impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Bool {
123428    #[doc = "Calls [FoldAstPath`::fold_bool`] with `self`."]
123429    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123430        <V as FoldAstPath>::fold_bool(visitor, self, __ast_path)
123431    }
123432
123433    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123434        match self {
123435            Bool { span, value } => {
123436                let span = {
123437                    let mut __ast_path =
123438                        __ast_path.with_guard(AstParentKind::Bool(self::fields::BoolField::Span));
123439                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123440                        span,
123441                        visitor,
123442                        &mut *__ast_path,
123443                    )
123444                };
123445                Bool { span, value }
123446            }
123447        }
123448    }
123449}
123450#[cfg(any(docsrs, feature = "path"))]
123451#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123452impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BreakStmt {
123453    #[doc = "Calls [FoldAstPath`::fold_break_stmt`] with `self`."]
123454    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123455        <V as FoldAstPath>::fold_break_stmt(visitor, self, __ast_path)
123456    }
123457
123458    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123459        match self {
123460            BreakStmt { span, label } => {
123461                let span = {
123462                    let mut __ast_path = __ast_path
123463                        .with_guard(AstParentKind::BreakStmt(self::fields::BreakStmtField::Span));
123464                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123465                        span,
123466                        visitor,
123467                        &mut *__ast_path,
123468                    )
123469                };
123470                let label = {
123471                    let mut __ast_path = __ast_path.with_guard(AstParentKind::BreakStmt(
123472                        self::fields::BreakStmtField::Label,
123473                    ));
123474                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
123475                        label,
123476                        visitor,
123477                        &mut *__ast_path,
123478                    )
123479                };
123480                BreakStmt { span, label }
123481            }
123482        }
123483    }
123484}
123485#[cfg(any(docsrs, feature = "path"))]
123486#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123487impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for CallExpr {
123488    #[doc = "Calls [FoldAstPath`::fold_call_expr`] with `self`."]
123489    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123490        <V as FoldAstPath>::fold_call_expr(visitor, self, __ast_path)
123491    }
123492
123493    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123494        match self {
123495            CallExpr {
123496                span,
123497                ctxt,
123498                callee,
123499                args,
123500                type_args,
123501            } => {
123502                let span = {
123503                    let mut __ast_path = __ast_path
123504                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Span));
123505                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123506                        span,
123507                        visitor,
123508                        &mut *__ast_path,
123509                    )
123510                };
123511                let ctxt = {
123512                    let mut __ast_path = __ast_path
123513                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Ctxt));
123514                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
123515                        ctxt,
123516                        visitor,
123517                        &mut *__ast_path,
123518                    )
123519                };
123520                let callee = {
123521                    let mut __ast_path = __ast_path
123522                        .with_guard(AstParentKind::CallExpr(self::fields::CallExprField::Callee));
123523                    <Callee as FoldWithAstPath<V>>::fold_with_ast_path(
123524                        callee,
123525                        visitor,
123526                        &mut *__ast_path,
123527                    )
123528                };
123529                let args = {
123530                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
123531                        self::fields::CallExprField::Args(usize::MAX),
123532                    ));
123533                    <Vec<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
123534                        args,
123535                        visitor,
123536                        &mut *__ast_path,
123537                    )
123538                };
123539                let type_args = {
123540                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CallExpr(
123541                        self::fields::CallExprField::TypeArgs,
123542                    ));
123543                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
123544                };
123545                CallExpr {
123546                    span,
123547                    ctxt,
123548                    callee,
123549                    args,
123550                    type_args,
123551                }
123552            }
123553        }
123554    }
123555}
123556#[cfg(any(docsrs, feature = "path"))]
123557#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123558impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Callee {
123559    #[doc = "Calls [FoldAstPath`::fold_callee`] with `self`."]
123560    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123561        <V as FoldAstPath>::fold_callee(visitor, self, __ast_path)
123562    }
123563
123564    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123565        match self {
123566            Callee::Super { 0: _field_0 } => {
123567                let mut __ast_path =
123568                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Super));
123569                let _field_0 = <Super as FoldWithAstPath<V>>::fold_with_ast_path(
123570                    _field_0,
123571                    visitor,
123572                    &mut *__ast_path,
123573                );
123574                Callee::Super { 0: _field_0 }
123575            }
123576            Callee::Import { 0: _field_0 } => {
123577                let mut __ast_path =
123578                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Import));
123579                let _field_0 = <Import as FoldWithAstPath<V>>::fold_with_ast_path(
123580                    _field_0,
123581                    visitor,
123582                    &mut *__ast_path,
123583                );
123584                Callee::Import { 0: _field_0 }
123585            }
123586            Callee::Expr { 0: _field_0 } => {
123587                let mut __ast_path =
123588                    __ast_path.with_guard(AstParentKind::Callee(self::fields::CalleeField::Expr));
123589                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
123590                    _field_0,
123591                    visitor,
123592                    &mut *__ast_path,
123593                );
123594                Callee::Expr { 0: _field_0 }
123595            }
123596        }
123597    }
123598}
123599#[cfg(any(docsrs, feature = "path"))]
123600#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123601impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for CatchClause {
123602    #[doc = "Calls [FoldAstPath`::fold_catch_clause`] with `self`."]
123603    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123604        <V as FoldAstPath>::fold_catch_clause(visitor, self, __ast_path)
123605    }
123606
123607    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123608        match self {
123609            CatchClause { span, param, body } => {
123610                let span = {
123611                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
123612                        self::fields::CatchClauseField::Span,
123613                    ));
123614                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123615                        span,
123616                        visitor,
123617                        &mut *__ast_path,
123618                    )
123619                };
123620                let param = {
123621                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
123622                        self::fields::CatchClauseField::Param,
123623                    ));
123624                    <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
123625                        param,
123626                        visitor,
123627                        &mut *__ast_path,
123628                    )
123629                };
123630                let body = {
123631                    let mut __ast_path = __ast_path.with_guard(AstParentKind::CatchClause(
123632                        self::fields::CatchClauseField::Body,
123633                    ));
123634                    <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
123635                        body,
123636                        visitor,
123637                        &mut *__ast_path,
123638                    )
123639                };
123640                CatchClause { span, param, body }
123641            }
123642        }
123643    }
123644}
123645#[cfg(any(docsrs, feature = "path"))]
123646#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123647impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Class {
123648    #[doc = "Calls [FoldAstPath`::fold_class`] with `self`."]
123649    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123650        <V as FoldAstPath>::fold_class(visitor, self, __ast_path)
123651    }
123652
123653    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123654        match self {
123655            Class {
123656                span,
123657                ctxt,
123658                decorators,
123659                body,
123660                super_class,
123661                is_abstract,
123662                type_params,
123663                super_type_params,
123664                implements,
123665            } => {
123666                let span = {
123667                    let mut __ast_path =
123668                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Span));
123669                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123670                        span,
123671                        visitor,
123672                        &mut *__ast_path,
123673                    )
123674                };
123675                let ctxt = {
123676                    let mut __ast_path =
123677                        __ast_path.with_guard(AstParentKind::Class(self::fields::ClassField::Ctxt));
123678                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
123679                        ctxt,
123680                        visitor,
123681                        &mut *__ast_path,
123682                    )
123683                };
123684                let decorators = {
123685                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
123686                        self::fields::ClassField::Decorators(usize::MAX),
123687                    ));
123688                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
123689                        decorators,
123690                        visitor,
123691                        &mut *__ast_path,
123692                    )
123693                };
123694                let body = {
123695                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
123696                        self::fields::ClassField::Body(usize::MAX),
123697                    ));
123698                    <Vec<ClassMember> as FoldWithAstPath<V>>::fold_with_ast_path(
123699                        body,
123700                        visitor,
123701                        &mut *__ast_path,
123702                    )
123703                };
123704                let super_class = {
123705                    let mut __ast_path = __ast_path
123706                        .with_guard(AstParentKind::Class(self::fields::ClassField::SuperClass));
123707                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
123708                        super_class,
123709                        visitor,
123710                        &mut *__ast_path,
123711                    )
123712                };
123713                let type_params = {
123714                    let mut __ast_path = __ast_path
123715                        .with_guard(AstParentKind::Class(self::fields::ClassField::TypeParams));
123716                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
123717                        type_params,
123718                        visitor,
123719                        &mut *__ast_path,
123720                    )
123721                };
123722                let super_type_params = {
123723                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
123724                        self::fields::ClassField::SuperTypeParams,
123725                    ));
123726                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (super_type_params , visitor , & mut * __ast_path)
123727                };
123728                let implements = {
123729                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Class(
123730                        self::fields::ClassField::Implements(usize::MAX),
123731                    ));
123732                    <Vec<TsExprWithTypeArgs> as FoldWithAstPath<V>>::fold_with_ast_path(
123733                        implements,
123734                        visitor,
123735                        &mut *__ast_path,
123736                    )
123737                };
123738                Class {
123739                    span,
123740                    ctxt,
123741                    decorators,
123742                    body,
123743                    super_class,
123744                    is_abstract,
123745                    type_params,
123746                    super_type_params,
123747                    implements,
123748                }
123749            }
123750        }
123751    }
123752}
123753#[cfg(any(docsrs, feature = "path"))]
123754#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123755impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassDecl {
123756    #[doc = "Calls [FoldAstPath`::fold_class_decl`] with `self`."]
123757    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123758        <V as FoldAstPath>::fold_class_decl(visitor, self, __ast_path)
123759    }
123760
123761    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123762        match self {
123763            ClassDecl {
123764                ident,
123765                declare,
123766                class,
123767            } => {
123768                let ident = {
123769                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
123770                        self::fields::ClassDeclField::Ident,
123771                    ));
123772                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
123773                        ident,
123774                        visitor,
123775                        &mut *__ast_path,
123776                    )
123777                };
123778                let class = {
123779                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassDecl(
123780                        self::fields::ClassDeclField::Class,
123781                    ));
123782                    <Box<Class> as FoldWithAstPath<V>>::fold_with_ast_path(
123783                        class,
123784                        visitor,
123785                        &mut *__ast_path,
123786                    )
123787                };
123788                ClassDecl {
123789                    ident,
123790                    declare,
123791                    class,
123792                }
123793            }
123794        }
123795    }
123796}
123797#[cfg(any(docsrs, feature = "path"))]
123798#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123799impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassExpr {
123800    #[doc = "Calls [FoldAstPath`::fold_class_expr`] with `self`."]
123801    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123802        <V as FoldAstPath>::fold_class_expr(visitor, self, __ast_path)
123803    }
123804
123805    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123806        match self {
123807            ClassExpr { ident, class } => {
123808                let ident = {
123809                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
123810                        self::fields::ClassExprField::Ident,
123811                    ));
123812                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
123813                        ident,
123814                        visitor,
123815                        &mut *__ast_path,
123816                    )
123817                };
123818                let class = {
123819                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassExpr(
123820                        self::fields::ClassExprField::Class,
123821                    ));
123822                    <Box<Class> as FoldWithAstPath<V>>::fold_with_ast_path(
123823                        class,
123824                        visitor,
123825                        &mut *__ast_path,
123826                    )
123827                };
123828                ClassExpr { ident, class }
123829            }
123830        }
123831    }
123832}
123833#[cfg(any(docsrs, feature = "path"))]
123834#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123835impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassMember {
123836    #[doc = "Calls [FoldAstPath`::fold_class_member`] with `self`."]
123837    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123838        <V as FoldAstPath>::fold_class_member(visitor, self, __ast_path)
123839    }
123840
123841    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123842        match self {
123843            ClassMember::Constructor { 0: _field_0 } => {
123844                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123845                    self::fields::ClassMemberField::Constructor,
123846                ));
123847                let _field_0 = <Constructor as FoldWithAstPath<V>>::fold_with_ast_path(
123848                    _field_0,
123849                    visitor,
123850                    &mut *__ast_path,
123851                );
123852                ClassMember::Constructor { 0: _field_0 }
123853            }
123854            ClassMember::Method { 0: _field_0 } => {
123855                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123856                    self::fields::ClassMemberField::Method,
123857                ));
123858                let _field_0 = <ClassMethod as FoldWithAstPath<V>>::fold_with_ast_path(
123859                    _field_0,
123860                    visitor,
123861                    &mut *__ast_path,
123862                );
123863                ClassMember::Method { 0: _field_0 }
123864            }
123865            ClassMember::PrivateMethod { 0: _field_0 } => {
123866                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123867                    self::fields::ClassMemberField::PrivateMethod,
123868                ));
123869                let _field_0 = <PrivateMethod as FoldWithAstPath<V>>::fold_with_ast_path(
123870                    _field_0,
123871                    visitor,
123872                    &mut *__ast_path,
123873                );
123874                ClassMember::PrivateMethod { 0: _field_0 }
123875            }
123876            ClassMember::ClassProp { 0: _field_0 } => {
123877                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123878                    self::fields::ClassMemberField::ClassProp,
123879                ));
123880                let _field_0 = <ClassProp as FoldWithAstPath<V>>::fold_with_ast_path(
123881                    _field_0,
123882                    visitor,
123883                    &mut *__ast_path,
123884                );
123885                ClassMember::ClassProp { 0: _field_0 }
123886            }
123887            ClassMember::PrivateProp { 0: _field_0 } => {
123888                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123889                    self::fields::ClassMemberField::PrivateProp,
123890                ));
123891                let _field_0 = <PrivateProp as FoldWithAstPath<V>>::fold_with_ast_path(
123892                    _field_0,
123893                    visitor,
123894                    &mut *__ast_path,
123895                );
123896                ClassMember::PrivateProp { 0: _field_0 }
123897            }
123898            ClassMember::TsIndexSignature { 0: _field_0 } => {
123899                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123900                    self::fields::ClassMemberField::TsIndexSignature,
123901                ));
123902                let _field_0 = <TsIndexSignature as FoldWithAstPath<V>>::fold_with_ast_path(
123903                    _field_0,
123904                    visitor,
123905                    &mut *__ast_path,
123906                );
123907                ClassMember::TsIndexSignature { 0: _field_0 }
123908            }
123909            ClassMember::Empty { 0: _field_0 } => {
123910                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123911                    self::fields::ClassMemberField::Empty,
123912                ));
123913                let _field_0 = <EmptyStmt as FoldWithAstPath<V>>::fold_with_ast_path(
123914                    _field_0,
123915                    visitor,
123916                    &mut *__ast_path,
123917                );
123918                ClassMember::Empty { 0: _field_0 }
123919            }
123920            ClassMember::StaticBlock { 0: _field_0 } => {
123921                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123922                    self::fields::ClassMemberField::StaticBlock,
123923                ));
123924                let _field_0 = <StaticBlock as FoldWithAstPath<V>>::fold_with_ast_path(
123925                    _field_0,
123926                    visitor,
123927                    &mut *__ast_path,
123928                );
123929                ClassMember::StaticBlock { 0: _field_0 }
123930            }
123931            ClassMember::AutoAccessor { 0: _field_0 } => {
123932                let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMember(
123933                    self::fields::ClassMemberField::AutoAccessor,
123934                ));
123935                let _field_0 = <AutoAccessor as FoldWithAstPath<V>>::fold_with_ast_path(
123936                    _field_0,
123937                    visitor,
123938                    &mut *__ast_path,
123939                );
123940                ClassMember::AutoAccessor { 0: _field_0 }
123941            }
123942        }
123943    }
123944}
123945#[cfg(any(docsrs, feature = "path"))]
123946#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
123947impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassMethod {
123948    #[doc = "Calls [FoldAstPath`::fold_class_method`] with `self`."]
123949    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123950        <V as FoldAstPath>::fold_class_method(visitor, self, __ast_path)
123951    }
123952
123953    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
123954        match self {
123955            ClassMethod {
123956                span,
123957                key,
123958                function,
123959                kind,
123960                is_static,
123961                accessibility,
123962                is_abstract,
123963                is_optional,
123964                is_override,
123965            } => {
123966                let span = {
123967                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
123968                        self::fields::ClassMethodField::Span,
123969                    ));
123970                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
123971                        span,
123972                        visitor,
123973                        &mut *__ast_path,
123974                    )
123975                };
123976                let key = {
123977                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
123978                        self::fields::ClassMethodField::Key,
123979                    ));
123980                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
123981                        key,
123982                        visitor,
123983                        &mut *__ast_path,
123984                    )
123985                };
123986                let function = {
123987                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
123988                        self::fields::ClassMethodField::Function,
123989                    ));
123990                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
123991                        function,
123992                        visitor,
123993                        &mut *__ast_path,
123994                    )
123995                };
123996                let kind = {
123997                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
123998                        self::fields::ClassMethodField::Kind,
123999                    ));
124000                    <MethodKind as FoldWithAstPath<V>>::fold_with_ast_path(
124001                        kind,
124002                        visitor,
124003                        &mut *__ast_path,
124004                    )
124005                };
124006                let accessibility = {
124007                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassMethod(
124008                        self::fields::ClassMethodField::Accessibility,
124009                    ));
124010                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
124011                        accessibility,
124012                        visitor,
124013                        &mut *__ast_path,
124014                    )
124015                };
124016                ClassMethod {
124017                    span,
124018                    key,
124019                    function,
124020                    kind,
124021                    is_static,
124022                    accessibility,
124023                    is_abstract,
124024                    is_optional,
124025                    is_override,
124026                }
124027            }
124028        }
124029    }
124030}
124031#[cfg(any(docsrs, feature = "path"))]
124032#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124033impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ClassProp {
124034    #[doc = "Calls [FoldAstPath`::fold_class_prop`] with `self`."]
124035    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124036        <V as FoldAstPath>::fold_class_prop(visitor, self, __ast_path)
124037    }
124038
124039    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124040        match self {
124041            ClassProp {
124042                span,
124043                key,
124044                value,
124045                type_ann,
124046                is_static,
124047                decorators,
124048                accessibility,
124049                is_abstract,
124050                is_optional,
124051                is_override,
124052                readonly,
124053                declare,
124054                definite,
124055            } => {
124056                let span = {
124057                    let mut __ast_path = __ast_path
124058                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Span));
124059                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124060                        span,
124061                        visitor,
124062                        &mut *__ast_path,
124063                    )
124064                };
124065                let key = {
124066                    let mut __ast_path = __ast_path
124067                        .with_guard(AstParentKind::ClassProp(self::fields::ClassPropField::Key));
124068                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
124069                        key,
124070                        visitor,
124071                        &mut *__ast_path,
124072                    )
124073                };
124074                let value = {
124075                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124076                        self::fields::ClassPropField::Value,
124077                    ));
124078                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
124079                        value,
124080                        visitor,
124081                        &mut *__ast_path,
124082                    )
124083                };
124084                let type_ann = {
124085                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124086                        self::fields::ClassPropField::TypeAnn,
124087                    ));
124088                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
124089                        type_ann,
124090                        visitor,
124091                        &mut *__ast_path,
124092                    )
124093                };
124094                let decorators = {
124095                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124096                        self::fields::ClassPropField::Decorators(usize::MAX),
124097                    ));
124098                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
124099                        decorators,
124100                        visitor,
124101                        &mut *__ast_path,
124102                    )
124103                };
124104                let accessibility = {
124105                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ClassProp(
124106                        self::fields::ClassPropField::Accessibility,
124107                    ));
124108                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
124109                        accessibility,
124110                        visitor,
124111                        &mut *__ast_path,
124112                    )
124113                };
124114                ClassProp {
124115                    span,
124116                    key,
124117                    value,
124118                    type_ann,
124119                    is_static,
124120                    decorators,
124121                    accessibility,
124122                    is_abstract,
124123                    is_optional,
124124                    is_override,
124125                    readonly,
124126                    declare,
124127                    definite,
124128                }
124129            }
124130        }
124131    }
124132}
124133#[cfg(any(docsrs, feature = "path"))]
124134#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124135impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ComputedPropName {
124136    #[doc = "Calls [FoldAstPath`::fold_computed_prop_name`] with `self`."]
124137    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124138        <V as FoldAstPath>::fold_computed_prop_name(visitor, self, __ast_path)
124139    }
124140
124141    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124142        match self {
124143            ComputedPropName { span, expr } => {
124144                let span = {
124145                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
124146                        self::fields::ComputedPropNameField::Span,
124147                    ));
124148                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124149                        span,
124150                        visitor,
124151                        &mut *__ast_path,
124152                    )
124153                };
124154                let expr = {
124155                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ComputedPropName(
124156                        self::fields::ComputedPropNameField::Expr,
124157                    ));
124158                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124159                        expr,
124160                        visitor,
124161                        &mut *__ast_path,
124162                    )
124163                };
124164                ComputedPropName { span, expr }
124165            }
124166        }
124167    }
124168}
124169#[cfg(any(docsrs, feature = "path"))]
124170#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124171impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for CondExpr {
124172    #[doc = "Calls [FoldAstPath`::fold_cond_expr`] with `self`."]
124173    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124174        <V as FoldAstPath>::fold_cond_expr(visitor, self, __ast_path)
124175    }
124176
124177    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124178        match self {
124179            CondExpr {
124180                span,
124181                test,
124182                cons,
124183                alt,
124184            } => {
124185                let span = {
124186                    let mut __ast_path = __ast_path
124187                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Span));
124188                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124189                        span,
124190                        visitor,
124191                        &mut *__ast_path,
124192                    )
124193                };
124194                let test = {
124195                    let mut __ast_path = __ast_path
124196                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Test));
124197                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124198                        test,
124199                        visitor,
124200                        &mut *__ast_path,
124201                    )
124202                };
124203                let cons = {
124204                    let mut __ast_path = __ast_path
124205                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Cons));
124206                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124207                        cons,
124208                        visitor,
124209                        &mut *__ast_path,
124210                    )
124211                };
124212                let alt = {
124213                    let mut __ast_path = __ast_path
124214                        .with_guard(AstParentKind::CondExpr(self::fields::CondExprField::Alt));
124215                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124216                        alt,
124217                        visitor,
124218                        &mut *__ast_path,
124219                    )
124220                };
124221                CondExpr {
124222                    span,
124223                    test,
124224                    cons,
124225                    alt,
124226                }
124227            }
124228        }
124229    }
124230}
124231#[cfg(any(docsrs, feature = "path"))]
124232#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124233impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Constructor {
124234    #[doc = "Calls [FoldAstPath`::fold_constructor`] with `self`."]
124235    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124236        <V as FoldAstPath>::fold_constructor(visitor, self, __ast_path)
124237    }
124238
124239    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124240        match self {
124241            Constructor {
124242                span,
124243                ctxt,
124244                key,
124245                params,
124246                body,
124247                accessibility,
124248                is_optional,
124249            } => {
124250                let span = {
124251                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
124252                        self::fields::ConstructorField::Span,
124253                    ));
124254                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124255                        span,
124256                        visitor,
124257                        &mut *__ast_path,
124258                    )
124259                };
124260                let ctxt = {
124261                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
124262                        self::fields::ConstructorField::Ctxt,
124263                    ));
124264                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
124265                        ctxt,
124266                        visitor,
124267                        &mut *__ast_path,
124268                    )
124269                };
124270                let key = {
124271                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
124272                        self::fields::ConstructorField::Key,
124273                    ));
124274                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
124275                        key,
124276                        visitor,
124277                        &mut *__ast_path,
124278                    )
124279                };
124280                let params = {
124281                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
124282                        self::fields::ConstructorField::Params(usize::MAX),
124283                    ));
124284                    <Vec<ParamOrTsParamProp> as FoldWithAstPath<V>>::fold_with_ast_path(
124285                        params,
124286                        visitor,
124287                        &mut *__ast_path,
124288                    )
124289                };
124290                let body = {
124291                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
124292                        self::fields::ConstructorField::Body,
124293                    ));
124294                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
124295                        body,
124296                        visitor,
124297                        &mut *__ast_path,
124298                    )
124299                };
124300                let accessibility = {
124301                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Constructor(
124302                        self::fields::ConstructorField::Accessibility,
124303                    ));
124304                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
124305                        accessibility,
124306                        visitor,
124307                        &mut *__ast_path,
124308                    )
124309                };
124310                Constructor {
124311                    span,
124312                    ctxt,
124313                    key,
124314                    params,
124315                    body,
124316                    accessibility,
124317                    is_optional,
124318                }
124319            }
124320        }
124321    }
124322}
124323#[cfg(any(docsrs, feature = "path"))]
124324#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124325impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ContinueStmt {
124326    #[doc = "Calls [FoldAstPath`::fold_continue_stmt`] with `self`."]
124327    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124328        <V as FoldAstPath>::fold_continue_stmt(visitor, self, __ast_path)
124329    }
124330
124331    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124332        match self {
124333            ContinueStmt { span, label } => {
124334                let span = {
124335                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
124336                        self::fields::ContinueStmtField::Span,
124337                    ));
124338                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124339                        span,
124340                        visitor,
124341                        &mut *__ast_path,
124342                    )
124343                };
124344                let label = {
124345                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ContinueStmt(
124346                        self::fields::ContinueStmtField::Label,
124347                    ));
124348                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
124349                        label,
124350                        visitor,
124351                        &mut *__ast_path,
124352                    )
124353                };
124354                ContinueStmt { span, label }
124355            }
124356        }
124357    }
124358}
124359#[cfg(any(docsrs, feature = "path"))]
124360#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124361impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for DebuggerStmt {
124362    #[doc = "Calls [FoldAstPath`::fold_debugger_stmt`] with `self`."]
124363    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124364        <V as FoldAstPath>::fold_debugger_stmt(visitor, self, __ast_path)
124365    }
124366
124367    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124368        match self {
124369            DebuggerStmt { span } => {
124370                let span = {
124371                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DebuggerStmt(
124372                        self::fields::DebuggerStmtField::Span,
124373                    ));
124374                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124375                        span,
124376                        visitor,
124377                        &mut *__ast_path,
124378                    )
124379                };
124380                DebuggerStmt { span }
124381            }
124382        }
124383    }
124384}
124385#[cfg(any(docsrs, feature = "path"))]
124386#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124387impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Decl {
124388    #[doc = "Calls [FoldAstPath`::fold_decl`] with `self`."]
124389    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124390        <V as FoldAstPath>::fold_decl(visitor, self, __ast_path)
124391    }
124392
124393    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124394        match self {
124395            Decl::Class { 0: _field_0 } => {
124396                let mut __ast_path =
124397                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Class));
124398                let _field_0 = <ClassDecl as FoldWithAstPath<V>>::fold_with_ast_path(
124399                    _field_0,
124400                    visitor,
124401                    &mut *__ast_path,
124402                );
124403                Decl::Class { 0: _field_0 }
124404            }
124405            Decl::Fn { 0: _field_0 } => {
124406                let mut __ast_path =
124407                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Fn));
124408                let _field_0 = <FnDecl as FoldWithAstPath<V>>::fold_with_ast_path(
124409                    _field_0,
124410                    visitor,
124411                    &mut *__ast_path,
124412                );
124413                Decl::Fn { 0: _field_0 }
124414            }
124415            Decl::Var { 0: _field_0 } => {
124416                let mut __ast_path =
124417                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Var));
124418                let _field_0 = <Box<VarDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124419                    _field_0,
124420                    visitor,
124421                    &mut *__ast_path,
124422                );
124423                Decl::Var { 0: _field_0 }
124424            }
124425            Decl::Using { 0: _field_0 } => {
124426                let mut __ast_path =
124427                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::Using));
124428                let _field_0 = <Box<UsingDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124429                    _field_0,
124430                    visitor,
124431                    &mut *__ast_path,
124432                );
124433                Decl::Using { 0: _field_0 }
124434            }
124435            Decl::TsInterface { 0: _field_0 } => {
124436                let mut __ast_path = __ast_path
124437                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsInterface));
124438                let _field_0 = <Box<TsInterfaceDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124439                    _field_0,
124440                    visitor,
124441                    &mut *__ast_path,
124442                );
124443                Decl::TsInterface { 0: _field_0 }
124444            }
124445            Decl::TsTypeAlias { 0: _field_0 } => {
124446                let mut __ast_path = __ast_path
124447                    .with_guard(AstParentKind::Decl(self::fields::DeclField::TsTypeAlias));
124448                let _field_0 = <Box<TsTypeAliasDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124449                    _field_0,
124450                    visitor,
124451                    &mut *__ast_path,
124452                );
124453                Decl::TsTypeAlias { 0: _field_0 }
124454            }
124455            Decl::TsEnum { 0: _field_0 } => {
124456                let mut __ast_path =
124457                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsEnum));
124458                let _field_0 = <Box<TsEnumDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124459                    _field_0,
124460                    visitor,
124461                    &mut *__ast_path,
124462                );
124463                Decl::TsEnum { 0: _field_0 }
124464            }
124465            Decl::TsModule { 0: _field_0 } => {
124466                let mut __ast_path =
124467                    __ast_path.with_guard(AstParentKind::Decl(self::fields::DeclField::TsModule));
124468                let _field_0 = <Box<TsModuleDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124469                    _field_0,
124470                    visitor,
124471                    &mut *__ast_path,
124472                );
124473                Decl::TsModule { 0: _field_0 }
124474            }
124475        }
124476    }
124477}
124478#[cfg(any(docsrs, feature = "path"))]
124479#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124480impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Decorator {
124481    #[doc = "Calls [FoldAstPath`::fold_decorator`] with `self`."]
124482    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124483        <V as FoldAstPath>::fold_decorator(visitor, self, __ast_path)
124484    }
124485
124486    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124487        match self {
124488            Decorator { span, expr } => {
124489                let span = {
124490                    let mut __ast_path = __ast_path
124491                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Span));
124492                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124493                        span,
124494                        visitor,
124495                        &mut *__ast_path,
124496                    )
124497                };
124498                let expr = {
124499                    let mut __ast_path = __ast_path
124500                        .with_guard(AstParentKind::Decorator(self::fields::DecoratorField::Expr));
124501                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124502                        expr,
124503                        visitor,
124504                        &mut *__ast_path,
124505                    )
124506                };
124507                Decorator { span, expr }
124508            }
124509        }
124510    }
124511}
124512#[cfg(any(docsrs, feature = "path"))]
124513#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124514impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for DefaultDecl {
124515    #[doc = "Calls [FoldAstPath`::fold_default_decl`] with `self`."]
124516    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124517        <V as FoldAstPath>::fold_default_decl(visitor, self, __ast_path)
124518    }
124519
124520    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124521        match self {
124522            DefaultDecl::Class { 0: _field_0 } => {
124523                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
124524                    self::fields::DefaultDeclField::Class,
124525                ));
124526                let _field_0 = <ClassExpr as FoldWithAstPath<V>>::fold_with_ast_path(
124527                    _field_0,
124528                    visitor,
124529                    &mut *__ast_path,
124530                );
124531                DefaultDecl::Class { 0: _field_0 }
124532            }
124533            DefaultDecl::Fn { 0: _field_0 } => {
124534                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
124535                    self::fields::DefaultDeclField::Fn,
124536                ));
124537                let _field_0 = <FnExpr as FoldWithAstPath<V>>::fold_with_ast_path(
124538                    _field_0,
124539                    visitor,
124540                    &mut *__ast_path,
124541                );
124542                DefaultDecl::Fn { 0: _field_0 }
124543            }
124544            DefaultDecl::TsInterfaceDecl { 0: _field_0 } => {
124545                let mut __ast_path = __ast_path.with_guard(AstParentKind::DefaultDecl(
124546                    self::fields::DefaultDeclField::TsInterfaceDecl,
124547                ));
124548                let _field_0 = <Box<TsInterfaceDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
124549                    _field_0,
124550                    visitor,
124551                    &mut *__ast_path,
124552                );
124553                DefaultDecl::TsInterfaceDecl { 0: _field_0 }
124554            }
124555        }
124556    }
124557}
124558#[cfg(any(docsrs, feature = "path"))]
124559#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124560impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for DoWhileStmt {
124561    #[doc = "Calls [FoldAstPath`::fold_do_while_stmt`] with `self`."]
124562    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124563        <V as FoldAstPath>::fold_do_while_stmt(visitor, self, __ast_path)
124564    }
124565
124566    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124567        match self {
124568            DoWhileStmt { span, test, body } => {
124569                let span = {
124570                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
124571                        self::fields::DoWhileStmtField::Span,
124572                    ));
124573                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124574                        span,
124575                        visitor,
124576                        &mut *__ast_path,
124577                    )
124578                };
124579                let test = {
124580                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
124581                        self::fields::DoWhileStmtField::Test,
124582                    ));
124583                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124584                        test,
124585                        visitor,
124586                        &mut *__ast_path,
124587                    )
124588                };
124589                let body = {
124590                    let mut __ast_path = __ast_path.with_guard(AstParentKind::DoWhileStmt(
124591                        self::fields::DoWhileStmtField::Body,
124592                    ));
124593                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
124594                        body,
124595                        visitor,
124596                        &mut *__ast_path,
124597                    )
124598                };
124599                DoWhileStmt { span, test, body }
124600            }
124601        }
124602    }
124603}
124604#[cfg(any(docsrs, feature = "path"))]
124605#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124606impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for EmptyStmt {
124607    #[doc = "Calls [FoldAstPath`::fold_empty_stmt`] with `self`."]
124608    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124609        <V as FoldAstPath>::fold_empty_stmt(visitor, self, __ast_path)
124610    }
124611
124612    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124613        match self {
124614            EmptyStmt { span } => {
124615                let span = {
124616                    let mut __ast_path = __ast_path
124617                        .with_guard(AstParentKind::EmptyStmt(self::fields::EmptyStmtField::Span));
124618                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124619                        span,
124620                        visitor,
124621                        &mut *__ast_path,
124622                    )
124623                };
124624                EmptyStmt { span }
124625            }
124626        }
124627    }
124628}
124629#[cfg(any(docsrs, feature = "path"))]
124630#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124631impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportAll {
124632    #[doc = "Calls [FoldAstPath`::fold_export_all`] with `self`."]
124633    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124634        <V as FoldAstPath>::fold_export_all(visitor, self, __ast_path)
124635    }
124636
124637    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124638        match self {
124639            ExportAll {
124640                span,
124641                src,
124642                type_only,
124643                with,
124644            } => {
124645                let span = {
124646                    let mut __ast_path = __ast_path
124647                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Span));
124648                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124649                        span,
124650                        visitor,
124651                        &mut *__ast_path,
124652                    )
124653                };
124654                let src = {
124655                    let mut __ast_path = __ast_path
124656                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::Src));
124657                    <Box<Str> as FoldWithAstPath<V>>::fold_with_ast_path(
124658                        src,
124659                        visitor,
124660                        &mut *__ast_path,
124661                    )
124662                };
124663                let with = {
124664                    let mut __ast_path = __ast_path
124665                        .with_guard(AstParentKind::ExportAll(self::fields::ExportAllField::With));
124666                    <Option<Box<ObjectLit>> as FoldWithAstPath<V>>::fold_with_ast_path(
124667                        with,
124668                        visitor,
124669                        &mut *__ast_path,
124670                    )
124671                };
124672                ExportAll {
124673                    span,
124674                    src,
124675                    type_only,
124676                    with,
124677                }
124678            }
124679        }
124680    }
124681}
124682#[cfg(any(docsrs, feature = "path"))]
124683#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124684impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDecl {
124685    #[doc = "Calls [FoldAstPath`::fold_export_decl`] with `self`."]
124686    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124687        <V as FoldAstPath>::fold_export_decl(visitor, self, __ast_path)
124688    }
124689
124690    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124691        match self {
124692            ExportDecl { span, decl } => {
124693                let span = {
124694                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
124695                        self::fields::ExportDeclField::Span,
124696                    ));
124697                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124698                        span,
124699                        visitor,
124700                        &mut *__ast_path,
124701                    )
124702                };
124703                let decl = {
124704                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDecl(
124705                        self::fields::ExportDeclField::Decl,
124706                    ));
124707                    <Decl as FoldWithAstPath<V>>::fold_with_ast_path(
124708                        decl,
124709                        visitor,
124710                        &mut *__ast_path,
124711                    )
124712                };
124713                ExportDecl { span, decl }
124714            }
124715        }
124716    }
124717}
124718#[cfg(any(docsrs, feature = "path"))]
124719#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124720impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDefaultDecl {
124721    #[doc = "Calls [FoldAstPath`::fold_export_default_decl`] with `self`."]
124722    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124723        <V as FoldAstPath>::fold_export_default_decl(visitor, self, __ast_path)
124724    }
124725
124726    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124727        match self {
124728            ExportDefaultDecl { span, decl } => {
124729                let span = {
124730                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
124731                        self::fields::ExportDefaultDeclField::Span,
124732                    ));
124733                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124734                        span,
124735                        visitor,
124736                        &mut *__ast_path,
124737                    )
124738                };
124739                let decl = {
124740                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultDecl(
124741                        self::fields::ExportDefaultDeclField::Decl,
124742                    ));
124743                    <DefaultDecl as FoldWithAstPath<V>>::fold_with_ast_path(
124744                        decl,
124745                        visitor,
124746                        &mut *__ast_path,
124747                    )
124748                };
124749                ExportDefaultDecl { span, decl }
124750            }
124751        }
124752    }
124753}
124754#[cfg(any(docsrs, feature = "path"))]
124755#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124756impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDefaultExpr {
124757    #[doc = "Calls [FoldAstPath`::fold_export_default_expr`] with `self`."]
124758    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124759        <V as FoldAstPath>::fold_export_default_expr(visitor, self, __ast_path)
124760    }
124761
124762    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124763        match self {
124764            ExportDefaultExpr { span, expr } => {
124765                let span = {
124766                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
124767                        self::fields::ExportDefaultExprField::Span,
124768                    ));
124769                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124770                        span,
124771                        visitor,
124772                        &mut *__ast_path,
124773                    )
124774                };
124775                let expr = {
124776                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportDefaultExpr(
124777                        self::fields::ExportDefaultExprField::Expr,
124778                    ));
124779                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
124780                        expr,
124781                        visitor,
124782                        &mut *__ast_path,
124783                    )
124784                };
124785                ExportDefaultExpr { span, expr }
124786            }
124787        }
124788    }
124789}
124790#[cfg(any(docsrs, feature = "path"))]
124791#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124792impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportDefaultSpecifier {
124793    #[doc = "Calls [FoldAstPath`::fold_export_default_specifier`] with `self`."]
124794    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124795        <V as FoldAstPath>::fold_export_default_specifier(visitor, self, __ast_path)
124796    }
124797
124798    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124799        match self {
124800            ExportDefaultSpecifier { exported } => {
124801                let exported = {
124802                    let mut __ast_path =
124803                        __ast_path.with_guard(AstParentKind::ExportDefaultSpecifier(
124804                            self::fields::ExportDefaultSpecifierField::Exported,
124805                        ));
124806                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
124807                        exported,
124808                        visitor,
124809                        &mut *__ast_path,
124810                    )
124811                };
124812                ExportDefaultSpecifier { exported }
124813            }
124814        }
124815    }
124816}
124817#[cfg(any(docsrs, feature = "path"))]
124818#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124819impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportNamedSpecifier {
124820    #[doc = "Calls [FoldAstPath`::fold_export_named_specifier`] with `self`."]
124821    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124822        <V as FoldAstPath>::fold_export_named_specifier(visitor, self, __ast_path)
124823    }
124824
124825    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124826        match self {
124827            ExportNamedSpecifier {
124828                span,
124829                orig,
124830                exported,
124831                is_type_only,
124832            } => {
124833                let span = {
124834                    let mut __ast_path =
124835                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
124836                            self::fields::ExportNamedSpecifierField::Span,
124837                        ));
124838                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124839                        span,
124840                        visitor,
124841                        &mut *__ast_path,
124842                    )
124843                };
124844                let orig = {
124845                    let mut __ast_path =
124846                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
124847                            self::fields::ExportNamedSpecifierField::Orig,
124848                        ));
124849                    <ModuleExportName as FoldWithAstPath<V>>::fold_with_ast_path(
124850                        orig,
124851                        visitor,
124852                        &mut *__ast_path,
124853                    )
124854                };
124855                let exported = {
124856                    let mut __ast_path =
124857                        __ast_path.with_guard(AstParentKind::ExportNamedSpecifier(
124858                            self::fields::ExportNamedSpecifierField::Exported,
124859                        ));
124860                    <Option<ModuleExportName> as FoldWithAstPath<V>>::fold_with_ast_path(
124861                        exported,
124862                        visitor,
124863                        &mut *__ast_path,
124864                    )
124865                };
124866                ExportNamedSpecifier {
124867                    span,
124868                    orig,
124869                    exported,
124870                    is_type_only,
124871                }
124872            }
124873        }
124874    }
124875}
124876#[cfg(any(docsrs, feature = "path"))]
124877#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124878impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportNamespaceSpecifier {
124879    #[doc = "Calls [FoldAstPath`::fold_export_namespace_specifier`] with `self`."]
124880    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124881        <V as FoldAstPath>::fold_export_namespace_specifier(visitor, self, __ast_path)
124882    }
124883
124884    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124885        match self {
124886            ExportNamespaceSpecifier { span, name } => {
124887                let span = {
124888                    let mut __ast_path =
124889                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
124890                            self::fields::ExportNamespaceSpecifierField::Span,
124891                        ));
124892                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
124893                        span,
124894                        visitor,
124895                        &mut *__ast_path,
124896                    )
124897                };
124898                let name = {
124899                    let mut __ast_path =
124900                        __ast_path.with_guard(AstParentKind::ExportNamespaceSpecifier(
124901                            self::fields::ExportNamespaceSpecifierField::Name,
124902                        ));
124903                    <ModuleExportName as FoldWithAstPath<V>>::fold_with_ast_path(
124904                        name,
124905                        visitor,
124906                        &mut *__ast_path,
124907                    )
124908                };
124909                ExportNamespaceSpecifier { span, name }
124910            }
124911        }
124912    }
124913}
124914#[cfg(any(docsrs, feature = "path"))]
124915#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124916impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExportSpecifier {
124917    #[doc = "Calls [FoldAstPath`::fold_export_specifier`] with `self`."]
124918    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124919        <V as FoldAstPath>::fold_export_specifier(visitor, self, __ast_path)
124920    }
124921
124922    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124923        match self {
124924            ExportSpecifier::Namespace { 0: _field_0 } => {
124925                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
124926                    self::fields::ExportSpecifierField::Namespace,
124927                ));
124928                let _field_0 = <ExportNamespaceSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
124929                    _field_0,
124930                    visitor,
124931                    &mut *__ast_path,
124932                );
124933                ExportSpecifier::Namespace { 0: _field_0 }
124934            }
124935            ExportSpecifier::Default { 0: _field_0 } => {
124936                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
124937                    self::fields::ExportSpecifierField::Default,
124938                ));
124939                let _field_0 = <ExportDefaultSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
124940                    _field_0,
124941                    visitor,
124942                    &mut *__ast_path,
124943                );
124944                ExportSpecifier::Default { 0: _field_0 }
124945            }
124946            ExportSpecifier::Named { 0: _field_0 } => {
124947                let mut __ast_path = __ast_path.with_guard(AstParentKind::ExportSpecifier(
124948                    self::fields::ExportSpecifierField::Named,
124949                ));
124950                let _field_0 = <ExportNamedSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
124951                    _field_0,
124952                    visitor,
124953                    &mut *__ast_path,
124954                );
124955                ExportSpecifier::Named { 0: _field_0 }
124956            }
124957        }
124958    }
124959}
124960#[cfg(any(docsrs, feature = "path"))]
124961#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
124962impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Expr {
124963    #[doc = "Calls [FoldAstPath`::fold_expr`] with `self`."]
124964    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124965        <V as FoldAstPath>::fold_expr(visitor, self, __ast_path)
124966    }
124967
124968    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
124969        match self {
124970            Expr::This { 0: _field_0 } => {
124971                let mut __ast_path =
124972                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::This));
124973                let _field_0 = <ThisExpr as FoldWithAstPath<V>>::fold_with_ast_path(
124974                    _field_0,
124975                    visitor,
124976                    &mut *__ast_path,
124977                );
124978                Expr::This { 0: _field_0 }
124979            }
124980            Expr::Array { 0: _field_0 } => {
124981                let mut __ast_path =
124982                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Array));
124983                let _field_0 = <ArrayLit as FoldWithAstPath<V>>::fold_with_ast_path(
124984                    _field_0,
124985                    visitor,
124986                    &mut *__ast_path,
124987                );
124988                Expr::Array { 0: _field_0 }
124989            }
124990            Expr::Object { 0: _field_0 } => {
124991                let mut __ast_path =
124992                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Object));
124993                let _field_0 = <ObjectLit as FoldWithAstPath<V>>::fold_with_ast_path(
124994                    _field_0,
124995                    visitor,
124996                    &mut *__ast_path,
124997                );
124998                Expr::Object { 0: _field_0 }
124999            }
125000            Expr::Fn { 0: _field_0 } => {
125001                let mut __ast_path =
125002                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Fn));
125003                let _field_0 = <FnExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125004                    _field_0,
125005                    visitor,
125006                    &mut *__ast_path,
125007                );
125008                Expr::Fn { 0: _field_0 }
125009            }
125010            Expr::Unary { 0: _field_0 } => {
125011                let mut __ast_path =
125012                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Unary));
125013                let _field_0 = <UnaryExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125014                    _field_0,
125015                    visitor,
125016                    &mut *__ast_path,
125017                );
125018                Expr::Unary { 0: _field_0 }
125019            }
125020            Expr::Update { 0: _field_0 } => {
125021                let mut __ast_path =
125022                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Update));
125023                let _field_0 = <UpdateExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125024                    _field_0,
125025                    visitor,
125026                    &mut *__ast_path,
125027                );
125028                Expr::Update { 0: _field_0 }
125029            }
125030            Expr::Bin { 0: _field_0 } => {
125031                let mut __ast_path =
125032                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Bin));
125033                let _field_0 = <BinExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125034                    _field_0,
125035                    visitor,
125036                    &mut *__ast_path,
125037                );
125038                Expr::Bin { 0: _field_0 }
125039            }
125040            Expr::Assign { 0: _field_0 } => {
125041                let mut __ast_path =
125042                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Assign));
125043                let _field_0 = <AssignExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125044                    _field_0,
125045                    visitor,
125046                    &mut *__ast_path,
125047                );
125048                Expr::Assign { 0: _field_0 }
125049            }
125050            Expr::Member { 0: _field_0 } => {
125051                let mut __ast_path =
125052                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Member));
125053                let _field_0 = <MemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125054                    _field_0,
125055                    visitor,
125056                    &mut *__ast_path,
125057                );
125058                Expr::Member { 0: _field_0 }
125059            }
125060            Expr::SuperProp { 0: _field_0 } => {
125061                let mut __ast_path =
125062                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::SuperProp));
125063                let _field_0 = <SuperPropExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125064                    _field_0,
125065                    visitor,
125066                    &mut *__ast_path,
125067                );
125068                Expr::SuperProp { 0: _field_0 }
125069            }
125070            Expr::Cond { 0: _field_0 } => {
125071                let mut __ast_path =
125072                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Cond));
125073                let _field_0 = <CondExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125074                    _field_0,
125075                    visitor,
125076                    &mut *__ast_path,
125077                );
125078                Expr::Cond { 0: _field_0 }
125079            }
125080            Expr::Call { 0: _field_0 } => {
125081                let mut __ast_path =
125082                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Call));
125083                let _field_0 = <CallExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125084                    _field_0,
125085                    visitor,
125086                    &mut *__ast_path,
125087                );
125088                Expr::Call { 0: _field_0 }
125089            }
125090            Expr::New { 0: _field_0 } => {
125091                let mut __ast_path =
125092                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::New));
125093                let _field_0 = <NewExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125094                    _field_0,
125095                    visitor,
125096                    &mut *__ast_path,
125097                );
125098                Expr::New { 0: _field_0 }
125099            }
125100            Expr::Seq { 0: _field_0 } => {
125101                let mut __ast_path =
125102                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Seq));
125103                let _field_0 = <SeqExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125104                    _field_0,
125105                    visitor,
125106                    &mut *__ast_path,
125107                );
125108                Expr::Seq { 0: _field_0 }
125109            }
125110            Expr::Ident { 0: _field_0 } => {
125111                let mut __ast_path =
125112                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Ident));
125113                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
125114                    _field_0,
125115                    visitor,
125116                    &mut *__ast_path,
125117                );
125118                Expr::Ident { 0: _field_0 }
125119            }
125120            Expr::Lit { 0: _field_0 } => {
125121                let mut __ast_path =
125122                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Lit));
125123                let _field_0 = <Lit as FoldWithAstPath<V>>::fold_with_ast_path(
125124                    _field_0,
125125                    visitor,
125126                    &mut *__ast_path,
125127                );
125128                Expr::Lit { 0: _field_0 }
125129            }
125130            Expr::Tpl { 0: _field_0 } => {
125131                let mut __ast_path =
125132                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Tpl));
125133                let _field_0 = <Tpl as FoldWithAstPath<V>>::fold_with_ast_path(
125134                    _field_0,
125135                    visitor,
125136                    &mut *__ast_path,
125137                );
125138                Expr::Tpl { 0: _field_0 }
125139            }
125140            Expr::TaggedTpl { 0: _field_0 } => {
125141                let mut __ast_path =
125142                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TaggedTpl));
125143                let _field_0 = <TaggedTpl as FoldWithAstPath<V>>::fold_with_ast_path(
125144                    _field_0,
125145                    visitor,
125146                    &mut *__ast_path,
125147                );
125148                Expr::TaggedTpl { 0: _field_0 }
125149            }
125150            Expr::Arrow { 0: _field_0 } => {
125151                let mut __ast_path =
125152                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Arrow));
125153                let _field_0 = <ArrowExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125154                    _field_0,
125155                    visitor,
125156                    &mut *__ast_path,
125157                );
125158                Expr::Arrow { 0: _field_0 }
125159            }
125160            Expr::Class { 0: _field_0 } => {
125161                let mut __ast_path =
125162                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Class));
125163                let _field_0 = <ClassExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125164                    _field_0,
125165                    visitor,
125166                    &mut *__ast_path,
125167                );
125168                Expr::Class { 0: _field_0 }
125169            }
125170            Expr::Yield { 0: _field_0 } => {
125171                let mut __ast_path =
125172                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Yield));
125173                let _field_0 = <YieldExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125174                    _field_0,
125175                    visitor,
125176                    &mut *__ast_path,
125177                );
125178                Expr::Yield { 0: _field_0 }
125179            }
125180            Expr::MetaProp { 0: _field_0 } => {
125181                let mut __ast_path =
125182                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::MetaProp));
125183                let _field_0 = <MetaPropExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125184                    _field_0,
125185                    visitor,
125186                    &mut *__ast_path,
125187                );
125188                Expr::MetaProp { 0: _field_0 }
125189            }
125190            Expr::Await { 0: _field_0 } => {
125191                let mut __ast_path =
125192                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Await));
125193                let _field_0 = <AwaitExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125194                    _field_0,
125195                    visitor,
125196                    &mut *__ast_path,
125197                );
125198                Expr::Await { 0: _field_0 }
125199            }
125200            Expr::Paren { 0: _field_0 } => {
125201                let mut __ast_path =
125202                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Paren));
125203                let _field_0 = <ParenExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125204                    _field_0,
125205                    visitor,
125206                    &mut *__ast_path,
125207                );
125208                Expr::Paren { 0: _field_0 }
125209            }
125210            Expr::JSXMember { 0: _field_0 } => {
125211                let mut __ast_path =
125212                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxmember));
125213                let _field_0 = <JSXMemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125214                    _field_0,
125215                    visitor,
125216                    &mut *__ast_path,
125217                );
125218                Expr::JSXMember { 0: _field_0 }
125219            }
125220            Expr::JSXNamespacedName { 0: _field_0 } => {
125221                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
125222                    self::fields::ExprField::JsxnamespacedName,
125223                ));
125224                let _field_0 = <JSXNamespacedName as FoldWithAstPath<V>>::fold_with_ast_path(
125225                    _field_0,
125226                    visitor,
125227                    &mut *__ast_path,
125228                );
125229                Expr::JSXNamespacedName { 0: _field_0 }
125230            }
125231            Expr::JSXEmpty { 0: _field_0 } => {
125232                let mut __ast_path =
125233                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxempty));
125234                let _field_0 = <JSXEmptyExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125235                    _field_0,
125236                    visitor,
125237                    &mut *__ast_path,
125238                );
125239                Expr::JSXEmpty { 0: _field_0 }
125240            }
125241            Expr::JSXElement { 0: _field_0 } => {
125242                let mut __ast_path =
125243                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxelement));
125244                let _field_0 = <Box<JSXElement> as FoldWithAstPath<V>>::fold_with_ast_path(
125245                    _field_0,
125246                    visitor,
125247                    &mut *__ast_path,
125248                );
125249                Expr::JSXElement { 0: _field_0 }
125250            }
125251            Expr::JSXFragment { 0: _field_0 } => {
125252                let mut __ast_path = __ast_path
125253                    .with_guard(AstParentKind::Expr(self::fields::ExprField::Jsxfragment));
125254                let _field_0 = <JSXFragment as FoldWithAstPath<V>>::fold_with_ast_path(
125255                    _field_0,
125256                    visitor,
125257                    &mut *__ast_path,
125258                );
125259                Expr::JSXFragment { 0: _field_0 }
125260            }
125261            Expr::TsTypeAssertion { 0: _field_0 } => {
125262                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
125263                    self::fields::ExprField::TsTypeAssertion,
125264                ));
125265                let _field_0 = <TsTypeAssertion as FoldWithAstPath<V>>::fold_with_ast_path(
125266                    _field_0,
125267                    visitor,
125268                    &mut *__ast_path,
125269                );
125270                Expr::TsTypeAssertion { 0: _field_0 }
125271            }
125272            Expr::TsConstAssertion { 0: _field_0 } => {
125273                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
125274                    self::fields::ExprField::TsConstAssertion,
125275                ));
125276                let _field_0 = <TsConstAssertion as FoldWithAstPath<V>>::fold_with_ast_path(
125277                    _field_0,
125278                    visitor,
125279                    &mut *__ast_path,
125280                );
125281                Expr::TsConstAssertion { 0: _field_0 }
125282            }
125283            Expr::TsNonNull { 0: _field_0 } => {
125284                let mut __ast_path =
125285                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsNonNull));
125286                let _field_0 = <TsNonNullExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125287                    _field_0,
125288                    visitor,
125289                    &mut *__ast_path,
125290                );
125291                Expr::TsNonNull { 0: _field_0 }
125292            }
125293            Expr::TsAs { 0: _field_0 } => {
125294                let mut __ast_path =
125295                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::TsAs));
125296                let _field_0 = <TsAsExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125297                    _field_0,
125298                    visitor,
125299                    &mut *__ast_path,
125300                );
125301                Expr::TsAs { 0: _field_0 }
125302            }
125303            Expr::TsInstantiation { 0: _field_0 } => {
125304                let mut __ast_path = __ast_path.with_guard(AstParentKind::Expr(
125305                    self::fields::ExprField::TsInstantiation,
125306                ));
125307                let _field_0 = <TsInstantiation as FoldWithAstPath<V>>::fold_with_ast_path(
125308                    _field_0,
125309                    visitor,
125310                    &mut *__ast_path,
125311                );
125312                Expr::TsInstantiation { 0: _field_0 }
125313            }
125314            Expr::TsSatisfies { 0: _field_0 } => {
125315                let mut __ast_path = __ast_path
125316                    .with_guard(AstParentKind::Expr(self::fields::ExprField::TsSatisfies));
125317                let _field_0 = <TsSatisfiesExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125318                    _field_0,
125319                    visitor,
125320                    &mut *__ast_path,
125321                );
125322                Expr::TsSatisfies { 0: _field_0 }
125323            }
125324            Expr::PrivateName { 0: _field_0 } => {
125325                let mut __ast_path = __ast_path
125326                    .with_guard(AstParentKind::Expr(self::fields::ExprField::PrivateName));
125327                let _field_0 = <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
125328                    _field_0,
125329                    visitor,
125330                    &mut *__ast_path,
125331                );
125332                Expr::PrivateName { 0: _field_0 }
125333            }
125334            Expr::OptChain { 0: _field_0 } => {
125335                let mut __ast_path =
125336                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::OptChain));
125337                let _field_0 = <OptChainExpr as FoldWithAstPath<V>>::fold_with_ast_path(
125338                    _field_0,
125339                    visitor,
125340                    &mut *__ast_path,
125341                );
125342                Expr::OptChain { 0: _field_0 }
125343            }
125344            Expr::Invalid { 0: _field_0 } => {
125345                let mut __ast_path =
125346                    __ast_path.with_guard(AstParentKind::Expr(self::fields::ExprField::Invalid));
125347                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
125348                    _field_0,
125349                    visitor,
125350                    &mut *__ast_path,
125351                );
125352                Expr::Invalid { 0: _field_0 }
125353            }
125354        }
125355    }
125356}
125357#[cfg(any(docsrs, feature = "path"))]
125358#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125359impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExprOrSpread {
125360    #[doc = "Calls [FoldAstPath`::fold_expr_or_spread`] with `self`."]
125361    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125362        <V as FoldAstPath>::fold_expr_or_spread(visitor, self, __ast_path)
125363    }
125364
125365    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125366        match self {
125367            ExprOrSpread { spread, expr } => {
125368                let spread = {
125369                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
125370                        self::fields::ExprOrSpreadField::Spread,
125371                    ));
125372                    <Option<swc_common::Span> as FoldWithAstPath<V>>::fold_with_ast_path(
125373                        spread,
125374                        visitor,
125375                        &mut *__ast_path,
125376                    )
125377                };
125378                let expr = {
125379                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ExprOrSpread(
125380                        self::fields::ExprOrSpreadField::Expr,
125381                    ));
125382                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125383                        expr,
125384                        visitor,
125385                        &mut *__ast_path,
125386                    )
125387                };
125388                ExprOrSpread { spread, expr }
125389            }
125390        }
125391    }
125392}
125393#[cfg(any(docsrs, feature = "path"))]
125394#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125395impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ExprStmt {
125396    #[doc = "Calls [FoldAstPath`::fold_expr_stmt`] with `self`."]
125397    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125398        <V as FoldAstPath>::fold_expr_stmt(visitor, self, __ast_path)
125399    }
125400
125401    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125402        match self {
125403            ExprStmt { span, expr } => {
125404                let span = {
125405                    let mut __ast_path = __ast_path
125406                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Span));
125407                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125408                        span,
125409                        visitor,
125410                        &mut *__ast_path,
125411                    )
125412                };
125413                let expr = {
125414                    let mut __ast_path = __ast_path
125415                        .with_guard(AstParentKind::ExprStmt(self::fields::ExprStmtField::Expr));
125416                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125417                        expr,
125418                        visitor,
125419                        &mut *__ast_path,
125420                    )
125421                };
125422                ExprStmt { span, expr }
125423            }
125424        }
125425    }
125426}
125427#[cfg(any(docsrs, feature = "path"))]
125428#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125429impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for FnDecl {
125430    #[doc = "Calls [FoldAstPath`::fold_fn_decl`] with `self`."]
125431    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125432        <V as FoldAstPath>::fold_fn_decl(visitor, self, __ast_path)
125433    }
125434
125435    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125436        match self {
125437            FnDecl {
125438                ident,
125439                declare,
125440                function,
125441            } => {
125442                let ident = {
125443                    let mut __ast_path = __ast_path
125444                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Ident));
125445                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
125446                        ident,
125447                        visitor,
125448                        &mut *__ast_path,
125449                    )
125450                };
125451                let function = {
125452                    let mut __ast_path = __ast_path
125453                        .with_guard(AstParentKind::FnDecl(self::fields::FnDeclField::Function));
125454                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
125455                        function,
125456                        visitor,
125457                        &mut *__ast_path,
125458                    )
125459                };
125460                FnDecl {
125461                    ident,
125462                    declare,
125463                    function,
125464                }
125465            }
125466        }
125467    }
125468}
125469#[cfg(any(docsrs, feature = "path"))]
125470#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125471impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for FnExpr {
125472    #[doc = "Calls [FoldAstPath`::fold_fn_expr`] with `self`."]
125473    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125474        <V as FoldAstPath>::fold_fn_expr(visitor, self, __ast_path)
125475    }
125476
125477    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125478        match self {
125479            FnExpr { ident, function } => {
125480                let ident = {
125481                    let mut __ast_path = __ast_path
125482                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Ident));
125483                    <Option<Ident> as FoldWithAstPath<V>>::fold_with_ast_path(
125484                        ident,
125485                        visitor,
125486                        &mut *__ast_path,
125487                    )
125488                };
125489                let function = {
125490                    let mut __ast_path = __ast_path
125491                        .with_guard(AstParentKind::FnExpr(self::fields::FnExprField::Function));
125492                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
125493                        function,
125494                        visitor,
125495                        &mut *__ast_path,
125496                    )
125497                };
125498                FnExpr { ident, function }
125499            }
125500        }
125501    }
125502}
125503#[cfg(any(docsrs, feature = "path"))]
125504#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125505impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForHead {
125506    #[doc = "Calls [FoldAstPath`::fold_for_head`] with `self`."]
125507    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125508        <V as FoldAstPath>::fold_for_head(visitor, self, __ast_path)
125509    }
125510
125511    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125512        match self {
125513            ForHead::VarDecl { 0: _field_0 } => {
125514                let mut __ast_path = __ast_path
125515                    .with_guard(AstParentKind::ForHead(self::fields::ForHeadField::VarDecl));
125516                let _field_0 = <Box<VarDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125517                    _field_0,
125518                    visitor,
125519                    &mut *__ast_path,
125520                );
125521                ForHead::VarDecl { 0: _field_0 }
125522            }
125523            ForHead::UsingDecl { 0: _field_0 } => {
125524                let mut __ast_path = __ast_path.with_guard(AstParentKind::ForHead(
125525                    self::fields::ForHeadField::UsingDecl,
125526                ));
125527                let _field_0 = <Box<UsingDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
125528                    _field_0,
125529                    visitor,
125530                    &mut *__ast_path,
125531                );
125532                ForHead::UsingDecl { 0: _field_0 }
125533            }
125534            ForHead::Pat { 0: _field_0 } => {
125535                let mut __ast_path =
125536                    __ast_path.with_guard(AstParentKind::ForHead(self::fields::ForHeadField::Pat));
125537                let _field_0 = <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
125538                    _field_0,
125539                    visitor,
125540                    &mut *__ast_path,
125541                );
125542                ForHead::Pat { 0: _field_0 }
125543            }
125544        }
125545    }
125546}
125547#[cfg(any(docsrs, feature = "path"))]
125548#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125549impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForInStmt {
125550    #[doc = "Calls [FoldAstPath`::fold_for_in_stmt`] with `self`."]
125551    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125552        <V as FoldAstPath>::fold_for_in_stmt(visitor, self, __ast_path)
125553    }
125554
125555    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125556        match self {
125557            ForInStmt {
125558                span,
125559                left,
125560                right,
125561                body,
125562            } => {
125563                let span = {
125564                    let mut __ast_path = __ast_path
125565                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Span));
125566                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125567                        span,
125568                        visitor,
125569                        &mut *__ast_path,
125570                    )
125571                };
125572                let left = {
125573                    let mut __ast_path = __ast_path
125574                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Left));
125575                    <ForHead as FoldWithAstPath<V>>::fold_with_ast_path(
125576                        left,
125577                        visitor,
125578                        &mut *__ast_path,
125579                    )
125580                };
125581                let right = {
125582                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForInStmt(
125583                        self::fields::ForInStmtField::Right,
125584                    ));
125585                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125586                        right,
125587                        visitor,
125588                        &mut *__ast_path,
125589                    )
125590                };
125591                let body = {
125592                    let mut __ast_path = __ast_path
125593                        .with_guard(AstParentKind::ForInStmt(self::fields::ForInStmtField::Body));
125594                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125595                        body,
125596                        visitor,
125597                        &mut *__ast_path,
125598                    )
125599                };
125600                ForInStmt {
125601                    span,
125602                    left,
125603                    right,
125604                    body,
125605                }
125606            }
125607        }
125608    }
125609}
125610#[cfg(any(docsrs, feature = "path"))]
125611#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125612impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForOfStmt {
125613    #[doc = "Calls [FoldAstPath`::fold_for_of_stmt`] with `self`."]
125614    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125615        <V as FoldAstPath>::fold_for_of_stmt(visitor, self, __ast_path)
125616    }
125617
125618    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125619        match self {
125620            ForOfStmt {
125621                span,
125622                is_await,
125623                left,
125624                right,
125625                body,
125626            } => {
125627                let span = {
125628                    let mut __ast_path = __ast_path
125629                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Span));
125630                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125631                        span,
125632                        visitor,
125633                        &mut *__ast_path,
125634                    )
125635                };
125636                let left = {
125637                    let mut __ast_path = __ast_path
125638                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Left));
125639                    <ForHead as FoldWithAstPath<V>>::fold_with_ast_path(
125640                        left,
125641                        visitor,
125642                        &mut *__ast_path,
125643                    )
125644                };
125645                let right = {
125646                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ForOfStmt(
125647                        self::fields::ForOfStmtField::Right,
125648                    ));
125649                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
125650                        right,
125651                        visitor,
125652                        &mut *__ast_path,
125653                    )
125654                };
125655                let body = {
125656                    let mut __ast_path = __ast_path
125657                        .with_guard(AstParentKind::ForOfStmt(self::fields::ForOfStmtField::Body));
125658                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125659                        body,
125660                        visitor,
125661                        &mut *__ast_path,
125662                    )
125663                };
125664                ForOfStmt {
125665                    span,
125666                    is_await,
125667                    left,
125668                    right,
125669                    body,
125670                }
125671            }
125672        }
125673    }
125674}
125675#[cfg(any(docsrs, feature = "path"))]
125676#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125677impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ForStmt {
125678    #[doc = "Calls [FoldAstPath`::fold_for_stmt`] with `self`."]
125679    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125680        <V as FoldAstPath>::fold_for_stmt(visitor, self, __ast_path)
125681    }
125682
125683    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125684        match self {
125685            ForStmt {
125686                span,
125687                init,
125688                test,
125689                update,
125690                body,
125691            } => {
125692                let span = {
125693                    let mut __ast_path = __ast_path
125694                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Span));
125695                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125696                        span,
125697                        visitor,
125698                        &mut *__ast_path,
125699                    )
125700                };
125701                let init = {
125702                    let mut __ast_path = __ast_path
125703                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Init));
125704                    <Option<VarDeclOrExpr> as FoldWithAstPath<V>>::fold_with_ast_path(
125705                        init,
125706                        visitor,
125707                        &mut *__ast_path,
125708                    )
125709                };
125710                let test = {
125711                    let mut __ast_path = __ast_path
125712                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Test));
125713                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
125714                        test,
125715                        visitor,
125716                        &mut *__ast_path,
125717                    )
125718                };
125719                let update = {
125720                    let mut __ast_path = __ast_path
125721                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Update));
125722                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
125723                        update,
125724                        visitor,
125725                        &mut *__ast_path,
125726                    )
125727                };
125728                let body = {
125729                    let mut __ast_path = __ast_path
125730                        .with_guard(AstParentKind::ForStmt(self::fields::ForStmtField::Body));
125731                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125732                        body,
125733                        visitor,
125734                        &mut *__ast_path,
125735                    )
125736                };
125737                ForStmt {
125738                    span,
125739                    init,
125740                    test,
125741                    update,
125742                    body,
125743                }
125744            }
125745        }
125746    }
125747}
125748#[cfg(any(docsrs, feature = "path"))]
125749#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125750impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Function {
125751    #[doc = "Calls [FoldAstPath`::fold_function`] with `self`."]
125752    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125753        <V as FoldAstPath>::fold_function(visitor, self, __ast_path)
125754    }
125755
125756    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125757        match self {
125758            Function {
125759                params,
125760                decorators,
125761                span,
125762                ctxt,
125763                body,
125764                is_generator,
125765                is_async,
125766                type_params,
125767                return_type,
125768            } => {
125769                let params = {
125770                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
125771                        self::fields::FunctionField::Params(usize::MAX),
125772                    ));
125773                    <Vec<Param> as FoldWithAstPath<V>>::fold_with_ast_path(
125774                        params,
125775                        visitor,
125776                        &mut *__ast_path,
125777                    )
125778                };
125779                let decorators = {
125780                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
125781                        self::fields::FunctionField::Decorators(usize::MAX),
125782                    ));
125783                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
125784                        decorators,
125785                        visitor,
125786                        &mut *__ast_path,
125787                    )
125788                };
125789                let span = {
125790                    let mut __ast_path = __ast_path
125791                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Span));
125792                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125793                        span,
125794                        visitor,
125795                        &mut *__ast_path,
125796                    )
125797                };
125798                let ctxt = {
125799                    let mut __ast_path = __ast_path
125800                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Ctxt));
125801                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
125802                        ctxt,
125803                        visitor,
125804                        &mut *__ast_path,
125805                    )
125806                };
125807                let body = {
125808                    let mut __ast_path = __ast_path
125809                        .with_guard(AstParentKind::Function(self::fields::FunctionField::Body));
125810                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125811                        body,
125812                        visitor,
125813                        &mut *__ast_path,
125814                    )
125815                };
125816                let type_params = {
125817                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
125818                        self::fields::FunctionField::TypeParams,
125819                    ));
125820                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
125821                        type_params,
125822                        visitor,
125823                        &mut *__ast_path,
125824                    )
125825                };
125826                let return_type = {
125827                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Function(
125828                        self::fields::FunctionField::ReturnType,
125829                    ));
125830                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
125831                        return_type,
125832                        visitor,
125833                        &mut *__ast_path,
125834                    )
125835                };
125836                Function {
125837                    params,
125838                    decorators,
125839                    span,
125840                    ctxt,
125841                    body,
125842                    is_generator,
125843                    is_async,
125844                    type_params,
125845                    return_type,
125846                }
125847            }
125848        }
125849    }
125850}
125851#[cfg(any(docsrs, feature = "path"))]
125852#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125853impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for GetterProp {
125854    #[doc = "Calls [FoldAstPath`::fold_getter_prop`] with `self`."]
125855    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125856        <V as FoldAstPath>::fold_getter_prop(visitor, self, __ast_path)
125857    }
125858
125859    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125860        match self {
125861            GetterProp {
125862                span,
125863                key,
125864                type_ann,
125865                body,
125866            } => {
125867                let span = {
125868                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
125869                        self::fields::GetterPropField::Span,
125870                    ));
125871                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125872                        span,
125873                        visitor,
125874                        &mut *__ast_path,
125875                    )
125876                };
125877                let key = {
125878                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
125879                        self::fields::GetterPropField::Key,
125880                    ));
125881                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
125882                        key,
125883                        visitor,
125884                        &mut *__ast_path,
125885                    )
125886                };
125887                let type_ann = {
125888                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
125889                        self::fields::GetterPropField::TypeAnn,
125890                    ));
125891                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
125892                        type_ann,
125893                        visitor,
125894                        &mut *__ast_path,
125895                    )
125896                };
125897                let body = {
125898                    let mut __ast_path = __ast_path.with_guard(AstParentKind::GetterProp(
125899                        self::fields::GetterPropField::Body,
125900                    ));
125901                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
125902                        body,
125903                        visitor,
125904                        &mut *__ast_path,
125905                    )
125906                };
125907                GetterProp {
125908                    span,
125909                    key,
125910                    type_ann,
125911                    body,
125912                }
125913            }
125914        }
125915    }
125916}
125917#[cfg(any(docsrs, feature = "path"))]
125918#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125919impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Ident {
125920    #[doc = "Calls [FoldAstPath`::fold_ident`] with `self`."]
125921    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125922        <V as FoldAstPath>::fold_ident(visitor, self, __ast_path)
125923    }
125924
125925    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125926        match self {
125927            Ident {
125928                span,
125929                ctxt,
125930                sym,
125931                optional,
125932            } => {
125933                let span = {
125934                    let mut __ast_path =
125935                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Span));
125936                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125937                        span,
125938                        visitor,
125939                        &mut *__ast_path,
125940                    )
125941                };
125942                let ctxt = {
125943                    let mut __ast_path =
125944                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Ctxt));
125945                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
125946                        ctxt,
125947                        visitor,
125948                        &mut *__ast_path,
125949                    )
125950                };
125951                let sym = {
125952                    let mut __ast_path =
125953                        __ast_path.with_guard(AstParentKind::Ident(self::fields::IdentField::Sym));
125954                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
125955                        sym,
125956                        visitor,
125957                        &mut *__ast_path,
125958                    )
125959                };
125960                Ident {
125961                    span,
125962                    ctxt,
125963                    sym,
125964                    optional,
125965                }
125966            }
125967        }
125968    }
125969}
125970#[cfg(any(docsrs, feature = "path"))]
125971#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
125972impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for IdentName {
125973    #[doc = "Calls [FoldAstPath`::fold_ident_name`] with `self`."]
125974    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125975        <V as FoldAstPath>::fold_ident_name(visitor, self, __ast_path)
125976    }
125977
125978    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
125979        match self {
125980            IdentName { span, sym } => {
125981                let span = {
125982                    let mut __ast_path = __ast_path
125983                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Span));
125984                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
125985                        span,
125986                        visitor,
125987                        &mut *__ast_path,
125988                    )
125989                };
125990                let sym = {
125991                    let mut __ast_path = __ast_path
125992                        .with_guard(AstParentKind::IdentName(self::fields::IdentNameField::Sym));
125993                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
125994                        sym,
125995                        visitor,
125996                        &mut *__ast_path,
125997                    )
125998                };
125999                IdentName { span, sym }
126000            }
126001        }
126002    }
126003}
126004#[cfg(any(docsrs, feature = "path"))]
126005#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126006impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for IfStmt {
126007    #[doc = "Calls [FoldAstPath`::fold_if_stmt`] with `self`."]
126008    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126009        <V as FoldAstPath>::fold_if_stmt(visitor, self, __ast_path)
126010    }
126011
126012    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126013        match self {
126014            IfStmt {
126015                span,
126016                test,
126017                cons,
126018                alt,
126019            } => {
126020                let span = {
126021                    let mut __ast_path = __ast_path
126022                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Span));
126023                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126024                        span,
126025                        visitor,
126026                        &mut *__ast_path,
126027                    )
126028                };
126029                let test = {
126030                    let mut __ast_path = __ast_path
126031                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Test));
126032                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126033                        test,
126034                        visitor,
126035                        &mut *__ast_path,
126036                    )
126037                };
126038                let cons = {
126039                    let mut __ast_path = __ast_path
126040                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Cons));
126041                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
126042                        cons,
126043                        visitor,
126044                        &mut *__ast_path,
126045                    )
126046                };
126047                let alt = {
126048                    let mut __ast_path = __ast_path
126049                        .with_guard(AstParentKind::IfStmt(self::fields::IfStmtField::Alt));
126050                    <Option<Box<Stmt>> as FoldWithAstPath<V>>::fold_with_ast_path(
126051                        alt,
126052                        visitor,
126053                        &mut *__ast_path,
126054                    )
126055                };
126056                IfStmt {
126057                    span,
126058                    test,
126059                    cons,
126060                    alt,
126061                }
126062            }
126063        }
126064    }
126065}
126066#[cfg(any(docsrs, feature = "path"))]
126067#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126068impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Import {
126069    #[doc = "Calls [FoldAstPath`::fold_import`] with `self`."]
126070    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126071        <V as FoldAstPath>::fold_import(visitor, self, __ast_path)
126072    }
126073
126074    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126075        match self {
126076            Import { span, phase } => {
126077                let span = {
126078                    let mut __ast_path = __ast_path
126079                        .with_guard(AstParentKind::Import(self::fields::ImportField::Span));
126080                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126081                        span,
126082                        visitor,
126083                        &mut *__ast_path,
126084                    )
126085                };
126086                let phase = {
126087                    let mut __ast_path = __ast_path
126088                        .with_guard(AstParentKind::Import(self::fields::ImportField::Phase));
126089                    <ImportPhase as FoldWithAstPath<V>>::fold_with_ast_path(
126090                        phase,
126091                        visitor,
126092                        &mut *__ast_path,
126093                    )
126094                };
126095                Import { span, phase }
126096            }
126097        }
126098    }
126099}
126100#[cfg(any(docsrs, feature = "path"))]
126101#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126102impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportDecl {
126103    #[doc = "Calls [FoldAstPath`::fold_import_decl`] with `self`."]
126104    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126105        <V as FoldAstPath>::fold_import_decl(visitor, self, __ast_path)
126106    }
126107
126108    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126109        match self {
126110            ImportDecl {
126111                span,
126112                specifiers,
126113                src,
126114                type_only,
126115                with,
126116                phase,
126117            } => {
126118                let span = {
126119                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
126120                        self::fields::ImportDeclField::Span,
126121                    ));
126122                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126123                        span,
126124                        visitor,
126125                        &mut *__ast_path,
126126                    )
126127                };
126128                let specifiers = {
126129                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
126130                        self::fields::ImportDeclField::Specifiers(usize::MAX),
126131                    ));
126132                    <Vec<ImportSpecifier> as FoldWithAstPath<V>>::fold_with_ast_path(
126133                        specifiers,
126134                        visitor,
126135                        &mut *__ast_path,
126136                    )
126137                };
126138                let src = {
126139                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
126140                        self::fields::ImportDeclField::Src,
126141                    ));
126142                    <Box<Str> as FoldWithAstPath<V>>::fold_with_ast_path(
126143                        src,
126144                        visitor,
126145                        &mut *__ast_path,
126146                    )
126147                };
126148                let with = {
126149                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
126150                        self::fields::ImportDeclField::With,
126151                    ));
126152                    <Option<Box<ObjectLit>> as FoldWithAstPath<V>>::fold_with_ast_path(
126153                        with,
126154                        visitor,
126155                        &mut *__ast_path,
126156                    )
126157                };
126158                let phase = {
126159                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportDecl(
126160                        self::fields::ImportDeclField::Phase,
126161                    ));
126162                    <ImportPhase as FoldWithAstPath<V>>::fold_with_ast_path(
126163                        phase,
126164                        visitor,
126165                        &mut *__ast_path,
126166                    )
126167                };
126168                ImportDecl {
126169                    span,
126170                    specifiers,
126171                    src,
126172                    type_only,
126173                    with,
126174                    phase,
126175                }
126176            }
126177        }
126178    }
126179}
126180#[cfg(any(docsrs, feature = "path"))]
126181#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126182impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportDefaultSpecifier {
126183    #[doc = "Calls [FoldAstPath`::fold_import_default_specifier`] with `self`."]
126184    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126185        <V as FoldAstPath>::fold_import_default_specifier(visitor, self, __ast_path)
126186    }
126187
126188    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126189        match self {
126190            ImportDefaultSpecifier { span, local } => {
126191                let span = {
126192                    let mut __ast_path =
126193                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
126194                            self::fields::ImportDefaultSpecifierField::Span,
126195                        ));
126196                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126197                        span,
126198                        visitor,
126199                        &mut *__ast_path,
126200                    )
126201                };
126202                let local = {
126203                    let mut __ast_path =
126204                        __ast_path.with_guard(AstParentKind::ImportDefaultSpecifier(
126205                            self::fields::ImportDefaultSpecifierField::Local,
126206                        ));
126207                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
126208                        local,
126209                        visitor,
126210                        &mut *__ast_path,
126211                    )
126212                };
126213                ImportDefaultSpecifier { span, local }
126214            }
126215        }
126216    }
126217}
126218#[cfg(any(docsrs, feature = "path"))]
126219#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126220impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportNamedSpecifier {
126221    #[doc = "Calls [FoldAstPath`::fold_import_named_specifier`] with `self`."]
126222    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126223        <V as FoldAstPath>::fold_import_named_specifier(visitor, self, __ast_path)
126224    }
126225
126226    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126227        match self {
126228            ImportNamedSpecifier {
126229                span,
126230                local,
126231                imported,
126232                is_type_only,
126233            } => {
126234                let span = {
126235                    let mut __ast_path =
126236                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
126237                            self::fields::ImportNamedSpecifierField::Span,
126238                        ));
126239                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126240                        span,
126241                        visitor,
126242                        &mut *__ast_path,
126243                    )
126244                };
126245                let local = {
126246                    let mut __ast_path =
126247                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
126248                            self::fields::ImportNamedSpecifierField::Local,
126249                        ));
126250                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
126251                        local,
126252                        visitor,
126253                        &mut *__ast_path,
126254                    )
126255                };
126256                let imported = {
126257                    let mut __ast_path =
126258                        __ast_path.with_guard(AstParentKind::ImportNamedSpecifier(
126259                            self::fields::ImportNamedSpecifierField::Imported,
126260                        ));
126261                    <Option<ModuleExportName> as FoldWithAstPath<V>>::fold_with_ast_path(
126262                        imported,
126263                        visitor,
126264                        &mut *__ast_path,
126265                    )
126266                };
126267                ImportNamedSpecifier {
126268                    span,
126269                    local,
126270                    imported,
126271                    is_type_only,
126272                }
126273            }
126274        }
126275    }
126276}
126277#[cfg(any(docsrs, feature = "path"))]
126278#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126279impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportPhase {
126280    #[doc = "Calls [FoldAstPath`::fold_import_phase`] with `self`."]
126281    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126282        <V as FoldAstPath>::fold_import_phase(visitor, self, __ast_path)
126283    }
126284
126285    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126286        match self {
126287            ImportPhase::Evaluation => ImportPhase::Evaluation,
126288            ImportPhase::Source => ImportPhase::Source,
126289            ImportPhase::Defer => ImportPhase::Defer,
126290        }
126291    }
126292}
126293#[cfg(any(docsrs, feature = "path"))]
126294#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126295impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportSpecifier {
126296    #[doc = "Calls [FoldAstPath`::fold_import_specifier`] with `self`."]
126297    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126298        <V as FoldAstPath>::fold_import_specifier(visitor, self, __ast_path)
126299    }
126300
126301    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126302        match self {
126303            ImportSpecifier::Named { 0: _field_0 } => {
126304                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
126305                    self::fields::ImportSpecifierField::Named,
126306                ));
126307                let _field_0 = <ImportNamedSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
126308                    _field_0,
126309                    visitor,
126310                    &mut *__ast_path,
126311                );
126312                ImportSpecifier::Named { 0: _field_0 }
126313            }
126314            ImportSpecifier::Default { 0: _field_0 } => {
126315                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
126316                    self::fields::ImportSpecifierField::Default,
126317                ));
126318                let _field_0 = <ImportDefaultSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
126319                    _field_0,
126320                    visitor,
126321                    &mut *__ast_path,
126322                );
126323                ImportSpecifier::Default { 0: _field_0 }
126324            }
126325            ImportSpecifier::Namespace { 0: _field_0 } => {
126326                let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportSpecifier(
126327                    self::fields::ImportSpecifierField::Namespace,
126328                ));
126329                let _field_0 = <ImportStarAsSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
126330                    _field_0,
126331                    visitor,
126332                    &mut *__ast_path,
126333                );
126334                ImportSpecifier::Namespace { 0: _field_0 }
126335            }
126336        }
126337    }
126338}
126339#[cfg(any(docsrs, feature = "path"))]
126340#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126341impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportStarAsSpecifier {
126342    #[doc = "Calls [FoldAstPath`::fold_import_star_as_specifier`] with `self`."]
126343    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126344        <V as FoldAstPath>::fold_import_star_as_specifier(visitor, self, __ast_path)
126345    }
126346
126347    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126348        match self {
126349            ImportStarAsSpecifier { span, local } => {
126350                let span = {
126351                    let mut __ast_path =
126352                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
126353                            self::fields::ImportStarAsSpecifierField::Span,
126354                        ));
126355                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126356                        span,
126357                        visitor,
126358                        &mut *__ast_path,
126359                    )
126360                };
126361                let local = {
126362                    let mut __ast_path =
126363                        __ast_path.with_guard(AstParentKind::ImportStarAsSpecifier(
126364                            self::fields::ImportStarAsSpecifierField::Local,
126365                        ));
126366                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
126367                        local,
126368                        visitor,
126369                        &mut *__ast_path,
126370                    )
126371                };
126372                ImportStarAsSpecifier { span, local }
126373            }
126374        }
126375    }
126376}
126377#[cfg(any(docsrs, feature = "path"))]
126378#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126379impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportWith {
126380    #[doc = "Calls [FoldAstPath`::fold_import_with`] with `self`."]
126381    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126382        <V as FoldAstPath>::fold_import_with(visitor, self, __ast_path)
126383    }
126384
126385    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126386        match self {
126387            ImportWith { span, values } => {
126388                let span = {
126389                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
126390                        self::fields::ImportWithField::Span,
126391                    ));
126392                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126393                        span,
126394                        visitor,
126395                        &mut *__ast_path,
126396                    )
126397                };
126398                let values = {
126399                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWith(
126400                        self::fields::ImportWithField::Values(usize::MAX),
126401                    ));
126402                    <Vec<ImportWithItem> as FoldWithAstPath<V>>::fold_with_ast_path(
126403                        values,
126404                        visitor,
126405                        &mut *__ast_path,
126406                    )
126407                };
126408                ImportWith { span, values }
126409            }
126410        }
126411    }
126412}
126413#[cfg(any(docsrs, feature = "path"))]
126414#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126415impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ImportWithItem {
126416    #[doc = "Calls [FoldAstPath`::fold_import_with_item`] with `self`."]
126417    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126418        <V as FoldAstPath>::fold_import_with_item(visitor, self, __ast_path)
126419    }
126420
126421    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126422        match self {
126423            ImportWithItem { key, value } => {
126424                let key = {
126425                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
126426                        self::fields::ImportWithItemField::Key,
126427                    ));
126428                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
126429                        key,
126430                        visitor,
126431                        &mut *__ast_path,
126432                    )
126433                };
126434                let value = {
126435                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ImportWithItem(
126436                        self::fields::ImportWithItemField::Value,
126437                    ));
126438                    <Str as FoldWithAstPath<V>>::fold_with_ast_path(
126439                        value,
126440                        visitor,
126441                        &mut *__ast_path,
126442                    )
126443                };
126444                ImportWithItem { key, value }
126445            }
126446        }
126447    }
126448}
126449#[cfg(any(docsrs, feature = "path"))]
126450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126451impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Invalid {
126452    #[doc = "Calls [FoldAstPath`::fold_invalid`] with `self`."]
126453    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126454        <V as FoldAstPath>::fold_invalid(visitor, self, __ast_path)
126455    }
126456
126457    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126458        match self {
126459            Invalid { span } => {
126460                let span = {
126461                    let mut __ast_path = __ast_path
126462                        .with_guard(AstParentKind::Invalid(self::fields::InvalidField::Span));
126463                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126464                        span,
126465                        visitor,
126466                        &mut *__ast_path,
126467                    )
126468                };
126469                Invalid { span }
126470            }
126471        }
126472    }
126473}
126474#[cfg(any(docsrs, feature = "path"))]
126475#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126476impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttr {
126477    #[doc = "Calls [FoldAstPath`::fold_jsx_attr`] with `self`."]
126478    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126479        <V as FoldAstPath>::fold_jsx_attr(visitor, self, __ast_path)
126480    }
126481
126482    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126483        match self {
126484            JSXAttr { span, name, value } => {
126485                let span = {
126486                    let mut __ast_path = __ast_path
126487                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Span));
126488                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126489                        span,
126490                        visitor,
126491                        &mut *__ast_path,
126492                    )
126493                };
126494                let name = {
126495                    let mut __ast_path = __ast_path
126496                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Name));
126497                    <JSXAttrName as FoldWithAstPath<V>>::fold_with_ast_path(
126498                        name,
126499                        visitor,
126500                        &mut *__ast_path,
126501                    )
126502                };
126503                let value = {
126504                    let mut __ast_path = __ast_path
126505                        .with_guard(AstParentKind::JSXAttr(self::fields::JSXAttrField::Value));
126506                    <Option<JSXAttrValue> as FoldWithAstPath<V>>::fold_with_ast_path(
126507                        value,
126508                        visitor,
126509                        &mut *__ast_path,
126510                    )
126511                };
126512                JSXAttr { span, name, value }
126513            }
126514        }
126515    }
126516}
126517#[cfg(any(docsrs, feature = "path"))]
126518#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126519impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttrName {
126520    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_name`] with `self`."]
126521    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126522        <V as FoldAstPath>::fold_jsx_attr_name(visitor, self, __ast_path)
126523    }
126524
126525    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126526        match self {
126527            JSXAttrName::Ident { 0: _field_0 } => {
126528                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
126529                    self::fields::JSXAttrNameField::Ident,
126530                ));
126531                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
126532                    _field_0,
126533                    visitor,
126534                    &mut *__ast_path,
126535                );
126536                JSXAttrName::Ident { 0: _field_0 }
126537            }
126538            JSXAttrName::JSXNamespacedName { 0: _field_0 } => {
126539                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrName(
126540                    self::fields::JSXAttrNameField::JsxnamespacedName,
126541                ));
126542                let _field_0 = <JSXNamespacedName as FoldWithAstPath<V>>::fold_with_ast_path(
126543                    _field_0,
126544                    visitor,
126545                    &mut *__ast_path,
126546                );
126547                JSXAttrName::JSXNamespacedName { 0: _field_0 }
126548            }
126549        }
126550    }
126551}
126552#[cfg(any(docsrs, feature = "path"))]
126553#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126554impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttrOrSpread {
126555    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_or_spread`] with `self`."]
126556    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126557        <V as FoldAstPath>::fold_jsx_attr_or_spread(visitor, self, __ast_path)
126558    }
126559
126560    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126561        match self {
126562            JSXAttrOrSpread::JSXAttr { 0: _field_0 } => {
126563                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
126564                    self::fields::JSXAttrOrSpreadField::Jsxattr,
126565                ));
126566                let _field_0 = <JSXAttr as FoldWithAstPath<V>>::fold_with_ast_path(
126567                    _field_0,
126568                    visitor,
126569                    &mut *__ast_path,
126570                );
126571                JSXAttrOrSpread::JSXAttr { 0: _field_0 }
126572            }
126573            JSXAttrOrSpread::SpreadElement { 0: _field_0 } => {
126574                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrOrSpread(
126575                    self::fields::JSXAttrOrSpreadField::SpreadElement,
126576                ));
126577                let _field_0 = <SpreadElement as FoldWithAstPath<V>>::fold_with_ast_path(
126578                    _field_0,
126579                    visitor,
126580                    &mut *__ast_path,
126581                );
126582                JSXAttrOrSpread::SpreadElement { 0: _field_0 }
126583            }
126584        }
126585    }
126586}
126587#[cfg(any(docsrs, feature = "path"))]
126588#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126589impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXAttrValue {
126590    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_value`] with `self`."]
126591    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126592        <V as FoldAstPath>::fold_jsx_attr_value(visitor, self, __ast_path)
126593    }
126594
126595    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126596        match self {
126597            JSXAttrValue::Lit { 0: _field_0 } => {
126598                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
126599                    self::fields::JSXAttrValueField::Lit,
126600                ));
126601                let _field_0 = <Lit as FoldWithAstPath<V>>::fold_with_ast_path(
126602                    _field_0,
126603                    visitor,
126604                    &mut *__ast_path,
126605                );
126606                JSXAttrValue::Lit { 0: _field_0 }
126607            }
126608            JSXAttrValue::JSXExprContainer { 0: _field_0 } => {
126609                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
126610                    self::fields::JSXAttrValueField::JsxexprContainer,
126611                ));
126612                let _field_0 = <JSXExprContainer as FoldWithAstPath<V>>::fold_with_ast_path(
126613                    _field_0,
126614                    visitor,
126615                    &mut *__ast_path,
126616                );
126617                JSXAttrValue::JSXExprContainer { 0: _field_0 }
126618            }
126619            JSXAttrValue::JSXElement { 0: _field_0 } => {
126620                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
126621                    self::fields::JSXAttrValueField::Jsxelement,
126622                ));
126623                let _field_0 = <Box<JSXElement> as FoldWithAstPath<V>>::fold_with_ast_path(
126624                    _field_0,
126625                    visitor,
126626                    &mut *__ast_path,
126627                );
126628                JSXAttrValue::JSXElement { 0: _field_0 }
126629            }
126630            JSXAttrValue::JSXFragment { 0: _field_0 } => {
126631                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXAttrValue(
126632                    self::fields::JSXAttrValueField::Jsxfragment,
126633                ));
126634                let _field_0 = <JSXFragment as FoldWithAstPath<V>>::fold_with_ast_path(
126635                    _field_0,
126636                    visitor,
126637                    &mut *__ast_path,
126638                );
126639                JSXAttrValue::JSXFragment { 0: _field_0 }
126640            }
126641        }
126642    }
126643}
126644#[cfg(any(docsrs, feature = "path"))]
126645#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126646impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXClosingElement {
126647    #[doc = "Calls [FoldAstPath`::fold_jsx_closing_element`] with `self`."]
126648    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126649        <V as FoldAstPath>::fold_jsx_closing_element(visitor, self, __ast_path)
126650    }
126651
126652    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126653        match self {
126654            JSXClosingElement { span, name } => {
126655                let span = {
126656                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
126657                        self::fields::JSXClosingElementField::Span,
126658                    ));
126659                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126660                        span,
126661                        visitor,
126662                        &mut *__ast_path,
126663                    )
126664                };
126665                let name = {
126666                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingElement(
126667                        self::fields::JSXClosingElementField::Name,
126668                    ));
126669                    <JSXElementName as FoldWithAstPath<V>>::fold_with_ast_path(
126670                        name,
126671                        visitor,
126672                        &mut *__ast_path,
126673                    )
126674                };
126675                JSXClosingElement { span, name }
126676            }
126677        }
126678    }
126679}
126680#[cfg(any(docsrs, feature = "path"))]
126681#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126682impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXClosingFragment {
126683    #[doc = "Calls [FoldAstPath`::fold_jsx_closing_fragment`] with `self`."]
126684    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126685        <V as FoldAstPath>::fold_jsx_closing_fragment(visitor, self, __ast_path)
126686    }
126687
126688    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126689        match self {
126690            JSXClosingFragment { span } => {
126691                let span = {
126692                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXClosingFragment(
126693                        self::fields::JSXClosingFragmentField::Span,
126694                    ));
126695                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126696                        span,
126697                        visitor,
126698                        &mut *__ast_path,
126699                    )
126700                };
126701                JSXClosingFragment { span }
126702            }
126703        }
126704    }
126705}
126706#[cfg(any(docsrs, feature = "path"))]
126707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126708impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXElement {
126709    #[doc = "Calls [FoldAstPath`::fold_jsx_element`] with `self`."]
126710    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126711        <V as FoldAstPath>::fold_jsx_element(visitor, self, __ast_path)
126712    }
126713
126714    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126715        match self {
126716            JSXElement {
126717                span,
126718                opening,
126719                children,
126720                closing,
126721            } => {
126722                let span = {
126723                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
126724                        self::fields::JSXElementField::Span,
126725                    ));
126726                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126727                        span,
126728                        visitor,
126729                        &mut *__ast_path,
126730                    )
126731                };
126732                let opening = {
126733                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
126734                        self::fields::JSXElementField::Opening,
126735                    ));
126736                    <JSXOpeningElement as FoldWithAstPath<V>>::fold_with_ast_path(
126737                        opening,
126738                        visitor,
126739                        &mut *__ast_path,
126740                    )
126741                };
126742                let children = {
126743                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
126744                        self::fields::JSXElementField::Children(usize::MAX),
126745                    ));
126746                    <Vec<JSXElementChild> as FoldWithAstPath<V>>::fold_with_ast_path(
126747                        children,
126748                        visitor,
126749                        &mut *__ast_path,
126750                    )
126751                };
126752                let closing = {
126753                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElement(
126754                        self::fields::JSXElementField::Closing,
126755                    ));
126756                    <Option<JSXClosingElement> as FoldWithAstPath<V>>::fold_with_ast_path(
126757                        closing,
126758                        visitor,
126759                        &mut *__ast_path,
126760                    )
126761                };
126762                JSXElement {
126763                    span,
126764                    opening,
126765                    children,
126766                    closing,
126767                }
126768            }
126769        }
126770    }
126771}
126772#[cfg(any(docsrs, feature = "path"))]
126773#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126774impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXElementChild {
126775    #[doc = "Calls [FoldAstPath`::fold_jsx_element_child`] with `self`."]
126776    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126777        <V as FoldAstPath>::fold_jsx_element_child(visitor, self, __ast_path)
126778    }
126779
126780    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126781        match self {
126782            JSXElementChild::JSXText { 0: _field_0 } => {
126783                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
126784                    self::fields::JSXElementChildField::Jsxtext,
126785                ));
126786                let _field_0 = <JSXText as FoldWithAstPath<V>>::fold_with_ast_path(
126787                    _field_0,
126788                    visitor,
126789                    &mut *__ast_path,
126790                );
126791                JSXElementChild::JSXText { 0: _field_0 }
126792            }
126793            JSXElementChild::JSXExprContainer { 0: _field_0 } => {
126794                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
126795                    self::fields::JSXElementChildField::JsxexprContainer,
126796                ));
126797                let _field_0 = <JSXExprContainer as FoldWithAstPath<V>>::fold_with_ast_path(
126798                    _field_0,
126799                    visitor,
126800                    &mut *__ast_path,
126801                );
126802                JSXElementChild::JSXExprContainer { 0: _field_0 }
126803            }
126804            JSXElementChild::JSXSpreadChild { 0: _field_0 } => {
126805                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
126806                    self::fields::JSXElementChildField::JsxspreadChild,
126807                ));
126808                let _field_0 = <JSXSpreadChild as FoldWithAstPath<V>>::fold_with_ast_path(
126809                    _field_0,
126810                    visitor,
126811                    &mut *__ast_path,
126812                );
126813                JSXElementChild::JSXSpreadChild { 0: _field_0 }
126814            }
126815            JSXElementChild::JSXElement { 0: _field_0 } => {
126816                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
126817                    self::fields::JSXElementChildField::Jsxelement,
126818                ));
126819                let _field_0 = <Box<JSXElement> as FoldWithAstPath<V>>::fold_with_ast_path(
126820                    _field_0,
126821                    visitor,
126822                    &mut *__ast_path,
126823                );
126824                JSXElementChild::JSXElement { 0: _field_0 }
126825            }
126826            JSXElementChild::JSXFragment { 0: _field_0 } => {
126827                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementChild(
126828                    self::fields::JSXElementChildField::Jsxfragment,
126829                ));
126830                let _field_0 = <JSXFragment as FoldWithAstPath<V>>::fold_with_ast_path(
126831                    _field_0,
126832                    visitor,
126833                    &mut *__ast_path,
126834                );
126835                JSXElementChild::JSXFragment { 0: _field_0 }
126836            }
126837        }
126838    }
126839}
126840#[cfg(any(docsrs, feature = "path"))]
126841#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126842impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXElementName {
126843    #[doc = "Calls [FoldAstPath`::fold_jsx_element_name`] with `self`."]
126844    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126845        <V as FoldAstPath>::fold_jsx_element_name(visitor, self, __ast_path)
126846    }
126847
126848    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126849        match self {
126850            JSXElementName::Ident { 0: _field_0 } => {
126851                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
126852                    self::fields::JSXElementNameField::Ident,
126853                ));
126854                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
126855                    _field_0,
126856                    visitor,
126857                    &mut *__ast_path,
126858                );
126859                JSXElementName::Ident { 0: _field_0 }
126860            }
126861            JSXElementName::JSXMemberExpr { 0: _field_0 } => {
126862                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
126863                    self::fields::JSXElementNameField::JsxmemberExpr,
126864                ));
126865                let _field_0 = <JSXMemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126866                    _field_0,
126867                    visitor,
126868                    &mut *__ast_path,
126869                );
126870                JSXElementName::JSXMemberExpr { 0: _field_0 }
126871            }
126872            JSXElementName::JSXNamespacedName { 0: _field_0 } => {
126873                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXElementName(
126874                    self::fields::JSXElementNameField::JsxnamespacedName,
126875                ));
126876                let _field_0 = <JSXNamespacedName as FoldWithAstPath<V>>::fold_with_ast_path(
126877                    _field_0,
126878                    visitor,
126879                    &mut *__ast_path,
126880                );
126881                JSXElementName::JSXNamespacedName { 0: _field_0 }
126882            }
126883        }
126884    }
126885}
126886#[cfg(any(docsrs, feature = "path"))]
126887#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126888impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXEmptyExpr {
126889    #[doc = "Calls [FoldAstPath`::fold_jsx_empty_expr`] with `self`."]
126890    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126891        <V as FoldAstPath>::fold_jsx_empty_expr(visitor, self, __ast_path)
126892    }
126893
126894    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126895        match self {
126896            JSXEmptyExpr { span } => {
126897                let span = {
126898                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXEmptyExpr(
126899                        self::fields::JSXEmptyExprField::Span,
126900                    ));
126901                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126902                        span,
126903                        visitor,
126904                        &mut *__ast_path,
126905                    )
126906                };
126907                JSXEmptyExpr { span }
126908            }
126909        }
126910    }
126911}
126912#[cfg(any(docsrs, feature = "path"))]
126913#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126914impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXExpr {
126915    #[doc = "Calls [FoldAstPath`::fold_jsx_expr`] with `self`."]
126916    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126917        <V as FoldAstPath>::fold_jsx_expr(visitor, self, __ast_path)
126918    }
126919
126920    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126921        match self {
126922            JSXExpr::JSXEmptyExpr { 0: _field_0 } => {
126923                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExpr(
126924                    self::fields::JSXExprField::JsxemptyExpr,
126925                ));
126926                let _field_0 = <JSXEmptyExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126927                    _field_0,
126928                    visitor,
126929                    &mut *__ast_path,
126930                );
126931                JSXExpr::JSXEmptyExpr { 0: _field_0 }
126932            }
126933            JSXExpr::Expr { 0: _field_0 } => {
126934                let mut __ast_path =
126935                    __ast_path.with_guard(AstParentKind::JSXExpr(self::fields::JSXExprField::Expr));
126936                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
126937                    _field_0,
126938                    visitor,
126939                    &mut *__ast_path,
126940                );
126941                JSXExpr::Expr { 0: _field_0 }
126942            }
126943        }
126944    }
126945}
126946#[cfg(any(docsrs, feature = "path"))]
126947#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126948impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXExprContainer {
126949    #[doc = "Calls [FoldAstPath`::fold_jsx_expr_container`] with `self`."]
126950    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126951        <V as FoldAstPath>::fold_jsx_expr_container(visitor, self, __ast_path)
126952    }
126953
126954    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126955        match self {
126956            JSXExprContainer { span, expr } => {
126957                let span = {
126958                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
126959                        self::fields::JSXExprContainerField::Span,
126960                    ));
126961                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
126962                        span,
126963                        visitor,
126964                        &mut *__ast_path,
126965                    )
126966                };
126967                let expr = {
126968                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXExprContainer(
126969                        self::fields::JSXExprContainerField::Expr,
126970                    ));
126971                    <JSXExpr as FoldWithAstPath<V>>::fold_with_ast_path(
126972                        expr,
126973                        visitor,
126974                        &mut *__ast_path,
126975                    )
126976                };
126977                JSXExprContainer { span, expr }
126978            }
126979        }
126980    }
126981}
126982#[cfg(any(docsrs, feature = "path"))]
126983#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
126984impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXFragment {
126985    #[doc = "Calls [FoldAstPath`::fold_jsx_fragment`] with `self`."]
126986    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126987        <V as FoldAstPath>::fold_jsx_fragment(visitor, self, __ast_path)
126988    }
126989
126990    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
126991        match self {
126992            JSXFragment {
126993                span,
126994                opening,
126995                children,
126996                closing,
126997            } => {
126998                let span = {
126999                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127000                        self::fields::JSXFragmentField::Span,
127001                    ));
127002                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127003                        span,
127004                        visitor,
127005                        &mut *__ast_path,
127006                    )
127007                };
127008                let opening = {
127009                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127010                        self::fields::JSXFragmentField::Opening,
127011                    ));
127012                    <JSXOpeningFragment as FoldWithAstPath<V>>::fold_with_ast_path(
127013                        opening,
127014                        visitor,
127015                        &mut *__ast_path,
127016                    )
127017                };
127018                let children = {
127019                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127020                        self::fields::JSXFragmentField::Children(usize::MAX),
127021                    ));
127022                    <Vec<JSXElementChild> as FoldWithAstPath<V>>::fold_with_ast_path(
127023                        children,
127024                        visitor,
127025                        &mut *__ast_path,
127026                    )
127027                };
127028                let closing = {
127029                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXFragment(
127030                        self::fields::JSXFragmentField::Closing,
127031                    ));
127032                    <JSXClosingFragment as FoldWithAstPath<V>>::fold_with_ast_path(
127033                        closing,
127034                        visitor,
127035                        &mut *__ast_path,
127036                    )
127037                };
127038                JSXFragment {
127039                    span,
127040                    opening,
127041                    children,
127042                    closing,
127043                }
127044            }
127045        }
127046    }
127047}
127048#[cfg(any(docsrs, feature = "path"))]
127049#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127050impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXMemberExpr {
127051    #[doc = "Calls [FoldAstPath`::fold_jsx_member_expr`] with `self`."]
127052    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127053        <V as FoldAstPath>::fold_jsx_member_expr(visitor, self, __ast_path)
127054    }
127055
127056    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127057        match self {
127058            JSXMemberExpr { span, obj, prop } => {
127059                let span = {
127060                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
127061                        self::fields::JSXMemberExprField::Span,
127062                    ));
127063                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127064                        span,
127065                        visitor,
127066                        &mut *__ast_path,
127067                    )
127068                };
127069                let obj = {
127070                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
127071                        self::fields::JSXMemberExprField::Obj,
127072                    ));
127073                    <JSXObject as FoldWithAstPath<V>>::fold_with_ast_path(
127074                        obj,
127075                        visitor,
127076                        &mut *__ast_path,
127077                    )
127078                };
127079                let prop = {
127080                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXMemberExpr(
127081                        self::fields::JSXMemberExprField::Prop,
127082                    ));
127083                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127084                        prop,
127085                        visitor,
127086                        &mut *__ast_path,
127087                    )
127088                };
127089                JSXMemberExpr { span, obj, prop }
127090            }
127091        }
127092    }
127093}
127094#[cfg(any(docsrs, feature = "path"))]
127095#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127096impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXNamespacedName {
127097    #[doc = "Calls [FoldAstPath`::fold_jsx_namespaced_name`] with `self`."]
127098    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127099        <V as FoldAstPath>::fold_jsx_namespaced_name(visitor, self, __ast_path)
127100    }
127101
127102    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127103        match self {
127104            JSXNamespacedName { span, ns, name } => {
127105                let span = {
127106                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
127107                        self::fields::JSXNamespacedNameField::Span,
127108                    ));
127109                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127110                        span,
127111                        visitor,
127112                        &mut *__ast_path,
127113                    )
127114                };
127115                let ns = {
127116                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
127117                        self::fields::JSXNamespacedNameField::Ns,
127118                    ));
127119                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127120                        ns,
127121                        visitor,
127122                        &mut *__ast_path,
127123                    )
127124                };
127125                let name = {
127126                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXNamespacedName(
127127                        self::fields::JSXNamespacedNameField::Name,
127128                    ));
127129                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127130                        name,
127131                        visitor,
127132                        &mut *__ast_path,
127133                    )
127134                };
127135                JSXNamespacedName { span, ns, name }
127136            }
127137        }
127138    }
127139}
127140#[cfg(any(docsrs, feature = "path"))]
127141#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127142impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXObject {
127143    #[doc = "Calls [FoldAstPath`::fold_jsx_object`] with `self`."]
127144    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127145        <V as FoldAstPath>::fold_jsx_object(visitor, self, __ast_path)
127146    }
127147
127148    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127149        match self {
127150            JSXObject::JSXMemberExpr { 0: _field_0 } => {
127151                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
127152                    self::fields::JSXObjectField::JsxmemberExpr,
127153                ));
127154                let _field_0 = <Box<JSXMemberExpr> as FoldWithAstPath<V>>::fold_with_ast_path(
127155                    _field_0,
127156                    visitor,
127157                    &mut *__ast_path,
127158                );
127159                JSXObject::JSXMemberExpr { 0: _field_0 }
127160            }
127161            JSXObject::Ident { 0: _field_0 } => {
127162                let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXObject(
127163                    self::fields::JSXObjectField::Ident,
127164                ));
127165                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127166                    _field_0,
127167                    visitor,
127168                    &mut *__ast_path,
127169                );
127170                JSXObject::Ident { 0: _field_0 }
127171            }
127172        }
127173    }
127174}
127175#[cfg(any(docsrs, feature = "path"))]
127176#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127177impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXOpeningElement {
127178    #[doc = "Calls [FoldAstPath`::fold_jsx_opening_element`] with `self`."]
127179    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127180        <V as FoldAstPath>::fold_jsx_opening_element(visitor, self, __ast_path)
127181    }
127182
127183    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127184        match self {
127185            JSXOpeningElement {
127186                name,
127187                span,
127188                attrs,
127189                self_closing,
127190                type_args,
127191            } => {
127192                let name = {
127193                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
127194                        self::fields::JSXOpeningElementField::Name,
127195                    ));
127196                    <JSXElementName as FoldWithAstPath<V>>::fold_with_ast_path(
127197                        name,
127198                        visitor,
127199                        &mut *__ast_path,
127200                    )
127201                };
127202                let span = {
127203                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
127204                        self::fields::JSXOpeningElementField::Span,
127205                    ));
127206                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127207                        span,
127208                        visitor,
127209                        &mut *__ast_path,
127210                    )
127211                };
127212                let attrs = {
127213                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
127214                        self::fields::JSXOpeningElementField::Attrs(usize::MAX),
127215                    ));
127216                    <Vec<JSXAttrOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
127217                        attrs,
127218                        visitor,
127219                        &mut *__ast_path,
127220                    )
127221                };
127222                let type_args = {
127223                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningElement(
127224                        self::fields::JSXOpeningElementField::TypeArgs,
127225                    ));
127226                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
127227                };
127228                JSXOpeningElement {
127229                    name,
127230                    span,
127231                    attrs,
127232                    self_closing,
127233                    type_args,
127234                }
127235            }
127236        }
127237    }
127238}
127239#[cfg(any(docsrs, feature = "path"))]
127240#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127241impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXOpeningFragment {
127242    #[doc = "Calls [FoldAstPath`::fold_jsx_opening_fragment`] with `self`."]
127243    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127244        <V as FoldAstPath>::fold_jsx_opening_fragment(visitor, self, __ast_path)
127245    }
127246
127247    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127248        match self {
127249            JSXOpeningFragment { span } => {
127250                let span = {
127251                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXOpeningFragment(
127252                        self::fields::JSXOpeningFragmentField::Span,
127253                    ));
127254                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127255                        span,
127256                        visitor,
127257                        &mut *__ast_path,
127258                    )
127259                };
127260                JSXOpeningFragment { span }
127261            }
127262        }
127263    }
127264}
127265#[cfg(any(docsrs, feature = "path"))]
127266#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127267impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXSpreadChild {
127268    #[doc = "Calls [FoldAstPath`::fold_jsx_spread_child`] with `self`."]
127269    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127270        <V as FoldAstPath>::fold_jsx_spread_child(visitor, self, __ast_path)
127271    }
127272
127273    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127274        match self {
127275            JSXSpreadChild { span, expr } => {
127276                let span = {
127277                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
127278                        self::fields::JSXSpreadChildField::Span,
127279                    ));
127280                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127281                        span,
127282                        visitor,
127283                        &mut *__ast_path,
127284                    )
127285                };
127286                let expr = {
127287                    let mut __ast_path = __ast_path.with_guard(AstParentKind::JSXSpreadChild(
127288                        self::fields::JSXSpreadChildField::Expr,
127289                    ));
127290                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
127291                        expr,
127292                        visitor,
127293                        &mut *__ast_path,
127294                    )
127295                };
127296                JSXSpreadChild { span, expr }
127297            }
127298        }
127299    }
127300}
127301#[cfg(any(docsrs, feature = "path"))]
127302#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127303impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for JSXText {
127304    #[doc = "Calls [FoldAstPath`::fold_jsx_text`] with `self`."]
127305    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127306        <V as FoldAstPath>::fold_jsx_text(visitor, self, __ast_path)
127307    }
127308
127309    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127310        match self {
127311            JSXText { span, value, raw } => {
127312                let span = {
127313                    let mut __ast_path = __ast_path
127314                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Span));
127315                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127316                        span,
127317                        visitor,
127318                        &mut *__ast_path,
127319                    )
127320                };
127321                let value = {
127322                    let mut __ast_path = __ast_path
127323                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Value));
127324                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
127325                        value,
127326                        visitor,
127327                        &mut *__ast_path,
127328                    )
127329                };
127330                let raw = {
127331                    let mut __ast_path = __ast_path
127332                        .with_guard(AstParentKind::JSXText(self::fields::JSXTextField::Raw));
127333                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
127334                        raw,
127335                        visitor,
127336                        &mut *__ast_path,
127337                    )
127338                };
127339                JSXText { span, value, raw }
127340            }
127341        }
127342    }
127343}
127344#[cfg(any(docsrs, feature = "path"))]
127345#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127346impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Key {
127347    #[doc = "Calls [FoldAstPath`::fold_key`] with `self`."]
127348    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127349        <V as FoldAstPath>::fold_key(visitor, self, __ast_path)
127350    }
127351
127352    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127353        match self {
127354            Key::Private { 0: _field_0 } => {
127355                let mut __ast_path =
127356                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Private));
127357                let _field_0 = <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
127358                    _field_0,
127359                    visitor,
127360                    &mut *__ast_path,
127361                );
127362                Key::Private { 0: _field_0 }
127363            }
127364            Key::Public { 0: _field_0 } => {
127365                let mut __ast_path =
127366                    __ast_path.with_guard(AstParentKind::Key(self::fields::KeyField::Public));
127367                let _field_0 = <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
127368                    _field_0,
127369                    visitor,
127370                    &mut *__ast_path,
127371                );
127372                Key::Public { 0: _field_0 }
127373            }
127374        }
127375    }
127376}
127377#[cfg(any(docsrs, feature = "path"))]
127378#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127379impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for KeyValuePatProp {
127380    #[doc = "Calls [FoldAstPath`::fold_key_value_pat_prop`] with `self`."]
127381    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127382        <V as FoldAstPath>::fold_key_value_pat_prop(visitor, self, __ast_path)
127383    }
127384
127385    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127386        match self {
127387            KeyValuePatProp { key, value } => {
127388                let key = {
127389                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
127390                        self::fields::KeyValuePatPropField::Key,
127391                    ));
127392                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
127393                        key,
127394                        visitor,
127395                        &mut *__ast_path,
127396                    )
127397                };
127398                let value = {
127399                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValuePatProp(
127400                        self::fields::KeyValuePatPropField::Value,
127401                    ));
127402                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
127403                        value,
127404                        visitor,
127405                        &mut *__ast_path,
127406                    )
127407                };
127408                KeyValuePatProp { key, value }
127409            }
127410        }
127411    }
127412}
127413#[cfg(any(docsrs, feature = "path"))]
127414#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127415impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for KeyValueProp {
127416    #[doc = "Calls [FoldAstPath`::fold_key_value_prop`] with `self`."]
127417    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127418        <V as FoldAstPath>::fold_key_value_prop(visitor, self, __ast_path)
127419    }
127420
127421    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127422        match self {
127423            KeyValueProp { key, value } => {
127424                let key = {
127425                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
127426                        self::fields::KeyValuePropField::Key,
127427                    ));
127428                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
127429                        key,
127430                        visitor,
127431                        &mut *__ast_path,
127432                    )
127433                };
127434                let value = {
127435                    let mut __ast_path = __ast_path.with_guard(AstParentKind::KeyValueProp(
127436                        self::fields::KeyValuePropField::Value,
127437                    ));
127438                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
127439                        value,
127440                        visitor,
127441                        &mut *__ast_path,
127442                    )
127443                };
127444                KeyValueProp { key, value }
127445            }
127446        }
127447    }
127448}
127449#[cfg(any(docsrs, feature = "path"))]
127450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127451impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for LabeledStmt {
127452    #[doc = "Calls [FoldAstPath`::fold_labeled_stmt`] with `self`."]
127453    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127454        <V as FoldAstPath>::fold_labeled_stmt(visitor, self, __ast_path)
127455    }
127456
127457    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127458        match self {
127459            LabeledStmt { span, label, body } => {
127460                let span = {
127461                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
127462                        self::fields::LabeledStmtField::Span,
127463                    ));
127464                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127465                        span,
127466                        visitor,
127467                        &mut *__ast_path,
127468                    )
127469                };
127470                let label = {
127471                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
127472                        self::fields::LabeledStmtField::Label,
127473                    ));
127474                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127475                        label,
127476                        visitor,
127477                        &mut *__ast_path,
127478                    )
127479                };
127480                let body = {
127481                    let mut __ast_path = __ast_path.with_guard(AstParentKind::LabeledStmt(
127482                        self::fields::LabeledStmtField::Body,
127483                    ));
127484                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
127485                        body,
127486                        visitor,
127487                        &mut *__ast_path,
127488                    )
127489                };
127490                LabeledStmt { span, label, body }
127491            }
127492        }
127493    }
127494}
127495#[cfg(any(docsrs, feature = "path"))]
127496#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127497impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Lit {
127498    #[doc = "Calls [FoldAstPath`::fold_lit`] with `self`."]
127499    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127500        <V as FoldAstPath>::fold_lit(visitor, self, __ast_path)
127501    }
127502
127503    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127504        match self {
127505            Lit::Str { 0: _field_0 } => {
127506                let mut __ast_path =
127507                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Str));
127508                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
127509                    _field_0,
127510                    visitor,
127511                    &mut *__ast_path,
127512                );
127513                Lit::Str { 0: _field_0 }
127514            }
127515            Lit::Bool { 0: _field_0 } => {
127516                let mut __ast_path =
127517                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Bool));
127518                let _field_0 = <Bool as FoldWithAstPath<V>>::fold_with_ast_path(
127519                    _field_0,
127520                    visitor,
127521                    &mut *__ast_path,
127522                );
127523                Lit::Bool { 0: _field_0 }
127524            }
127525            Lit::Null { 0: _field_0 } => {
127526                let mut __ast_path =
127527                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Null));
127528                let _field_0 = <Null as FoldWithAstPath<V>>::fold_with_ast_path(
127529                    _field_0,
127530                    visitor,
127531                    &mut *__ast_path,
127532                );
127533                Lit::Null { 0: _field_0 }
127534            }
127535            Lit::Num { 0: _field_0 } => {
127536                let mut __ast_path =
127537                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Num));
127538                let _field_0 = <Number as FoldWithAstPath<V>>::fold_with_ast_path(
127539                    _field_0,
127540                    visitor,
127541                    &mut *__ast_path,
127542                );
127543                Lit::Num { 0: _field_0 }
127544            }
127545            Lit::BigInt { 0: _field_0 } => {
127546                let mut __ast_path =
127547                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::BigInt));
127548                let _field_0 = <BigInt as FoldWithAstPath<V>>::fold_with_ast_path(
127549                    _field_0,
127550                    visitor,
127551                    &mut *__ast_path,
127552                );
127553                Lit::BigInt { 0: _field_0 }
127554            }
127555            Lit::Regex { 0: _field_0 } => {
127556                let mut __ast_path =
127557                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Regex));
127558                let _field_0 = <Regex as FoldWithAstPath<V>>::fold_with_ast_path(
127559                    _field_0,
127560                    visitor,
127561                    &mut *__ast_path,
127562                );
127563                Lit::Regex { 0: _field_0 }
127564            }
127565            Lit::JSXText { 0: _field_0 } => {
127566                let mut __ast_path =
127567                    __ast_path.with_guard(AstParentKind::Lit(self::fields::LitField::Jsxtext));
127568                let _field_0 = <JSXText as FoldWithAstPath<V>>::fold_with_ast_path(
127569                    _field_0,
127570                    visitor,
127571                    &mut *__ast_path,
127572                );
127573                Lit::JSXText { 0: _field_0 }
127574            }
127575        }
127576    }
127577}
127578#[cfg(any(docsrs, feature = "path"))]
127579#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127580impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MemberExpr {
127581    #[doc = "Calls [FoldAstPath`::fold_member_expr`] with `self`."]
127582    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127583        <V as FoldAstPath>::fold_member_expr(visitor, self, __ast_path)
127584    }
127585
127586    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127587        match self {
127588            MemberExpr { span, obj, prop } => {
127589                let span = {
127590                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
127591                        self::fields::MemberExprField::Span,
127592                    ));
127593                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127594                        span,
127595                        visitor,
127596                        &mut *__ast_path,
127597                    )
127598                };
127599                let obj = {
127600                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
127601                        self::fields::MemberExprField::Obj,
127602                    ));
127603                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
127604                        obj,
127605                        visitor,
127606                        &mut *__ast_path,
127607                    )
127608                };
127609                let prop = {
127610                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberExpr(
127611                        self::fields::MemberExprField::Prop,
127612                    ));
127613                    <MemberProp as FoldWithAstPath<V>>::fold_with_ast_path(
127614                        prop,
127615                        visitor,
127616                        &mut *__ast_path,
127617                    )
127618                };
127619                MemberExpr { span, obj, prop }
127620            }
127621        }
127622    }
127623}
127624#[cfg(any(docsrs, feature = "path"))]
127625#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127626impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MemberProp {
127627    #[doc = "Calls [FoldAstPath`::fold_member_prop`] with `self`."]
127628    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127629        <V as FoldAstPath>::fold_member_prop(visitor, self, __ast_path)
127630    }
127631
127632    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127633        match self {
127634            MemberProp::Ident { 0: _field_0 } => {
127635                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
127636                    self::fields::MemberPropField::Ident,
127637                ));
127638                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
127639                    _field_0,
127640                    visitor,
127641                    &mut *__ast_path,
127642                );
127643                MemberProp::Ident { 0: _field_0 }
127644            }
127645            MemberProp::PrivateName { 0: _field_0 } => {
127646                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
127647                    self::fields::MemberPropField::PrivateName,
127648                ));
127649                let _field_0 = <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
127650                    _field_0,
127651                    visitor,
127652                    &mut *__ast_path,
127653                );
127654                MemberProp::PrivateName { 0: _field_0 }
127655            }
127656            MemberProp::Computed { 0: _field_0 } => {
127657                let mut __ast_path = __ast_path.with_guard(AstParentKind::MemberProp(
127658                    self::fields::MemberPropField::Computed,
127659                ));
127660                let _field_0 = <ComputedPropName as FoldWithAstPath<V>>::fold_with_ast_path(
127661                    _field_0,
127662                    visitor,
127663                    &mut *__ast_path,
127664                );
127665                MemberProp::Computed { 0: _field_0 }
127666            }
127667        }
127668    }
127669}
127670#[cfg(any(docsrs, feature = "path"))]
127671#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127672impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MetaPropExpr {
127673    #[doc = "Calls [FoldAstPath`::fold_meta_prop_expr`] with `self`."]
127674    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127675        <V as FoldAstPath>::fold_meta_prop_expr(visitor, self, __ast_path)
127676    }
127677
127678    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127679        match self {
127680            MetaPropExpr { span, kind } => {
127681                let span = {
127682                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
127683                        self::fields::MetaPropExprField::Span,
127684                    ));
127685                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127686                        span,
127687                        visitor,
127688                        &mut *__ast_path,
127689                    )
127690                };
127691                let kind = {
127692                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MetaPropExpr(
127693                        self::fields::MetaPropExprField::Kind,
127694                    ));
127695                    <MetaPropKind as FoldWithAstPath<V>>::fold_with_ast_path(
127696                        kind,
127697                        visitor,
127698                        &mut *__ast_path,
127699                    )
127700                };
127701                MetaPropExpr { span, kind }
127702            }
127703        }
127704    }
127705}
127706#[cfg(any(docsrs, feature = "path"))]
127707#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127708impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MetaPropKind {
127709    #[doc = "Calls [FoldAstPath`::fold_meta_prop_kind`] with `self`."]
127710    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127711        <V as FoldAstPath>::fold_meta_prop_kind(visitor, self, __ast_path)
127712    }
127713
127714    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127715        match self {
127716            MetaPropKind::NewTarget => MetaPropKind::NewTarget,
127717            MetaPropKind::ImportMeta => MetaPropKind::ImportMeta,
127718        }
127719    }
127720}
127721#[cfg(any(docsrs, feature = "path"))]
127722#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127723impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MethodKind {
127724    #[doc = "Calls [FoldAstPath`::fold_method_kind`] with `self`."]
127725    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127726        <V as FoldAstPath>::fold_method_kind(visitor, self, __ast_path)
127727    }
127728
127729    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127730        match self {
127731            MethodKind::Method => MethodKind::Method,
127732            MethodKind::Getter => MethodKind::Getter,
127733            MethodKind::Setter => MethodKind::Setter,
127734        }
127735    }
127736}
127737#[cfg(any(docsrs, feature = "path"))]
127738#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127739impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for MethodProp {
127740    #[doc = "Calls [FoldAstPath`::fold_method_prop`] with `self`."]
127741    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127742        <V as FoldAstPath>::fold_method_prop(visitor, self, __ast_path)
127743    }
127744
127745    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127746        match self {
127747            MethodProp { key, function } => {
127748                let key = {
127749                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
127750                        self::fields::MethodPropField::Key,
127751                    ));
127752                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
127753                        key,
127754                        visitor,
127755                        &mut *__ast_path,
127756                    )
127757                };
127758                let function = {
127759                    let mut __ast_path = __ast_path.with_guard(AstParentKind::MethodProp(
127760                        self::fields::MethodPropField::Function,
127761                    ));
127762                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
127763                        function,
127764                        visitor,
127765                        &mut *__ast_path,
127766                    )
127767                };
127768                MethodProp { key, function }
127769            }
127770        }
127771    }
127772}
127773#[cfg(any(docsrs, feature = "path"))]
127774#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127775impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Module {
127776    #[doc = "Calls [FoldAstPath`::fold_module`] with `self`."]
127777    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127778        <V as FoldAstPath>::fold_module(visitor, self, __ast_path)
127779    }
127780
127781    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127782        match self {
127783            Module {
127784                span,
127785                body,
127786                shebang,
127787            } => {
127788                let span = {
127789                    let mut __ast_path = __ast_path
127790                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Span));
127791                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
127792                        span,
127793                        visitor,
127794                        &mut *__ast_path,
127795                    )
127796                };
127797                let body = {
127798                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Module(
127799                        self::fields::ModuleField::Body(usize::MAX),
127800                    ));
127801                    <Vec<ModuleItem> as FoldWithAstPath<V>>::fold_with_ast_path(
127802                        body,
127803                        visitor,
127804                        &mut *__ast_path,
127805                    )
127806                };
127807                let shebang = {
127808                    let mut __ast_path = __ast_path
127809                        .with_guard(AstParentKind::Module(self::fields::ModuleField::Shebang));
127810                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
127811                        shebang,
127812                        visitor,
127813                        &mut *__ast_path,
127814                    )
127815                };
127816                Module {
127817                    span,
127818                    body,
127819                    shebang,
127820                }
127821            }
127822        }
127823    }
127824}
127825#[cfg(any(docsrs, feature = "path"))]
127826#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127827impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ModuleDecl {
127828    #[doc = "Calls [FoldAstPath`::fold_module_decl`] with `self`."]
127829    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127830        <V as FoldAstPath>::fold_module_decl(visitor, self, __ast_path)
127831    }
127832
127833    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127834        match self {
127835            ModuleDecl::Import { 0: _field_0 } => {
127836                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127837                    self::fields::ModuleDeclField::Import,
127838                ));
127839                let _field_0 = <ImportDecl as FoldWithAstPath<V>>::fold_with_ast_path(
127840                    _field_0,
127841                    visitor,
127842                    &mut *__ast_path,
127843                );
127844                ModuleDecl::Import { 0: _field_0 }
127845            }
127846            ModuleDecl::ExportDecl { 0: _field_0 } => {
127847                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127848                    self::fields::ModuleDeclField::ExportDecl,
127849                ));
127850                let _field_0 = <ExportDecl as FoldWithAstPath<V>>::fold_with_ast_path(
127851                    _field_0,
127852                    visitor,
127853                    &mut *__ast_path,
127854                );
127855                ModuleDecl::ExportDecl { 0: _field_0 }
127856            }
127857            ModuleDecl::ExportNamed { 0: _field_0 } => {
127858                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127859                    self::fields::ModuleDeclField::ExportNamed,
127860                ));
127861                let _field_0 = <NamedExport as FoldWithAstPath<V>>::fold_with_ast_path(
127862                    _field_0,
127863                    visitor,
127864                    &mut *__ast_path,
127865                );
127866                ModuleDecl::ExportNamed { 0: _field_0 }
127867            }
127868            ModuleDecl::ExportDefaultDecl { 0: _field_0 } => {
127869                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127870                    self::fields::ModuleDeclField::ExportDefaultDecl,
127871                ));
127872                let _field_0 = <ExportDefaultDecl as FoldWithAstPath<V>>::fold_with_ast_path(
127873                    _field_0,
127874                    visitor,
127875                    &mut *__ast_path,
127876                );
127877                ModuleDecl::ExportDefaultDecl { 0: _field_0 }
127878            }
127879            ModuleDecl::ExportDefaultExpr { 0: _field_0 } => {
127880                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127881                    self::fields::ModuleDeclField::ExportDefaultExpr,
127882                ));
127883                let _field_0 = <ExportDefaultExpr as FoldWithAstPath<V>>::fold_with_ast_path(
127884                    _field_0,
127885                    visitor,
127886                    &mut *__ast_path,
127887                );
127888                ModuleDecl::ExportDefaultExpr { 0: _field_0 }
127889            }
127890            ModuleDecl::ExportAll { 0: _field_0 } => {
127891                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127892                    self::fields::ModuleDeclField::ExportAll,
127893                ));
127894                let _field_0 = <ExportAll as FoldWithAstPath<V>>::fold_with_ast_path(
127895                    _field_0,
127896                    visitor,
127897                    &mut *__ast_path,
127898                );
127899                ModuleDecl::ExportAll { 0: _field_0 }
127900            }
127901            ModuleDecl::TsImportEquals { 0: _field_0 } => {
127902                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127903                    self::fields::ModuleDeclField::TsImportEquals,
127904                ));
127905                let _field_0 = <Box<TsImportEqualsDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
127906                    _field_0,
127907                    visitor,
127908                    &mut *__ast_path,
127909                );
127910                ModuleDecl::TsImportEquals { 0: _field_0 }
127911            }
127912            ModuleDecl::TsExportAssignment { 0: _field_0 } => {
127913                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127914                    self::fields::ModuleDeclField::TsExportAssignment,
127915                ));
127916                let _field_0 = <TsExportAssignment as FoldWithAstPath<V>>::fold_with_ast_path(
127917                    _field_0,
127918                    visitor,
127919                    &mut *__ast_path,
127920                );
127921                ModuleDecl::TsExportAssignment { 0: _field_0 }
127922            }
127923            ModuleDecl::TsNamespaceExport { 0: _field_0 } => {
127924                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleDecl(
127925                    self::fields::ModuleDeclField::TsNamespaceExport,
127926                ));
127927                let _field_0 = <TsNamespaceExportDecl as FoldWithAstPath<V>>::fold_with_ast_path(
127928                    _field_0,
127929                    visitor,
127930                    &mut *__ast_path,
127931                );
127932                ModuleDecl::TsNamespaceExport { 0: _field_0 }
127933            }
127934        }
127935    }
127936}
127937#[cfg(any(docsrs, feature = "path"))]
127938#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127939impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ModuleExportName {
127940    #[doc = "Calls [FoldAstPath`::fold_module_export_name`] with `self`."]
127941    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127942        <V as FoldAstPath>::fold_module_export_name(visitor, self, __ast_path)
127943    }
127944
127945    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127946        match self {
127947            ModuleExportName::Ident { 0: _field_0 } => {
127948                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
127949                    self::fields::ModuleExportNameField::Ident,
127950                ));
127951                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
127952                    _field_0,
127953                    visitor,
127954                    &mut *__ast_path,
127955                );
127956                ModuleExportName::Ident { 0: _field_0 }
127957            }
127958            ModuleExportName::Str { 0: _field_0 } => {
127959                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleExportName(
127960                    self::fields::ModuleExportNameField::Str,
127961                ));
127962                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
127963                    _field_0,
127964                    visitor,
127965                    &mut *__ast_path,
127966                );
127967                ModuleExportName::Str { 0: _field_0 }
127968            }
127969        }
127970    }
127971}
127972#[cfg(any(docsrs, feature = "path"))]
127973#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
127974impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ModuleItem {
127975    #[doc = "Calls [FoldAstPath`::fold_module_item`] with `self`."]
127976    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127977        <V as FoldAstPath>::fold_module_item(visitor, self, __ast_path)
127978    }
127979
127980    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
127981        match self {
127982            ModuleItem::ModuleDecl { 0: _field_0 } => {
127983                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
127984                    self::fields::ModuleItemField::ModuleDecl,
127985                ));
127986                let _field_0 = <ModuleDecl as FoldWithAstPath<V>>::fold_with_ast_path(
127987                    _field_0,
127988                    visitor,
127989                    &mut *__ast_path,
127990                );
127991                ModuleItem::ModuleDecl { 0: _field_0 }
127992            }
127993            ModuleItem::Stmt { 0: _field_0 } => {
127994                let mut __ast_path = __ast_path.with_guard(AstParentKind::ModuleItem(
127995                    self::fields::ModuleItemField::Stmt,
127996                ));
127997                let _field_0 = <Stmt as FoldWithAstPath<V>>::fold_with_ast_path(
127998                    _field_0,
127999                    visitor,
128000                    &mut *__ast_path,
128001                );
128002                ModuleItem::Stmt { 0: _field_0 }
128003            }
128004        }
128005    }
128006}
128007#[cfg(any(docsrs, feature = "path"))]
128008#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128009impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for NamedExport {
128010    #[doc = "Calls [FoldAstPath`::fold_named_export`] with `self`."]
128011    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128012        <V as FoldAstPath>::fold_named_export(visitor, self, __ast_path)
128013    }
128014
128015    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128016        match self {
128017            NamedExport {
128018                span,
128019                specifiers,
128020                src,
128021                type_only,
128022                with,
128023            } => {
128024                let span = {
128025                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128026                        self::fields::NamedExportField::Span,
128027                    ));
128028                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128029                        span,
128030                        visitor,
128031                        &mut *__ast_path,
128032                    )
128033                };
128034                let specifiers = {
128035                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128036                        self::fields::NamedExportField::Specifiers(usize::MAX),
128037                    ));
128038                    <Vec<ExportSpecifier> as FoldWithAstPath<V>>::fold_with_ast_path(
128039                        specifiers,
128040                        visitor,
128041                        &mut *__ast_path,
128042                    )
128043                };
128044                let src = {
128045                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128046                        self::fields::NamedExportField::Src,
128047                    ));
128048                    <Option<Box<Str>> as FoldWithAstPath<V>>::fold_with_ast_path(
128049                        src,
128050                        visitor,
128051                        &mut *__ast_path,
128052                    )
128053                };
128054                let with = {
128055                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NamedExport(
128056                        self::fields::NamedExportField::With,
128057                    ));
128058                    <Option<Box<ObjectLit>> as FoldWithAstPath<V>>::fold_with_ast_path(
128059                        with,
128060                        visitor,
128061                        &mut *__ast_path,
128062                    )
128063                };
128064                NamedExport {
128065                    span,
128066                    specifiers,
128067                    src,
128068                    type_only,
128069                    with,
128070                }
128071            }
128072        }
128073    }
128074}
128075#[cfg(any(docsrs, feature = "path"))]
128076#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128077impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for NewExpr {
128078    #[doc = "Calls [FoldAstPath`::fold_new_expr`] with `self`."]
128079    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128080        <V as FoldAstPath>::fold_new_expr(visitor, self, __ast_path)
128081    }
128082
128083    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128084        match self {
128085            NewExpr {
128086                span,
128087                ctxt,
128088                callee,
128089                args,
128090                type_args,
128091            } => {
128092                let span = {
128093                    let mut __ast_path = __ast_path
128094                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Span));
128095                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128096                        span,
128097                        visitor,
128098                        &mut *__ast_path,
128099                    )
128100                };
128101                let ctxt = {
128102                    let mut __ast_path = __ast_path
128103                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Ctxt));
128104                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
128105                        ctxt,
128106                        visitor,
128107                        &mut *__ast_path,
128108                    )
128109                };
128110                let callee = {
128111                    let mut __ast_path = __ast_path
128112                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::Callee));
128113                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128114                        callee,
128115                        visitor,
128116                        &mut *__ast_path,
128117                    )
128118                };
128119                let args = {
128120                    let mut __ast_path = __ast_path.with_guard(AstParentKind::NewExpr(
128121                        self::fields::NewExprField::Args(usize::MAX),
128122                    ));
128123                    <Option<Vec<ExprOrSpread>> as FoldWithAstPath<V>>::fold_with_ast_path(
128124                        args,
128125                        visitor,
128126                        &mut *__ast_path,
128127                    )
128128                };
128129                let type_args = {
128130                    let mut __ast_path = __ast_path
128131                        .with_guard(AstParentKind::NewExpr(self::fields::NewExprField::TypeArgs));
128132                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
128133                };
128134                NewExpr {
128135                    span,
128136                    ctxt,
128137                    callee,
128138                    args,
128139                    type_args,
128140                }
128141            }
128142        }
128143    }
128144}
128145#[cfg(any(docsrs, feature = "path"))]
128146#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128147impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Null {
128148    #[doc = "Calls [FoldAstPath`::fold_null`] with `self`."]
128149    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128150        <V as FoldAstPath>::fold_null(visitor, self, __ast_path)
128151    }
128152
128153    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128154        match self {
128155            Null { span } => {
128156                let span = {
128157                    let mut __ast_path =
128158                        __ast_path.with_guard(AstParentKind::Null(self::fields::NullField::Span));
128159                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128160                        span,
128161                        visitor,
128162                        &mut *__ast_path,
128163                    )
128164                };
128165                Null { span }
128166            }
128167        }
128168    }
128169}
128170#[cfg(any(docsrs, feature = "path"))]
128171#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128172impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Number {
128173    #[doc = "Calls [FoldAstPath`::fold_number`] with `self`."]
128174    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128175        <V as FoldAstPath>::fold_number(visitor, self, __ast_path)
128176    }
128177
128178    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128179        match self {
128180            Number { span, value, raw } => {
128181                let span = {
128182                    let mut __ast_path = __ast_path
128183                        .with_guard(AstParentKind::Number(self::fields::NumberField::Span));
128184                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128185                        span,
128186                        visitor,
128187                        &mut *__ast_path,
128188                    )
128189                };
128190                let raw = {
128191                    let mut __ast_path = __ast_path
128192                        .with_guard(AstParentKind::Number(self::fields::NumberField::Raw));
128193                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
128194                        raw,
128195                        visitor,
128196                        &mut *__ast_path,
128197                    )
128198                };
128199                Number { span, value, raw }
128200            }
128201        }
128202    }
128203}
128204#[cfg(any(docsrs, feature = "path"))]
128205#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128206impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ObjectLit {
128207    #[doc = "Calls [FoldAstPath`::fold_object_lit`] with `self`."]
128208    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128209        <V as FoldAstPath>::fold_object_lit(visitor, self, __ast_path)
128210    }
128211
128212    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128213        match self {
128214            ObjectLit { span, props } => {
128215                let span = {
128216                    let mut __ast_path = __ast_path
128217                        .with_guard(AstParentKind::ObjectLit(self::fields::ObjectLitField::Span));
128218                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128219                        span,
128220                        visitor,
128221                        &mut *__ast_path,
128222                    )
128223                };
128224                let props = {
128225                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectLit(
128226                        self::fields::ObjectLitField::Props(usize::MAX),
128227                    ));
128228                    <Vec<PropOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
128229                        props,
128230                        visitor,
128231                        &mut *__ast_path,
128232                    )
128233                };
128234                ObjectLit { span, props }
128235            }
128236        }
128237    }
128238}
128239#[cfg(any(docsrs, feature = "path"))]
128240#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128241impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ObjectPat {
128242    #[doc = "Calls [FoldAstPath`::fold_object_pat`] with `self`."]
128243    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128244        <V as FoldAstPath>::fold_object_pat(visitor, self, __ast_path)
128245    }
128246
128247    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128248        match self {
128249            ObjectPat {
128250                span,
128251                props,
128252                optional,
128253                type_ann,
128254            } => {
128255                let span = {
128256                    let mut __ast_path = __ast_path
128257                        .with_guard(AstParentKind::ObjectPat(self::fields::ObjectPatField::Span));
128258                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128259                        span,
128260                        visitor,
128261                        &mut *__ast_path,
128262                    )
128263                };
128264                let props = {
128265                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
128266                        self::fields::ObjectPatField::Props(usize::MAX),
128267                    ));
128268                    <Vec<ObjectPatProp> as FoldWithAstPath<V>>::fold_with_ast_path(
128269                        props,
128270                        visitor,
128271                        &mut *__ast_path,
128272                    )
128273                };
128274                let type_ann = {
128275                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPat(
128276                        self::fields::ObjectPatField::TypeAnn,
128277                    ));
128278                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
128279                        type_ann,
128280                        visitor,
128281                        &mut *__ast_path,
128282                    )
128283                };
128284                ObjectPat {
128285                    span,
128286                    props,
128287                    optional,
128288                    type_ann,
128289                }
128290            }
128291        }
128292    }
128293}
128294#[cfg(any(docsrs, feature = "path"))]
128295#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128296impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ObjectPatProp {
128297    #[doc = "Calls [FoldAstPath`::fold_object_pat_prop`] with `self`."]
128298    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128299        <V as FoldAstPath>::fold_object_pat_prop(visitor, self, __ast_path)
128300    }
128301
128302    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128303        match self {
128304            ObjectPatProp::KeyValue { 0: _field_0 } => {
128305                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
128306                    self::fields::ObjectPatPropField::KeyValue,
128307                ));
128308                let _field_0 = <KeyValuePatProp as FoldWithAstPath<V>>::fold_with_ast_path(
128309                    _field_0,
128310                    visitor,
128311                    &mut *__ast_path,
128312                );
128313                ObjectPatProp::KeyValue { 0: _field_0 }
128314            }
128315            ObjectPatProp::Assign { 0: _field_0 } => {
128316                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
128317                    self::fields::ObjectPatPropField::Assign,
128318                ));
128319                let _field_0 = <AssignPatProp as FoldWithAstPath<V>>::fold_with_ast_path(
128320                    _field_0,
128321                    visitor,
128322                    &mut *__ast_path,
128323                );
128324                ObjectPatProp::Assign { 0: _field_0 }
128325            }
128326            ObjectPatProp::Rest { 0: _field_0 } => {
128327                let mut __ast_path = __ast_path.with_guard(AstParentKind::ObjectPatProp(
128328                    self::fields::ObjectPatPropField::Rest,
128329                ));
128330                let _field_0 = <RestPat as FoldWithAstPath<V>>::fold_with_ast_path(
128331                    _field_0,
128332                    visitor,
128333                    &mut *__ast_path,
128334                );
128335                ObjectPatProp::Rest { 0: _field_0 }
128336            }
128337        }
128338    }
128339}
128340#[cfg(any(docsrs, feature = "path"))]
128341#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128342impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for OptCall {
128343    #[doc = "Calls [FoldAstPath`::fold_opt_call`] with `self`."]
128344    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128345        <V as FoldAstPath>::fold_opt_call(visitor, self, __ast_path)
128346    }
128347
128348    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128349        match self {
128350            OptCall {
128351                span,
128352                ctxt,
128353                callee,
128354                args,
128355                type_args,
128356            } => {
128357                let span = {
128358                    let mut __ast_path = __ast_path
128359                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Span));
128360                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128361                        span,
128362                        visitor,
128363                        &mut *__ast_path,
128364                    )
128365                };
128366                let ctxt = {
128367                    let mut __ast_path = __ast_path
128368                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Ctxt));
128369                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
128370                        ctxt,
128371                        visitor,
128372                        &mut *__ast_path,
128373                    )
128374                };
128375                let callee = {
128376                    let mut __ast_path = __ast_path
128377                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::Callee));
128378                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128379                        callee,
128380                        visitor,
128381                        &mut *__ast_path,
128382                    )
128383                };
128384                let args = {
128385                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptCall(
128386                        self::fields::OptCallField::Args(usize::MAX),
128387                    ));
128388                    <Vec<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
128389                        args,
128390                        visitor,
128391                        &mut *__ast_path,
128392                    )
128393                };
128394                let type_args = {
128395                    let mut __ast_path = __ast_path
128396                        .with_guard(AstParentKind::OptCall(self::fields::OptCallField::TypeArgs));
128397                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
128398                };
128399                OptCall {
128400                    span,
128401                    ctxt,
128402                    callee,
128403                    args,
128404                    type_args,
128405                }
128406            }
128407        }
128408    }
128409}
128410#[cfg(any(docsrs, feature = "path"))]
128411#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128412impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for OptChainBase {
128413    #[doc = "Calls [FoldAstPath`::fold_opt_chain_base`] with `self`."]
128414    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128415        <V as FoldAstPath>::fold_opt_chain_base(visitor, self, __ast_path)
128416    }
128417
128418    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128419        match self {
128420            OptChainBase::Member { 0: _field_0 } => {
128421                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
128422                    self::fields::OptChainBaseField::Member,
128423                ));
128424                let _field_0 = <MemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
128425                    _field_0,
128426                    visitor,
128427                    &mut *__ast_path,
128428                );
128429                OptChainBase::Member { 0: _field_0 }
128430            }
128431            OptChainBase::Call { 0: _field_0 } => {
128432                let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainBase(
128433                    self::fields::OptChainBaseField::Call,
128434                ));
128435                let _field_0 = <OptCall as FoldWithAstPath<V>>::fold_with_ast_path(
128436                    _field_0,
128437                    visitor,
128438                    &mut *__ast_path,
128439                );
128440                OptChainBase::Call { 0: _field_0 }
128441            }
128442        }
128443    }
128444}
128445#[cfg(any(docsrs, feature = "path"))]
128446#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128447impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for OptChainExpr {
128448    #[doc = "Calls [FoldAstPath`::fold_opt_chain_expr`] with `self`."]
128449    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128450        <V as FoldAstPath>::fold_opt_chain_expr(visitor, self, __ast_path)
128451    }
128452
128453    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128454        match self {
128455            OptChainExpr {
128456                span,
128457                optional,
128458                base,
128459            } => {
128460                let span = {
128461                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
128462                        self::fields::OptChainExprField::Span,
128463                    ));
128464                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128465                        span,
128466                        visitor,
128467                        &mut *__ast_path,
128468                    )
128469                };
128470                let base = {
128471                    let mut __ast_path = __ast_path.with_guard(AstParentKind::OptChainExpr(
128472                        self::fields::OptChainExprField::Base,
128473                    ));
128474                    <Box<OptChainBase> as FoldWithAstPath<V>>::fold_with_ast_path(
128475                        base,
128476                        visitor,
128477                        &mut *__ast_path,
128478                    )
128479                };
128480                OptChainExpr {
128481                    span,
128482                    optional,
128483                    base,
128484                }
128485            }
128486        }
128487    }
128488}
128489#[cfg(any(docsrs, feature = "path"))]
128490#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128491impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Param {
128492    #[doc = "Calls [FoldAstPath`::fold_param`] with `self`."]
128493    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128494        <V as FoldAstPath>::fold_param(visitor, self, __ast_path)
128495    }
128496
128497    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128498        match self {
128499            Param {
128500                span,
128501                decorators,
128502                pat,
128503            } => {
128504                let span = {
128505                    let mut __ast_path =
128506                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Span));
128507                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128508                        span,
128509                        visitor,
128510                        &mut *__ast_path,
128511                    )
128512                };
128513                let decorators = {
128514                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Param(
128515                        self::fields::ParamField::Decorators(usize::MAX),
128516                    ));
128517                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
128518                        decorators,
128519                        visitor,
128520                        &mut *__ast_path,
128521                    )
128522                };
128523                let pat = {
128524                    let mut __ast_path =
128525                        __ast_path.with_guard(AstParentKind::Param(self::fields::ParamField::Pat));
128526                    <Pat as FoldWithAstPath<V>>::fold_with_ast_path(pat, visitor, &mut *__ast_path)
128527                };
128528                Param {
128529                    span,
128530                    decorators,
128531                    pat,
128532                }
128533            }
128534        }
128535    }
128536}
128537#[cfg(any(docsrs, feature = "path"))]
128538#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128539impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ParamOrTsParamProp {
128540    #[doc = "Calls [FoldAstPath`::fold_param_or_ts_param_prop`] with `self`."]
128541    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128542        <V as FoldAstPath>::fold_param_or_ts_param_prop(visitor, self, __ast_path)
128543    }
128544
128545    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128546        match self {
128547            ParamOrTsParamProp::TsParamProp { 0: _field_0 } => {
128548                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
128549                    self::fields::ParamOrTsParamPropField::TsParamProp,
128550                ));
128551                let _field_0 = <TsParamProp as FoldWithAstPath<V>>::fold_with_ast_path(
128552                    _field_0,
128553                    visitor,
128554                    &mut *__ast_path,
128555                );
128556                ParamOrTsParamProp::TsParamProp { 0: _field_0 }
128557            }
128558            ParamOrTsParamProp::Param { 0: _field_0 } => {
128559                let mut __ast_path = __ast_path.with_guard(AstParentKind::ParamOrTsParamProp(
128560                    self::fields::ParamOrTsParamPropField::Param,
128561                ));
128562                let _field_0 = <Param as FoldWithAstPath<V>>::fold_with_ast_path(
128563                    _field_0,
128564                    visitor,
128565                    &mut *__ast_path,
128566                );
128567                ParamOrTsParamProp::Param { 0: _field_0 }
128568            }
128569        }
128570    }
128571}
128572#[cfg(any(docsrs, feature = "path"))]
128573#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128574impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ParenExpr {
128575    #[doc = "Calls [FoldAstPath`::fold_paren_expr`] with `self`."]
128576    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128577        <V as FoldAstPath>::fold_paren_expr(visitor, self, __ast_path)
128578    }
128579
128580    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128581        match self {
128582            ParenExpr { span, expr } => {
128583                let span = {
128584                    let mut __ast_path = __ast_path
128585                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Span));
128586                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128587                        span,
128588                        visitor,
128589                        &mut *__ast_path,
128590                    )
128591                };
128592                let expr = {
128593                    let mut __ast_path = __ast_path
128594                        .with_guard(AstParentKind::ParenExpr(self::fields::ParenExprField::Expr));
128595                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128596                        expr,
128597                        visitor,
128598                        &mut *__ast_path,
128599                    )
128600                };
128601                ParenExpr { span, expr }
128602            }
128603        }
128604    }
128605}
128606#[cfg(any(docsrs, feature = "path"))]
128607#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128608impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Pat {
128609    #[doc = "Calls [FoldAstPath`::fold_pat`] with `self`."]
128610    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128611        <V as FoldAstPath>::fold_pat(visitor, self, __ast_path)
128612    }
128613
128614    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128615        match self {
128616            Pat::Ident { 0: _field_0 } => {
128617                let mut __ast_path =
128618                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Ident));
128619                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
128620                    _field_0,
128621                    visitor,
128622                    &mut *__ast_path,
128623                );
128624                Pat::Ident { 0: _field_0 }
128625            }
128626            Pat::Array { 0: _field_0 } => {
128627                let mut __ast_path =
128628                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Array));
128629                let _field_0 = <ArrayPat as FoldWithAstPath<V>>::fold_with_ast_path(
128630                    _field_0,
128631                    visitor,
128632                    &mut *__ast_path,
128633                );
128634                Pat::Array { 0: _field_0 }
128635            }
128636            Pat::Rest { 0: _field_0 } => {
128637                let mut __ast_path =
128638                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Rest));
128639                let _field_0 = <RestPat as FoldWithAstPath<V>>::fold_with_ast_path(
128640                    _field_0,
128641                    visitor,
128642                    &mut *__ast_path,
128643                );
128644                Pat::Rest { 0: _field_0 }
128645            }
128646            Pat::Object { 0: _field_0 } => {
128647                let mut __ast_path =
128648                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Object));
128649                let _field_0 = <ObjectPat as FoldWithAstPath<V>>::fold_with_ast_path(
128650                    _field_0,
128651                    visitor,
128652                    &mut *__ast_path,
128653                );
128654                Pat::Object { 0: _field_0 }
128655            }
128656            Pat::Assign { 0: _field_0 } => {
128657                let mut __ast_path =
128658                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Assign));
128659                let _field_0 = <AssignPat as FoldWithAstPath<V>>::fold_with_ast_path(
128660                    _field_0,
128661                    visitor,
128662                    &mut *__ast_path,
128663                );
128664                Pat::Assign { 0: _field_0 }
128665            }
128666            Pat::Invalid { 0: _field_0 } => {
128667                let mut __ast_path =
128668                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Invalid));
128669                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
128670                    _field_0,
128671                    visitor,
128672                    &mut *__ast_path,
128673                );
128674                Pat::Invalid { 0: _field_0 }
128675            }
128676            Pat::Expr { 0: _field_0 } => {
128677                let mut __ast_path =
128678                    __ast_path.with_guard(AstParentKind::Pat(self::fields::PatField::Expr));
128679                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
128680                    _field_0,
128681                    visitor,
128682                    &mut *__ast_path,
128683                );
128684                Pat::Expr { 0: _field_0 }
128685            }
128686        }
128687    }
128688}
128689#[cfg(any(docsrs, feature = "path"))]
128690#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128691impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PrivateMethod {
128692    #[doc = "Calls [FoldAstPath`::fold_private_method`] with `self`."]
128693    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128694        <V as FoldAstPath>::fold_private_method(visitor, self, __ast_path)
128695    }
128696
128697    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128698        match self {
128699            PrivateMethod {
128700                span,
128701                key,
128702                function,
128703                kind,
128704                is_static,
128705                accessibility,
128706                is_abstract,
128707                is_optional,
128708                is_override,
128709            } => {
128710                let span = {
128711                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
128712                        self::fields::PrivateMethodField::Span,
128713                    ));
128714                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128715                        span,
128716                        visitor,
128717                        &mut *__ast_path,
128718                    )
128719                };
128720                let key = {
128721                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
128722                        self::fields::PrivateMethodField::Key,
128723                    ));
128724                    <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
128725                        key,
128726                        visitor,
128727                        &mut *__ast_path,
128728                    )
128729                };
128730                let function = {
128731                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
128732                        self::fields::PrivateMethodField::Function,
128733                    ));
128734                    <Box<Function> as FoldWithAstPath<V>>::fold_with_ast_path(
128735                        function,
128736                        visitor,
128737                        &mut *__ast_path,
128738                    )
128739                };
128740                let kind = {
128741                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
128742                        self::fields::PrivateMethodField::Kind,
128743                    ));
128744                    <MethodKind as FoldWithAstPath<V>>::fold_with_ast_path(
128745                        kind,
128746                        visitor,
128747                        &mut *__ast_path,
128748                    )
128749                };
128750                let accessibility = {
128751                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateMethod(
128752                        self::fields::PrivateMethodField::Accessibility,
128753                    ));
128754                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
128755                        accessibility,
128756                        visitor,
128757                        &mut *__ast_path,
128758                    )
128759                };
128760                PrivateMethod {
128761                    span,
128762                    key,
128763                    function,
128764                    kind,
128765                    is_static,
128766                    accessibility,
128767                    is_abstract,
128768                    is_optional,
128769                    is_override,
128770                }
128771            }
128772        }
128773    }
128774}
128775#[cfg(any(docsrs, feature = "path"))]
128776#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128777impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PrivateName {
128778    #[doc = "Calls [FoldAstPath`::fold_private_name`] with `self`."]
128779    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128780        <V as FoldAstPath>::fold_private_name(visitor, self, __ast_path)
128781    }
128782
128783    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128784        match self {
128785            PrivateName { span, name } => {
128786                let span = {
128787                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
128788                        self::fields::PrivateNameField::Span,
128789                    ));
128790                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128791                        span,
128792                        visitor,
128793                        &mut *__ast_path,
128794                    )
128795                };
128796                let name = {
128797                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateName(
128798                        self::fields::PrivateNameField::Name,
128799                    ));
128800                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
128801                        name,
128802                        visitor,
128803                        &mut *__ast_path,
128804                    )
128805                };
128806                PrivateName { span, name }
128807            }
128808        }
128809    }
128810}
128811#[cfg(any(docsrs, feature = "path"))]
128812#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128813impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PrivateProp {
128814    #[doc = "Calls [FoldAstPath`::fold_private_prop`] with `self`."]
128815    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128816        <V as FoldAstPath>::fold_private_prop(visitor, self, __ast_path)
128817    }
128818
128819    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128820        match self {
128821            PrivateProp {
128822                span,
128823                ctxt,
128824                key,
128825                value,
128826                type_ann,
128827                is_static,
128828                decorators,
128829                accessibility,
128830                is_optional,
128831                is_override,
128832                readonly,
128833                definite,
128834            } => {
128835                let span = {
128836                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128837                        self::fields::PrivatePropField::Span,
128838                    ));
128839                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
128840                        span,
128841                        visitor,
128842                        &mut *__ast_path,
128843                    )
128844                };
128845                let ctxt = {
128846                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128847                        self::fields::PrivatePropField::Ctxt,
128848                    ));
128849                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
128850                        ctxt,
128851                        visitor,
128852                        &mut *__ast_path,
128853                    )
128854                };
128855                let key = {
128856                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128857                        self::fields::PrivatePropField::Key,
128858                    ));
128859                    <PrivateName as FoldWithAstPath<V>>::fold_with_ast_path(
128860                        key,
128861                        visitor,
128862                        &mut *__ast_path,
128863                    )
128864                };
128865                let value = {
128866                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128867                        self::fields::PrivatePropField::Value,
128868                    ));
128869                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
128870                        value,
128871                        visitor,
128872                        &mut *__ast_path,
128873                    )
128874                };
128875                let type_ann = {
128876                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128877                        self::fields::PrivatePropField::TypeAnn,
128878                    ));
128879                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
128880                        type_ann,
128881                        visitor,
128882                        &mut *__ast_path,
128883                    )
128884                };
128885                let decorators = {
128886                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128887                        self::fields::PrivatePropField::Decorators(usize::MAX),
128888                    ));
128889                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
128890                        decorators,
128891                        visitor,
128892                        &mut *__ast_path,
128893                    )
128894                };
128895                let accessibility = {
128896                    let mut __ast_path = __ast_path.with_guard(AstParentKind::PrivateProp(
128897                        self::fields::PrivatePropField::Accessibility,
128898                    ));
128899                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
128900                        accessibility,
128901                        visitor,
128902                        &mut *__ast_path,
128903                    )
128904                };
128905                PrivateProp {
128906                    span,
128907                    ctxt,
128908                    key,
128909                    value,
128910                    type_ann,
128911                    is_static,
128912                    decorators,
128913                    accessibility,
128914                    is_optional,
128915                    is_override,
128916                    readonly,
128917                    definite,
128918                }
128919            }
128920        }
128921    }
128922}
128923#[cfg(any(docsrs, feature = "path"))]
128924#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128925impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Program {
128926    #[doc = "Calls [FoldAstPath`::fold_program`] with `self`."]
128927    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128928        <V as FoldAstPath>::fold_program(visitor, self, __ast_path)
128929    }
128930
128931    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128932        match self {
128933            Program::Module { 0: _field_0 } => {
128934                let mut __ast_path = __ast_path
128935                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Module));
128936                let _field_0 = <Module as FoldWithAstPath<V>>::fold_with_ast_path(
128937                    _field_0,
128938                    visitor,
128939                    &mut *__ast_path,
128940                );
128941                Program::Module { 0: _field_0 }
128942            }
128943            Program::Script { 0: _field_0 } => {
128944                let mut __ast_path = __ast_path
128945                    .with_guard(AstParentKind::Program(self::fields::ProgramField::Script));
128946                let _field_0 = <Script as FoldWithAstPath<V>>::fold_with_ast_path(
128947                    _field_0,
128948                    visitor,
128949                    &mut *__ast_path,
128950                );
128951                Program::Script { 0: _field_0 }
128952            }
128953        }
128954    }
128955}
128956#[cfg(any(docsrs, feature = "path"))]
128957#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
128958impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Prop {
128959    #[doc = "Calls [FoldAstPath`::fold_prop`] with `self`."]
128960    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128961        <V as FoldAstPath>::fold_prop(visitor, self, __ast_path)
128962    }
128963
128964    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
128965        match self {
128966            Prop::Shorthand { 0: _field_0 } => {
128967                let mut __ast_path =
128968                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Shorthand));
128969                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
128970                    _field_0,
128971                    visitor,
128972                    &mut *__ast_path,
128973                );
128974                Prop::Shorthand { 0: _field_0 }
128975            }
128976            Prop::KeyValue { 0: _field_0 } => {
128977                let mut __ast_path =
128978                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::KeyValue));
128979                let _field_0 = <KeyValueProp as FoldWithAstPath<V>>::fold_with_ast_path(
128980                    _field_0,
128981                    visitor,
128982                    &mut *__ast_path,
128983                );
128984                Prop::KeyValue { 0: _field_0 }
128985            }
128986            Prop::Assign { 0: _field_0 } => {
128987                let mut __ast_path =
128988                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Assign));
128989                let _field_0 = <AssignProp as FoldWithAstPath<V>>::fold_with_ast_path(
128990                    _field_0,
128991                    visitor,
128992                    &mut *__ast_path,
128993                );
128994                Prop::Assign { 0: _field_0 }
128995            }
128996            Prop::Getter { 0: _field_0 } => {
128997                let mut __ast_path =
128998                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Getter));
128999                let _field_0 = <GetterProp as FoldWithAstPath<V>>::fold_with_ast_path(
129000                    _field_0,
129001                    visitor,
129002                    &mut *__ast_path,
129003                );
129004                Prop::Getter { 0: _field_0 }
129005            }
129006            Prop::Setter { 0: _field_0 } => {
129007                let mut __ast_path =
129008                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Setter));
129009                let _field_0 = <SetterProp as FoldWithAstPath<V>>::fold_with_ast_path(
129010                    _field_0,
129011                    visitor,
129012                    &mut *__ast_path,
129013                );
129014                Prop::Setter { 0: _field_0 }
129015            }
129016            Prop::Method { 0: _field_0 } => {
129017                let mut __ast_path =
129018                    __ast_path.with_guard(AstParentKind::Prop(self::fields::PropField::Method));
129019                let _field_0 = <MethodProp as FoldWithAstPath<V>>::fold_with_ast_path(
129020                    _field_0,
129021                    visitor,
129022                    &mut *__ast_path,
129023                );
129024                Prop::Method { 0: _field_0 }
129025            }
129026        }
129027    }
129028}
129029#[cfg(any(docsrs, feature = "path"))]
129030#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129031impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PropName {
129032    #[doc = "Calls [FoldAstPath`::fold_prop_name`] with `self`."]
129033    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129034        <V as FoldAstPath>::fold_prop_name(visitor, self, __ast_path)
129035    }
129036
129037    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129038        match self {
129039            PropName::Ident { 0: _field_0 } => {
129040                let mut __ast_path = __ast_path
129041                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Ident));
129042                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
129043                    _field_0,
129044                    visitor,
129045                    &mut *__ast_path,
129046                );
129047                PropName::Ident { 0: _field_0 }
129048            }
129049            PropName::Str { 0: _field_0 } => {
129050                let mut __ast_path = __ast_path
129051                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Str));
129052                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
129053                    _field_0,
129054                    visitor,
129055                    &mut *__ast_path,
129056                );
129057                PropName::Str { 0: _field_0 }
129058            }
129059            PropName::Num { 0: _field_0 } => {
129060                let mut __ast_path = __ast_path
129061                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::Num));
129062                let _field_0 = <Number as FoldWithAstPath<V>>::fold_with_ast_path(
129063                    _field_0,
129064                    visitor,
129065                    &mut *__ast_path,
129066                );
129067                PropName::Num { 0: _field_0 }
129068            }
129069            PropName::Computed { 0: _field_0 } => {
129070                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropName(
129071                    self::fields::PropNameField::Computed,
129072                ));
129073                let _field_0 = <ComputedPropName as FoldWithAstPath<V>>::fold_with_ast_path(
129074                    _field_0,
129075                    visitor,
129076                    &mut *__ast_path,
129077                );
129078                PropName::Computed { 0: _field_0 }
129079            }
129080            PropName::BigInt { 0: _field_0 } => {
129081                let mut __ast_path = __ast_path
129082                    .with_guard(AstParentKind::PropName(self::fields::PropNameField::BigInt));
129083                let _field_0 = <BigInt as FoldWithAstPath<V>>::fold_with_ast_path(
129084                    _field_0,
129085                    visitor,
129086                    &mut *__ast_path,
129087                );
129088                PropName::BigInt { 0: _field_0 }
129089            }
129090        }
129091    }
129092}
129093#[cfg(any(docsrs, feature = "path"))]
129094#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129095impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for PropOrSpread {
129096    #[doc = "Calls [FoldAstPath`::fold_prop_or_spread`] with `self`."]
129097    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129098        <V as FoldAstPath>::fold_prop_or_spread(visitor, self, __ast_path)
129099    }
129100
129101    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129102        match self {
129103            PropOrSpread::Spread { 0: _field_0 } => {
129104                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
129105                    self::fields::PropOrSpreadField::Spread,
129106                ));
129107                let _field_0 = <SpreadElement as FoldWithAstPath<V>>::fold_with_ast_path(
129108                    _field_0,
129109                    visitor,
129110                    &mut *__ast_path,
129111                );
129112                PropOrSpread::Spread { 0: _field_0 }
129113            }
129114            PropOrSpread::Prop { 0: _field_0 } => {
129115                let mut __ast_path = __ast_path.with_guard(AstParentKind::PropOrSpread(
129116                    self::fields::PropOrSpreadField::Prop,
129117                ));
129118                let _field_0 = <Box<Prop> as FoldWithAstPath<V>>::fold_with_ast_path(
129119                    _field_0,
129120                    visitor,
129121                    &mut *__ast_path,
129122                );
129123                PropOrSpread::Prop { 0: _field_0 }
129124            }
129125        }
129126    }
129127}
129128#[cfg(any(docsrs, feature = "path"))]
129129#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129130impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Regex {
129131    #[doc = "Calls [FoldAstPath`::fold_regex`] with `self`."]
129132    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129133        <V as FoldAstPath>::fold_regex(visitor, self, __ast_path)
129134    }
129135
129136    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129137        match self {
129138            Regex { span, exp, flags } => {
129139                let span = {
129140                    let mut __ast_path =
129141                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Span));
129142                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129143                        span,
129144                        visitor,
129145                        &mut *__ast_path,
129146                    )
129147                };
129148                let exp = {
129149                    let mut __ast_path =
129150                        __ast_path.with_guard(AstParentKind::Regex(self::fields::RegexField::Exp));
129151                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
129152                        exp,
129153                        visitor,
129154                        &mut *__ast_path,
129155                    )
129156                };
129157                let flags = {
129158                    let mut __ast_path = __ast_path
129159                        .with_guard(AstParentKind::Regex(self::fields::RegexField::Flags));
129160                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
129161                        flags,
129162                        visitor,
129163                        &mut *__ast_path,
129164                    )
129165                };
129166                Regex { span, exp, flags }
129167            }
129168        }
129169    }
129170}
129171#[cfg(any(docsrs, feature = "path"))]
129172#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129173impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for RestPat {
129174    #[doc = "Calls [FoldAstPath`::fold_rest_pat`] with `self`."]
129175    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129176        <V as FoldAstPath>::fold_rest_pat(visitor, self, __ast_path)
129177    }
129178
129179    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129180        match self {
129181            RestPat {
129182                span,
129183                dot3_token,
129184                arg,
129185                type_ann,
129186            } => {
129187                let span = {
129188                    let mut __ast_path = __ast_path
129189                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Span));
129190                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129191                        span,
129192                        visitor,
129193                        &mut *__ast_path,
129194                    )
129195                };
129196                let dot3_token = {
129197                    let mut __ast_path = __ast_path.with_guard(AstParentKind::RestPat(
129198                        self::fields::RestPatField::Dot3Token,
129199                    ));
129200                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129201                        dot3_token,
129202                        visitor,
129203                        &mut *__ast_path,
129204                    )
129205                };
129206                let arg = {
129207                    let mut __ast_path = __ast_path
129208                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::Arg));
129209                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
129210                        arg,
129211                        visitor,
129212                        &mut *__ast_path,
129213                    )
129214                };
129215                let type_ann = {
129216                    let mut __ast_path = __ast_path
129217                        .with_guard(AstParentKind::RestPat(self::fields::RestPatField::TypeAnn));
129218                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
129219                        type_ann,
129220                        visitor,
129221                        &mut *__ast_path,
129222                    )
129223                };
129224                RestPat {
129225                    span,
129226                    dot3_token,
129227                    arg,
129228                    type_ann,
129229                }
129230            }
129231        }
129232    }
129233}
129234#[cfg(any(docsrs, feature = "path"))]
129235#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129236impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ReturnStmt {
129237    #[doc = "Calls [FoldAstPath`::fold_return_stmt`] with `self`."]
129238    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129239        <V as FoldAstPath>::fold_return_stmt(visitor, self, __ast_path)
129240    }
129241
129242    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129243        match self {
129244            ReturnStmt { span, arg } => {
129245                let span = {
129246                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
129247                        self::fields::ReturnStmtField::Span,
129248                    ));
129249                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129250                        span,
129251                        visitor,
129252                        &mut *__ast_path,
129253                    )
129254                };
129255                let arg = {
129256                    let mut __ast_path = __ast_path.with_guard(AstParentKind::ReturnStmt(
129257                        self::fields::ReturnStmtField::Arg,
129258                    ));
129259                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
129260                        arg,
129261                        visitor,
129262                        &mut *__ast_path,
129263                    )
129264                };
129265                ReturnStmt { span, arg }
129266            }
129267        }
129268    }
129269}
129270#[cfg(any(docsrs, feature = "path"))]
129271#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129272impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Script {
129273    #[doc = "Calls [FoldAstPath`::fold_script`] with `self`."]
129274    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129275        <V as FoldAstPath>::fold_script(visitor, self, __ast_path)
129276    }
129277
129278    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129279        match self {
129280            Script {
129281                span,
129282                body,
129283                shebang,
129284            } => {
129285                let span = {
129286                    let mut __ast_path = __ast_path
129287                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Span));
129288                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129289                        span,
129290                        visitor,
129291                        &mut *__ast_path,
129292                    )
129293                };
129294                let body = {
129295                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Script(
129296                        self::fields::ScriptField::Body(usize::MAX),
129297                    ));
129298                    <Vec<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
129299                        body,
129300                        visitor,
129301                        &mut *__ast_path,
129302                    )
129303                };
129304                let shebang = {
129305                    let mut __ast_path = __ast_path
129306                        .with_guard(AstParentKind::Script(self::fields::ScriptField::Shebang));
129307                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
129308                        shebang,
129309                        visitor,
129310                        &mut *__ast_path,
129311                    )
129312                };
129313                Script {
129314                    span,
129315                    body,
129316                    shebang,
129317                }
129318            }
129319        }
129320    }
129321}
129322#[cfg(any(docsrs, feature = "path"))]
129323#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129324impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SeqExpr {
129325    #[doc = "Calls [FoldAstPath`::fold_seq_expr`] with `self`."]
129326    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129327        <V as FoldAstPath>::fold_seq_expr(visitor, self, __ast_path)
129328    }
129329
129330    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129331        match self {
129332            SeqExpr { span, exprs } => {
129333                let span = {
129334                    let mut __ast_path = __ast_path
129335                        .with_guard(AstParentKind::SeqExpr(self::fields::SeqExprField::Span));
129336                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129337                        span,
129338                        visitor,
129339                        &mut *__ast_path,
129340                    )
129341                };
129342                let exprs = {
129343                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SeqExpr(
129344                        self::fields::SeqExprField::Exprs(usize::MAX),
129345                    ));
129346                    <Vec<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
129347                        exprs,
129348                        visitor,
129349                        &mut *__ast_path,
129350                    )
129351                };
129352                SeqExpr { span, exprs }
129353            }
129354        }
129355    }
129356}
129357#[cfg(any(docsrs, feature = "path"))]
129358#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129359impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SetterProp {
129360    #[doc = "Calls [FoldAstPath`::fold_setter_prop`] with `self`."]
129361    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129362        <V as FoldAstPath>::fold_setter_prop(visitor, self, __ast_path)
129363    }
129364
129365    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129366        match self {
129367            SetterProp {
129368                span,
129369                key,
129370                this_param,
129371                param,
129372                body,
129373            } => {
129374                let span = {
129375                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
129376                        self::fields::SetterPropField::Span,
129377                    ));
129378                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129379                        span,
129380                        visitor,
129381                        &mut *__ast_path,
129382                    )
129383                };
129384                let key = {
129385                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
129386                        self::fields::SetterPropField::Key,
129387                    ));
129388                    <PropName as FoldWithAstPath<V>>::fold_with_ast_path(
129389                        key,
129390                        visitor,
129391                        &mut *__ast_path,
129392                    )
129393                };
129394                let this_param = {
129395                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
129396                        self::fields::SetterPropField::ThisParam,
129397                    ));
129398                    <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
129399                        this_param,
129400                        visitor,
129401                        &mut *__ast_path,
129402                    )
129403                };
129404                let param = {
129405                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
129406                        self::fields::SetterPropField::Param,
129407                    ));
129408                    <Box<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
129409                        param,
129410                        visitor,
129411                        &mut *__ast_path,
129412                    )
129413                };
129414                let body = {
129415                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SetterProp(
129416                        self::fields::SetterPropField::Body,
129417                    ));
129418                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
129419                        body,
129420                        visitor,
129421                        &mut *__ast_path,
129422                    )
129423                };
129424                SetterProp {
129425                    span,
129426                    key,
129427                    this_param,
129428                    param,
129429                    body,
129430                }
129431            }
129432        }
129433    }
129434}
129435#[cfg(any(docsrs, feature = "path"))]
129436#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129437impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SimpleAssignTarget {
129438    #[doc = "Calls [FoldAstPath`::fold_simple_assign_target`] with `self`."]
129439    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129440        <V as FoldAstPath>::fold_simple_assign_target(visitor, self, __ast_path)
129441    }
129442
129443    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129444        match self {
129445            SimpleAssignTarget::Ident { 0: _field_0 } => {
129446                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129447                    self::fields::SimpleAssignTargetField::Ident,
129448                ));
129449                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
129450                    _field_0,
129451                    visitor,
129452                    &mut *__ast_path,
129453                );
129454                SimpleAssignTarget::Ident { 0: _field_0 }
129455            }
129456            SimpleAssignTarget::Member { 0: _field_0 } => {
129457                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129458                    self::fields::SimpleAssignTargetField::Member,
129459                ));
129460                let _field_0 = <MemberExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129461                    _field_0,
129462                    visitor,
129463                    &mut *__ast_path,
129464                );
129465                SimpleAssignTarget::Member { 0: _field_0 }
129466            }
129467            SimpleAssignTarget::SuperProp { 0: _field_0 } => {
129468                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129469                    self::fields::SimpleAssignTargetField::SuperProp,
129470                ));
129471                let _field_0 = <SuperPropExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129472                    _field_0,
129473                    visitor,
129474                    &mut *__ast_path,
129475                );
129476                SimpleAssignTarget::SuperProp { 0: _field_0 }
129477            }
129478            SimpleAssignTarget::Paren { 0: _field_0 } => {
129479                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129480                    self::fields::SimpleAssignTargetField::Paren,
129481                ));
129482                let _field_0 = <ParenExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129483                    _field_0,
129484                    visitor,
129485                    &mut *__ast_path,
129486                );
129487                SimpleAssignTarget::Paren { 0: _field_0 }
129488            }
129489            SimpleAssignTarget::OptChain { 0: _field_0 } => {
129490                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129491                    self::fields::SimpleAssignTargetField::OptChain,
129492                ));
129493                let _field_0 = <OptChainExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129494                    _field_0,
129495                    visitor,
129496                    &mut *__ast_path,
129497                );
129498                SimpleAssignTarget::OptChain { 0: _field_0 }
129499            }
129500            SimpleAssignTarget::TsAs { 0: _field_0 } => {
129501                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129502                    self::fields::SimpleAssignTargetField::TsAs,
129503                ));
129504                let _field_0 = <TsAsExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129505                    _field_0,
129506                    visitor,
129507                    &mut *__ast_path,
129508                );
129509                SimpleAssignTarget::TsAs { 0: _field_0 }
129510            }
129511            SimpleAssignTarget::TsSatisfies { 0: _field_0 } => {
129512                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129513                    self::fields::SimpleAssignTargetField::TsSatisfies,
129514                ));
129515                let _field_0 = <TsSatisfiesExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129516                    _field_0,
129517                    visitor,
129518                    &mut *__ast_path,
129519                );
129520                SimpleAssignTarget::TsSatisfies { 0: _field_0 }
129521            }
129522            SimpleAssignTarget::TsNonNull { 0: _field_0 } => {
129523                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129524                    self::fields::SimpleAssignTargetField::TsNonNull,
129525                ));
129526                let _field_0 = <TsNonNullExpr as FoldWithAstPath<V>>::fold_with_ast_path(
129527                    _field_0,
129528                    visitor,
129529                    &mut *__ast_path,
129530                );
129531                SimpleAssignTarget::TsNonNull { 0: _field_0 }
129532            }
129533            SimpleAssignTarget::TsTypeAssertion { 0: _field_0 } => {
129534                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129535                    self::fields::SimpleAssignTargetField::TsTypeAssertion,
129536                ));
129537                let _field_0 = <TsTypeAssertion as FoldWithAstPath<V>>::fold_with_ast_path(
129538                    _field_0,
129539                    visitor,
129540                    &mut *__ast_path,
129541                );
129542                SimpleAssignTarget::TsTypeAssertion { 0: _field_0 }
129543            }
129544            SimpleAssignTarget::TsInstantiation { 0: _field_0 } => {
129545                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129546                    self::fields::SimpleAssignTargetField::TsInstantiation,
129547                ));
129548                let _field_0 = <TsInstantiation as FoldWithAstPath<V>>::fold_with_ast_path(
129549                    _field_0,
129550                    visitor,
129551                    &mut *__ast_path,
129552                );
129553                SimpleAssignTarget::TsInstantiation { 0: _field_0 }
129554            }
129555            SimpleAssignTarget::Invalid { 0: _field_0 } => {
129556                let mut __ast_path = __ast_path.with_guard(AstParentKind::SimpleAssignTarget(
129557                    self::fields::SimpleAssignTargetField::Invalid,
129558                ));
129559                let _field_0 = <Invalid as FoldWithAstPath<V>>::fold_with_ast_path(
129560                    _field_0,
129561                    visitor,
129562                    &mut *__ast_path,
129563                );
129564                SimpleAssignTarget::Invalid { 0: _field_0 }
129565            }
129566        }
129567    }
129568}
129569#[cfg(any(docsrs, feature = "path"))]
129570#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129571impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SpreadElement {
129572    #[doc = "Calls [FoldAstPath`::fold_spread_element`] with `self`."]
129573    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129574        <V as FoldAstPath>::fold_spread_element(visitor, self, __ast_path)
129575    }
129576
129577    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129578        match self {
129579            SpreadElement { dot3_token, expr } => {
129580                let dot3_token = {
129581                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
129582                        self::fields::SpreadElementField::Dot3Token,
129583                    ));
129584                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129585                        dot3_token,
129586                        visitor,
129587                        &mut *__ast_path,
129588                    )
129589                };
129590                let expr = {
129591                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SpreadElement(
129592                        self::fields::SpreadElementField::Expr,
129593                    ));
129594                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
129595                        expr,
129596                        visitor,
129597                        &mut *__ast_path,
129598                    )
129599                };
129600                SpreadElement { dot3_token, expr }
129601            }
129602        }
129603    }
129604}
129605#[cfg(any(docsrs, feature = "path"))]
129606#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129607impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for StaticBlock {
129608    #[doc = "Calls [FoldAstPath`::fold_static_block`] with `self`."]
129609    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129610        <V as FoldAstPath>::fold_static_block(visitor, self, __ast_path)
129611    }
129612
129613    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129614        match self {
129615            StaticBlock { span, body } => {
129616                let span = {
129617                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
129618                        self::fields::StaticBlockField::Span,
129619                    ));
129620                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129621                        span,
129622                        visitor,
129623                        &mut *__ast_path,
129624                    )
129625                };
129626                let body = {
129627                    let mut __ast_path = __ast_path.with_guard(AstParentKind::StaticBlock(
129628                        self::fields::StaticBlockField::Body,
129629                    ));
129630                    <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129631                        body,
129632                        visitor,
129633                        &mut *__ast_path,
129634                    )
129635                };
129636                StaticBlock { span, body }
129637            }
129638        }
129639    }
129640}
129641#[cfg(any(docsrs, feature = "path"))]
129642#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129643impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Stmt {
129644    #[doc = "Calls [FoldAstPath`::fold_stmt`] with `self`."]
129645    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129646        <V as FoldAstPath>::fold_stmt(visitor, self, __ast_path)
129647    }
129648
129649    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129650        match self {
129651            Stmt::Block { 0: _field_0 } => {
129652                let mut __ast_path =
129653                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Block));
129654                let _field_0 = <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129655                    _field_0,
129656                    visitor,
129657                    &mut *__ast_path,
129658                );
129659                Stmt::Block { 0: _field_0 }
129660            }
129661            Stmt::Empty { 0: _field_0 } => {
129662                let mut __ast_path =
129663                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Empty));
129664                let _field_0 = <EmptyStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129665                    _field_0,
129666                    visitor,
129667                    &mut *__ast_path,
129668                );
129669                Stmt::Empty { 0: _field_0 }
129670            }
129671            Stmt::Debugger { 0: _field_0 } => {
129672                let mut __ast_path =
129673                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Debugger));
129674                let _field_0 = <DebuggerStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129675                    _field_0,
129676                    visitor,
129677                    &mut *__ast_path,
129678                );
129679                Stmt::Debugger { 0: _field_0 }
129680            }
129681            Stmt::With { 0: _field_0 } => {
129682                let mut __ast_path =
129683                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::With));
129684                let _field_0 = <WithStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129685                    _field_0,
129686                    visitor,
129687                    &mut *__ast_path,
129688                );
129689                Stmt::With { 0: _field_0 }
129690            }
129691            Stmt::Return { 0: _field_0 } => {
129692                let mut __ast_path =
129693                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Return));
129694                let _field_0 = <ReturnStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129695                    _field_0,
129696                    visitor,
129697                    &mut *__ast_path,
129698                );
129699                Stmt::Return { 0: _field_0 }
129700            }
129701            Stmt::Labeled { 0: _field_0 } => {
129702                let mut __ast_path =
129703                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Labeled));
129704                let _field_0 = <LabeledStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129705                    _field_0,
129706                    visitor,
129707                    &mut *__ast_path,
129708                );
129709                Stmt::Labeled { 0: _field_0 }
129710            }
129711            Stmt::Break { 0: _field_0 } => {
129712                let mut __ast_path =
129713                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Break));
129714                let _field_0 = <BreakStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129715                    _field_0,
129716                    visitor,
129717                    &mut *__ast_path,
129718                );
129719                Stmt::Break { 0: _field_0 }
129720            }
129721            Stmt::Continue { 0: _field_0 } => {
129722                let mut __ast_path =
129723                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Continue));
129724                let _field_0 = <ContinueStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129725                    _field_0,
129726                    visitor,
129727                    &mut *__ast_path,
129728                );
129729                Stmt::Continue { 0: _field_0 }
129730            }
129731            Stmt::If { 0: _field_0 } => {
129732                let mut __ast_path =
129733                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::If));
129734                let _field_0 = <IfStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129735                    _field_0,
129736                    visitor,
129737                    &mut *__ast_path,
129738                );
129739                Stmt::If { 0: _field_0 }
129740            }
129741            Stmt::Switch { 0: _field_0 } => {
129742                let mut __ast_path =
129743                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Switch));
129744                let _field_0 = <SwitchStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129745                    _field_0,
129746                    visitor,
129747                    &mut *__ast_path,
129748                );
129749                Stmt::Switch { 0: _field_0 }
129750            }
129751            Stmt::Throw { 0: _field_0 } => {
129752                let mut __ast_path =
129753                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Throw));
129754                let _field_0 = <ThrowStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129755                    _field_0,
129756                    visitor,
129757                    &mut *__ast_path,
129758                );
129759                Stmt::Throw { 0: _field_0 }
129760            }
129761            Stmt::Try { 0: _field_0 } => {
129762                let mut __ast_path =
129763                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Try));
129764                let _field_0 = <Box<TryStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
129765                    _field_0,
129766                    visitor,
129767                    &mut *__ast_path,
129768                );
129769                Stmt::Try { 0: _field_0 }
129770            }
129771            Stmt::While { 0: _field_0 } => {
129772                let mut __ast_path =
129773                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::While));
129774                let _field_0 = <WhileStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129775                    _field_0,
129776                    visitor,
129777                    &mut *__ast_path,
129778                );
129779                Stmt::While { 0: _field_0 }
129780            }
129781            Stmt::DoWhile { 0: _field_0 } => {
129782                let mut __ast_path =
129783                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::DoWhile));
129784                let _field_0 = <DoWhileStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129785                    _field_0,
129786                    visitor,
129787                    &mut *__ast_path,
129788                );
129789                Stmt::DoWhile { 0: _field_0 }
129790            }
129791            Stmt::For { 0: _field_0 } => {
129792                let mut __ast_path =
129793                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::For));
129794                let _field_0 = <ForStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129795                    _field_0,
129796                    visitor,
129797                    &mut *__ast_path,
129798                );
129799                Stmt::For { 0: _field_0 }
129800            }
129801            Stmt::ForIn { 0: _field_0 } => {
129802                let mut __ast_path =
129803                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForIn));
129804                let _field_0 = <ForInStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129805                    _field_0,
129806                    visitor,
129807                    &mut *__ast_path,
129808                );
129809                Stmt::ForIn { 0: _field_0 }
129810            }
129811            Stmt::ForOf { 0: _field_0 } => {
129812                let mut __ast_path =
129813                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::ForOf));
129814                let _field_0 = <ForOfStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129815                    _field_0,
129816                    visitor,
129817                    &mut *__ast_path,
129818                );
129819                Stmt::ForOf { 0: _field_0 }
129820            }
129821            Stmt::Decl { 0: _field_0 } => {
129822                let mut __ast_path =
129823                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Decl));
129824                let _field_0 = <Decl as FoldWithAstPath<V>>::fold_with_ast_path(
129825                    _field_0,
129826                    visitor,
129827                    &mut *__ast_path,
129828                );
129829                Stmt::Decl { 0: _field_0 }
129830            }
129831            Stmt::Expr { 0: _field_0 } => {
129832                let mut __ast_path =
129833                    __ast_path.with_guard(AstParentKind::Stmt(self::fields::StmtField::Expr));
129834                let _field_0 = <ExprStmt as FoldWithAstPath<V>>::fold_with_ast_path(
129835                    _field_0,
129836                    visitor,
129837                    &mut *__ast_path,
129838                );
129839                Stmt::Expr { 0: _field_0 }
129840            }
129841        }
129842    }
129843}
129844#[cfg(any(docsrs, feature = "path"))]
129845#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129846impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Str {
129847    #[doc = "Calls [FoldAstPath`::fold_str`] with `self`."]
129848    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129849        <V as FoldAstPath>::fold_str(visitor, self, __ast_path)
129850    }
129851
129852    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129853        match self {
129854            Str { span, value, raw } => {
129855                let span = {
129856                    let mut __ast_path =
129857                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Span));
129858                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129859                        span,
129860                        visitor,
129861                        &mut *__ast_path,
129862                    )
129863                };
129864                let value = {
129865                    let mut __ast_path =
129866                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Value));
129867                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
129868                        value,
129869                        visitor,
129870                        &mut *__ast_path,
129871                    )
129872                };
129873                let raw = {
129874                    let mut __ast_path =
129875                        __ast_path.with_guard(AstParentKind::Str(self::fields::StrField::Raw));
129876                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
129877                        raw,
129878                        visitor,
129879                        &mut *__ast_path,
129880                    )
129881                };
129882                Str { span, value, raw }
129883            }
129884        }
129885    }
129886}
129887#[cfg(any(docsrs, feature = "path"))]
129888#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129889impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Super {
129890    #[doc = "Calls [FoldAstPath`::fold_super`] with `self`."]
129891    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129892        <V as FoldAstPath>::fold_super(visitor, self, __ast_path)
129893    }
129894
129895    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129896        match self {
129897            Super { span } => {
129898                let span = {
129899                    let mut __ast_path =
129900                        __ast_path.with_guard(AstParentKind::Super(self::fields::SuperField::Span));
129901                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129902                        span,
129903                        visitor,
129904                        &mut *__ast_path,
129905                    )
129906                };
129907                Super { span }
129908            }
129909        }
129910    }
129911}
129912#[cfg(any(docsrs, feature = "path"))]
129913#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129914impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SuperProp {
129915    #[doc = "Calls [FoldAstPath`::fold_super_prop`] with `self`."]
129916    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129917        <V as FoldAstPath>::fold_super_prop(visitor, self, __ast_path)
129918    }
129919
129920    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129921        match self {
129922            SuperProp::Ident { 0: _field_0 } => {
129923                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
129924                    self::fields::SuperPropField::Ident,
129925                ));
129926                let _field_0 = <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
129927                    _field_0,
129928                    visitor,
129929                    &mut *__ast_path,
129930                );
129931                SuperProp::Ident { 0: _field_0 }
129932            }
129933            SuperProp::Computed { 0: _field_0 } => {
129934                let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperProp(
129935                    self::fields::SuperPropField::Computed,
129936                ));
129937                let _field_0 = <ComputedPropName as FoldWithAstPath<V>>::fold_with_ast_path(
129938                    _field_0,
129939                    visitor,
129940                    &mut *__ast_path,
129941                );
129942                SuperProp::Computed { 0: _field_0 }
129943            }
129944        }
129945    }
129946}
129947#[cfg(any(docsrs, feature = "path"))]
129948#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129949impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SuperPropExpr {
129950    #[doc = "Calls [FoldAstPath`::fold_super_prop_expr`] with `self`."]
129951    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129952        <V as FoldAstPath>::fold_super_prop_expr(visitor, self, __ast_path)
129953    }
129954
129955    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129956        match self {
129957            SuperPropExpr { span, obj, prop } => {
129958                let span = {
129959                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
129960                        self::fields::SuperPropExprField::Span,
129961                    ));
129962                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
129963                        span,
129964                        visitor,
129965                        &mut *__ast_path,
129966                    )
129967                };
129968                let obj = {
129969                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
129970                        self::fields::SuperPropExprField::Obj,
129971                    ));
129972                    <Super as FoldWithAstPath<V>>::fold_with_ast_path(
129973                        obj,
129974                        visitor,
129975                        &mut *__ast_path,
129976                    )
129977                };
129978                let prop = {
129979                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SuperPropExpr(
129980                        self::fields::SuperPropExprField::Prop,
129981                    ));
129982                    <SuperProp as FoldWithAstPath<V>>::fold_with_ast_path(
129983                        prop,
129984                        visitor,
129985                        &mut *__ast_path,
129986                    )
129987                };
129988                SuperPropExpr { span, obj, prop }
129989            }
129990        }
129991    }
129992}
129993#[cfg(any(docsrs, feature = "path"))]
129994#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
129995impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SwitchCase {
129996    #[doc = "Calls [FoldAstPath`::fold_switch_case`] with `self`."]
129997    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
129998        <V as FoldAstPath>::fold_switch_case(visitor, self, __ast_path)
129999    }
130000
130001    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130002        match self {
130003            SwitchCase { span, test, cons } => {
130004                let span = {
130005                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
130006                        self::fields::SwitchCaseField::Span,
130007                    ));
130008                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130009                        span,
130010                        visitor,
130011                        &mut *__ast_path,
130012                    )
130013                };
130014                let test = {
130015                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
130016                        self::fields::SwitchCaseField::Test,
130017                    ));
130018                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
130019                        test,
130020                        visitor,
130021                        &mut *__ast_path,
130022                    )
130023                };
130024                let cons = {
130025                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchCase(
130026                        self::fields::SwitchCaseField::Cons(usize::MAX),
130027                    ));
130028                    <Vec<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
130029                        cons,
130030                        visitor,
130031                        &mut *__ast_path,
130032                    )
130033                };
130034                SwitchCase { span, test, cons }
130035            }
130036        }
130037    }
130038}
130039#[cfg(any(docsrs, feature = "path"))]
130040#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130041impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for SwitchStmt {
130042    #[doc = "Calls [FoldAstPath`::fold_switch_stmt`] with `self`."]
130043    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130044        <V as FoldAstPath>::fold_switch_stmt(visitor, self, __ast_path)
130045    }
130046
130047    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130048        match self {
130049            SwitchStmt {
130050                span,
130051                discriminant,
130052                cases,
130053            } => {
130054                let span = {
130055                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
130056                        self::fields::SwitchStmtField::Span,
130057                    ));
130058                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130059                        span,
130060                        visitor,
130061                        &mut *__ast_path,
130062                    )
130063                };
130064                let discriminant = {
130065                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
130066                        self::fields::SwitchStmtField::Discriminant,
130067                    ));
130068                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130069                        discriminant,
130070                        visitor,
130071                        &mut *__ast_path,
130072                    )
130073                };
130074                let cases = {
130075                    let mut __ast_path = __ast_path.with_guard(AstParentKind::SwitchStmt(
130076                        self::fields::SwitchStmtField::Cases(usize::MAX),
130077                    ));
130078                    <Vec<SwitchCase> as FoldWithAstPath<V>>::fold_with_ast_path(
130079                        cases,
130080                        visitor,
130081                        &mut *__ast_path,
130082                    )
130083                };
130084                SwitchStmt {
130085                    span,
130086                    discriminant,
130087                    cases,
130088                }
130089            }
130090        }
130091    }
130092}
130093#[cfg(any(docsrs, feature = "path"))]
130094#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130095impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TaggedTpl {
130096    #[doc = "Calls [FoldAstPath`::fold_tagged_tpl`] with `self`."]
130097    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130098        <V as FoldAstPath>::fold_tagged_tpl(visitor, self, __ast_path)
130099    }
130100
130101    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130102        match self {
130103            TaggedTpl {
130104                span,
130105                ctxt,
130106                tag,
130107                type_params,
130108                tpl,
130109            } => {
130110                let span = {
130111                    let mut __ast_path = __ast_path
130112                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Span));
130113                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130114                        span,
130115                        visitor,
130116                        &mut *__ast_path,
130117                    )
130118                };
130119                let ctxt = {
130120                    let mut __ast_path = __ast_path
130121                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Ctxt));
130122                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
130123                        ctxt,
130124                        visitor,
130125                        &mut *__ast_path,
130126                    )
130127                };
130128                let tag = {
130129                    let mut __ast_path = __ast_path
130130                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tag));
130131                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130132                        tag,
130133                        visitor,
130134                        &mut *__ast_path,
130135                    )
130136                };
130137                let type_params = {
130138                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TaggedTpl(
130139                        self::fields::TaggedTplField::TypeParams,
130140                    ));
130141                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_params , visitor , & mut * __ast_path)
130142                };
130143                let tpl = {
130144                    let mut __ast_path = __ast_path
130145                        .with_guard(AstParentKind::TaggedTpl(self::fields::TaggedTplField::Tpl));
130146                    <Box<Tpl> as FoldWithAstPath<V>>::fold_with_ast_path(
130147                        tpl,
130148                        visitor,
130149                        &mut *__ast_path,
130150                    )
130151                };
130152                TaggedTpl {
130153                    span,
130154                    ctxt,
130155                    tag,
130156                    type_params,
130157                    tpl,
130158                }
130159            }
130160        }
130161    }
130162}
130163#[cfg(any(docsrs, feature = "path"))]
130164#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130165impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ThisExpr {
130166    #[doc = "Calls [FoldAstPath`::fold_this_expr`] with `self`."]
130167    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130168        <V as FoldAstPath>::fold_this_expr(visitor, self, __ast_path)
130169    }
130170
130171    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130172        match self {
130173            ThisExpr { span } => {
130174                let span = {
130175                    let mut __ast_path = __ast_path
130176                        .with_guard(AstParentKind::ThisExpr(self::fields::ThisExprField::Span));
130177                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130178                        span,
130179                        visitor,
130180                        &mut *__ast_path,
130181                    )
130182                };
130183                ThisExpr { span }
130184            }
130185        }
130186    }
130187}
130188#[cfg(any(docsrs, feature = "path"))]
130189#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130190impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for ThrowStmt {
130191    #[doc = "Calls [FoldAstPath`::fold_throw_stmt`] with `self`."]
130192    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130193        <V as FoldAstPath>::fold_throw_stmt(visitor, self, __ast_path)
130194    }
130195
130196    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130197        match self {
130198            ThrowStmt { span, arg } => {
130199                let span = {
130200                    let mut __ast_path = __ast_path
130201                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Span));
130202                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130203                        span,
130204                        visitor,
130205                        &mut *__ast_path,
130206                    )
130207                };
130208                let arg = {
130209                    let mut __ast_path = __ast_path
130210                        .with_guard(AstParentKind::ThrowStmt(self::fields::ThrowStmtField::Arg));
130211                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130212                        arg,
130213                        visitor,
130214                        &mut *__ast_path,
130215                    )
130216                };
130217                ThrowStmt { span, arg }
130218            }
130219        }
130220    }
130221}
130222#[cfg(any(docsrs, feature = "path"))]
130223#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130224impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Tpl {
130225    #[doc = "Calls [FoldAstPath`::fold_tpl`] with `self`."]
130226    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130227        <V as FoldAstPath>::fold_tpl(visitor, self, __ast_path)
130228    }
130229
130230    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130231        match self {
130232            Tpl {
130233                span,
130234                exprs,
130235                quasis,
130236            } => {
130237                let span = {
130238                    let mut __ast_path =
130239                        __ast_path.with_guard(AstParentKind::Tpl(self::fields::TplField::Span));
130240                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130241                        span,
130242                        visitor,
130243                        &mut *__ast_path,
130244                    )
130245                };
130246                let exprs = {
130247                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
130248                        self::fields::TplField::Exprs(usize::MAX),
130249                    ));
130250                    <Vec<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
130251                        exprs,
130252                        visitor,
130253                        &mut *__ast_path,
130254                    )
130255                };
130256                let quasis = {
130257                    let mut __ast_path = __ast_path.with_guard(AstParentKind::Tpl(
130258                        self::fields::TplField::Quasis(usize::MAX),
130259                    ));
130260                    <Vec<TplElement> as FoldWithAstPath<V>>::fold_with_ast_path(
130261                        quasis,
130262                        visitor,
130263                        &mut *__ast_path,
130264                    )
130265                };
130266                Tpl {
130267                    span,
130268                    exprs,
130269                    quasis,
130270                }
130271            }
130272        }
130273    }
130274}
130275#[cfg(any(docsrs, feature = "path"))]
130276#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130277impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TplElement {
130278    #[doc = "Calls [FoldAstPath`::fold_tpl_element`] with `self`."]
130279    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130280        <V as FoldAstPath>::fold_tpl_element(visitor, self, __ast_path)
130281    }
130282
130283    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130284        match self {
130285            TplElement {
130286                span,
130287                tail,
130288                cooked,
130289                raw,
130290            } => {
130291                let span = {
130292                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
130293                        self::fields::TplElementField::Span,
130294                    ));
130295                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130296                        span,
130297                        visitor,
130298                        &mut *__ast_path,
130299                    )
130300                };
130301                let cooked = {
130302                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
130303                        self::fields::TplElementField::Cooked,
130304                    ));
130305                    <Option<swc_atoms::Atom> as FoldWithAstPath<V>>::fold_with_ast_path(
130306                        cooked,
130307                        visitor,
130308                        &mut *__ast_path,
130309                    )
130310                };
130311                let raw = {
130312                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TplElement(
130313                        self::fields::TplElementField::Raw,
130314                    ));
130315                    <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(
130316                        raw,
130317                        visitor,
130318                        &mut *__ast_path,
130319                    )
130320                };
130321                TplElement {
130322                    span,
130323                    tail,
130324                    cooked,
130325                    raw,
130326                }
130327            }
130328        }
130329    }
130330}
130331#[cfg(any(docsrs, feature = "path"))]
130332#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130333impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TruePlusMinus {
130334    #[doc = "Calls [FoldAstPath`::fold_true_plus_minus`] with `self`."]
130335    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130336        <V as FoldAstPath>::fold_true_plus_minus(visitor, self, __ast_path)
130337    }
130338
130339    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130340        match self {
130341            TruePlusMinus::True => TruePlusMinus::True,
130342            TruePlusMinus::Plus => TruePlusMinus::Plus,
130343            TruePlusMinus::Minus => TruePlusMinus::Minus,
130344        }
130345    }
130346}
130347#[cfg(any(docsrs, feature = "path"))]
130348#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130349impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TryStmt {
130350    #[doc = "Calls [FoldAstPath`::fold_try_stmt`] with `self`."]
130351    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130352        <V as FoldAstPath>::fold_try_stmt(visitor, self, __ast_path)
130353    }
130354
130355    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130356        match self {
130357            TryStmt {
130358                span,
130359                block,
130360                handler,
130361                finalizer,
130362            } => {
130363                let span = {
130364                    let mut __ast_path = __ast_path
130365                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Span));
130366                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130367                        span,
130368                        visitor,
130369                        &mut *__ast_path,
130370                    )
130371                };
130372                let block = {
130373                    let mut __ast_path = __ast_path
130374                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Block));
130375                    <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(
130376                        block,
130377                        visitor,
130378                        &mut *__ast_path,
130379                    )
130380                };
130381                let handler = {
130382                    let mut __ast_path = __ast_path
130383                        .with_guard(AstParentKind::TryStmt(self::fields::TryStmtField::Handler));
130384                    <Option<CatchClause> as FoldWithAstPath<V>>::fold_with_ast_path(
130385                        handler,
130386                        visitor,
130387                        &mut *__ast_path,
130388                    )
130389                };
130390                let finalizer = {
130391                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TryStmt(
130392                        self::fields::TryStmtField::Finalizer,
130393                    ));
130394                    <Option<BlockStmt> as FoldWithAstPath<V>>::fold_with_ast_path(
130395                        finalizer,
130396                        visitor,
130397                        &mut *__ast_path,
130398                    )
130399                };
130400                TryStmt {
130401                    span,
130402                    block,
130403                    handler,
130404                    finalizer,
130405                }
130406            }
130407        }
130408    }
130409}
130410#[cfg(any(docsrs, feature = "path"))]
130411#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130412impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsArrayType {
130413    #[doc = "Calls [FoldAstPath`::fold_ts_array_type`] with `self`."]
130414    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130415        <V as FoldAstPath>::fold_ts_array_type(visitor, self, __ast_path)
130416    }
130417
130418    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130419        match self {
130420            TsArrayType { span, elem_type } => {
130421                let span = {
130422                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
130423                        self::fields::TsArrayTypeField::Span,
130424                    ));
130425                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130426                        span,
130427                        visitor,
130428                        &mut *__ast_path,
130429                    )
130430                };
130431                let elem_type = {
130432                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsArrayType(
130433                        self::fields::TsArrayTypeField::ElemType,
130434                    ));
130435                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
130436                        elem_type,
130437                        visitor,
130438                        &mut *__ast_path,
130439                    )
130440                };
130441                TsArrayType { span, elem_type }
130442            }
130443        }
130444    }
130445}
130446#[cfg(any(docsrs, feature = "path"))]
130447#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130448impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsAsExpr {
130449    #[doc = "Calls [FoldAstPath`::fold_ts_as_expr`] with `self`."]
130450    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130451        <V as FoldAstPath>::fold_ts_as_expr(visitor, self, __ast_path)
130452    }
130453
130454    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130455        match self {
130456            TsAsExpr {
130457                span,
130458                expr,
130459                type_ann,
130460            } => {
130461                let span = {
130462                    let mut __ast_path = __ast_path
130463                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Span));
130464                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130465                        span,
130466                        visitor,
130467                        &mut *__ast_path,
130468                    )
130469                };
130470                let expr = {
130471                    let mut __ast_path = __ast_path
130472                        .with_guard(AstParentKind::TsAsExpr(self::fields::TsAsExprField::Expr));
130473                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130474                        expr,
130475                        visitor,
130476                        &mut *__ast_path,
130477                    )
130478                };
130479                let type_ann = {
130480                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsAsExpr(
130481                        self::fields::TsAsExprField::TypeAnn,
130482                    ));
130483                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
130484                        type_ann,
130485                        visitor,
130486                        &mut *__ast_path,
130487                    )
130488                };
130489                TsAsExpr {
130490                    span,
130491                    expr,
130492                    type_ann,
130493                }
130494            }
130495        }
130496    }
130497}
130498#[cfg(any(docsrs, feature = "path"))]
130499#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130500impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsCallSignatureDecl {
130501    #[doc = "Calls [FoldAstPath`::fold_ts_call_signature_decl`] with `self`."]
130502    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130503        <V as FoldAstPath>::fold_ts_call_signature_decl(visitor, self, __ast_path)
130504    }
130505
130506    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130507        match self {
130508            TsCallSignatureDecl {
130509                span,
130510                params,
130511                type_ann,
130512                type_params,
130513            } => {
130514                let span = {
130515                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
130516                        self::fields::TsCallSignatureDeclField::Span,
130517                    ));
130518                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130519                        span,
130520                        visitor,
130521                        &mut *__ast_path,
130522                    )
130523                };
130524                let params = {
130525                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
130526                        self::fields::TsCallSignatureDeclField::Params(usize::MAX),
130527                    ));
130528                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
130529                        params,
130530                        visitor,
130531                        &mut *__ast_path,
130532                    )
130533                };
130534                let type_ann = {
130535                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
130536                        self::fields::TsCallSignatureDeclField::TypeAnn,
130537                    ));
130538                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
130539                        type_ann,
130540                        visitor,
130541                        &mut *__ast_path,
130542                    )
130543                };
130544                let type_params = {
130545                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsCallSignatureDecl(
130546                        self::fields::TsCallSignatureDeclField::TypeParams,
130547                    ));
130548                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
130549                        type_params,
130550                        visitor,
130551                        &mut *__ast_path,
130552                    )
130553                };
130554                TsCallSignatureDecl {
130555                    span,
130556                    params,
130557                    type_ann,
130558                    type_params,
130559                }
130560            }
130561        }
130562    }
130563}
130564#[cfg(any(docsrs, feature = "path"))]
130565#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130566impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConditionalType {
130567    #[doc = "Calls [FoldAstPath`::fold_ts_conditional_type`] with `self`."]
130568    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130569        <V as FoldAstPath>::fold_ts_conditional_type(visitor, self, __ast_path)
130570    }
130571
130572    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130573        match self {
130574            TsConditionalType {
130575                span,
130576                check_type,
130577                extends_type,
130578                true_type,
130579                false_type,
130580            } => {
130581                let span = {
130582                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
130583                        self::fields::TsConditionalTypeField::Span,
130584                    ));
130585                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130586                        span,
130587                        visitor,
130588                        &mut *__ast_path,
130589                    )
130590                };
130591                let check_type = {
130592                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
130593                        self::fields::TsConditionalTypeField::CheckType,
130594                    ));
130595                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
130596                        check_type,
130597                        visitor,
130598                        &mut *__ast_path,
130599                    )
130600                };
130601                let extends_type = {
130602                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
130603                        self::fields::TsConditionalTypeField::ExtendsType,
130604                    ));
130605                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
130606                        extends_type,
130607                        visitor,
130608                        &mut *__ast_path,
130609                    )
130610                };
130611                let true_type = {
130612                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
130613                        self::fields::TsConditionalTypeField::TrueType,
130614                    ));
130615                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
130616                        true_type,
130617                        visitor,
130618                        &mut *__ast_path,
130619                    )
130620                };
130621                let false_type = {
130622                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConditionalType(
130623                        self::fields::TsConditionalTypeField::FalseType,
130624                    ));
130625                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
130626                        false_type,
130627                        visitor,
130628                        &mut *__ast_path,
130629                    )
130630                };
130631                TsConditionalType {
130632                    span,
130633                    check_type,
130634                    extends_type,
130635                    true_type,
130636                    false_type,
130637                }
130638            }
130639        }
130640    }
130641}
130642#[cfg(any(docsrs, feature = "path"))]
130643#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130644impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConstAssertion {
130645    #[doc = "Calls [FoldAstPath`::fold_ts_const_assertion`] with `self`."]
130646    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130647        <V as FoldAstPath>::fold_ts_const_assertion(visitor, self, __ast_path)
130648    }
130649
130650    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130651        match self {
130652            TsConstAssertion { span, expr } => {
130653                let span = {
130654                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
130655                        self::fields::TsConstAssertionField::Span,
130656                    ));
130657                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130658                        span,
130659                        visitor,
130660                        &mut *__ast_path,
130661                    )
130662                };
130663                let expr = {
130664                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstAssertion(
130665                        self::fields::TsConstAssertionField::Expr,
130666                    ));
130667                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
130668                        expr,
130669                        visitor,
130670                        &mut *__ast_path,
130671                    )
130672                };
130673                TsConstAssertion { span, expr }
130674            }
130675        }
130676    }
130677}
130678#[cfg(any(docsrs, feature = "path"))]
130679#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130680impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConstructSignatureDecl {
130681    #[doc = "Calls [FoldAstPath`::fold_ts_construct_signature_decl`] with `self`."]
130682    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130683        <V as FoldAstPath>::fold_ts_construct_signature_decl(visitor, self, __ast_path)
130684    }
130685
130686    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130687        match self {
130688            TsConstructSignatureDecl {
130689                span,
130690                params,
130691                type_ann,
130692                type_params,
130693            } => {
130694                let span = {
130695                    let mut __ast_path =
130696                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
130697                            self::fields::TsConstructSignatureDeclField::Span,
130698                        ));
130699                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130700                        span,
130701                        visitor,
130702                        &mut *__ast_path,
130703                    )
130704                };
130705                let params = {
130706                    let mut __ast_path =
130707                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
130708                            self::fields::TsConstructSignatureDeclField::Params(usize::MAX),
130709                        ));
130710                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
130711                        params,
130712                        visitor,
130713                        &mut *__ast_path,
130714                    )
130715                };
130716                let type_ann = {
130717                    let mut __ast_path =
130718                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
130719                            self::fields::TsConstructSignatureDeclField::TypeAnn,
130720                        ));
130721                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
130722                        type_ann,
130723                        visitor,
130724                        &mut *__ast_path,
130725                    )
130726                };
130727                let type_params = {
130728                    let mut __ast_path =
130729                        __ast_path.with_guard(AstParentKind::TsConstructSignatureDecl(
130730                            self::fields::TsConstructSignatureDeclField::TypeParams,
130731                        ));
130732                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
130733                        type_params,
130734                        visitor,
130735                        &mut *__ast_path,
130736                    )
130737                };
130738                TsConstructSignatureDecl {
130739                    span,
130740                    params,
130741                    type_ann,
130742                    type_params,
130743                }
130744            }
130745        }
130746    }
130747}
130748#[cfg(any(docsrs, feature = "path"))]
130749#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130750impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsConstructorType {
130751    #[doc = "Calls [FoldAstPath`::fold_ts_constructor_type`] with `self`."]
130752    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130753        <V as FoldAstPath>::fold_ts_constructor_type(visitor, self, __ast_path)
130754    }
130755
130756    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130757        match self {
130758            TsConstructorType {
130759                span,
130760                params,
130761                type_params,
130762                type_ann,
130763                is_abstract,
130764            } => {
130765                let span = {
130766                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
130767                        self::fields::TsConstructorTypeField::Span,
130768                    ));
130769                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130770                        span,
130771                        visitor,
130772                        &mut *__ast_path,
130773                    )
130774                };
130775                let params = {
130776                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
130777                        self::fields::TsConstructorTypeField::Params(usize::MAX),
130778                    ));
130779                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
130780                        params,
130781                        visitor,
130782                        &mut *__ast_path,
130783                    )
130784                };
130785                let type_params = {
130786                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
130787                        self::fields::TsConstructorTypeField::TypeParams,
130788                    ));
130789                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
130790                        type_params,
130791                        visitor,
130792                        &mut *__ast_path,
130793                    )
130794                };
130795                let type_ann = {
130796                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsConstructorType(
130797                        self::fields::TsConstructorTypeField::TypeAnn,
130798                    ));
130799                    <Box<TsTypeAnn> as FoldWithAstPath<V>>::fold_with_ast_path(
130800                        type_ann,
130801                        visitor,
130802                        &mut *__ast_path,
130803                    )
130804                };
130805                TsConstructorType {
130806                    span,
130807                    params,
130808                    type_params,
130809                    type_ann,
130810                    is_abstract,
130811                }
130812            }
130813        }
130814    }
130815}
130816#[cfg(any(docsrs, feature = "path"))]
130817#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130818impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEntityName {
130819    #[doc = "Calls [FoldAstPath`::fold_ts_entity_name`] with `self`."]
130820    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130821        <V as FoldAstPath>::fold_ts_entity_name(visitor, self, __ast_path)
130822    }
130823
130824    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130825        match self {
130826            TsEntityName::TsQualifiedName { 0: _field_0 } => {
130827                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
130828                    self::fields::TsEntityNameField::TsQualifiedName,
130829                ));
130830                let _field_0 = <Box<TsQualifiedName> as FoldWithAstPath<V>>::fold_with_ast_path(
130831                    _field_0,
130832                    visitor,
130833                    &mut *__ast_path,
130834                );
130835                TsEntityName::TsQualifiedName { 0: _field_0 }
130836            }
130837            TsEntityName::Ident { 0: _field_0 } => {
130838                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEntityName(
130839                    self::fields::TsEntityNameField::Ident,
130840                ));
130841                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
130842                    _field_0,
130843                    visitor,
130844                    &mut *__ast_path,
130845                );
130846                TsEntityName::Ident { 0: _field_0 }
130847            }
130848        }
130849    }
130850}
130851#[cfg(any(docsrs, feature = "path"))]
130852#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130853impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEnumDecl {
130854    #[doc = "Calls [FoldAstPath`::fold_ts_enum_decl`] with `self`."]
130855    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130856        <V as FoldAstPath>::fold_ts_enum_decl(visitor, self, __ast_path)
130857    }
130858
130859    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130860        match self {
130861            TsEnumDecl {
130862                span,
130863                declare,
130864                is_const,
130865                id,
130866                members,
130867            } => {
130868                let span = {
130869                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
130870                        self::fields::TsEnumDeclField::Span,
130871                    ));
130872                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130873                        span,
130874                        visitor,
130875                        &mut *__ast_path,
130876                    )
130877                };
130878                let id = {
130879                    let mut __ast_path = __ast_path
130880                        .with_guard(AstParentKind::TsEnumDecl(self::fields::TsEnumDeclField::Id));
130881                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
130882                };
130883                let members = {
130884                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumDecl(
130885                        self::fields::TsEnumDeclField::Members(usize::MAX),
130886                    ));
130887                    <Vec<TsEnumMember> as FoldWithAstPath<V>>::fold_with_ast_path(
130888                        members,
130889                        visitor,
130890                        &mut *__ast_path,
130891                    )
130892                };
130893                TsEnumDecl {
130894                    span,
130895                    declare,
130896                    is_const,
130897                    id,
130898                    members,
130899                }
130900            }
130901        }
130902    }
130903}
130904#[cfg(any(docsrs, feature = "path"))]
130905#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130906impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEnumMember {
130907    #[doc = "Calls [FoldAstPath`::fold_ts_enum_member`] with `self`."]
130908    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130909        <V as FoldAstPath>::fold_ts_enum_member(visitor, self, __ast_path)
130910    }
130911
130912    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130913        match self {
130914            TsEnumMember { span, id, init } => {
130915                let span = {
130916                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
130917                        self::fields::TsEnumMemberField::Span,
130918                    ));
130919                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
130920                        span,
130921                        visitor,
130922                        &mut *__ast_path,
130923                    )
130924                };
130925                let id = {
130926                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
130927                        self::fields::TsEnumMemberField::Id,
130928                    ));
130929                    <TsEnumMemberId as FoldWithAstPath<V>>::fold_with_ast_path(
130930                        id,
130931                        visitor,
130932                        &mut *__ast_path,
130933                    )
130934                };
130935                let init = {
130936                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMember(
130937                        self::fields::TsEnumMemberField::Init,
130938                    ));
130939                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
130940                        init,
130941                        visitor,
130942                        &mut *__ast_path,
130943                    )
130944                };
130945                TsEnumMember { span, id, init }
130946            }
130947        }
130948    }
130949}
130950#[cfg(any(docsrs, feature = "path"))]
130951#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130952impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsEnumMemberId {
130953    #[doc = "Calls [FoldAstPath`::fold_ts_enum_member_id`] with `self`."]
130954    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130955        <V as FoldAstPath>::fold_ts_enum_member_id(visitor, self, __ast_path)
130956    }
130957
130958    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130959        match self {
130960            TsEnumMemberId::Ident { 0: _field_0 } => {
130961                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
130962                    self::fields::TsEnumMemberIdField::Ident,
130963                ));
130964                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
130965                    _field_0,
130966                    visitor,
130967                    &mut *__ast_path,
130968                );
130969                TsEnumMemberId::Ident { 0: _field_0 }
130970            }
130971            TsEnumMemberId::Str { 0: _field_0 } => {
130972                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsEnumMemberId(
130973                    self::fields::TsEnumMemberIdField::Str,
130974                ));
130975                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
130976                    _field_0,
130977                    visitor,
130978                    &mut *__ast_path,
130979                );
130980                TsEnumMemberId::Str { 0: _field_0 }
130981            }
130982        }
130983    }
130984}
130985#[cfg(any(docsrs, feature = "path"))]
130986#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
130987impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsExportAssignment {
130988    #[doc = "Calls [FoldAstPath`::fold_ts_export_assignment`] with `self`."]
130989    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130990        <V as FoldAstPath>::fold_ts_export_assignment(visitor, self, __ast_path)
130991    }
130992
130993    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
130994        match self {
130995            TsExportAssignment { span, expr } => {
130996                let span = {
130997                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
130998                        self::fields::TsExportAssignmentField::Span,
130999                    ));
131000                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131001                        span,
131002                        visitor,
131003                        &mut *__ast_path,
131004                    )
131005                };
131006                let expr = {
131007                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExportAssignment(
131008                        self::fields::TsExportAssignmentField::Expr,
131009                    ));
131010                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131011                        expr,
131012                        visitor,
131013                        &mut *__ast_path,
131014                    )
131015                };
131016                TsExportAssignment { span, expr }
131017            }
131018        }
131019    }
131020}
131021#[cfg(any(docsrs, feature = "path"))]
131022#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131023impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsExprWithTypeArgs {
131024    #[doc = "Calls [FoldAstPath`::fold_ts_expr_with_type_args`] with `self`."]
131025    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131026        <V as FoldAstPath>::fold_ts_expr_with_type_args(visitor, self, __ast_path)
131027    }
131028
131029    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131030        match self {
131031            TsExprWithTypeArgs {
131032                span,
131033                expr,
131034                type_args,
131035            } => {
131036                let span = {
131037                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
131038                        self::fields::TsExprWithTypeArgsField::Span,
131039                    ));
131040                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131041                        span,
131042                        visitor,
131043                        &mut *__ast_path,
131044                    )
131045                };
131046                let expr = {
131047                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
131048                        self::fields::TsExprWithTypeArgsField::Expr,
131049                    ));
131050                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131051                        expr,
131052                        visitor,
131053                        &mut *__ast_path,
131054                    )
131055                };
131056                let type_args = {
131057                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExprWithTypeArgs(
131058                        self::fields::TsExprWithTypeArgsField::TypeArgs,
131059                    ));
131060                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
131061                };
131062                TsExprWithTypeArgs {
131063                    span,
131064                    expr,
131065                    type_args,
131066                }
131067            }
131068        }
131069    }
131070}
131071#[cfg(any(docsrs, feature = "path"))]
131072#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131073impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsExternalModuleRef {
131074    #[doc = "Calls [FoldAstPath`::fold_ts_external_module_ref`] with `self`."]
131075    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131076        <V as FoldAstPath>::fold_ts_external_module_ref(visitor, self, __ast_path)
131077    }
131078
131079    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131080        match self {
131081            TsExternalModuleRef { span, expr } => {
131082                let span = {
131083                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
131084                        self::fields::TsExternalModuleRefField::Span,
131085                    ));
131086                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131087                        span,
131088                        visitor,
131089                        &mut *__ast_path,
131090                    )
131091                };
131092                let expr = {
131093                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsExternalModuleRef(
131094                        self::fields::TsExternalModuleRefField::Expr,
131095                    ));
131096                    <Str as FoldWithAstPath<V>>::fold_with_ast_path(expr, visitor, &mut *__ast_path)
131097                };
131098                TsExternalModuleRef { span, expr }
131099            }
131100        }
131101    }
131102}
131103#[cfg(any(docsrs, feature = "path"))]
131104#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131105impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsFnOrConstructorType {
131106    #[doc = "Calls [FoldAstPath`::fold_ts_fn_or_constructor_type`] with `self`."]
131107    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131108        <V as FoldAstPath>::fold_ts_fn_or_constructor_type(visitor, self, __ast_path)
131109    }
131110
131111    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131112        match self {
131113            TsFnOrConstructorType::TsFnType { 0: _field_0 } => {
131114                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
131115                    self::fields::TsFnOrConstructorTypeField::TsFnType,
131116                ));
131117                let _field_0 = <TsFnType as FoldWithAstPath<V>>::fold_with_ast_path(
131118                    _field_0,
131119                    visitor,
131120                    &mut *__ast_path,
131121                );
131122                TsFnOrConstructorType::TsFnType { 0: _field_0 }
131123            }
131124            TsFnOrConstructorType::TsConstructorType { 0: _field_0 } => {
131125                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnOrConstructorType(
131126                    self::fields::TsFnOrConstructorTypeField::TsConstructorType,
131127                ));
131128                let _field_0 = <TsConstructorType as FoldWithAstPath<V>>::fold_with_ast_path(
131129                    _field_0,
131130                    visitor,
131131                    &mut *__ast_path,
131132                );
131133                TsFnOrConstructorType::TsConstructorType { 0: _field_0 }
131134            }
131135        }
131136    }
131137}
131138#[cfg(any(docsrs, feature = "path"))]
131139#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131140impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsFnParam {
131141    #[doc = "Calls [FoldAstPath`::fold_ts_fn_param`] with `self`."]
131142    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131143        <V as FoldAstPath>::fold_ts_fn_param(visitor, self, __ast_path)
131144    }
131145
131146    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131147        match self {
131148            TsFnParam::Ident { 0: _field_0 } => {
131149                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
131150                    self::fields::TsFnParamField::Ident,
131151                ));
131152                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
131153                    _field_0,
131154                    visitor,
131155                    &mut *__ast_path,
131156                );
131157                TsFnParam::Ident { 0: _field_0 }
131158            }
131159            TsFnParam::Array { 0: _field_0 } => {
131160                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
131161                    self::fields::TsFnParamField::Array,
131162                ));
131163                let _field_0 = <ArrayPat as FoldWithAstPath<V>>::fold_with_ast_path(
131164                    _field_0,
131165                    visitor,
131166                    &mut *__ast_path,
131167                );
131168                TsFnParam::Array { 0: _field_0 }
131169            }
131170            TsFnParam::Rest { 0: _field_0 } => {
131171                let mut __ast_path = __ast_path
131172                    .with_guard(AstParentKind::TsFnParam(self::fields::TsFnParamField::Rest));
131173                let _field_0 = <RestPat as FoldWithAstPath<V>>::fold_with_ast_path(
131174                    _field_0,
131175                    visitor,
131176                    &mut *__ast_path,
131177                );
131178                TsFnParam::Rest { 0: _field_0 }
131179            }
131180            TsFnParam::Object { 0: _field_0 } => {
131181                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnParam(
131182                    self::fields::TsFnParamField::Object,
131183                ));
131184                let _field_0 = <ObjectPat as FoldWithAstPath<V>>::fold_with_ast_path(
131185                    _field_0,
131186                    visitor,
131187                    &mut *__ast_path,
131188                );
131189                TsFnParam::Object { 0: _field_0 }
131190            }
131191        }
131192    }
131193}
131194#[cfg(any(docsrs, feature = "path"))]
131195#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131196impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsFnType {
131197    #[doc = "Calls [FoldAstPath`::fold_ts_fn_type`] with `self`."]
131198    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131199        <V as FoldAstPath>::fold_ts_fn_type(visitor, self, __ast_path)
131200    }
131201
131202    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131203        match self {
131204            TsFnType {
131205                span,
131206                params,
131207                type_params,
131208                type_ann,
131209            } => {
131210                let span = {
131211                    let mut __ast_path = __ast_path
131212                        .with_guard(AstParentKind::TsFnType(self::fields::TsFnTypeField::Span));
131213                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131214                        span,
131215                        visitor,
131216                        &mut *__ast_path,
131217                    )
131218                };
131219                let params = {
131220                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
131221                        self::fields::TsFnTypeField::Params(usize::MAX),
131222                    ));
131223                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
131224                        params,
131225                        visitor,
131226                        &mut *__ast_path,
131227                    )
131228                };
131229                let type_params = {
131230                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
131231                        self::fields::TsFnTypeField::TypeParams,
131232                    ));
131233                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
131234                        type_params,
131235                        visitor,
131236                        &mut *__ast_path,
131237                    )
131238                };
131239                let type_ann = {
131240                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsFnType(
131241                        self::fields::TsFnTypeField::TypeAnn,
131242                    ));
131243                    <Box<TsTypeAnn> as FoldWithAstPath<V>>::fold_with_ast_path(
131244                        type_ann,
131245                        visitor,
131246                        &mut *__ast_path,
131247                    )
131248                };
131249                TsFnType {
131250                    span,
131251                    params,
131252                    type_params,
131253                    type_ann,
131254                }
131255            }
131256        }
131257    }
131258}
131259#[cfg(any(docsrs, feature = "path"))]
131260#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131261impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsGetterSignature {
131262    #[doc = "Calls [FoldAstPath`::fold_ts_getter_signature`] with `self`."]
131263    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131264        <V as FoldAstPath>::fold_ts_getter_signature(visitor, self, __ast_path)
131265    }
131266
131267    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131268        match self {
131269            TsGetterSignature {
131270                span,
131271                key,
131272                computed,
131273                type_ann,
131274            } => {
131275                let span = {
131276                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
131277                        self::fields::TsGetterSignatureField::Span,
131278                    ));
131279                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131280                        span,
131281                        visitor,
131282                        &mut *__ast_path,
131283                    )
131284                };
131285                let key = {
131286                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
131287                        self::fields::TsGetterSignatureField::Key,
131288                    ));
131289                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131290                        key,
131291                        visitor,
131292                        &mut *__ast_path,
131293                    )
131294                };
131295                let type_ann = {
131296                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsGetterSignature(
131297                        self::fields::TsGetterSignatureField::TypeAnn,
131298                    ));
131299                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
131300                        type_ann,
131301                        visitor,
131302                        &mut *__ast_path,
131303                    )
131304                };
131305                TsGetterSignature {
131306                    span,
131307                    key,
131308                    computed,
131309                    type_ann,
131310                }
131311            }
131312        }
131313    }
131314}
131315#[cfg(any(docsrs, feature = "path"))]
131316#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131317impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsImportEqualsDecl {
131318    #[doc = "Calls [FoldAstPath`::fold_ts_import_equals_decl`] with `self`."]
131319    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131320        <V as FoldAstPath>::fold_ts_import_equals_decl(visitor, self, __ast_path)
131321    }
131322
131323    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131324        match self {
131325            TsImportEqualsDecl {
131326                span,
131327                is_export,
131328                is_type_only,
131329                id,
131330                module_ref,
131331            } => {
131332                let span = {
131333                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
131334                        self::fields::TsImportEqualsDeclField::Span,
131335                    ));
131336                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131337                        span,
131338                        visitor,
131339                        &mut *__ast_path,
131340                    )
131341                };
131342                let id = {
131343                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
131344                        self::fields::TsImportEqualsDeclField::Id,
131345                    ));
131346                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
131347                };
131348                let module_ref = {
131349                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportEqualsDecl(
131350                        self::fields::TsImportEqualsDeclField::ModuleRef,
131351                    ));
131352                    <TsModuleRef as FoldWithAstPath<V>>::fold_with_ast_path(
131353                        module_ref,
131354                        visitor,
131355                        &mut *__ast_path,
131356                    )
131357                };
131358                TsImportEqualsDecl {
131359                    span,
131360                    is_export,
131361                    is_type_only,
131362                    id,
131363                    module_ref,
131364                }
131365            }
131366        }
131367    }
131368}
131369#[cfg(any(docsrs, feature = "path"))]
131370#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131371impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsImportType {
131372    #[doc = "Calls [FoldAstPath`::fold_ts_import_type`] with `self`."]
131373    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131374        <V as FoldAstPath>::fold_ts_import_type(visitor, self, __ast_path)
131375    }
131376
131377    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131378        match self {
131379            TsImportType {
131380                span,
131381                arg,
131382                qualifier,
131383                type_args,
131384            } => {
131385                let span = {
131386                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
131387                        self::fields::TsImportTypeField::Span,
131388                    ));
131389                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131390                        span,
131391                        visitor,
131392                        &mut *__ast_path,
131393                    )
131394                };
131395                let arg = {
131396                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
131397                        self::fields::TsImportTypeField::Arg,
131398                    ));
131399                    <Str as FoldWithAstPath<V>>::fold_with_ast_path(arg, visitor, &mut *__ast_path)
131400                };
131401                let qualifier = {
131402                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
131403                        self::fields::TsImportTypeField::Qualifier,
131404                    ));
131405                    <Option<TsEntityName> as FoldWithAstPath<V>>::fold_with_ast_path(
131406                        qualifier,
131407                        visitor,
131408                        &mut *__ast_path,
131409                    )
131410                };
131411                let type_args = {
131412                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsImportType(
131413                        self::fields::TsImportTypeField::TypeArgs,
131414                    ));
131415                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
131416                };
131417                TsImportType {
131418                    span,
131419                    arg,
131420                    qualifier,
131421                    type_args,
131422                }
131423            }
131424        }
131425    }
131426}
131427#[cfg(any(docsrs, feature = "path"))]
131428#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131429impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsIndexSignature {
131430    #[doc = "Calls [FoldAstPath`::fold_ts_index_signature`] with `self`."]
131431    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131432        <V as FoldAstPath>::fold_ts_index_signature(visitor, self, __ast_path)
131433    }
131434
131435    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131436        match self {
131437            TsIndexSignature {
131438                params,
131439                type_ann,
131440                readonly,
131441                is_static,
131442                span,
131443            } => {
131444                let params = {
131445                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
131446                        self::fields::TsIndexSignatureField::Params(usize::MAX),
131447                    ));
131448                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
131449                        params,
131450                        visitor,
131451                        &mut *__ast_path,
131452                    )
131453                };
131454                let type_ann = {
131455                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
131456                        self::fields::TsIndexSignatureField::TypeAnn,
131457                    ));
131458                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
131459                        type_ann,
131460                        visitor,
131461                        &mut *__ast_path,
131462                    )
131463                };
131464                let span = {
131465                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexSignature(
131466                        self::fields::TsIndexSignatureField::Span,
131467                    ));
131468                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131469                        span,
131470                        visitor,
131471                        &mut *__ast_path,
131472                    )
131473                };
131474                TsIndexSignature {
131475                    params,
131476                    type_ann,
131477                    readonly,
131478                    is_static,
131479                    span,
131480                }
131481            }
131482        }
131483    }
131484}
131485#[cfg(any(docsrs, feature = "path"))]
131486#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131487impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsIndexedAccessType {
131488    #[doc = "Calls [FoldAstPath`::fold_ts_indexed_access_type`] with `self`."]
131489    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131490        <V as FoldAstPath>::fold_ts_indexed_access_type(visitor, self, __ast_path)
131491    }
131492
131493    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131494        match self {
131495            TsIndexedAccessType {
131496                span,
131497                readonly,
131498                obj_type,
131499                index_type,
131500            } => {
131501                let span = {
131502                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
131503                        self::fields::TsIndexedAccessTypeField::Span,
131504                    ));
131505                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131506                        span,
131507                        visitor,
131508                        &mut *__ast_path,
131509                    )
131510                };
131511                let obj_type = {
131512                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
131513                        self::fields::TsIndexedAccessTypeField::ObjType,
131514                    ));
131515                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131516                        obj_type,
131517                        visitor,
131518                        &mut *__ast_path,
131519                    )
131520                };
131521                let index_type = {
131522                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIndexedAccessType(
131523                        self::fields::TsIndexedAccessTypeField::IndexType,
131524                    ));
131525                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
131526                        index_type,
131527                        visitor,
131528                        &mut *__ast_path,
131529                    )
131530                };
131531                TsIndexedAccessType {
131532                    span,
131533                    readonly,
131534                    obj_type,
131535                    index_type,
131536                }
131537            }
131538        }
131539    }
131540}
131541#[cfg(any(docsrs, feature = "path"))]
131542#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131543impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInferType {
131544    #[doc = "Calls [FoldAstPath`::fold_ts_infer_type`] with `self`."]
131545    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131546        <V as FoldAstPath>::fold_ts_infer_type(visitor, self, __ast_path)
131547    }
131548
131549    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131550        match self {
131551            TsInferType { span, type_param } => {
131552                let span = {
131553                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
131554                        self::fields::TsInferTypeField::Span,
131555                    ));
131556                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131557                        span,
131558                        visitor,
131559                        &mut *__ast_path,
131560                    )
131561                };
131562                let type_param = {
131563                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInferType(
131564                        self::fields::TsInferTypeField::TypeParam,
131565                    ));
131566                    <TsTypeParam as FoldWithAstPath<V>>::fold_with_ast_path(
131567                        type_param,
131568                        visitor,
131569                        &mut *__ast_path,
131570                    )
131571                };
131572                TsInferType { span, type_param }
131573            }
131574        }
131575    }
131576}
131577#[cfg(any(docsrs, feature = "path"))]
131578#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131579impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInstantiation {
131580    #[doc = "Calls [FoldAstPath`::fold_ts_instantiation`] with `self`."]
131581    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131582        <V as FoldAstPath>::fold_ts_instantiation(visitor, self, __ast_path)
131583    }
131584
131585    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131586        match self {
131587            TsInstantiation {
131588                span,
131589                expr,
131590                type_args,
131591            } => {
131592                let span = {
131593                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
131594                        self::fields::TsInstantiationField::Span,
131595                    ));
131596                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131597                        span,
131598                        visitor,
131599                        &mut *__ast_path,
131600                    )
131601                };
131602                let expr = {
131603                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
131604                        self::fields::TsInstantiationField::Expr,
131605                    ));
131606                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
131607                        expr,
131608                        visitor,
131609                        &mut *__ast_path,
131610                    )
131611                };
131612                let type_args = {
131613                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInstantiation(
131614                        self::fields::TsInstantiationField::TypeArgs,
131615                    ));
131616                    <Box<TsTypeParamInstantiation> as FoldWithAstPath<V>>::fold_with_ast_path(
131617                        type_args,
131618                        visitor,
131619                        &mut *__ast_path,
131620                    )
131621                };
131622                TsInstantiation {
131623                    span,
131624                    expr,
131625                    type_args,
131626                }
131627            }
131628        }
131629    }
131630}
131631#[cfg(any(docsrs, feature = "path"))]
131632#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131633impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInterfaceBody {
131634    #[doc = "Calls [FoldAstPath`::fold_ts_interface_body`] with `self`."]
131635    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131636        <V as FoldAstPath>::fold_ts_interface_body(visitor, self, __ast_path)
131637    }
131638
131639    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131640        match self {
131641            TsInterfaceBody { span, body } => {
131642                let span = {
131643                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
131644                        self::fields::TsInterfaceBodyField::Span,
131645                    ));
131646                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131647                        span,
131648                        visitor,
131649                        &mut *__ast_path,
131650                    )
131651                };
131652                let body = {
131653                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceBody(
131654                        self::fields::TsInterfaceBodyField::Body(usize::MAX),
131655                    ));
131656                    <Vec<TsTypeElement> as FoldWithAstPath<V>>::fold_with_ast_path(
131657                        body,
131658                        visitor,
131659                        &mut *__ast_path,
131660                    )
131661                };
131662                TsInterfaceBody { span, body }
131663            }
131664        }
131665    }
131666}
131667#[cfg(any(docsrs, feature = "path"))]
131668#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131669impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsInterfaceDecl {
131670    #[doc = "Calls [FoldAstPath`::fold_ts_interface_decl`] with `self`."]
131671    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131672        <V as FoldAstPath>::fold_ts_interface_decl(visitor, self, __ast_path)
131673    }
131674
131675    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131676        match self {
131677            TsInterfaceDecl {
131678                span,
131679                id,
131680                declare,
131681                type_params,
131682                extends,
131683                body,
131684            } => {
131685                let span = {
131686                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
131687                        self::fields::TsInterfaceDeclField::Span,
131688                    ));
131689                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131690                        span,
131691                        visitor,
131692                        &mut *__ast_path,
131693                    )
131694                };
131695                let id = {
131696                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
131697                        self::fields::TsInterfaceDeclField::Id,
131698                    ));
131699                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
131700                };
131701                let type_params = {
131702                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
131703                        self::fields::TsInterfaceDeclField::TypeParams,
131704                    ));
131705                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
131706                        type_params,
131707                        visitor,
131708                        &mut *__ast_path,
131709                    )
131710                };
131711                let extends = {
131712                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
131713                        self::fields::TsInterfaceDeclField::Extends(usize::MAX),
131714                    ));
131715                    <Vec<TsExprWithTypeArgs> as FoldWithAstPath<V>>::fold_with_ast_path(
131716                        extends,
131717                        visitor,
131718                        &mut *__ast_path,
131719                    )
131720                };
131721                let body = {
131722                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsInterfaceDecl(
131723                        self::fields::TsInterfaceDeclField::Body,
131724                    ));
131725                    <TsInterfaceBody as FoldWithAstPath<V>>::fold_with_ast_path(
131726                        body,
131727                        visitor,
131728                        &mut *__ast_path,
131729                    )
131730                };
131731                TsInterfaceDecl {
131732                    span,
131733                    id,
131734                    declare,
131735                    type_params,
131736                    extends,
131737                    body,
131738                }
131739            }
131740        }
131741    }
131742}
131743#[cfg(any(docsrs, feature = "path"))]
131744#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131745impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsIntersectionType {
131746    #[doc = "Calls [FoldAstPath`::fold_ts_intersection_type`] with `self`."]
131747    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131748        <V as FoldAstPath>::fold_ts_intersection_type(visitor, self, __ast_path)
131749    }
131750
131751    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131752        match self {
131753            TsIntersectionType { span, types } => {
131754                let span = {
131755                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
131756                        self::fields::TsIntersectionTypeField::Span,
131757                    ));
131758                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131759                        span,
131760                        visitor,
131761                        &mut *__ast_path,
131762                    )
131763                };
131764                let types = {
131765                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsIntersectionType(
131766                        self::fields::TsIntersectionTypeField::Types(usize::MAX),
131767                    ));
131768                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
131769                        types,
131770                        visitor,
131771                        &mut *__ast_path,
131772                    )
131773                };
131774                TsIntersectionType { span, types }
131775            }
131776        }
131777    }
131778}
131779#[cfg(any(docsrs, feature = "path"))]
131780#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131781impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsKeywordType {
131782    #[doc = "Calls [FoldAstPath`::fold_ts_keyword_type`] with `self`."]
131783    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131784        <V as FoldAstPath>::fold_ts_keyword_type(visitor, self, __ast_path)
131785    }
131786
131787    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131788        match self {
131789            TsKeywordType { span, kind } => {
131790                let span = {
131791                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
131792                        self::fields::TsKeywordTypeField::Span,
131793                    ));
131794                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131795                        span,
131796                        visitor,
131797                        &mut *__ast_path,
131798                    )
131799                };
131800                let kind = {
131801                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsKeywordType(
131802                        self::fields::TsKeywordTypeField::Kind,
131803                    ));
131804                    <TsKeywordTypeKind as FoldWithAstPath<V>>::fold_with_ast_path(
131805                        kind,
131806                        visitor,
131807                        &mut *__ast_path,
131808                    )
131809                };
131810                TsKeywordType { span, kind }
131811            }
131812        }
131813    }
131814}
131815#[cfg(any(docsrs, feature = "path"))]
131816#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131817impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsKeywordTypeKind {
131818    #[doc = "Calls [FoldAstPath`::fold_ts_keyword_type_kind`] with `self`."]
131819    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131820        <V as FoldAstPath>::fold_ts_keyword_type_kind(visitor, self, __ast_path)
131821    }
131822
131823    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131824        match self {
131825            TsKeywordTypeKind::TsAnyKeyword => TsKeywordTypeKind::TsAnyKeyword,
131826            TsKeywordTypeKind::TsUnknownKeyword => TsKeywordTypeKind::TsUnknownKeyword,
131827            TsKeywordTypeKind::TsNumberKeyword => TsKeywordTypeKind::TsNumberKeyword,
131828            TsKeywordTypeKind::TsObjectKeyword => TsKeywordTypeKind::TsObjectKeyword,
131829            TsKeywordTypeKind::TsBooleanKeyword => TsKeywordTypeKind::TsBooleanKeyword,
131830            TsKeywordTypeKind::TsBigIntKeyword => TsKeywordTypeKind::TsBigIntKeyword,
131831            TsKeywordTypeKind::TsStringKeyword => TsKeywordTypeKind::TsStringKeyword,
131832            TsKeywordTypeKind::TsSymbolKeyword => TsKeywordTypeKind::TsSymbolKeyword,
131833            TsKeywordTypeKind::TsVoidKeyword => TsKeywordTypeKind::TsVoidKeyword,
131834            TsKeywordTypeKind::TsUndefinedKeyword => TsKeywordTypeKind::TsUndefinedKeyword,
131835            TsKeywordTypeKind::TsNullKeyword => TsKeywordTypeKind::TsNullKeyword,
131836            TsKeywordTypeKind::TsNeverKeyword => TsKeywordTypeKind::TsNeverKeyword,
131837            TsKeywordTypeKind::TsIntrinsicKeyword => TsKeywordTypeKind::TsIntrinsicKeyword,
131838        }
131839    }
131840}
131841#[cfg(any(docsrs, feature = "path"))]
131842#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131843impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsLit {
131844    #[doc = "Calls [FoldAstPath`::fold_ts_lit`] with `self`."]
131845    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131846        <V as FoldAstPath>::fold_ts_lit(visitor, self, __ast_path)
131847    }
131848
131849    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131850        match self {
131851            TsLit::Number { 0: _field_0 } => {
131852                let mut __ast_path =
131853                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Number));
131854                let _field_0 = <Number as FoldWithAstPath<V>>::fold_with_ast_path(
131855                    _field_0,
131856                    visitor,
131857                    &mut *__ast_path,
131858                );
131859                TsLit::Number { 0: _field_0 }
131860            }
131861            TsLit::Str { 0: _field_0 } => {
131862                let mut __ast_path =
131863                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Str));
131864                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
131865                    _field_0,
131866                    visitor,
131867                    &mut *__ast_path,
131868                );
131869                TsLit::Str { 0: _field_0 }
131870            }
131871            TsLit::Bool { 0: _field_0 } => {
131872                let mut __ast_path =
131873                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Bool));
131874                let _field_0 = <Bool as FoldWithAstPath<V>>::fold_with_ast_path(
131875                    _field_0,
131876                    visitor,
131877                    &mut *__ast_path,
131878                );
131879                TsLit::Bool { 0: _field_0 }
131880            }
131881            TsLit::BigInt { 0: _field_0 } => {
131882                let mut __ast_path =
131883                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::BigInt));
131884                let _field_0 = <BigInt as FoldWithAstPath<V>>::fold_with_ast_path(
131885                    _field_0,
131886                    visitor,
131887                    &mut *__ast_path,
131888                );
131889                TsLit::BigInt { 0: _field_0 }
131890            }
131891            TsLit::Tpl { 0: _field_0 } => {
131892                let mut __ast_path =
131893                    __ast_path.with_guard(AstParentKind::TsLit(self::fields::TsLitField::Tpl));
131894                let _field_0 = <TsTplLitType as FoldWithAstPath<V>>::fold_with_ast_path(
131895                    _field_0,
131896                    visitor,
131897                    &mut *__ast_path,
131898                );
131899                TsLit::Tpl { 0: _field_0 }
131900            }
131901        }
131902    }
131903}
131904#[cfg(any(docsrs, feature = "path"))]
131905#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131906impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsLitType {
131907    #[doc = "Calls [FoldAstPath`::fold_ts_lit_type`] with `self`."]
131908    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131909        <V as FoldAstPath>::fold_ts_lit_type(visitor, self, __ast_path)
131910    }
131911
131912    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131913        match self {
131914            TsLitType { span, lit } => {
131915                let span = {
131916                    let mut __ast_path = __ast_path
131917                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Span));
131918                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131919                        span,
131920                        visitor,
131921                        &mut *__ast_path,
131922                    )
131923                };
131924                let lit = {
131925                    let mut __ast_path = __ast_path
131926                        .with_guard(AstParentKind::TsLitType(self::fields::TsLitTypeField::Lit));
131927                    <TsLit as FoldWithAstPath<V>>::fold_with_ast_path(
131928                        lit,
131929                        visitor,
131930                        &mut *__ast_path,
131931                    )
131932                };
131933                TsLitType { span, lit }
131934            }
131935        }
131936    }
131937}
131938#[cfg(any(docsrs, feature = "path"))]
131939#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
131940impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsMappedType {
131941    #[doc = "Calls [FoldAstPath`::fold_ts_mapped_type`] with `self`."]
131942    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131943        <V as FoldAstPath>::fold_ts_mapped_type(visitor, self, __ast_path)
131944    }
131945
131946    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
131947        match self {
131948            TsMappedType {
131949                span,
131950                readonly,
131951                type_param,
131952                name_type,
131953                optional,
131954                type_ann,
131955            } => {
131956                let span = {
131957                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
131958                        self::fields::TsMappedTypeField::Span,
131959                    ));
131960                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
131961                        span,
131962                        visitor,
131963                        &mut *__ast_path,
131964                    )
131965                };
131966                let readonly = {
131967                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
131968                        self::fields::TsMappedTypeField::Readonly,
131969                    ));
131970                    <Option<TruePlusMinus> as FoldWithAstPath<V>>::fold_with_ast_path(
131971                        readonly,
131972                        visitor,
131973                        &mut *__ast_path,
131974                    )
131975                };
131976                let type_param = {
131977                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
131978                        self::fields::TsMappedTypeField::TypeParam,
131979                    ));
131980                    <TsTypeParam as FoldWithAstPath<V>>::fold_with_ast_path(
131981                        type_param,
131982                        visitor,
131983                        &mut *__ast_path,
131984                    )
131985                };
131986                let name_type = {
131987                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
131988                        self::fields::TsMappedTypeField::NameType,
131989                    ));
131990                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
131991                        name_type,
131992                        visitor,
131993                        &mut *__ast_path,
131994                    )
131995                };
131996                let optional = {
131997                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
131998                        self::fields::TsMappedTypeField::Optional,
131999                    ));
132000                    <Option<TruePlusMinus> as FoldWithAstPath<V>>::fold_with_ast_path(
132001                        optional,
132002                        visitor,
132003                        &mut *__ast_path,
132004                    )
132005                };
132006                let type_ann = {
132007                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMappedType(
132008                        self::fields::TsMappedTypeField::TypeAnn,
132009                    ));
132010                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
132011                        type_ann,
132012                        visitor,
132013                        &mut *__ast_path,
132014                    )
132015                };
132016                TsMappedType {
132017                    span,
132018                    readonly,
132019                    type_param,
132020                    name_type,
132021                    optional,
132022                    type_ann,
132023                }
132024            }
132025        }
132026    }
132027}
132028#[cfg(any(docsrs, feature = "path"))]
132029#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132030impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsMethodSignature {
132031    #[doc = "Calls [FoldAstPath`::fold_ts_method_signature`] with `self`."]
132032    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132033        <V as FoldAstPath>::fold_ts_method_signature(visitor, self, __ast_path)
132034    }
132035
132036    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132037        match self {
132038            TsMethodSignature {
132039                span,
132040                key,
132041                computed,
132042                optional,
132043                params,
132044                type_ann,
132045                type_params,
132046            } => {
132047                let span = {
132048                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132049                        self::fields::TsMethodSignatureField::Span,
132050                    ));
132051                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132052                        span,
132053                        visitor,
132054                        &mut *__ast_path,
132055                    )
132056                };
132057                let key = {
132058                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132059                        self::fields::TsMethodSignatureField::Key,
132060                    ));
132061                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132062                        key,
132063                        visitor,
132064                        &mut *__ast_path,
132065                    )
132066                };
132067                let params = {
132068                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132069                        self::fields::TsMethodSignatureField::Params(usize::MAX),
132070                    ));
132071                    <Vec<TsFnParam> as FoldWithAstPath<V>>::fold_with_ast_path(
132072                        params,
132073                        visitor,
132074                        &mut *__ast_path,
132075                    )
132076                };
132077                let type_ann = {
132078                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132079                        self::fields::TsMethodSignatureField::TypeAnn,
132080                    ));
132081                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
132082                        type_ann,
132083                        visitor,
132084                        &mut *__ast_path,
132085                    )
132086                };
132087                let type_params = {
132088                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsMethodSignature(
132089                        self::fields::TsMethodSignatureField::TypeParams,
132090                    ));
132091                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
132092                        type_params,
132093                        visitor,
132094                        &mut *__ast_path,
132095                    )
132096                };
132097                TsMethodSignature {
132098                    span,
132099                    key,
132100                    computed,
132101                    optional,
132102                    params,
132103                    type_ann,
132104                    type_params,
132105                }
132106            }
132107        }
132108    }
132109}
132110#[cfg(any(docsrs, feature = "path"))]
132111#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132112impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleBlock {
132113    #[doc = "Calls [FoldAstPath`::fold_ts_module_block`] with `self`."]
132114    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132115        <V as FoldAstPath>::fold_ts_module_block(visitor, self, __ast_path)
132116    }
132117
132118    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132119        match self {
132120            TsModuleBlock { span, body } => {
132121                let span = {
132122                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
132123                        self::fields::TsModuleBlockField::Span,
132124                    ));
132125                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132126                        span,
132127                        visitor,
132128                        &mut *__ast_path,
132129                    )
132130                };
132131                let body = {
132132                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleBlock(
132133                        self::fields::TsModuleBlockField::Body(usize::MAX),
132134                    ));
132135                    <Vec<ModuleItem> as FoldWithAstPath<V>>::fold_with_ast_path(
132136                        body,
132137                        visitor,
132138                        &mut *__ast_path,
132139                    )
132140                };
132141                TsModuleBlock { span, body }
132142            }
132143        }
132144    }
132145}
132146#[cfg(any(docsrs, feature = "path"))]
132147#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132148impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleDecl {
132149    #[doc = "Calls [FoldAstPath`::fold_ts_module_decl`] with `self`."]
132150    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132151        <V as FoldAstPath>::fold_ts_module_decl(visitor, self, __ast_path)
132152    }
132153
132154    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132155        match self {
132156            TsModuleDecl {
132157                span,
132158                declare,
132159                global,
132160                id,
132161                body,
132162            } => {
132163                let span = {
132164                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
132165                        self::fields::TsModuleDeclField::Span,
132166                    ));
132167                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132168                        span,
132169                        visitor,
132170                        &mut *__ast_path,
132171                    )
132172                };
132173                let id = {
132174                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
132175                        self::fields::TsModuleDeclField::Id,
132176                    ));
132177                    <TsModuleName as FoldWithAstPath<V>>::fold_with_ast_path(
132178                        id,
132179                        visitor,
132180                        &mut *__ast_path,
132181                    )
132182                };
132183                let body = {
132184                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleDecl(
132185                        self::fields::TsModuleDeclField::Body,
132186                    ));
132187                    <Option<TsNamespaceBody> as FoldWithAstPath<V>>::fold_with_ast_path(
132188                        body,
132189                        visitor,
132190                        &mut *__ast_path,
132191                    )
132192                };
132193                TsModuleDecl {
132194                    span,
132195                    declare,
132196                    global,
132197                    id,
132198                    body,
132199                }
132200            }
132201        }
132202    }
132203}
132204#[cfg(any(docsrs, feature = "path"))]
132205#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132206impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleName {
132207    #[doc = "Calls [FoldAstPath`::fold_ts_module_name`] with `self`."]
132208    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132209        <V as FoldAstPath>::fold_ts_module_name(visitor, self, __ast_path)
132210    }
132211
132212    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132213        match self {
132214            TsModuleName::Ident { 0: _field_0 } => {
132215                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
132216                    self::fields::TsModuleNameField::Ident,
132217                ));
132218                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
132219                    _field_0,
132220                    visitor,
132221                    &mut *__ast_path,
132222                );
132223                TsModuleName::Ident { 0: _field_0 }
132224            }
132225            TsModuleName::Str { 0: _field_0 } => {
132226                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleName(
132227                    self::fields::TsModuleNameField::Str,
132228                ));
132229                let _field_0 = <Str as FoldWithAstPath<V>>::fold_with_ast_path(
132230                    _field_0,
132231                    visitor,
132232                    &mut *__ast_path,
132233                );
132234                TsModuleName::Str { 0: _field_0 }
132235            }
132236        }
132237    }
132238}
132239#[cfg(any(docsrs, feature = "path"))]
132240#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132241impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsModuleRef {
132242    #[doc = "Calls [FoldAstPath`::fold_ts_module_ref`] with `self`."]
132243    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132244        <V as FoldAstPath>::fold_ts_module_ref(visitor, self, __ast_path)
132245    }
132246
132247    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132248        match self {
132249            TsModuleRef::TsEntityName { 0: _field_0 } => {
132250                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
132251                    self::fields::TsModuleRefField::TsEntityName,
132252                ));
132253                let _field_0 = <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
132254                    _field_0,
132255                    visitor,
132256                    &mut *__ast_path,
132257                );
132258                TsModuleRef::TsEntityName { 0: _field_0 }
132259            }
132260            TsModuleRef::TsExternalModuleRef { 0: _field_0 } => {
132261                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsModuleRef(
132262                    self::fields::TsModuleRefField::TsExternalModuleRef,
132263                ));
132264                let _field_0 = <TsExternalModuleRef as FoldWithAstPath<V>>::fold_with_ast_path(
132265                    _field_0,
132266                    visitor,
132267                    &mut *__ast_path,
132268                );
132269                TsModuleRef::TsExternalModuleRef { 0: _field_0 }
132270            }
132271        }
132272    }
132273}
132274#[cfg(any(docsrs, feature = "path"))]
132275#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132276impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNamespaceBody {
132277    #[doc = "Calls [FoldAstPath`::fold_ts_namespace_body`] with `self`."]
132278    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132279        <V as FoldAstPath>::fold_ts_namespace_body(visitor, self, __ast_path)
132280    }
132281
132282    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132283        match self {
132284            TsNamespaceBody::TsModuleBlock { 0: _field_0 } => {
132285                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
132286                    self::fields::TsNamespaceBodyField::TsModuleBlock,
132287                ));
132288                let _field_0 = <TsModuleBlock as FoldWithAstPath<V>>::fold_with_ast_path(
132289                    _field_0,
132290                    visitor,
132291                    &mut *__ast_path,
132292                );
132293                TsNamespaceBody::TsModuleBlock { 0: _field_0 }
132294            }
132295            TsNamespaceBody::TsNamespaceDecl { 0: _field_0 } => {
132296                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceBody(
132297                    self::fields::TsNamespaceBodyField::TsNamespaceDecl,
132298                ));
132299                let _field_0 = <TsNamespaceDecl as FoldWithAstPath<V>>::fold_with_ast_path(
132300                    _field_0,
132301                    visitor,
132302                    &mut *__ast_path,
132303                );
132304                TsNamespaceBody::TsNamespaceDecl { 0: _field_0 }
132305            }
132306        }
132307    }
132308}
132309#[cfg(any(docsrs, feature = "path"))]
132310#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132311impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNamespaceDecl {
132312    #[doc = "Calls [FoldAstPath`::fold_ts_namespace_decl`] with `self`."]
132313    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132314        <V as FoldAstPath>::fold_ts_namespace_decl(visitor, self, __ast_path)
132315    }
132316
132317    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132318        match self {
132319            TsNamespaceDecl {
132320                span,
132321                declare,
132322                global,
132323                id,
132324                body,
132325            } => {
132326                let span = {
132327                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
132328                        self::fields::TsNamespaceDeclField::Span,
132329                    ));
132330                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132331                        span,
132332                        visitor,
132333                        &mut *__ast_path,
132334                    )
132335                };
132336                let id = {
132337                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
132338                        self::fields::TsNamespaceDeclField::Id,
132339                    ));
132340                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
132341                };
132342                let body = {
132343                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNamespaceDecl(
132344                        self::fields::TsNamespaceDeclField::Body,
132345                    ));
132346                    <Box<TsNamespaceBody> as FoldWithAstPath<V>>::fold_with_ast_path(
132347                        body,
132348                        visitor,
132349                        &mut *__ast_path,
132350                    )
132351                };
132352                TsNamespaceDecl {
132353                    span,
132354                    declare,
132355                    global,
132356                    id,
132357                    body,
132358                }
132359            }
132360        }
132361    }
132362}
132363#[cfg(any(docsrs, feature = "path"))]
132364#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132365impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNamespaceExportDecl {
132366    #[doc = "Calls [FoldAstPath`::fold_ts_namespace_export_decl`] with `self`."]
132367    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132368        <V as FoldAstPath>::fold_ts_namespace_export_decl(visitor, self, __ast_path)
132369    }
132370
132371    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132372        match self {
132373            TsNamespaceExportDecl { span, id } => {
132374                let span = {
132375                    let mut __ast_path =
132376                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
132377                            self::fields::TsNamespaceExportDeclField::Span,
132378                        ));
132379                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132380                        span,
132381                        visitor,
132382                        &mut *__ast_path,
132383                    )
132384                };
132385                let id = {
132386                    let mut __ast_path =
132387                        __ast_path.with_guard(AstParentKind::TsNamespaceExportDecl(
132388                            self::fields::TsNamespaceExportDeclField::Id,
132389                        ));
132390                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
132391                };
132392                TsNamespaceExportDecl { span, id }
132393            }
132394        }
132395    }
132396}
132397#[cfg(any(docsrs, feature = "path"))]
132398#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132399impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsNonNullExpr {
132400    #[doc = "Calls [FoldAstPath`::fold_ts_non_null_expr`] with `self`."]
132401    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132402        <V as FoldAstPath>::fold_ts_non_null_expr(visitor, self, __ast_path)
132403    }
132404
132405    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132406        match self {
132407            TsNonNullExpr { span, expr } => {
132408                let span = {
132409                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
132410                        self::fields::TsNonNullExprField::Span,
132411                    ));
132412                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132413                        span,
132414                        visitor,
132415                        &mut *__ast_path,
132416                    )
132417                };
132418                let expr = {
132419                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsNonNullExpr(
132420                        self::fields::TsNonNullExprField::Expr,
132421                    ));
132422                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132423                        expr,
132424                        visitor,
132425                        &mut *__ast_path,
132426                    )
132427                };
132428                TsNonNullExpr { span, expr }
132429            }
132430        }
132431    }
132432}
132433#[cfg(any(docsrs, feature = "path"))]
132434#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132435impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsOptionalType {
132436    #[doc = "Calls [FoldAstPath`::fold_ts_optional_type`] with `self`."]
132437    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132438        <V as FoldAstPath>::fold_ts_optional_type(visitor, self, __ast_path)
132439    }
132440
132441    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132442        match self {
132443            TsOptionalType { span, type_ann } => {
132444                let span = {
132445                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
132446                        self::fields::TsOptionalTypeField::Span,
132447                    ));
132448                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132449                        span,
132450                        visitor,
132451                        &mut *__ast_path,
132452                    )
132453                };
132454                let type_ann = {
132455                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsOptionalType(
132456                        self::fields::TsOptionalTypeField::TypeAnn,
132457                    ));
132458                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
132459                        type_ann,
132460                        visitor,
132461                        &mut *__ast_path,
132462                    )
132463                };
132464                TsOptionalType { span, type_ann }
132465            }
132466        }
132467    }
132468}
132469#[cfg(any(docsrs, feature = "path"))]
132470#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132471impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsParamProp {
132472    #[doc = "Calls [FoldAstPath`::fold_ts_param_prop`] with `self`."]
132473    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132474        <V as FoldAstPath>::fold_ts_param_prop(visitor, self, __ast_path)
132475    }
132476
132477    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132478        match self {
132479            TsParamProp {
132480                span,
132481                decorators,
132482                accessibility,
132483                is_override,
132484                readonly,
132485                param,
132486            } => {
132487                let span = {
132488                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
132489                        self::fields::TsParamPropField::Span,
132490                    ));
132491                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132492                        span,
132493                        visitor,
132494                        &mut *__ast_path,
132495                    )
132496                };
132497                let decorators = {
132498                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
132499                        self::fields::TsParamPropField::Decorators(usize::MAX),
132500                    ));
132501                    <Vec<Decorator> as FoldWithAstPath<V>>::fold_with_ast_path(
132502                        decorators,
132503                        visitor,
132504                        &mut *__ast_path,
132505                    )
132506                };
132507                let accessibility = {
132508                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
132509                        self::fields::TsParamPropField::Accessibility,
132510                    ));
132511                    <Option<Accessibility> as FoldWithAstPath<V>>::fold_with_ast_path(
132512                        accessibility,
132513                        visitor,
132514                        &mut *__ast_path,
132515                    )
132516                };
132517                let param = {
132518                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamProp(
132519                        self::fields::TsParamPropField::Param,
132520                    ));
132521                    <TsParamPropParam as FoldWithAstPath<V>>::fold_with_ast_path(
132522                        param,
132523                        visitor,
132524                        &mut *__ast_path,
132525                    )
132526                };
132527                TsParamProp {
132528                    span,
132529                    decorators,
132530                    accessibility,
132531                    is_override,
132532                    readonly,
132533                    param,
132534                }
132535            }
132536        }
132537    }
132538}
132539#[cfg(any(docsrs, feature = "path"))]
132540#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132541impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsParamPropParam {
132542    #[doc = "Calls [FoldAstPath`::fold_ts_param_prop_param`] with `self`."]
132543    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132544        <V as FoldAstPath>::fold_ts_param_prop_param(visitor, self, __ast_path)
132545    }
132546
132547    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132548        match self {
132549            TsParamPropParam::Ident { 0: _field_0 } => {
132550                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
132551                    self::fields::TsParamPropParamField::Ident,
132552                ));
132553                let _field_0 = <BindingIdent as FoldWithAstPath<V>>::fold_with_ast_path(
132554                    _field_0,
132555                    visitor,
132556                    &mut *__ast_path,
132557                );
132558                TsParamPropParam::Ident { 0: _field_0 }
132559            }
132560            TsParamPropParam::Assign { 0: _field_0 } => {
132561                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParamPropParam(
132562                    self::fields::TsParamPropParamField::Assign,
132563                ));
132564                let _field_0 = <AssignPat as FoldWithAstPath<V>>::fold_with_ast_path(
132565                    _field_0,
132566                    visitor,
132567                    &mut *__ast_path,
132568                );
132569                TsParamPropParam::Assign { 0: _field_0 }
132570            }
132571        }
132572    }
132573}
132574#[cfg(any(docsrs, feature = "path"))]
132575#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132576impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsParenthesizedType {
132577    #[doc = "Calls [FoldAstPath`::fold_ts_parenthesized_type`] with `self`."]
132578    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132579        <V as FoldAstPath>::fold_ts_parenthesized_type(visitor, self, __ast_path)
132580    }
132581
132582    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132583        match self {
132584            TsParenthesizedType { span, type_ann } => {
132585                let span = {
132586                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
132587                        self::fields::TsParenthesizedTypeField::Span,
132588                    ));
132589                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132590                        span,
132591                        visitor,
132592                        &mut *__ast_path,
132593                    )
132594                };
132595                let type_ann = {
132596                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsParenthesizedType(
132597                        self::fields::TsParenthesizedTypeField::TypeAnn,
132598                    ));
132599                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
132600                        type_ann,
132601                        visitor,
132602                        &mut *__ast_path,
132603                    )
132604                };
132605                TsParenthesizedType { span, type_ann }
132606            }
132607        }
132608    }
132609}
132610#[cfg(any(docsrs, feature = "path"))]
132611#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132612impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsPropertySignature {
132613    #[doc = "Calls [FoldAstPath`::fold_ts_property_signature`] with `self`."]
132614    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132615        <V as FoldAstPath>::fold_ts_property_signature(visitor, self, __ast_path)
132616    }
132617
132618    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132619        match self {
132620            TsPropertySignature {
132621                span,
132622                readonly,
132623                key,
132624                computed,
132625                optional,
132626                type_ann,
132627            } => {
132628                let span = {
132629                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
132630                        self::fields::TsPropertySignatureField::Span,
132631                    ));
132632                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132633                        span,
132634                        visitor,
132635                        &mut *__ast_path,
132636                    )
132637                };
132638                let key = {
132639                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
132640                        self::fields::TsPropertySignatureField::Key,
132641                    ));
132642                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132643                        key,
132644                        visitor,
132645                        &mut *__ast_path,
132646                    )
132647                };
132648                let type_ann = {
132649                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsPropertySignature(
132650                        self::fields::TsPropertySignatureField::TypeAnn,
132651                    ));
132652                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
132653                        type_ann,
132654                        visitor,
132655                        &mut *__ast_path,
132656                    )
132657                };
132658                TsPropertySignature {
132659                    span,
132660                    readonly,
132661                    key,
132662                    computed,
132663                    optional,
132664                    type_ann,
132665                }
132666            }
132667        }
132668    }
132669}
132670#[cfg(any(docsrs, feature = "path"))]
132671#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132672impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsQualifiedName {
132673    #[doc = "Calls [FoldAstPath`::fold_ts_qualified_name`] with `self`."]
132674    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132675        <V as FoldAstPath>::fold_ts_qualified_name(visitor, self, __ast_path)
132676    }
132677
132678    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132679        match self {
132680            TsQualifiedName { span, left, right } => {
132681                let span = {
132682                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
132683                        self::fields::TsQualifiedNameField::Span,
132684                    ));
132685                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132686                        span,
132687                        visitor,
132688                        &mut *__ast_path,
132689                    )
132690                };
132691                let left = {
132692                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
132693                        self::fields::TsQualifiedNameField::Left,
132694                    ));
132695                    <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
132696                        left,
132697                        visitor,
132698                        &mut *__ast_path,
132699                    )
132700                };
132701                let right = {
132702                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsQualifiedName(
132703                        self::fields::TsQualifiedNameField::Right,
132704                    ));
132705                    <IdentName as FoldWithAstPath<V>>::fold_with_ast_path(
132706                        right,
132707                        visitor,
132708                        &mut *__ast_path,
132709                    )
132710                };
132711                TsQualifiedName { span, left, right }
132712            }
132713        }
132714    }
132715}
132716#[cfg(any(docsrs, feature = "path"))]
132717#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132718impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsRestType {
132719    #[doc = "Calls [FoldAstPath`::fold_ts_rest_type`] with `self`."]
132720    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132721        <V as FoldAstPath>::fold_ts_rest_type(visitor, self, __ast_path)
132722    }
132723
132724    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132725        match self {
132726            TsRestType { span, type_ann } => {
132727                let span = {
132728                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
132729                        self::fields::TsRestTypeField::Span,
132730                    ));
132731                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132732                        span,
132733                        visitor,
132734                        &mut *__ast_path,
132735                    )
132736                };
132737                let type_ann = {
132738                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsRestType(
132739                        self::fields::TsRestTypeField::TypeAnn,
132740                    ));
132741                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
132742                        type_ann,
132743                        visitor,
132744                        &mut *__ast_path,
132745                    )
132746                };
132747                TsRestType { span, type_ann }
132748            }
132749        }
132750    }
132751}
132752#[cfg(any(docsrs, feature = "path"))]
132753#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132754impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsSatisfiesExpr {
132755    #[doc = "Calls [FoldAstPath`::fold_ts_satisfies_expr`] with `self`."]
132756    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132757        <V as FoldAstPath>::fold_ts_satisfies_expr(visitor, self, __ast_path)
132758    }
132759
132760    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132761        match self {
132762            TsSatisfiesExpr {
132763                span,
132764                expr,
132765                type_ann,
132766            } => {
132767                let span = {
132768                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
132769                        self::fields::TsSatisfiesExprField::Span,
132770                    ));
132771                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132772                        span,
132773                        visitor,
132774                        &mut *__ast_path,
132775                    )
132776                };
132777                let expr = {
132778                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
132779                        self::fields::TsSatisfiesExprField::Expr,
132780                    ));
132781                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132782                        expr,
132783                        visitor,
132784                        &mut *__ast_path,
132785                    )
132786                };
132787                let type_ann = {
132788                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSatisfiesExpr(
132789                        self::fields::TsSatisfiesExprField::TypeAnn,
132790                    ));
132791                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
132792                        type_ann,
132793                        visitor,
132794                        &mut *__ast_path,
132795                    )
132796                };
132797                TsSatisfiesExpr {
132798                    span,
132799                    expr,
132800                    type_ann,
132801                }
132802            }
132803        }
132804    }
132805}
132806#[cfg(any(docsrs, feature = "path"))]
132807#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132808impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsSetterSignature {
132809    #[doc = "Calls [FoldAstPath`::fold_ts_setter_signature`] with `self`."]
132810    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132811        <V as FoldAstPath>::fold_ts_setter_signature(visitor, self, __ast_path)
132812    }
132813
132814    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132815        match self {
132816            TsSetterSignature {
132817                span,
132818                key,
132819                computed,
132820                param,
132821            } => {
132822                let span = {
132823                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
132824                        self::fields::TsSetterSignatureField::Span,
132825                    ));
132826                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132827                        span,
132828                        visitor,
132829                        &mut *__ast_path,
132830                    )
132831                };
132832                let key = {
132833                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
132834                        self::fields::TsSetterSignatureField::Key,
132835                    ));
132836                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
132837                        key,
132838                        visitor,
132839                        &mut *__ast_path,
132840                    )
132841                };
132842                let param = {
132843                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsSetterSignature(
132844                        self::fields::TsSetterSignatureField::Param,
132845                    ));
132846                    <TsFnParam as FoldWithAstPath<V>>::fold_with_ast_path(
132847                        param,
132848                        visitor,
132849                        &mut *__ast_path,
132850                    )
132851                };
132852                TsSetterSignature {
132853                    span,
132854                    key,
132855                    computed,
132856                    param,
132857                }
132858            }
132859        }
132860    }
132861}
132862#[cfg(any(docsrs, feature = "path"))]
132863#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132864impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsThisType {
132865    #[doc = "Calls [FoldAstPath`::fold_ts_this_type`] with `self`."]
132866    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132867        <V as FoldAstPath>::fold_ts_this_type(visitor, self, __ast_path)
132868    }
132869
132870    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132871        match self {
132872            TsThisType { span } => {
132873                let span = {
132874                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisType(
132875                        self::fields::TsThisTypeField::Span,
132876                    ));
132877                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132878                        span,
132879                        visitor,
132880                        &mut *__ast_path,
132881                    )
132882                };
132883                TsThisType { span }
132884            }
132885        }
132886    }
132887}
132888#[cfg(any(docsrs, feature = "path"))]
132889#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132890impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsThisTypeOrIdent {
132891    #[doc = "Calls [FoldAstPath`::fold_ts_this_type_or_ident`] with `self`."]
132892    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132893        <V as FoldAstPath>::fold_ts_this_type_or_ident(visitor, self, __ast_path)
132894    }
132895
132896    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132897        match self {
132898            TsThisTypeOrIdent::TsThisType { 0: _field_0 } => {
132899                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
132900                    self::fields::TsThisTypeOrIdentField::TsThisType,
132901                ));
132902                let _field_0 = <TsThisType as FoldWithAstPath<V>>::fold_with_ast_path(
132903                    _field_0,
132904                    visitor,
132905                    &mut *__ast_path,
132906                );
132907                TsThisTypeOrIdent::TsThisType { 0: _field_0 }
132908            }
132909            TsThisTypeOrIdent::Ident { 0: _field_0 } => {
132910                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsThisTypeOrIdent(
132911                    self::fields::TsThisTypeOrIdentField::Ident,
132912                ));
132913                let _field_0 = <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
132914                    _field_0,
132915                    visitor,
132916                    &mut *__ast_path,
132917                );
132918                TsThisTypeOrIdent::Ident { 0: _field_0 }
132919            }
132920        }
132921    }
132922}
132923#[cfg(any(docsrs, feature = "path"))]
132924#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132925impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTplLitType {
132926    #[doc = "Calls [FoldAstPath`::fold_ts_tpl_lit_type`] with `self`."]
132927    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132928        <V as FoldAstPath>::fold_ts_tpl_lit_type(visitor, self, __ast_path)
132929    }
132930
132931    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132932        match self {
132933            TsTplLitType {
132934                span,
132935                types,
132936                quasis,
132937            } => {
132938                let span = {
132939                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
132940                        self::fields::TsTplLitTypeField::Span,
132941                    ));
132942                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132943                        span,
132944                        visitor,
132945                        &mut *__ast_path,
132946                    )
132947                };
132948                let types = {
132949                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
132950                        self::fields::TsTplLitTypeField::Types(usize::MAX),
132951                    ));
132952                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
132953                        types,
132954                        visitor,
132955                        &mut *__ast_path,
132956                    )
132957                };
132958                let quasis = {
132959                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTplLitType(
132960                        self::fields::TsTplLitTypeField::Quasis(usize::MAX),
132961                    ));
132962                    <Vec<TplElement> as FoldWithAstPath<V>>::fold_with_ast_path(
132963                        quasis,
132964                        visitor,
132965                        &mut *__ast_path,
132966                    )
132967                };
132968                TsTplLitType {
132969                    span,
132970                    types,
132971                    quasis,
132972                }
132973            }
132974        }
132975    }
132976}
132977#[cfg(any(docsrs, feature = "path"))]
132978#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
132979impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTupleElement {
132980    #[doc = "Calls [FoldAstPath`::fold_ts_tuple_element`] with `self`."]
132981    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132982        <V as FoldAstPath>::fold_ts_tuple_element(visitor, self, __ast_path)
132983    }
132984
132985    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
132986        match self {
132987            TsTupleElement { span, label, ty } => {
132988                let span = {
132989                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
132990                        self::fields::TsTupleElementField::Span,
132991                    ));
132992                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
132993                        span,
132994                        visitor,
132995                        &mut *__ast_path,
132996                    )
132997                };
132998                let label = {
132999                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
133000                        self::fields::TsTupleElementField::Label,
133001                    ));
133002                    <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
133003                        label,
133004                        visitor,
133005                        &mut *__ast_path,
133006                    )
133007                };
133008                let ty = {
133009                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleElement(
133010                        self::fields::TsTupleElementField::Ty,
133011                    ));
133012                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133013                        ty,
133014                        visitor,
133015                        &mut *__ast_path,
133016                    )
133017                };
133018                TsTupleElement { span, label, ty }
133019            }
133020        }
133021    }
133022}
133023#[cfg(any(docsrs, feature = "path"))]
133024#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133025impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTupleType {
133026    #[doc = "Calls [FoldAstPath`::fold_ts_tuple_type`] with `self`."]
133027    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133028        <V as FoldAstPath>::fold_ts_tuple_type(visitor, self, __ast_path)
133029    }
133030
133031    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133032        match self {
133033            TsTupleType { span, elem_types } => {
133034                let span = {
133035                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
133036                        self::fields::TsTupleTypeField::Span,
133037                    ));
133038                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133039                        span,
133040                        visitor,
133041                        &mut *__ast_path,
133042                    )
133043                };
133044                let elem_types = {
133045                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTupleType(
133046                        self::fields::TsTupleTypeField::ElemTypes(usize::MAX),
133047                    ));
133048                    <Vec<TsTupleElement> as FoldWithAstPath<V>>::fold_with_ast_path(
133049                        elem_types,
133050                        visitor,
133051                        &mut *__ast_path,
133052                    )
133053                };
133054                TsTupleType { span, elem_types }
133055            }
133056        }
133057    }
133058}
133059#[cfg(any(docsrs, feature = "path"))]
133060#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133061impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsType {
133062    #[doc = "Calls [FoldAstPath`::fold_ts_type`] with `self`."]
133063    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133064        <V as FoldAstPath>::fold_ts_type(visitor, self, __ast_path)
133065    }
133066
133067    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133068        match self {
133069            TsType::TsKeywordType { 0: _field_0 } => {
133070                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133071                    self::fields::TsTypeField::TsKeywordType,
133072                ));
133073                let _field_0 = <TsKeywordType as FoldWithAstPath<V>>::fold_with_ast_path(
133074                    _field_0,
133075                    visitor,
133076                    &mut *__ast_path,
133077                );
133078                TsType::TsKeywordType { 0: _field_0 }
133079            }
133080            TsType::TsThisType { 0: _field_0 } => {
133081                let mut __ast_path = __ast_path
133082                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsThisType));
133083                let _field_0 = <TsThisType as FoldWithAstPath<V>>::fold_with_ast_path(
133084                    _field_0,
133085                    visitor,
133086                    &mut *__ast_path,
133087                );
133088                TsType::TsThisType { 0: _field_0 }
133089            }
133090            TsType::TsFnOrConstructorType { 0: _field_0 } => {
133091                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133092                    self::fields::TsTypeField::TsFnOrConstructorType,
133093                ));
133094                let _field_0 = <TsFnOrConstructorType as FoldWithAstPath<V>>::fold_with_ast_path(
133095                    _field_0,
133096                    visitor,
133097                    &mut *__ast_path,
133098                );
133099                TsType::TsFnOrConstructorType { 0: _field_0 }
133100            }
133101            TsType::TsTypeRef { 0: _field_0 } => {
133102                let mut __ast_path = __ast_path
133103                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeRef));
133104                let _field_0 = <TsTypeRef as FoldWithAstPath<V>>::fold_with_ast_path(
133105                    _field_0,
133106                    visitor,
133107                    &mut *__ast_path,
133108                );
133109                TsType::TsTypeRef { 0: _field_0 }
133110            }
133111            TsType::TsTypeQuery { 0: _field_0 } => {
133112                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133113                    self::fields::TsTypeField::TsTypeQuery,
133114                ));
133115                let _field_0 = <TsTypeQuery as FoldWithAstPath<V>>::fold_with_ast_path(
133116                    _field_0,
133117                    visitor,
133118                    &mut *__ast_path,
133119                );
133120                TsType::TsTypeQuery { 0: _field_0 }
133121            }
133122            TsType::TsTypeLit { 0: _field_0 } => {
133123                let mut __ast_path = __ast_path
133124                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsTypeLit));
133125                let _field_0 = <TsTypeLit as FoldWithAstPath<V>>::fold_with_ast_path(
133126                    _field_0,
133127                    visitor,
133128                    &mut *__ast_path,
133129                );
133130                TsType::TsTypeLit { 0: _field_0 }
133131            }
133132            TsType::TsArrayType { 0: _field_0 } => {
133133                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133134                    self::fields::TsTypeField::TsArrayType,
133135                ));
133136                let _field_0 = <TsArrayType as FoldWithAstPath<V>>::fold_with_ast_path(
133137                    _field_0,
133138                    visitor,
133139                    &mut *__ast_path,
133140                );
133141                TsType::TsArrayType { 0: _field_0 }
133142            }
133143            TsType::TsTupleType { 0: _field_0 } => {
133144                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133145                    self::fields::TsTypeField::TsTupleType,
133146                ));
133147                let _field_0 = <TsTupleType as FoldWithAstPath<V>>::fold_with_ast_path(
133148                    _field_0,
133149                    visitor,
133150                    &mut *__ast_path,
133151                );
133152                TsType::TsTupleType { 0: _field_0 }
133153            }
133154            TsType::TsOptionalType { 0: _field_0 } => {
133155                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133156                    self::fields::TsTypeField::TsOptionalType,
133157                ));
133158                let _field_0 = <TsOptionalType as FoldWithAstPath<V>>::fold_with_ast_path(
133159                    _field_0,
133160                    visitor,
133161                    &mut *__ast_path,
133162                );
133163                TsType::TsOptionalType { 0: _field_0 }
133164            }
133165            TsType::TsRestType { 0: _field_0 } => {
133166                let mut __ast_path = __ast_path
133167                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsRestType));
133168                let _field_0 = <TsRestType as FoldWithAstPath<V>>::fold_with_ast_path(
133169                    _field_0,
133170                    visitor,
133171                    &mut *__ast_path,
133172                );
133173                TsType::TsRestType { 0: _field_0 }
133174            }
133175            TsType::TsUnionOrIntersectionType { 0: _field_0 } => {
133176                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133177                    self::fields::TsTypeField::TsUnionOrIntersectionType,
133178                ));
133179                let _field_0 =
133180                    <TsUnionOrIntersectionType as FoldWithAstPath<V>>::fold_with_ast_path(
133181                        _field_0,
133182                        visitor,
133183                        &mut *__ast_path,
133184                    );
133185                TsType::TsUnionOrIntersectionType { 0: _field_0 }
133186            }
133187            TsType::TsConditionalType { 0: _field_0 } => {
133188                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133189                    self::fields::TsTypeField::TsConditionalType,
133190                ));
133191                let _field_0 = <TsConditionalType as FoldWithAstPath<V>>::fold_with_ast_path(
133192                    _field_0,
133193                    visitor,
133194                    &mut *__ast_path,
133195                );
133196                TsType::TsConditionalType { 0: _field_0 }
133197            }
133198            TsType::TsInferType { 0: _field_0 } => {
133199                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133200                    self::fields::TsTypeField::TsInferType,
133201                ));
133202                let _field_0 = <TsInferType as FoldWithAstPath<V>>::fold_with_ast_path(
133203                    _field_0,
133204                    visitor,
133205                    &mut *__ast_path,
133206                );
133207                TsType::TsInferType { 0: _field_0 }
133208            }
133209            TsType::TsParenthesizedType { 0: _field_0 } => {
133210                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133211                    self::fields::TsTypeField::TsParenthesizedType,
133212                ));
133213                let _field_0 = <TsParenthesizedType as FoldWithAstPath<V>>::fold_with_ast_path(
133214                    _field_0,
133215                    visitor,
133216                    &mut *__ast_path,
133217                );
133218                TsType::TsParenthesizedType { 0: _field_0 }
133219            }
133220            TsType::TsTypeOperator { 0: _field_0 } => {
133221                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133222                    self::fields::TsTypeField::TsTypeOperator,
133223                ));
133224                let _field_0 = <TsTypeOperator as FoldWithAstPath<V>>::fold_with_ast_path(
133225                    _field_0,
133226                    visitor,
133227                    &mut *__ast_path,
133228                );
133229                TsType::TsTypeOperator { 0: _field_0 }
133230            }
133231            TsType::TsIndexedAccessType { 0: _field_0 } => {
133232                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133233                    self::fields::TsTypeField::TsIndexedAccessType,
133234                ));
133235                let _field_0 = <TsIndexedAccessType as FoldWithAstPath<V>>::fold_with_ast_path(
133236                    _field_0,
133237                    visitor,
133238                    &mut *__ast_path,
133239                );
133240                TsType::TsIndexedAccessType { 0: _field_0 }
133241            }
133242            TsType::TsMappedType { 0: _field_0 } => {
133243                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133244                    self::fields::TsTypeField::TsMappedType,
133245                ));
133246                let _field_0 = <TsMappedType as FoldWithAstPath<V>>::fold_with_ast_path(
133247                    _field_0,
133248                    visitor,
133249                    &mut *__ast_path,
133250                );
133251                TsType::TsMappedType { 0: _field_0 }
133252            }
133253            TsType::TsLitType { 0: _field_0 } => {
133254                let mut __ast_path = __ast_path
133255                    .with_guard(AstParentKind::TsType(self::fields::TsTypeField::TsLitType));
133256                let _field_0 = <TsLitType as FoldWithAstPath<V>>::fold_with_ast_path(
133257                    _field_0,
133258                    visitor,
133259                    &mut *__ast_path,
133260                );
133261                TsType::TsLitType { 0: _field_0 }
133262            }
133263            TsType::TsTypePredicate { 0: _field_0 } => {
133264                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133265                    self::fields::TsTypeField::TsTypePredicate,
133266                ));
133267                let _field_0 = <TsTypePredicate as FoldWithAstPath<V>>::fold_with_ast_path(
133268                    _field_0,
133269                    visitor,
133270                    &mut *__ast_path,
133271                );
133272                TsType::TsTypePredicate { 0: _field_0 }
133273            }
133274            TsType::TsImportType { 0: _field_0 } => {
133275                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsType(
133276                    self::fields::TsTypeField::TsImportType,
133277                ));
133278                let _field_0 = <TsImportType as FoldWithAstPath<V>>::fold_with_ast_path(
133279                    _field_0,
133280                    visitor,
133281                    &mut *__ast_path,
133282                );
133283                TsType::TsImportType { 0: _field_0 }
133284            }
133285        }
133286    }
133287}
133288#[cfg(any(docsrs, feature = "path"))]
133289#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133290impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeAliasDecl {
133291    #[doc = "Calls [FoldAstPath`::fold_ts_type_alias_decl`] with `self`."]
133292    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133293        <V as FoldAstPath>::fold_ts_type_alias_decl(visitor, self, __ast_path)
133294    }
133295
133296    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133297        match self {
133298            TsTypeAliasDecl {
133299                span,
133300                declare,
133301                id,
133302                type_params,
133303                type_ann,
133304            } => {
133305                let span = {
133306                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
133307                        self::fields::TsTypeAliasDeclField::Span,
133308                    ));
133309                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133310                        span,
133311                        visitor,
133312                        &mut *__ast_path,
133313                    )
133314                };
133315                let id = {
133316                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
133317                        self::fields::TsTypeAliasDeclField::Id,
133318                    ));
133319                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(id, visitor, &mut *__ast_path)
133320                };
133321                let type_params = {
133322                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
133323                        self::fields::TsTypeAliasDeclField::TypeParams,
133324                    ));
133325                    <Option<Box<TsTypeParamDecl>> as FoldWithAstPath<V>>::fold_with_ast_path(
133326                        type_params,
133327                        visitor,
133328                        &mut *__ast_path,
133329                    )
133330                };
133331                let type_ann = {
133332                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAliasDecl(
133333                        self::fields::TsTypeAliasDeclField::TypeAnn,
133334                    ));
133335                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133336                        type_ann,
133337                        visitor,
133338                        &mut *__ast_path,
133339                    )
133340                };
133341                TsTypeAliasDecl {
133342                    span,
133343                    declare,
133344                    id,
133345                    type_params,
133346                    type_ann,
133347                }
133348            }
133349        }
133350    }
133351}
133352#[cfg(any(docsrs, feature = "path"))]
133353#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133354impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeAnn {
133355    #[doc = "Calls [FoldAstPath`::fold_ts_type_ann`] with `self`."]
133356    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133357        <V as FoldAstPath>::fold_ts_type_ann(visitor, self, __ast_path)
133358    }
133359
133360    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133361        match self {
133362            TsTypeAnn { span, type_ann } => {
133363                let span = {
133364                    let mut __ast_path = __ast_path
133365                        .with_guard(AstParentKind::TsTypeAnn(self::fields::TsTypeAnnField::Span));
133366                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133367                        span,
133368                        visitor,
133369                        &mut *__ast_path,
133370                    )
133371                };
133372                let type_ann = {
133373                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAnn(
133374                        self::fields::TsTypeAnnField::TypeAnn,
133375                    ));
133376                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133377                        type_ann,
133378                        visitor,
133379                        &mut *__ast_path,
133380                    )
133381                };
133382                TsTypeAnn { span, type_ann }
133383            }
133384        }
133385    }
133386}
133387#[cfg(any(docsrs, feature = "path"))]
133388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133389impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeAssertion {
133390    #[doc = "Calls [FoldAstPath`::fold_ts_type_assertion`] with `self`."]
133391    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133392        <V as FoldAstPath>::fold_ts_type_assertion(visitor, self, __ast_path)
133393    }
133394
133395    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133396        match self {
133397            TsTypeAssertion {
133398                span,
133399                expr,
133400                type_ann,
133401            } => {
133402                let span = {
133403                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
133404                        self::fields::TsTypeAssertionField::Span,
133405                    ));
133406                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133407                        span,
133408                        visitor,
133409                        &mut *__ast_path,
133410                    )
133411                };
133412                let expr = {
133413                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
133414                        self::fields::TsTypeAssertionField::Expr,
133415                    ));
133416                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
133417                        expr,
133418                        visitor,
133419                        &mut *__ast_path,
133420                    )
133421                };
133422                let type_ann = {
133423                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeAssertion(
133424                        self::fields::TsTypeAssertionField::TypeAnn,
133425                    ));
133426                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133427                        type_ann,
133428                        visitor,
133429                        &mut *__ast_path,
133430                    )
133431                };
133432                TsTypeAssertion {
133433                    span,
133434                    expr,
133435                    type_ann,
133436                }
133437            }
133438        }
133439    }
133440}
133441#[cfg(any(docsrs, feature = "path"))]
133442#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133443impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeElement {
133444    #[doc = "Calls [FoldAstPath`::fold_ts_type_element`] with `self`."]
133445    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133446        <V as FoldAstPath>::fold_ts_type_element(visitor, self, __ast_path)
133447    }
133448
133449    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133450        match self {
133451            TsTypeElement::TsCallSignatureDecl { 0: _field_0 } => {
133452                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133453                    self::fields::TsTypeElementField::TsCallSignatureDecl,
133454                ));
133455                let _field_0 = <TsCallSignatureDecl as FoldWithAstPath<V>>::fold_with_ast_path(
133456                    _field_0,
133457                    visitor,
133458                    &mut *__ast_path,
133459                );
133460                TsTypeElement::TsCallSignatureDecl { 0: _field_0 }
133461            }
133462            TsTypeElement::TsConstructSignatureDecl { 0: _field_0 } => {
133463                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133464                    self::fields::TsTypeElementField::TsConstructSignatureDecl,
133465                ));
133466                let _field_0 = <TsConstructSignatureDecl as FoldWithAstPath<V>>::fold_with_ast_path(
133467                    _field_0,
133468                    visitor,
133469                    &mut *__ast_path,
133470                );
133471                TsTypeElement::TsConstructSignatureDecl { 0: _field_0 }
133472            }
133473            TsTypeElement::TsPropertySignature { 0: _field_0 } => {
133474                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133475                    self::fields::TsTypeElementField::TsPropertySignature,
133476                ));
133477                let _field_0 = <TsPropertySignature as FoldWithAstPath<V>>::fold_with_ast_path(
133478                    _field_0,
133479                    visitor,
133480                    &mut *__ast_path,
133481                );
133482                TsTypeElement::TsPropertySignature { 0: _field_0 }
133483            }
133484            TsTypeElement::TsGetterSignature { 0: _field_0 } => {
133485                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133486                    self::fields::TsTypeElementField::TsGetterSignature,
133487                ));
133488                let _field_0 = <TsGetterSignature as FoldWithAstPath<V>>::fold_with_ast_path(
133489                    _field_0,
133490                    visitor,
133491                    &mut *__ast_path,
133492                );
133493                TsTypeElement::TsGetterSignature { 0: _field_0 }
133494            }
133495            TsTypeElement::TsSetterSignature { 0: _field_0 } => {
133496                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133497                    self::fields::TsTypeElementField::TsSetterSignature,
133498                ));
133499                let _field_0 = <TsSetterSignature as FoldWithAstPath<V>>::fold_with_ast_path(
133500                    _field_0,
133501                    visitor,
133502                    &mut *__ast_path,
133503                );
133504                TsTypeElement::TsSetterSignature { 0: _field_0 }
133505            }
133506            TsTypeElement::TsMethodSignature { 0: _field_0 } => {
133507                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133508                    self::fields::TsTypeElementField::TsMethodSignature,
133509                ));
133510                let _field_0 = <TsMethodSignature as FoldWithAstPath<V>>::fold_with_ast_path(
133511                    _field_0,
133512                    visitor,
133513                    &mut *__ast_path,
133514                );
133515                TsTypeElement::TsMethodSignature { 0: _field_0 }
133516            }
133517            TsTypeElement::TsIndexSignature { 0: _field_0 } => {
133518                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeElement(
133519                    self::fields::TsTypeElementField::TsIndexSignature,
133520                ));
133521                let _field_0 = <TsIndexSignature as FoldWithAstPath<V>>::fold_with_ast_path(
133522                    _field_0,
133523                    visitor,
133524                    &mut *__ast_path,
133525                );
133526                TsTypeElement::TsIndexSignature { 0: _field_0 }
133527            }
133528        }
133529    }
133530}
133531#[cfg(any(docsrs, feature = "path"))]
133532#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133533impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeLit {
133534    #[doc = "Calls [FoldAstPath`::fold_ts_type_lit`] with `self`."]
133535    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133536        <V as FoldAstPath>::fold_ts_type_lit(visitor, self, __ast_path)
133537    }
133538
133539    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133540        match self {
133541            TsTypeLit { span, members } => {
133542                let span = {
133543                    let mut __ast_path = __ast_path
133544                        .with_guard(AstParentKind::TsTypeLit(self::fields::TsTypeLitField::Span));
133545                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133546                        span,
133547                        visitor,
133548                        &mut *__ast_path,
133549                    )
133550                };
133551                let members = {
133552                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeLit(
133553                        self::fields::TsTypeLitField::Members(usize::MAX),
133554                    ));
133555                    <Vec<TsTypeElement> as FoldWithAstPath<V>>::fold_with_ast_path(
133556                        members,
133557                        visitor,
133558                        &mut *__ast_path,
133559                    )
133560                };
133561                TsTypeLit { span, members }
133562            }
133563        }
133564    }
133565}
133566#[cfg(any(docsrs, feature = "path"))]
133567#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133568impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeOperator {
133569    #[doc = "Calls [FoldAstPath`::fold_ts_type_operator`] with `self`."]
133570    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133571        <V as FoldAstPath>::fold_ts_type_operator(visitor, self, __ast_path)
133572    }
133573
133574    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133575        match self {
133576            TsTypeOperator { span, op, type_ann } => {
133577                let span = {
133578                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
133579                        self::fields::TsTypeOperatorField::Span,
133580                    ));
133581                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133582                        span,
133583                        visitor,
133584                        &mut *__ast_path,
133585                    )
133586                };
133587                let op = {
133588                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
133589                        self::fields::TsTypeOperatorField::Op,
133590                    ));
133591                    <TsTypeOperatorOp as FoldWithAstPath<V>>::fold_with_ast_path(
133592                        op,
133593                        visitor,
133594                        &mut *__ast_path,
133595                    )
133596                };
133597                let type_ann = {
133598                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeOperator(
133599                        self::fields::TsTypeOperatorField::TypeAnn,
133600                    ));
133601                    <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
133602                        type_ann,
133603                        visitor,
133604                        &mut *__ast_path,
133605                    )
133606                };
133607                TsTypeOperator { span, op, type_ann }
133608            }
133609        }
133610    }
133611}
133612#[cfg(any(docsrs, feature = "path"))]
133613#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133614impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeOperatorOp {
133615    #[doc = "Calls [FoldAstPath`::fold_ts_type_operator_op`] with `self`."]
133616    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133617        <V as FoldAstPath>::fold_ts_type_operator_op(visitor, self, __ast_path)
133618    }
133619
133620    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133621        match self {
133622            TsTypeOperatorOp::KeyOf => TsTypeOperatorOp::KeyOf,
133623            TsTypeOperatorOp::Unique => TsTypeOperatorOp::Unique,
133624            TsTypeOperatorOp::ReadOnly => TsTypeOperatorOp::ReadOnly,
133625        }
133626    }
133627}
133628#[cfg(any(docsrs, feature = "path"))]
133629#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133630impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeParam {
133631    #[doc = "Calls [FoldAstPath`::fold_ts_type_param`] with `self`."]
133632    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133633        <V as FoldAstPath>::fold_ts_type_param(visitor, self, __ast_path)
133634    }
133635
133636    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133637        match self {
133638            TsTypeParam {
133639                span,
133640                name,
133641                is_in,
133642                is_out,
133643                is_const,
133644                constraint,
133645                default,
133646            } => {
133647                let span = {
133648                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
133649                        self::fields::TsTypeParamField::Span,
133650                    ));
133651                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133652                        span,
133653                        visitor,
133654                        &mut *__ast_path,
133655                    )
133656                };
133657                let name = {
133658                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
133659                        self::fields::TsTypeParamField::Name,
133660                    ));
133661                    <Ident as FoldWithAstPath<V>>::fold_with_ast_path(
133662                        name,
133663                        visitor,
133664                        &mut *__ast_path,
133665                    )
133666                };
133667                let constraint = {
133668                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
133669                        self::fields::TsTypeParamField::Constraint,
133670                    ));
133671                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
133672                        constraint,
133673                        visitor,
133674                        &mut *__ast_path,
133675                    )
133676                };
133677                let default = {
133678                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParam(
133679                        self::fields::TsTypeParamField::Default,
133680                    ));
133681                    <Option<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
133682                        default,
133683                        visitor,
133684                        &mut *__ast_path,
133685                    )
133686                };
133687                TsTypeParam {
133688                    span,
133689                    name,
133690                    is_in,
133691                    is_out,
133692                    is_const,
133693                    constraint,
133694                    default,
133695                }
133696            }
133697        }
133698    }
133699}
133700#[cfg(any(docsrs, feature = "path"))]
133701#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133702impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeParamDecl {
133703    #[doc = "Calls [FoldAstPath`::fold_ts_type_param_decl`] with `self`."]
133704    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133705        <V as FoldAstPath>::fold_ts_type_param_decl(visitor, self, __ast_path)
133706    }
133707
133708    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133709        match self {
133710            TsTypeParamDecl { span, params } => {
133711                let span = {
133712                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
133713                        self::fields::TsTypeParamDeclField::Span,
133714                    ));
133715                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133716                        span,
133717                        visitor,
133718                        &mut *__ast_path,
133719                    )
133720                };
133721                let params = {
133722                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeParamDecl(
133723                        self::fields::TsTypeParamDeclField::Params(usize::MAX),
133724                    ));
133725                    <Vec<TsTypeParam> as FoldWithAstPath<V>>::fold_with_ast_path(
133726                        params,
133727                        visitor,
133728                        &mut *__ast_path,
133729                    )
133730                };
133731                TsTypeParamDecl { span, params }
133732            }
133733        }
133734    }
133735}
133736#[cfg(any(docsrs, feature = "path"))]
133737#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133738impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeParamInstantiation {
133739    #[doc = "Calls [FoldAstPath`::fold_ts_type_param_instantiation`] with `self`."]
133740    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133741        <V as FoldAstPath>::fold_ts_type_param_instantiation(visitor, self, __ast_path)
133742    }
133743
133744    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133745        match self {
133746            TsTypeParamInstantiation { span, params } => {
133747                let span = {
133748                    let mut __ast_path =
133749                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
133750                            self::fields::TsTypeParamInstantiationField::Span,
133751                        ));
133752                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133753                        span,
133754                        visitor,
133755                        &mut *__ast_path,
133756                    )
133757                };
133758                let params = {
133759                    let mut __ast_path =
133760                        __ast_path.with_guard(AstParentKind::TsTypeParamInstantiation(
133761                            self::fields::TsTypeParamInstantiationField::Params(usize::MAX),
133762                        ));
133763                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
133764                        params,
133765                        visitor,
133766                        &mut *__ast_path,
133767                    )
133768                };
133769                TsTypeParamInstantiation { span, params }
133770            }
133771        }
133772    }
133773}
133774#[cfg(any(docsrs, feature = "path"))]
133775#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133776impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypePredicate {
133777    #[doc = "Calls [FoldAstPath`::fold_ts_type_predicate`] with `self`."]
133778    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133779        <V as FoldAstPath>::fold_ts_type_predicate(visitor, self, __ast_path)
133780    }
133781
133782    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133783        match self {
133784            TsTypePredicate {
133785                span,
133786                asserts,
133787                param_name,
133788                type_ann,
133789            } => {
133790                let span = {
133791                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
133792                        self::fields::TsTypePredicateField::Span,
133793                    ));
133794                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133795                        span,
133796                        visitor,
133797                        &mut *__ast_path,
133798                    )
133799                };
133800                let param_name = {
133801                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
133802                        self::fields::TsTypePredicateField::ParamName,
133803                    ));
133804                    <TsThisTypeOrIdent as FoldWithAstPath<V>>::fold_with_ast_path(
133805                        param_name,
133806                        visitor,
133807                        &mut *__ast_path,
133808                    )
133809                };
133810                let type_ann = {
133811                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypePredicate(
133812                        self::fields::TsTypePredicateField::TypeAnn,
133813                    ));
133814                    <Option<Box<TsTypeAnn>> as FoldWithAstPath<V>>::fold_with_ast_path(
133815                        type_ann,
133816                        visitor,
133817                        &mut *__ast_path,
133818                    )
133819                };
133820                TsTypePredicate {
133821                    span,
133822                    asserts,
133823                    param_name,
133824                    type_ann,
133825                }
133826            }
133827        }
133828    }
133829}
133830#[cfg(any(docsrs, feature = "path"))]
133831#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133832impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeQuery {
133833    #[doc = "Calls [FoldAstPath`::fold_ts_type_query`] with `self`."]
133834    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133835        <V as FoldAstPath>::fold_ts_type_query(visitor, self, __ast_path)
133836    }
133837
133838    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133839        match self {
133840            TsTypeQuery {
133841                span,
133842                expr_name,
133843                type_args,
133844            } => {
133845                let span = {
133846                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
133847                        self::fields::TsTypeQueryField::Span,
133848                    ));
133849                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133850                        span,
133851                        visitor,
133852                        &mut *__ast_path,
133853                    )
133854                };
133855                let expr_name = {
133856                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
133857                        self::fields::TsTypeQueryField::ExprName,
133858                    ));
133859                    <TsTypeQueryExpr as FoldWithAstPath<V>>::fold_with_ast_path(
133860                        expr_name,
133861                        visitor,
133862                        &mut *__ast_path,
133863                    )
133864                };
133865                let type_args = {
133866                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQuery(
133867                        self::fields::TsTypeQueryField::TypeArgs,
133868                    ));
133869                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_args , visitor , & mut * __ast_path)
133870                };
133871                TsTypeQuery {
133872                    span,
133873                    expr_name,
133874                    type_args,
133875                }
133876            }
133877        }
133878    }
133879}
133880#[cfg(any(docsrs, feature = "path"))]
133881#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133882impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeQueryExpr {
133883    #[doc = "Calls [FoldAstPath`::fold_ts_type_query_expr`] with `self`."]
133884    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133885        <V as FoldAstPath>::fold_ts_type_query_expr(visitor, self, __ast_path)
133886    }
133887
133888    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133889        match self {
133890            TsTypeQueryExpr::TsEntityName { 0: _field_0 } => {
133891                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
133892                    self::fields::TsTypeQueryExprField::TsEntityName,
133893                ));
133894                let _field_0 = <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
133895                    _field_0,
133896                    visitor,
133897                    &mut *__ast_path,
133898                );
133899                TsTypeQueryExpr::TsEntityName { 0: _field_0 }
133900            }
133901            TsTypeQueryExpr::Import { 0: _field_0 } => {
133902                let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeQueryExpr(
133903                    self::fields::TsTypeQueryExprField::Import,
133904                ));
133905                let _field_0 = <TsImportType as FoldWithAstPath<V>>::fold_with_ast_path(
133906                    _field_0,
133907                    visitor,
133908                    &mut *__ast_path,
133909                );
133910                TsTypeQueryExpr::Import { 0: _field_0 }
133911            }
133912        }
133913    }
133914}
133915#[cfg(any(docsrs, feature = "path"))]
133916#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133917impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsTypeRef {
133918    #[doc = "Calls [FoldAstPath`::fold_ts_type_ref`] with `self`."]
133919    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133920        <V as FoldAstPath>::fold_ts_type_ref(visitor, self, __ast_path)
133921    }
133922
133923    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133924        match self {
133925            TsTypeRef {
133926                span,
133927                type_name,
133928                type_params,
133929            } => {
133930                let span = {
133931                    let mut __ast_path = __ast_path
133932                        .with_guard(AstParentKind::TsTypeRef(self::fields::TsTypeRefField::Span));
133933                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
133934                        span,
133935                        visitor,
133936                        &mut *__ast_path,
133937                    )
133938                };
133939                let type_name = {
133940                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
133941                        self::fields::TsTypeRefField::TypeName,
133942                    ));
133943                    <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(
133944                        type_name,
133945                        visitor,
133946                        &mut *__ast_path,
133947                    )
133948                };
133949                let type_params = {
133950                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsTypeRef(
133951                        self::fields::TsTypeRefField::TypeParams,
133952                    ));
133953                    < Option < Box < TsTypeParamInstantiation > > as FoldWithAstPath < V > > :: fold_with_ast_path (type_params , visitor , & mut * __ast_path)
133954                };
133955                TsTypeRef {
133956                    span,
133957                    type_name,
133958                    type_params,
133959                }
133960            }
133961        }
133962    }
133963}
133964#[cfg(any(docsrs, feature = "path"))]
133965#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
133966impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsUnionOrIntersectionType {
133967    #[doc = "Calls [FoldAstPath`::fold_ts_union_or_intersection_type`] with `self`."]
133968    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133969        <V as FoldAstPath>::fold_ts_union_or_intersection_type(visitor, self, __ast_path)
133970    }
133971
133972    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
133973        match self {
133974            TsUnionOrIntersectionType::TsUnionType { 0: _field_0 } => {
133975                let mut __ast_path =
133976                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
133977                        self::fields::TsUnionOrIntersectionTypeField::TsUnionType,
133978                    ));
133979                let _field_0 = <TsUnionType as FoldWithAstPath<V>>::fold_with_ast_path(
133980                    _field_0,
133981                    visitor,
133982                    &mut *__ast_path,
133983                );
133984                TsUnionOrIntersectionType::TsUnionType { 0: _field_0 }
133985            }
133986            TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 } => {
133987                let mut __ast_path =
133988                    __ast_path.with_guard(AstParentKind::TsUnionOrIntersectionType(
133989                        self::fields::TsUnionOrIntersectionTypeField::TsIntersectionType,
133990                    ));
133991                let _field_0 = <TsIntersectionType as FoldWithAstPath<V>>::fold_with_ast_path(
133992                    _field_0,
133993                    visitor,
133994                    &mut *__ast_path,
133995                );
133996                TsUnionOrIntersectionType::TsIntersectionType { 0: _field_0 }
133997            }
133998        }
133999    }
134000}
134001#[cfg(any(docsrs, feature = "path"))]
134002#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134003impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for TsUnionType {
134004    #[doc = "Calls [FoldAstPath`::fold_ts_union_type`] with `self`."]
134005    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134006        <V as FoldAstPath>::fold_ts_union_type(visitor, self, __ast_path)
134007    }
134008
134009    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134010        match self {
134011            TsUnionType { span, types } => {
134012                let span = {
134013                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
134014                        self::fields::TsUnionTypeField::Span,
134015                    ));
134016                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134017                        span,
134018                        visitor,
134019                        &mut *__ast_path,
134020                    )
134021                };
134022                let types = {
134023                    let mut __ast_path = __ast_path.with_guard(AstParentKind::TsUnionType(
134024                        self::fields::TsUnionTypeField::Types(usize::MAX),
134025                    ));
134026                    <Vec<Box<TsType>> as FoldWithAstPath<V>>::fold_with_ast_path(
134027                        types,
134028                        visitor,
134029                        &mut *__ast_path,
134030                    )
134031                };
134032                TsUnionType { span, types }
134033            }
134034        }
134035    }
134036}
134037#[cfg(any(docsrs, feature = "path"))]
134038#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134039impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UnaryExpr {
134040    #[doc = "Calls [FoldAstPath`::fold_unary_expr`] with `self`."]
134041    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134042        <V as FoldAstPath>::fold_unary_expr(visitor, self, __ast_path)
134043    }
134044
134045    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134046        match self {
134047            UnaryExpr { span, op, arg } => {
134048                let span = {
134049                    let mut __ast_path = __ast_path
134050                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Span));
134051                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134052                        span,
134053                        visitor,
134054                        &mut *__ast_path,
134055                    )
134056                };
134057                let op = {
134058                    let mut __ast_path = __ast_path
134059                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Op));
134060                    <UnaryOp as FoldWithAstPath<V>>::fold_with_ast_path(
134061                        op,
134062                        visitor,
134063                        &mut *__ast_path,
134064                    )
134065                };
134066                let arg = {
134067                    let mut __ast_path = __ast_path
134068                        .with_guard(AstParentKind::UnaryExpr(self::fields::UnaryExprField::Arg));
134069                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134070                        arg,
134071                        visitor,
134072                        &mut *__ast_path,
134073                    )
134074                };
134075                UnaryExpr { span, op, arg }
134076            }
134077        }
134078    }
134079}
134080#[cfg(any(docsrs, feature = "path"))]
134081#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134082impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UnaryOp {
134083    #[doc = "Calls [FoldAstPath`::fold_unary_op`] with `self`."]
134084    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134085        <V as FoldAstPath>::fold_unary_op(visitor, self, __ast_path)
134086    }
134087
134088    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134089        match self {
134090            UnaryOp::Minus => UnaryOp::Minus,
134091            UnaryOp::Plus => UnaryOp::Plus,
134092            UnaryOp::Bang => UnaryOp::Bang,
134093            UnaryOp::Tilde => UnaryOp::Tilde,
134094            UnaryOp::TypeOf => UnaryOp::TypeOf,
134095            UnaryOp::Void => UnaryOp::Void,
134096            UnaryOp::Delete => UnaryOp::Delete,
134097        }
134098    }
134099}
134100#[cfg(any(docsrs, feature = "path"))]
134101#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134102impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UpdateExpr {
134103    #[doc = "Calls [FoldAstPath`::fold_update_expr`] with `self`."]
134104    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134105        <V as FoldAstPath>::fold_update_expr(visitor, self, __ast_path)
134106    }
134107
134108    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134109        match self {
134110            UpdateExpr {
134111                span,
134112                op,
134113                prefix,
134114                arg,
134115            } => {
134116                let span = {
134117                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
134118                        self::fields::UpdateExprField::Span,
134119                    ));
134120                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134121                        span,
134122                        visitor,
134123                        &mut *__ast_path,
134124                    )
134125                };
134126                let op = {
134127                    let mut __ast_path = __ast_path
134128                        .with_guard(AstParentKind::UpdateExpr(self::fields::UpdateExprField::Op));
134129                    <UpdateOp as FoldWithAstPath<V>>::fold_with_ast_path(
134130                        op,
134131                        visitor,
134132                        &mut *__ast_path,
134133                    )
134134                };
134135                let arg = {
134136                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UpdateExpr(
134137                        self::fields::UpdateExprField::Arg,
134138                    ));
134139                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134140                        arg,
134141                        visitor,
134142                        &mut *__ast_path,
134143                    )
134144                };
134145                UpdateExpr {
134146                    span,
134147                    op,
134148                    prefix,
134149                    arg,
134150                }
134151            }
134152        }
134153    }
134154}
134155#[cfg(any(docsrs, feature = "path"))]
134156#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134157impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UpdateOp {
134158    #[doc = "Calls [FoldAstPath`::fold_update_op`] with `self`."]
134159    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134160        <V as FoldAstPath>::fold_update_op(visitor, self, __ast_path)
134161    }
134162
134163    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134164        match self {
134165            UpdateOp::PlusPlus => UpdateOp::PlusPlus,
134166            UpdateOp::MinusMinus => UpdateOp::MinusMinus,
134167        }
134168    }
134169}
134170#[cfg(any(docsrs, feature = "path"))]
134171#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134172impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for UsingDecl {
134173    #[doc = "Calls [FoldAstPath`::fold_using_decl`] with `self`."]
134174    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134175        <V as FoldAstPath>::fold_using_decl(visitor, self, __ast_path)
134176    }
134177
134178    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134179        match self {
134180            UsingDecl {
134181                span,
134182                is_await,
134183                decls,
134184            } => {
134185                let span = {
134186                    let mut __ast_path = __ast_path
134187                        .with_guard(AstParentKind::UsingDecl(self::fields::UsingDeclField::Span));
134188                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134189                        span,
134190                        visitor,
134191                        &mut *__ast_path,
134192                    )
134193                };
134194                let decls = {
134195                    let mut __ast_path = __ast_path.with_guard(AstParentKind::UsingDecl(
134196                        self::fields::UsingDeclField::Decls(usize::MAX),
134197                    ));
134198                    <Vec<VarDeclarator> as FoldWithAstPath<V>>::fold_with_ast_path(
134199                        decls,
134200                        visitor,
134201                        &mut *__ast_path,
134202                    )
134203                };
134204                UsingDecl {
134205                    span,
134206                    is_await,
134207                    decls,
134208                }
134209            }
134210        }
134211    }
134212}
134213#[cfg(any(docsrs, feature = "path"))]
134214#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134215impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDecl {
134216    #[doc = "Calls [FoldAstPath`::fold_var_decl`] with `self`."]
134217    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134218        <V as FoldAstPath>::fold_var_decl(visitor, self, __ast_path)
134219    }
134220
134221    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134222        match self {
134223            VarDecl {
134224                span,
134225                ctxt,
134226                kind,
134227                declare,
134228                decls,
134229            } => {
134230                let span = {
134231                    let mut __ast_path = __ast_path
134232                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Span));
134233                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134234                        span,
134235                        visitor,
134236                        &mut *__ast_path,
134237                    )
134238                };
134239                let ctxt = {
134240                    let mut __ast_path = __ast_path
134241                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Ctxt));
134242                    <swc_common::SyntaxContext as FoldWithAstPath<V>>::fold_with_ast_path(
134243                        ctxt,
134244                        visitor,
134245                        &mut *__ast_path,
134246                    )
134247                };
134248                let kind = {
134249                    let mut __ast_path = __ast_path
134250                        .with_guard(AstParentKind::VarDecl(self::fields::VarDeclField::Kind));
134251                    <VarDeclKind as FoldWithAstPath<V>>::fold_with_ast_path(
134252                        kind,
134253                        visitor,
134254                        &mut *__ast_path,
134255                    )
134256                };
134257                let decls = {
134258                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDecl(
134259                        self::fields::VarDeclField::Decls(usize::MAX),
134260                    ));
134261                    <Vec<VarDeclarator> as FoldWithAstPath<V>>::fold_with_ast_path(
134262                        decls,
134263                        visitor,
134264                        &mut *__ast_path,
134265                    )
134266                };
134267                VarDecl {
134268                    span,
134269                    ctxt,
134270                    kind,
134271                    declare,
134272                    decls,
134273                }
134274            }
134275        }
134276    }
134277}
134278#[cfg(any(docsrs, feature = "path"))]
134279#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134280impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDeclKind {
134281    #[doc = "Calls [FoldAstPath`::fold_var_decl_kind`] with `self`."]
134282    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134283        <V as FoldAstPath>::fold_var_decl_kind(visitor, self, __ast_path)
134284    }
134285
134286    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134287        match self {
134288            VarDeclKind::Var => VarDeclKind::Var,
134289            VarDeclKind::Let => VarDeclKind::Let,
134290            VarDeclKind::Const => VarDeclKind::Const,
134291        }
134292    }
134293}
134294#[cfg(any(docsrs, feature = "path"))]
134295#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134296impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDeclOrExpr {
134297    #[doc = "Calls [FoldAstPath`::fold_var_decl_or_expr`] with `self`."]
134298    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134299        <V as FoldAstPath>::fold_var_decl_or_expr(visitor, self, __ast_path)
134300    }
134301
134302    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134303        match self {
134304            VarDeclOrExpr::VarDecl { 0: _field_0 } => {
134305                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
134306                    self::fields::VarDeclOrExprField::VarDecl,
134307                ));
134308                let _field_0 = <Box<VarDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
134309                    _field_0,
134310                    visitor,
134311                    &mut *__ast_path,
134312                );
134313                VarDeclOrExpr::VarDecl { 0: _field_0 }
134314            }
134315            VarDeclOrExpr::Expr { 0: _field_0 } => {
134316                let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclOrExpr(
134317                    self::fields::VarDeclOrExprField::Expr,
134318                ));
134319                let _field_0 = <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134320                    _field_0,
134321                    visitor,
134322                    &mut *__ast_path,
134323                );
134324                VarDeclOrExpr::Expr { 0: _field_0 }
134325            }
134326        }
134327    }
134328}
134329#[cfg(any(docsrs, feature = "path"))]
134330#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134331impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for VarDeclarator {
134332    #[doc = "Calls [FoldAstPath`::fold_var_declarator`] with `self`."]
134333    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134334        <V as FoldAstPath>::fold_var_declarator(visitor, self, __ast_path)
134335    }
134336
134337    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134338        match self {
134339            VarDeclarator {
134340                span,
134341                name,
134342                init,
134343                definite,
134344            } => {
134345                let span = {
134346                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
134347                        self::fields::VarDeclaratorField::Span,
134348                    ));
134349                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134350                        span,
134351                        visitor,
134352                        &mut *__ast_path,
134353                    )
134354                };
134355                let name = {
134356                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
134357                        self::fields::VarDeclaratorField::Name,
134358                    ));
134359                    <Pat as FoldWithAstPath<V>>::fold_with_ast_path(name, visitor, &mut *__ast_path)
134360                };
134361                let init = {
134362                    let mut __ast_path = __ast_path.with_guard(AstParentKind::VarDeclarator(
134363                        self::fields::VarDeclaratorField::Init,
134364                    ));
134365                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
134366                        init,
134367                        visitor,
134368                        &mut *__ast_path,
134369                    )
134370                };
134371                VarDeclarator {
134372                    span,
134373                    name,
134374                    init,
134375                    definite,
134376                }
134377            }
134378        }
134379    }
134380}
134381#[cfg(any(docsrs, feature = "path"))]
134382#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134383impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for WhileStmt {
134384    #[doc = "Calls [FoldAstPath`::fold_while_stmt`] with `self`."]
134385    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134386        <V as FoldAstPath>::fold_while_stmt(visitor, self, __ast_path)
134387    }
134388
134389    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134390        match self {
134391            WhileStmt { span, test, body } => {
134392                let span = {
134393                    let mut __ast_path = __ast_path
134394                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Span));
134395                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134396                        span,
134397                        visitor,
134398                        &mut *__ast_path,
134399                    )
134400                };
134401                let test = {
134402                    let mut __ast_path = __ast_path
134403                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Test));
134404                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134405                        test,
134406                        visitor,
134407                        &mut *__ast_path,
134408                    )
134409                };
134410                let body = {
134411                    let mut __ast_path = __ast_path
134412                        .with_guard(AstParentKind::WhileStmt(self::fields::WhileStmtField::Body));
134413                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
134414                        body,
134415                        visitor,
134416                        &mut *__ast_path,
134417                    )
134418                };
134419                WhileStmt { span, test, body }
134420            }
134421        }
134422    }
134423}
134424#[cfg(any(docsrs, feature = "path"))]
134425#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134426impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for WithStmt {
134427    #[doc = "Calls [FoldAstPath`::fold_with_stmt`] with `self`."]
134428    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134429        <V as FoldAstPath>::fold_with_stmt(visitor, self, __ast_path)
134430    }
134431
134432    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134433        match self {
134434            WithStmt { span, obj, body } => {
134435                let span = {
134436                    let mut __ast_path = __ast_path
134437                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Span));
134438                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134439                        span,
134440                        visitor,
134441                        &mut *__ast_path,
134442                    )
134443                };
134444                let obj = {
134445                    let mut __ast_path = __ast_path
134446                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Obj));
134447                    <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134448                        obj,
134449                        visitor,
134450                        &mut *__ast_path,
134451                    )
134452                };
134453                let body = {
134454                    let mut __ast_path = __ast_path
134455                        .with_guard(AstParentKind::WithStmt(self::fields::WithStmtField::Body));
134456                    <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(
134457                        body,
134458                        visitor,
134459                        &mut *__ast_path,
134460                    )
134461                };
134462                WithStmt { span, obj, body }
134463            }
134464        }
134465    }
134466}
134467#[cfg(any(docsrs, feature = "path"))]
134468#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134469impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for YieldExpr {
134470    #[doc = "Calls [FoldAstPath`::fold_yield_expr`] with `self`."]
134471    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134472        <V as FoldAstPath>::fold_yield_expr(visitor, self, __ast_path)
134473    }
134474
134475    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134476        match self {
134477            YieldExpr {
134478                span,
134479                arg,
134480                delegate,
134481            } => {
134482                let span = {
134483                    let mut __ast_path = __ast_path
134484                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Span));
134485                    <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(
134486                        span,
134487                        visitor,
134488                        &mut *__ast_path,
134489                    )
134490                };
134491                let arg = {
134492                    let mut __ast_path = __ast_path
134493                        .with_guard(AstParentKind::YieldExpr(self::fields::YieldExprField::Arg));
134494                    <Option<Box<Expr>> as FoldWithAstPath<V>>::fold_with_ast_path(
134495                        arg,
134496                        visitor,
134497                        &mut *__ast_path,
134498                    )
134499                };
134500                YieldExpr {
134501                    span,
134502                    arg,
134503                    delegate,
134504                }
134505            }
134506        }
134507    }
134508}
134509#[cfg(any(docsrs, feature = "path"))]
134510#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134511impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for swc_atoms::Atom {
134512    #[doc = "Calls [FoldAstPath`::fold_atom`] with `self`. (Extra impl)"]
134513    #[inline]
134514    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134515        <V as FoldAstPath>::fold_atom(visitor, self, __ast_path)
134516    }
134517
134518    #[inline]
134519    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134520        self
134521    }
134522}
134523#[cfg(any(docsrs, feature = "path"))]
134524#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134525impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for BigIntValue {
134526    #[doc = "Calls [FoldAstPath`::fold_big_int_value`] with `self`. (Extra impl)"]
134527    #[inline]
134528    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134529        <V as FoldAstPath>::fold_big_int_value(visitor, self, __ast_path)
134530    }
134531
134532    #[inline]
134533    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134534        self
134535    }
134536}
134537#[cfg(any(docsrs, feature = "path"))]
134538#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134539impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ClassMember> {
134540    #[doc = "Calls [FoldAstPath`::fold_class_members`] with `self`. (Extra impl)"]
134541    #[inline]
134542    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134543        <V as FoldAstPath>::fold_class_members(visitor, self, __ast_path)
134544    }
134545
134546    #[inline]
134547    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134548        self.into_iter()
134549            .enumerate()
134550            .map(|(__idx, item)| {
134551                let mut __ast_path = __ast_path.with_index_guard(__idx);
134552                <ClassMember as FoldWithAstPath<V>>::fold_with_ast_path(
134553                    item,
134554                    visitor,
134555                    &mut *__ast_path,
134556                )
134557            })
134558            .collect()
134559    }
134560}
134561#[cfg(any(docsrs, feature = "path"))]
134562#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134563impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Decorator> {
134564    #[doc = "Calls [FoldAstPath`::fold_decorators`] with `self`. (Extra impl)"]
134565    #[inline]
134566    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134567        <V as FoldAstPath>::fold_decorators(visitor, self, __ast_path)
134568    }
134569
134570    #[inline]
134571    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134572        self.into_iter()
134573            .enumerate()
134574            .map(|(__idx, item)| {
134575                let mut __ast_path = __ast_path.with_index_guard(__idx);
134576                <Decorator as FoldWithAstPath<V>>::fold_with_ast_path(
134577                    item,
134578                    visitor,
134579                    &mut *__ast_path,
134580                )
134581            })
134582            .collect()
134583    }
134584}
134585#[cfg(any(docsrs, feature = "path"))]
134586#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134587impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ExportSpecifier> {
134588    #[doc = "Calls [FoldAstPath`::fold_export_specifiers`] with `self`. (Extra impl)"]
134589    #[inline]
134590    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134591        <V as FoldAstPath>::fold_export_specifiers(visitor, self, __ast_path)
134592    }
134593
134594    #[inline]
134595    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134596        self.into_iter()
134597            .enumerate()
134598            .map(|(__idx, item)| {
134599                let mut __ast_path = __ast_path.with_index_guard(__idx);
134600                <ExportSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
134601                    item,
134602                    visitor,
134603                    &mut *__ast_path,
134604                )
134605            })
134606            .collect()
134607    }
134608}
134609#[cfg(any(docsrs, feature = "path"))]
134610#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134611impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ExprOrSpread> {
134612    #[doc = "Calls [FoldAstPath`::fold_expr_or_spreads`] with `self`. (Extra impl)"]
134613    #[inline]
134614    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134615        <V as FoldAstPath>::fold_expr_or_spreads(visitor, self, __ast_path)
134616    }
134617
134618    #[inline]
134619    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134620        self.into_iter()
134621            .enumerate()
134622            .map(|(__idx, item)| {
134623                let mut __ast_path = __ast_path.with_index_guard(__idx);
134624                <ExprOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(
134625                    item,
134626                    visitor,
134627                    &mut *__ast_path,
134628                )
134629            })
134630            .collect()
134631    }
134632}
134633#[cfg(any(docsrs, feature = "path"))]
134634#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134635impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Box<Expr>> {
134636    #[doc = "Calls [FoldAstPath`::fold_exprs`] with `self`. (Extra impl)"]
134637    #[inline]
134638    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134639        <V as FoldAstPath>::fold_exprs(visitor, self, __ast_path)
134640    }
134641
134642    #[inline]
134643    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134644        self.into_iter()
134645            .enumerate()
134646            .map(|(__idx, item)| {
134647                let mut __ast_path = __ast_path.with_index_guard(__idx);
134648                <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(
134649                    item,
134650                    visitor,
134651                    &mut *__ast_path,
134652                )
134653            })
134654            .collect()
134655    }
134656}
134657#[cfg(any(docsrs, feature = "path"))]
134658#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134659impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ImportSpecifier> {
134660    #[doc = "Calls [FoldAstPath`::fold_import_specifiers`] with `self`. (Extra impl)"]
134661    #[inline]
134662    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134663        <V as FoldAstPath>::fold_import_specifiers(visitor, self, __ast_path)
134664    }
134665
134666    #[inline]
134667    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134668        self.into_iter()
134669            .enumerate()
134670            .map(|(__idx, item)| {
134671                let mut __ast_path = __ast_path.with_index_guard(__idx);
134672                <ImportSpecifier as FoldWithAstPath<V>>::fold_with_ast_path(
134673                    item,
134674                    visitor,
134675                    &mut *__ast_path,
134676                )
134677            })
134678            .collect()
134679    }
134680}
134681#[cfg(any(docsrs, feature = "path"))]
134682#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134683impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ImportWithItem> {
134684    #[doc = "Calls [FoldAstPath`::fold_import_with_items`] with `self`. (Extra impl)"]
134685    #[inline]
134686    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134687        <V as FoldAstPath>::fold_import_with_items(visitor, self, __ast_path)
134688    }
134689
134690    #[inline]
134691    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134692        self.into_iter()
134693            .enumerate()
134694            .map(|(__idx, item)| {
134695                let mut __ast_path = __ast_path.with_index_guard(__idx);
134696                <ImportWithItem as FoldWithAstPath<V>>::fold_with_ast_path(
134697                    item,
134698                    visitor,
134699                    &mut *__ast_path,
134700                )
134701            })
134702            .collect()
134703    }
134704}
134705#[cfg(any(docsrs, feature = "path"))]
134706#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134707impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<JSXAttrOrSpread> {
134708    #[doc = "Calls [FoldAstPath`::fold_jsx_attr_or_spreads`] with `self`. (Extra impl)"]
134709    #[inline]
134710    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134711        <V as FoldAstPath>::fold_jsx_attr_or_spreads(visitor, self, __ast_path)
134712    }
134713
134714    #[inline]
134715    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134716        self.into_iter()
134717            .enumerate()
134718            .map(|(__idx, item)| {
134719                let mut __ast_path = __ast_path.with_index_guard(__idx);
134720                <JSXAttrOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(
134721                    item,
134722                    visitor,
134723                    &mut *__ast_path,
134724                )
134725            })
134726            .collect()
134727    }
134728}
134729#[cfg(any(docsrs, feature = "path"))]
134730#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134731impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<JSXElementChild> {
134732    #[doc = "Calls [FoldAstPath`::fold_jsx_element_childs`] with `self`. (Extra impl)"]
134733    #[inline]
134734    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134735        <V as FoldAstPath>::fold_jsx_element_childs(visitor, self, __ast_path)
134736    }
134737
134738    #[inline]
134739    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134740        self.into_iter()
134741            .enumerate()
134742            .map(|(__idx, item)| {
134743                let mut __ast_path = __ast_path.with_index_guard(__idx);
134744                <JSXElementChild as FoldWithAstPath<V>>::fold_with_ast_path(
134745                    item,
134746                    visitor,
134747                    &mut *__ast_path,
134748                )
134749            })
134750            .collect()
134751    }
134752}
134753#[cfg(any(docsrs, feature = "path"))]
134754#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134755impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ModuleItem> {
134756    #[doc = "Calls [FoldAstPath`::fold_module_items`] with `self`. (Extra impl)"]
134757    #[inline]
134758    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134759        <V as FoldAstPath>::fold_module_items(visitor, self, __ast_path)
134760    }
134761
134762    #[inline]
134763    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134764        self.into_iter()
134765            .enumerate()
134766            .map(|(__idx, item)| {
134767                let mut __ast_path = __ast_path.with_index_guard(__idx);
134768                <ModuleItem as FoldWithAstPath<V>>::fold_with_ast_path(
134769                    item,
134770                    visitor,
134771                    &mut *__ast_path,
134772                )
134773            })
134774            .collect()
134775    }
134776}
134777#[cfg(any(docsrs, feature = "path"))]
134778#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134779impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ObjectPatProp> {
134780    #[doc = "Calls [FoldAstPath`::fold_object_pat_props`] with `self`. (Extra impl)"]
134781    #[inline]
134782    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134783        <V as FoldAstPath>::fold_object_pat_props(visitor, self, __ast_path)
134784    }
134785
134786    #[inline]
134787    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134788        self.into_iter()
134789            .enumerate()
134790            .map(|(__idx, item)| {
134791                let mut __ast_path = __ast_path.with_index_guard(__idx);
134792                <ObjectPatProp as FoldWithAstPath<V>>::fold_with_ast_path(
134793                    item,
134794                    visitor,
134795                    &mut *__ast_path,
134796                )
134797            })
134798            .collect()
134799    }
134800}
134801#[cfg(any(docsrs, feature = "path"))]
134802#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134803impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Accessibility> {
134804    #[doc = "Calls [FoldAstPath`::fold_opt_accessibility`] with `self`. (Extra impl)"]
134805    #[inline]
134806    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134807        <V as FoldAstPath>::fold_opt_accessibility(visitor, self, __ast_path)
134808    }
134809
134810    #[inline]
134811    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134812        self.map(|inner| {
134813            <Accessibility as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134814        })
134815    }
134816}
134817#[cfg(any(docsrs, feature = "path"))]
134818#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134819impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<swc_atoms::Atom> {
134820    #[doc = "Calls [FoldAstPath`::fold_opt_atom`] with `self`. (Extra impl)"]
134821    #[inline]
134822    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134823        <V as FoldAstPath>::fold_opt_atom(visitor, self, __ast_path)
134824    }
134825
134826    #[inline]
134827    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134828        self.map(|inner| {
134829            <swc_atoms::Atom as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134830        })
134831    }
134832}
134833#[cfg(any(docsrs, feature = "path"))]
134834#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134835impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<BlockStmt> {
134836    #[doc = "Calls [FoldAstPath`::fold_opt_block_stmt`] with `self`. (Extra impl)"]
134837    #[inline]
134838    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134839        <V as FoldAstPath>::fold_opt_block_stmt(visitor, self, __ast_path)
134840    }
134841
134842    #[inline]
134843    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134844        self.map(|inner| {
134845            <BlockStmt as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134846        })
134847    }
134848}
134849#[cfg(any(docsrs, feature = "path"))]
134850#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134851impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<CatchClause> {
134852    #[doc = "Calls [FoldAstPath`::fold_opt_catch_clause`] with `self`. (Extra impl)"]
134853    #[inline]
134854    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134855        <V as FoldAstPath>::fold_opt_catch_clause(visitor, self, __ast_path)
134856    }
134857
134858    #[inline]
134859    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134860        self.map(|inner| {
134861            <CatchClause as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134862        })
134863    }
134864}
134865#[cfg(any(docsrs, feature = "path"))]
134866#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134867impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<Expr>> {
134868    #[doc = "Calls [FoldAstPath`::fold_opt_expr`] with `self`. (Extra impl)"]
134869    #[inline]
134870    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134871        <V as FoldAstPath>::fold_opt_expr(visitor, self, __ast_path)
134872    }
134873
134874    #[inline]
134875    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134876        self.map(|inner| {
134877            <Box<Expr> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134878        })
134879    }
134880}
134881#[cfg(any(docsrs, feature = "path"))]
134882#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134883impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<ExprOrSpread> {
134884    #[doc = "Calls [FoldAstPath`::fold_opt_expr_or_spread`] with `self`. (Extra impl)"]
134885    #[inline]
134886    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134887        <V as FoldAstPath>::fold_opt_expr_or_spread(visitor, self, __ast_path)
134888    }
134889
134890    #[inline]
134891    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134892        self.map(|inner| {
134893            <ExprOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134894        })
134895    }
134896}
134897#[cfg(any(docsrs, feature = "path"))]
134898#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134899impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Vec<ExprOrSpread>> {
134900    #[doc = "Calls [FoldAstPath`::fold_opt_expr_or_spreads`] with `self`. (Extra impl)"]
134901    #[inline]
134902    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134903        <V as FoldAstPath>::fold_opt_expr_or_spreads(visitor, self, __ast_path)
134904    }
134905
134906    #[inline]
134907    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134908        self.map(|inner| {
134909            <Vec<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
134910                inner, visitor, __ast_path,
134911            )
134912        })
134913    }
134914}
134915#[cfg(any(docsrs, feature = "path"))]
134916#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134917impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Ident> {
134918    #[doc = "Calls [FoldAstPath`::fold_opt_ident`] with `self`. (Extra impl)"]
134919    #[inline]
134920    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134921        <V as FoldAstPath>::fold_opt_ident(visitor, self, __ast_path)
134922    }
134923
134924    #[inline]
134925    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134926        self.map(|inner| {
134927            <Ident as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134928        })
134929    }
134930}
134931#[cfg(any(docsrs, feature = "path"))]
134932#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134933impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<JSXAttrValue> {
134934    #[doc = "Calls [FoldAstPath`::fold_opt_jsx_attr_value`] with `self`. (Extra impl)"]
134935    #[inline]
134936    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134937        <V as FoldAstPath>::fold_opt_jsx_attr_value(visitor, self, __ast_path)
134938    }
134939
134940    #[inline]
134941    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134942        self.map(|inner| {
134943            <JSXAttrValue as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134944        })
134945    }
134946}
134947#[cfg(any(docsrs, feature = "path"))]
134948#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134949impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<JSXClosingElement> {
134950    #[doc = "Calls [FoldAstPath`::fold_opt_jsx_closing_element`] with `self`. (Extra impl)"]
134951    #[inline]
134952    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134953        <V as FoldAstPath>::fold_opt_jsx_closing_element(visitor, self, __ast_path)
134954    }
134955
134956    #[inline]
134957    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134958        self.map(|inner| {
134959            <JSXClosingElement as FoldWithAstPath<V>>::fold_with_ast_path(
134960                inner, visitor, __ast_path,
134961            )
134962        })
134963    }
134964}
134965#[cfg(any(docsrs, feature = "path"))]
134966#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134967impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<ModuleExportName> {
134968    #[doc = "Calls [FoldAstPath`::fold_opt_module_export_name`] with `self`. (Extra impl)"]
134969    #[inline]
134970    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134971        <V as FoldAstPath>::fold_opt_module_export_name(visitor, self, __ast_path)
134972    }
134973
134974    #[inline]
134975    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134976        self.map(|inner| {
134977            <ModuleExportName as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134978        })
134979    }
134980}
134981#[cfg(any(docsrs, feature = "path"))]
134982#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134983impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<ObjectLit>> {
134984    #[doc = "Calls [FoldAstPath`::fold_opt_object_lit`] with `self`. (Extra impl)"]
134985    #[inline]
134986    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134987        <V as FoldAstPath>::fold_opt_object_lit(visitor, self, __ast_path)
134988    }
134989
134990    #[inline]
134991    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
134992        self.map(|inner| {
134993            <Box<ObjectLit> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
134994        })
134995    }
134996}
134997#[cfg(any(docsrs, feature = "path"))]
134998#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
134999impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Pat> {
135000    #[doc = "Calls [FoldAstPath`::fold_opt_pat`] with `self`. (Extra impl)"]
135001    #[inline]
135002    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135003        <V as FoldAstPath>::fold_opt_pat(visitor, self, __ast_path)
135004    }
135005
135006    #[inline]
135007    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135008        self.map(|inner| {
135009            <Pat as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135010        })
135011    }
135012}
135013#[cfg(any(docsrs, feature = "path"))]
135014#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135015impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<swc_common::Span> {
135016    #[doc = "Calls [FoldAstPath`::fold_opt_span`] with `self`. (Extra impl)"]
135017    #[inline]
135018    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135019        <V as FoldAstPath>::fold_opt_span(visitor, self, __ast_path)
135020    }
135021
135022    #[inline]
135023    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135024        self.map(|inner| {
135025            <swc_common::Span as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135026        })
135027    }
135028}
135029#[cfg(any(docsrs, feature = "path"))]
135030#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135031impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<Stmt>> {
135032    #[doc = "Calls [FoldAstPath`::fold_opt_stmt`] with `self`. (Extra impl)"]
135033    #[inline]
135034    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135035        <V as FoldAstPath>::fold_opt_stmt(visitor, self, __ast_path)
135036    }
135037
135038    #[inline]
135039    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135040        self.map(|inner| {
135041            <Box<Stmt> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135042        })
135043    }
135044}
135045#[cfg(any(docsrs, feature = "path"))]
135046#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135047impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<Str>> {
135048    #[doc = "Calls [FoldAstPath`::fold_opt_str`] with `self`. (Extra impl)"]
135049    #[inline]
135050    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135051        <V as FoldAstPath>::fold_opt_str(visitor, self, __ast_path)
135052    }
135053
135054    #[inline]
135055    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135056        self.map(|inner| {
135057            <Box<Str> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135058        })
135059    }
135060}
135061#[cfg(any(docsrs, feature = "path"))]
135062#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135063impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TruePlusMinus> {
135064    #[doc = "Calls [FoldAstPath`::fold_opt_true_plus_minus`] with `self`. (Extra impl)"]
135065    #[inline]
135066    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135067        <V as FoldAstPath>::fold_opt_true_plus_minus(visitor, self, __ast_path)
135068    }
135069
135070    #[inline]
135071    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135072        self.map(|inner| {
135073            <TruePlusMinus as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135074        })
135075    }
135076}
135077#[cfg(any(docsrs, feature = "path"))]
135078#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135079impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TsEntityName> {
135080    #[doc = "Calls [FoldAstPath`::fold_opt_ts_entity_name`] with `self`. (Extra impl)"]
135081    #[inline]
135082    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135083        <V as FoldAstPath>::fold_opt_ts_entity_name(visitor, self, __ast_path)
135084    }
135085
135086    #[inline]
135087    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135088        self.map(|inner| {
135089            <TsEntityName as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135090        })
135091    }
135092}
135093#[cfg(any(docsrs, feature = "path"))]
135094#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135095impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<TsNamespaceBody> {
135096    #[doc = "Calls [FoldAstPath`::fold_opt_ts_namespace_body`] with `self`. (Extra impl)"]
135097    #[inline]
135098    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135099        <V as FoldAstPath>::fold_opt_ts_namespace_body(visitor, self, __ast_path)
135100    }
135101
135102    #[inline]
135103    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135104        self.map(|inner| {
135105            <TsNamespaceBody as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135106        })
135107    }
135108}
135109#[cfg(any(docsrs, feature = "path"))]
135110#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135111impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsType>> {
135112    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type`] with `self`. (Extra impl)"]
135113    #[inline]
135114    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135115        <V as FoldAstPath>::fold_opt_ts_type(visitor, self, __ast_path)
135116    }
135117
135118    #[inline]
135119    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135120        self.map(|inner| {
135121            <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135122        })
135123    }
135124}
135125#[cfg(any(docsrs, feature = "path"))]
135126#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135127impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsTypeAnn>> {
135128    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type_ann`] with `self`. (Extra impl)"]
135129    #[inline]
135130    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135131        <V as FoldAstPath>::fold_opt_ts_type_ann(visitor, self, __ast_path)
135132    }
135133
135134    #[inline]
135135    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135136        self.map(|inner| {
135137            <Box<TsTypeAnn> as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135138        })
135139    }
135140}
135141#[cfg(any(docsrs, feature = "path"))]
135142#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135143impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsTypeParamDecl>> {
135144    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type_param_decl`] with `self`. (Extra impl)"]
135145    #[inline]
135146    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135147        <V as FoldAstPath>::fold_opt_ts_type_param_decl(visitor, self, __ast_path)
135148    }
135149
135150    #[inline]
135151    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135152        self.map(|inner| {
135153            <Box<TsTypeParamDecl> as FoldWithAstPath<V>>::fold_with_ast_path(
135154                inner, visitor, __ast_path,
135155            )
135156        })
135157    }
135158}
135159#[cfg(any(docsrs, feature = "path"))]
135160#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135161impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<Box<TsTypeParamInstantiation>> {
135162    #[doc = "Calls [FoldAstPath`::fold_opt_ts_type_param_instantiation`] with `self`. (Extra impl)"]
135163    #[inline]
135164    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135165        <V as FoldAstPath>::fold_opt_ts_type_param_instantiation(visitor, self, __ast_path)
135166    }
135167
135168    #[inline]
135169    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135170        self.map(|inner| {
135171            <Box<TsTypeParamInstantiation> as FoldWithAstPath<V>>::fold_with_ast_path(
135172                inner, visitor, __ast_path,
135173            )
135174        })
135175    }
135176}
135177#[cfg(any(docsrs, feature = "path"))]
135178#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135179impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Option<VarDeclOrExpr> {
135180    #[doc = "Calls [FoldAstPath`::fold_opt_var_decl_or_expr`] with `self`. (Extra impl)"]
135181    #[inline]
135182    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135183        <V as FoldAstPath>::fold_opt_var_decl_or_expr(visitor, self, __ast_path)
135184    }
135185
135186    #[inline]
135187    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135188        self.map(|inner| {
135189            <VarDeclOrExpr as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135190        })
135191    }
135192}
135193#[cfg(any(docsrs, feature = "path"))]
135194#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135195impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Option<ExprOrSpread>> {
135196    #[doc = "Calls [FoldAstPath`::fold_opt_vec_expr_or_spreads`] with `self`. (Extra impl)"]
135197    #[inline]
135198    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135199        <V as FoldAstPath>::fold_opt_vec_expr_or_spreads(visitor, self, __ast_path)
135200    }
135201
135202    #[inline]
135203    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135204        self.into_iter()
135205            .enumerate()
135206            .map(|(__idx, item)| {
135207                let mut __ast_path = __ast_path.with_index_guard(__idx);
135208                <Option<ExprOrSpread> as FoldWithAstPath<V>>::fold_with_ast_path(
135209                    item,
135210                    visitor,
135211                    &mut *__ast_path,
135212                )
135213            })
135214            .collect()
135215    }
135216}
135217#[cfg(any(docsrs, feature = "path"))]
135218#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135219impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Option<Pat>> {
135220    #[doc = "Calls [FoldAstPath`::fold_opt_vec_pats`] with `self`. (Extra impl)"]
135221    #[inline]
135222    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135223        <V as FoldAstPath>::fold_opt_vec_pats(visitor, self, __ast_path)
135224    }
135225
135226    #[inline]
135227    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135228        self.into_iter()
135229            .enumerate()
135230            .map(|(__idx, item)| {
135231                let mut __ast_path = __ast_path.with_index_guard(__idx);
135232                <Option<Pat> as FoldWithAstPath<V>>::fold_with_ast_path(
135233                    item,
135234                    visitor,
135235                    &mut *__ast_path,
135236                )
135237            })
135238            .collect()
135239    }
135240}
135241#[cfg(any(docsrs, feature = "path"))]
135242#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135243impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<ParamOrTsParamProp> {
135244    #[doc = "Calls [FoldAstPath`::fold_param_or_ts_param_props`] with `self`. (Extra impl)"]
135245    #[inline]
135246    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135247        <V as FoldAstPath>::fold_param_or_ts_param_props(visitor, self, __ast_path)
135248    }
135249
135250    #[inline]
135251    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135252        self.into_iter()
135253            .enumerate()
135254            .map(|(__idx, item)| {
135255                let mut __ast_path = __ast_path.with_index_guard(__idx);
135256                <ParamOrTsParamProp as FoldWithAstPath<V>>::fold_with_ast_path(
135257                    item,
135258                    visitor,
135259                    &mut *__ast_path,
135260                )
135261            })
135262            .collect()
135263    }
135264}
135265#[cfg(any(docsrs, feature = "path"))]
135266#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135267impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Param> {
135268    #[doc = "Calls [FoldAstPath`::fold_params`] with `self`. (Extra impl)"]
135269    #[inline]
135270    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135271        <V as FoldAstPath>::fold_params(visitor, self, __ast_path)
135272    }
135273
135274    #[inline]
135275    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135276        self.into_iter()
135277            .enumerate()
135278            .map(|(__idx, item)| {
135279                let mut __ast_path = __ast_path.with_index_guard(__idx);
135280                <Param as FoldWithAstPath<V>>::fold_with_ast_path(item, visitor, &mut *__ast_path)
135281            })
135282            .collect()
135283    }
135284}
135285#[cfg(any(docsrs, feature = "path"))]
135286#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135287impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Pat> {
135288    #[doc = "Calls [FoldAstPath`::fold_pats`] with `self`. (Extra impl)"]
135289    #[inline]
135290    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135291        <V as FoldAstPath>::fold_pats(visitor, self, __ast_path)
135292    }
135293
135294    #[inline]
135295    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135296        self.into_iter()
135297            .enumerate()
135298            .map(|(__idx, item)| {
135299                let mut __ast_path = __ast_path.with_index_guard(__idx);
135300                <Pat as FoldWithAstPath<V>>::fold_with_ast_path(item, visitor, &mut *__ast_path)
135301            })
135302            .collect()
135303    }
135304}
135305#[cfg(any(docsrs, feature = "path"))]
135306#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135307impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<PropOrSpread> {
135308    #[doc = "Calls [FoldAstPath`::fold_prop_or_spreads`] with `self`. (Extra impl)"]
135309    #[inline]
135310    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135311        <V as FoldAstPath>::fold_prop_or_spreads(visitor, self, __ast_path)
135312    }
135313
135314    #[inline]
135315    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135316        self.into_iter()
135317            .enumerate()
135318            .map(|(__idx, item)| {
135319                let mut __ast_path = __ast_path.with_index_guard(__idx);
135320                <PropOrSpread as FoldWithAstPath<V>>::fold_with_ast_path(
135321                    item,
135322                    visitor,
135323                    &mut *__ast_path,
135324                )
135325            })
135326            .collect()
135327    }
135328}
135329#[cfg(any(docsrs, feature = "path"))]
135330#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135331impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for swc_common::Span {
135332    #[doc = "Calls [FoldAstPath`::fold_span`] with `self`. (Extra impl)"]
135333    #[inline]
135334    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135335        <V as FoldAstPath>::fold_span(visitor, self, __ast_path)
135336    }
135337
135338    #[inline]
135339    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135340        self
135341    }
135342}
135343#[cfg(any(docsrs, feature = "path"))]
135344#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135345impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Stmt> {
135346    #[doc = "Calls [FoldAstPath`::fold_stmts`] with `self`. (Extra impl)"]
135347    #[inline]
135348    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135349        <V as FoldAstPath>::fold_stmts(visitor, self, __ast_path)
135350    }
135351
135352    #[inline]
135353    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135354        self.into_iter()
135355            .enumerate()
135356            .map(|(__idx, item)| {
135357                let mut __ast_path = __ast_path.with_index_guard(__idx);
135358                <Stmt as FoldWithAstPath<V>>::fold_with_ast_path(item, visitor, &mut *__ast_path)
135359            })
135360            .collect()
135361    }
135362}
135363#[cfg(any(docsrs, feature = "path"))]
135364#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135365impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<SwitchCase> {
135366    #[doc = "Calls [FoldAstPath`::fold_switch_cases`] with `self`. (Extra impl)"]
135367    #[inline]
135368    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135369        <V as FoldAstPath>::fold_switch_cases(visitor, self, __ast_path)
135370    }
135371
135372    #[inline]
135373    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135374        self.into_iter()
135375            .enumerate()
135376            .map(|(__idx, item)| {
135377                let mut __ast_path = __ast_path.with_index_guard(__idx);
135378                <SwitchCase as FoldWithAstPath<V>>::fold_with_ast_path(
135379                    item,
135380                    visitor,
135381                    &mut *__ast_path,
135382                )
135383            })
135384            .collect()
135385    }
135386}
135387#[cfg(any(docsrs, feature = "path"))]
135388#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135389impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for swc_common::SyntaxContext {
135390    #[doc = "Calls [FoldAstPath`::fold_syntax_context`] with `self`. (Extra impl)"]
135391    #[inline]
135392    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135393        <V as FoldAstPath>::fold_syntax_context(visitor, self, __ast_path)
135394    }
135395
135396    #[inline]
135397    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135398        self
135399    }
135400}
135401#[cfg(any(docsrs, feature = "path"))]
135402#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135403impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TplElement> {
135404    #[doc = "Calls [FoldAstPath`::fold_tpl_elements`] with `self`. (Extra impl)"]
135405    #[inline]
135406    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135407        <V as FoldAstPath>::fold_tpl_elements(visitor, self, __ast_path)
135408    }
135409
135410    #[inline]
135411    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135412        self.into_iter()
135413            .enumerate()
135414            .map(|(__idx, item)| {
135415                let mut __ast_path = __ast_path.with_index_guard(__idx);
135416                <TplElement as FoldWithAstPath<V>>::fold_with_ast_path(
135417                    item,
135418                    visitor,
135419                    &mut *__ast_path,
135420                )
135421            })
135422            .collect()
135423    }
135424}
135425#[cfg(any(docsrs, feature = "path"))]
135426#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135427impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsEnumMember> {
135428    #[doc = "Calls [FoldAstPath`::fold_ts_enum_members`] with `self`. (Extra impl)"]
135429    #[inline]
135430    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135431        <V as FoldAstPath>::fold_ts_enum_members(visitor, self, __ast_path)
135432    }
135433
135434    #[inline]
135435    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135436        self.into_iter()
135437            .enumerate()
135438            .map(|(__idx, item)| {
135439                let mut __ast_path = __ast_path.with_index_guard(__idx);
135440                <TsEnumMember as FoldWithAstPath<V>>::fold_with_ast_path(
135441                    item,
135442                    visitor,
135443                    &mut *__ast_path,
135444                )
135445            })
135446            .collect()
135447    }
135448}
135449#[cfg(any(docsrs, feature = "path"))]
135450#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135451impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsExprWithTypeArgs> {
135452    #[doc = "Calls [FoldAstPath`::fold_ts_expr_with_type_argss`] with `self`. (Extra impl)"]
135453    #[inline]
135454    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135455        <V as FoldAstPath>::fold_ts_expr_with_type_argss(visitor, self, __ast_path)
135456    }
135457
135458    #[inline]
135459    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135460        self.into_iter()
135461            .enumerate()
135462            .map(|(__idx, item)| {
135463                let mut __ast_path = __ast_path.with_index_guard(__idx);
135464                <TsExprWithTypeArgs as FoldWithAstPath<V>>::fold_with_ast_path(
135465                    item,
135466                    visitor,
135467                    &mut *__ast_path,
135468                )
135469            })
135470            .collect()
135471    }
135472}
135473#[cfg(any(docsrs, feature = "path"))]
135474#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135475impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsFnParam> {
135476    #[doc = "Calls [FoldAstPath`::fold_ts_fn_params`] with `self`. (Extra impl)"]
135477    #[inline]
135478    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135479        <V as FoldAstPath>::fold_ts_fn_params(visitor, self, __ast_path)
135480    }
135481
135482    #[inline]
135483    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135484        self.into_iter()
135485            .enumerate()
135486            .map(|(__idx, item)| {
135487                let mut __ast_path = __ast_path.with_index_guard(__idx);
135488                <TsFnParam as FoldWithAstPath<V>>::fold_with_ast_path(
135489                    item,
135490                    visitor,
135491                    &mut *__ast_path,
135492                )
135493            })
135494            .collect()
135495    }
135496}
135497#[cfg(any(docsrs, feature = "path"))]
135498#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135499impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsTupleElement> {
135500    #[doc = "Calls [FoldAstPath`::fold_ts_tuple_elements`] with `self`. (Extra impl)"]
135501    #[inline]
135502    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135503        <V as FoldAstPath>::fold_ts_tuple_elements(visitor, self, __ast_path)
135504    }
135505
135506    #[inline]
135507    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135508        self.into_iter()
135509            .enumerate()
135510            .map(|(__idx, item)| {
135511                let mut __ast_path = __ast_path.with_index_guard(__idx);
135512                <TsTupleElement as FoldWithAstPath<V>>::fold_with_ast_path(
135513                    item,
135514                    visitor,
135515                    &mut *__ast_path,
135516                )
135517            })
135518            .collect()
135519    }
135520}
135521#[cfg(any(docsrs, feature = "path"))]
135522#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135523impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsTypeElement> {
135524    #[doc = "Calls [FoldAstPath`::fold_ts_type_elements`] with `self`. (Extra impl)"]
135525    #[inline]
135526    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135527        <V as FoldAstPath>::fold_ts_type_elements(visitor, self, __ast_path)
135528    }
135529
135530    #[inline]
135531    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135532        self.into_iter()
135533            .enumerate()
135534            .map(|(__idx, item)| {
135535                let mut __ast_path = __ast_path.with_index_guard(__idx);
135536                <TsTypeElement as FoldWithAstPath<V>>::fold_with_ast_path(
135537                    item,
135538                    visitor,
135539                    &mut *__ast_path,
135540                )
135541            })
135542            .collect()
135543    }
135544}
135545#[cfg(any(docsrs, feature = "path"))]
135546#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135547impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<TsTypeParam> {
135548    #[doc = "Calls [FoldAstPath`::fold_ts_type_params`] with `self`. (Extra impl)"]
135549    #[inline]
135550    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135551        <V as FoldAstPath>::fold_ts_type_params(visitor, self, __ast_path)
135552    }
135553
135554    #[inline]
135555    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135556        self.into_iter()
135557            .enumerate()
135558            .map(|(__idx, item)| {
135559                let mut __ast_path = __ast_path.with_index_guard(__idx);
135560                <TsTypeParam as FoldWithAstPath<V>>::fold_with_ast_path(
135561                    item,
135562                    visitor,
135563                    &mut *__ast_path,
135564                )
135565            })
135566            .collect()
135567    }
135568}
135569#[cfg(any(docsrs, feature = "path"))]
135570#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135571impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<Box<TsType>> {
135572    #[doc = "Calls [FoldAstPath`::fold_ts_types`] with `self`. (Extra impl)"]
135573    #[inline]
135574    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135575        <V as FoldAstPath>::fold_ts_types(visitor, self, __ast_path)
135576    }
135577
135578    #[inline]
135579    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135580        self.into_iter()
135581            .enumerate()
135582            .map(|(__idx, item)| {
135583                let mut __ast_path = __ast_path.with_index_guard(__idx);
135584                <Box<TsType> as FoldWithAstPath<V>>::fold_with_ast_path(
135585                    item,
135586                    visitor,
135587                    &mut *__ast_path,
135588                )
135589            })
135590            .collect()
135591    }
135592}
135593#[cfg(any(docsrs, feature = "path"))]
135594#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135595impl<V: ?Sized + FoldAstPath> FoldWithAstPath<V> for Vec<VarDeclarator> {
135596    #[doc = "Calls [FoldAstPath`::fold_var_declarators`] with `self`. (Extra impl)"]
135597    #[inline]
135598    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135599        <V as FoldAstPath>::fold_var_declarators(visitor, self, __ast_path)
135600    }
135601
135602    #[inline]
135603    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135604        self.into_iter()
135605            .enumerate()
135606            .map(|(__idx, item)| {
135607                let mut __ast_path = __ast_path.with_index_guard(__idx);
135608                <VarDeclarator as FoldWithAstPath<V>>::fold_with_ast_path(
135609                    item,
135610                    visitor,
135611                    &mut *__ast_path,
135612                )
135613            })
135614            .collect()
135615    }
135616}
135617#[cfg(any(docsrs, feature = "path"))]
135618#[cfg_attr(docsrs, doc(cfg(feature = "path")))]
135619impl<V, T> FoldWithAstPath<V> for std::boxed::Box<T>
135620where
135621    V: ?Sized + FoldAstPath,
135622    T: FoldWithAstPath<V>,
135623{
135624    #[inline]
135625    fn fold_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135626        swc_visit::util::map::Map::map(self, |inner| {
135627            <T as FoldWithAstPath<V>>::fold_with_ast_path(inner, visitor, __ast_path)
135628        })
135629    }
135630
135631    #[inline]
135632    fn fold_children_with_ast_path(self, visitor: &mut V, __ast_path: &mut AstKindPath) -> Self {
135633        swc_visit::util::map::Map::map(self, |inner| {
135634            <T as FoldWithAstPath<V>>::fold_children_with_ast_path(inner, visitor, __ast_path)
135635        })
135636    }
135637}
135638#[cfg(any(docsrs, feature = "path"))]
135639pub type AstKindPath = swc_visit::AstKindPath<AstParentKind>;
135640#[cfg(any(docsrs, feature = "path"))]
135641pub type AstNodePath<'ast> = swc_visit::AstNodePath<AstParentNodeRef<'ast>>;
135642#[cfg(any(docsrs, feature = "path"))]
135643pub mod fields {
135644    use swc_ecma_ast::*;
135645    #[inline(always)]
135646    fn assert_initial_index(idx: usize, index: usize) {
135647        #[cfg(debug_assertions)]
135648        if !(idx == usize::MAX || index == usize::MAX) {
135649            {
135650                panic!("Should be usize::MAX");
135651            }
135652        }
135653    }
135654    impl AccessibilityField {
135655        #[inline(always)]
135656        pub(crate) fn set_index(&mut self, _: usize) {
135657            swc_visit::wrong_ast_path();
135658        }
135659    }
135660    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135661    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135662    pub enum AccessibilityField {
135663        #[doc = "Represents [`Accessibility::Public`]"]
135664        Public,
135665        #[doc = "Represents [`Accessibility::Protected`]"]
135666        Protected,
135667        #[doc = "Represents [`Accessibility::Private`]"]
135668        Private,
135669    }
135670    impl ArrayLitField {
135671        pub(crate) fn set_index(&mut self, index: usize) {
135672            match self {
135673                Self::Elems(idx) => {
135674                    assert_initial_index(*idx, index);
135675                    *idx = index;
135676                }
135677                _ => swc_visit::wrong_ast_path(),
135678            }
135679        }
135680    }
135681    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135682    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135683    pub enum ArrayLitField {
135684        #[doc = "Represents [`ArrayLit::span`]"]
135685        Span,
135686        #[doc = "Represents [`ArrayLit::elems`]"]
135687        Elems(usize),
135688    }
135689    impl ArrayPatField {
135690        pub(crate) fn set_index(&mut self, index: usize) {
135691            match self {
135692                Self::Elems(idx) => {
135693                    assert_initial_index(*idx, index);
135694                    *idx = index;
135695                }
135696                _ => swc_visit::wrong_ast_path(),
135697            }
135698        }
135699    }
135700    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135701    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135702    pub enum ArrayPatField {
135703        #[doc = "Represents [`ArrayPat::span`]"]
135704        Span,
135705        #[doc = "Represents [`ArrayPat::elems`]"]
135706        Elems(usize),
135707        #[doc = "Represents [`ArrayPat::optional`]"]
135708        Optional,
135709        #[doc = "Represents [`ArrayPat::type_ann`]"]
135710        TypeAnn,
135711    }
135712    impl ArrowExprField {
135713        pub(crate) fn set_index(&mut self, index: usize) {
135714            match self {
135715                Self::Params(idx) => {
135716                    assert_initial_index(*idx, index);
135717                    *idx = index;
135718                }
135719                _ => swc_visit::wrong_ast_path(),
135720            }
135721        }
135722    }
135723    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135724    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135725    pub enum ArrowExprField {
135726        #[doc = "Represents [`ArrowExpr::span`]"]
135727        Span,
135728        #[doc = "Represents [`ArrowExpr::ctxt`]"]
135729        Ctxt,
135730        #[doc = "Represents [`ArrowExpr::params`]"]
135731        Params(usize),
135732        #[doc = "Represents [`ArrowExpr::body`]"]
135733        Body,
135734        #[doc = "Represents [`ArrowExpr::is_async`]"]
135735        IsAsync,
135736        #[doc = "Represents [`ArrowExpr::is_generator`]"]
135737        IsGenerator,
135738        #[doc = "Represents [`ArrowExpr::type_params`]"]
135739        TypeParams,
135740        #[doc = "Represents [`ArrowExpr::return_type`]"]
135741        ReturnType,
135742    }
135743    impl AssignExprField {
135744        pub(crate) fn set_index(&mut self, index: usize) {
135745            match self {
135746                _ => swc_visit::wrong_ast_path(),
135747            }
135748        }
135749    }
135750    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135751    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135752    pub enum AssignExprField {
135753        #[doc = "Represents [`AssignExpr::span`]"]
135754        Span,
135755        #[doc = "Represents [`AssignExpr::op`]"]
135756        Op,
135757        #[doc = "Represents [`AssignExpr::left`]"]
135758        Left,
135759        #[doc = "Represents [`AssignExpr::right`]"]
135760        Right,
135761    }
135762    impl AssignOpField {
135763        #[inline(always)]
135764        pub(crate) fn set_index(&mut self, _: usize) {
135765            swc_visit::wrong_ast_path();
135766        }
135767    }
135768    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135769    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135770    pub enum AssignOpField {
135771        #[doc = "Represents [`AssignOp::Assign`]"]
135772        Assign,
135773        #[doc = "Represents [`AssignOp::AddAssign`]"]
135774        AddAssign,
135775        #[doc = "Represents [`AssignOp::SubAssign`]"]
135776        SubAssign,
135777        #[doc = "Represents [`AssignOp::MulAssign`]"]
135778        MulAssign,
135779        #[doc = "Represents [`AssignOp::DivAssign`]"]
135780        DivAssign,
135781        #[doc = "Represents [`AssignOp::ModAssign`]"]
135782        ModAssign,
135783        #[doc = "Represents [`AssignOp::LShiftAssign`]"]
135784        LshiftAssign,
135785        #[doc = "Represents [`AssignOp::RShiftAssign`]"]
135786        RshiftAssign,
135787        #[doc = "Represents [`AssignOp::ZeroFillRShiftAssign`]"]
135788        ZeroFillRShiftAssign,
135789        #[doc = "Represents [`AssignOp::BitOrAssign`]"]
135790        BitOrAssign,
135791        #[doc = "Represents [`AssignOp::BitXorAssign`]"]
135792        BitXorAssign,
135793        #[doc = "Represents [`AssignOp::BitAndAssign`]"]
135794        BitAndAssign,
135795        #[doc = "Represents [`AssignOp::ExpAssign`]"]
135796        ExpAssign,
135797        #[doc = "Represents [`AssignOp::AndAssign`]"]
135798        AndAssign,
135799        #[doc = "Represents [`AssignOp::OrAssign`]"]
135800        OrAssign,
135801        #[doc = "Represents [`AssignOp::NullishAssign`]"]
135802        NullishAssign,
135803    }
135804    impl AssignPatField {
135805        pub(crate) fn set_index(&mut self, index: usize) {
135806            match self {
135807                _ => swc_visit::wrong_ast_path(),
135808            }
135809        }
135810    }
135811    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135812    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135813    pub enum AssignPatField {
135814        #[doc = "Represents [`AssignPat::span`]"]
135815        Span,
135816        #[doc = "Represents [`AssignPat::left`]"]
135817        Left,
135818        #[doc = "Represents [`AssignPat::right`]"]
135819        Right,
135820    }
135821    impl AssignPatPropField {
135822        pub(crate) fn set_index(&mut self, index: usize) {
135823            match self {
135824                _ => swc_visit::wrong_ast_path(),
135825            }
135826        }
135827    }
135828    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135829    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135830    pub enum AssignPatPropField {
135831        #[doc = "Represents [`AssignPatProp::span`]"]
135832        Span,
135833        #[doc = "Represents [`AssignPatProp::key`]"]
135834        Key,
135835        #[doc = "Represents [`AssignPatProp::value`]"]
135836        Value,
135837    }
135838    impl AssignPropField {
135839        pub(crate) fn set_index(&mut self, index: usize) {
135840            match self {
135841                _ => swc_visit::wrong_ast_path(),
135842            }
135843        }
135844    }
135845    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135846    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135847    pub enum AssignPropField {
135848        #[doc = "Represents [`AssignProp::span`]"]
135849        Span,
135850        #[doc = "Represents [`AssignProp::key`]"]
135851        Key,
135852        #[doc = "Represents [`AssignProp::value`]"]
135853        Value,
135854    }
135855    impl AssignTargetField {
135856        #[inline(always)]
135857        pub(crate) fn set_index(&mut self, _: usize) {
135858            swc_visit::wrong_ast_path();
135859        }
135860    }
135861    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135862    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135863    pub enum AssignTargetField {
135864        #[doc = "Represents [`AssignTarget::Simple`]"]
135865        Simple,
135866        #[doc = "Represents [`AssignTarget::Pat`]"]
135867        Pat,
135868    }
135869    impl AssignTargetPatField {
135870        #[inline(always)]
135871        pub(crate) fn set_index(&mut self, _: usize) {
135872            swc_visit::wrong_ast_path();
135873        }
135874    }
135875    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135876    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135877    pub enum AssignTargetPatField {
135878        #[doc = "Represents [`AssignTargetPat::Array`]"]
135879        Array,
135880        #[doc = "Represents [`AssignTargetPat::Object`]"]
135881        Object,
135882        #[doc = "Represents [`AssignTargetPat::Invalid`]"]
135883        Invalid,
135884    }
135885    impl AutoAccessorField {
135886        pub(crate) fn set_index(&mut self, index: usize) {
135887            match self {
135888                Self::Decorators(idx) => {
135889                    assert_initial_index(*idx, index);
135890                    *idx = index;
135891                }
135892                _ => swc_visit::wrong_ast_path(),
135893            }
135894        }
135895    }
135896    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135897    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135898    pub enum AutoAccessorField {
135899        #[doc = "Represents [`AutoAccessor::span`]"]
135900        Span,
135901        #[doc = "Represents [`AutoAccessor::key`]"]
135902        Key,
135903        #[doc = "Represents [`AutoAccessor::value`]"]
135904        Value,
135905        #[doc = "Represents [`AutoAccessor::type_ann`]"]
135906        TypeAnn,
135907        #[doc = "Represents [`AutoAccessor::is_static`]"]
135908        IsStatic,
135909        #[doc = "Represents [`AutoAccessor::decorators`]"]
135910        Decorators(usize),
135911        #[doc = "Represents [`AutoAccessor::accessibility`]"]
135912        Accessibility,
135913        #[doc = "Represents [`AutoAccessor::is_abstract`]"]
135914        IsAbstract,
135915        #[doc = "Represents [`AutoAccessor::is_override`]"]
135916        IsOverride,
135917        #[doc = "Represents [`AutoAccessor::definite`]"]
135918        Definite,
135919    }
135920    impl AwaitExprField {
135921        pub(crate) fn set_index(&mut self, index: usize) {
135922            match self {
135923                _ => swc_visit::wrong_ast_path(),
135924            }
135925        }
135926    }
135927    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135928    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135929    pub enum AwaitExprField {
135930        #[doc = "Represents [`AwaitExpr::span`]"]
135931        Span,
135932        #[doc = "Represents [`AwaitExpr::arg`]"]
135933        Arg,
135934    }
135935    impl BigIntField {
135936        pub(crate) fn set_index(&mut self, index: usize) {
135937            match self {
135938                _ => swc_visit::wrong_ast_path(),
135939            }
135940        }
135941    }
135942    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135943    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135944    pub enum BigIntField {
135945        #[doc = "Represents [`BigInt::span`]"]
135946        Span,
135947        #[doc = "Represents [`BigInt::value`]"]
135948        Value,
135949        #[doc = "Represents [`BigInt::raw`]"]
135950        Raw,
135951    }
135952    impl BinExprField {
135953        pub(crate) fn set_index(&mut self, index: usize) {
135954            match self {
135955                _ => swc_visit::wrong_ast_path(),
135956            }
135957        }
135958    }
135959    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135960    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135961    pub enum BinExprField {
135962        #[doc = "Represents [`BinExpr::span`]"]
135963        Span,
135964        #[doc = "Represents [`BinExpr::op`]"]
135965        Op,
135966        #[doc = "Represents [`BinExpr::left`]"]
135967        Left,
135968        #[doc = "Represents [`BinExpr::right`]"]
135969        Right,
135970    }
135971    impl BinaryOpField {
135972        #[inline(always)]
135973        pub(crate) fn set_index(&mut self, _: usize) {
135974            swc_visit::wrong_ast_path();
135975        }
135976    }
135977    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
135978    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
135979    pub enum BinaryOpField {
135980        #[doc = "Represents [`BinaryOp::EqEq`]"]
135981        EqEq,
135982        #[doc = "Represents [`BinaryOp::NotEq`]"]
135983        NotEq,
135984        #[doc = "Represents [`BinaryOp::EqEqEq`]"]
135985        EqEqEq,
135986        #[doc = "Represents [`BinaryOp::NotEqEq`]"]
135987        NotEqEq,
135988        #[doc = "Represents [`BinaryOp::Lt`]"]
135989        Lt,
135990        #[doc = "Represents [`BinaryOp::LtEq`]"]
135991        LtEq,
135992        #[doc = "Represents [`BinaryOp::Gt`]"]
135993        Gt,
135994        #[doc = "Represents [`BinaryOp::GtEq`]"]
135995        GtEq,
135996        #[doc = "Represents [`BinaryOp::LShift`]"]
135997        Lshift,
135998        #[doc = "Represents [`BinaryOp::RShift`]"]
135999        Rshift,
136000        #[doc = "Represents [`BinaryOp::ZeroFillRShift`]"]
136001        ZeroFillRShift,
136002        #[doc = "Represents [`BinaryOp::Add`]"]
136003        Add,
136004        #[doc = "Represents [`BinaryOp::Sub`]"]
136005        Sub,
136006        #[doc = "Represents [`BinaryOp::Mul`]"]
136007        Mul,
136008        #[doc = "Represents [`BinaryOp::Div`]"]
136009        Div,
136010        #[doc = "Represents [`BinaryOp::Mod`]"]
136011        Mod,
136012        #[doc = "Represents [`BinaryOp::BitOr`]"]
136013        BitOr,
136014        #[doc = "Represents [`BinaryOp::BitXor`]"]
136015        BitXor,
136016        #[doc = "Represents [`BinaryOp::BitAnd`]"]
136017        BitAnd,
136018        #[doc = "Represents [`BinaryOp::LogicalOr`]"]
136019        LogicalOr,
136020        #[doc = "Represents [`BinaryOp::LogicalAnd`]"]
136021        LogicalAnd,
136022        #[doc = "Represents [`BinaryOp::In`]"]
136023        In,
136024        #[doc = "Represents [`BinaryOp::InstanceOf`]"]
136025        InstanceOf,
136026        #[doc = "Represents [`BinaryOp::Exp`]"]
136027        Exp,
136028        #[doc = "Represents [`BinaryOp::NullishCoalescing`]"]
136029        NullishCoalescing,
136030    }
136031    impl BindingIdentField {
136032        pub(crate) fn set_index(&mut self, index: usize) {
136033            match self {
136034                _ => swc_visit::wrong_ast_path(),
136035            }
136036        }
136037    }
136038    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136039    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136040    pub enum BindingIdentField {
136041        #[doc = "Represents [`BindingIdent::id`]"]
136042        Id,
136043        #[doc = "Represents [`BindingIdent::type_ann`]"]
136044        TypeAnn,
136045    }
136046    impl BlockStmtField {
136047        pub(crate) fn set_index(&mut self, index: usize) {
136048            match self {
136049                Self::Stmts(idx) => {
136050                    assert_initial_index(*idx, index);
136051                    *idx = index;
136052                }
136053                _ => swc_visit::wrong_ast_path(),
136054            }
136055        }
136056    }
136057    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136058    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136059    pub enum BlockStmtField {
136060        #[doc = "Represents [`BlockStmt::span`]"]
136061        Span,
136062        #[doc = "Represents [`BlockStmt::ctxt`]"]
136063        Ctxt,
136064        #[doc = "Represents [`BlockStmt::stmts`]"]
136065        Stmts(usize),
136066    }
136067    impl BlockStmtOrExprField {
136068        #[inline(always)]
136069        pub(crate) fn set_index(&mut self, _: usize) {
136070            swc_visit::wrong_ast_path();
136071        }
136072    }
136073    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136074    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136075    pub enum BlockStmtOrExprField {
136076        #[doc = "Represents [`BlockStmtOrExpr::BlockStmt`]"]
136077        BlockStmt,
136078        #[doc = "Represents [`BlockStmtOrExpr::Expr`]"]
136079        Expr,
136080    }
136081    impl BoolField {
136082        pub(crate) fn set_index(&mut self, index: usize) {
136083            match self {
136084                _ => swc_visit::wrong_ast_path(),
136085            }
136086        }
136087    }
136088    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136089    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136090    pub enum BoolField {
136091        #[doc = "Represents [`Bool::span`]"]
136092        Span,
136093        #[doc = "Represents [`Bool::value`]"]
136094        Value,
136095    }
136096    impl BreakStmtField {
136097        pub(crate) fn set_index(&mut self, index: usize) {
136098            match self {
136099                _ => swc_visit::wrong_ast_path(),
136100            }
136101        }
136102    }
136103    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136104    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136105    pub enum BreakStmtField {
136106        #[doc = "Represents [`BreakStmt::span`]"]
136107        Span,
136108        #[doc = "Represents [`BreakStmt::label`]"]
136109        Label,
136110    }
136111    impl CallExprField {
136112        pub(crate) fn set_index(&mut self, index: usize) {
136113            match self {
136114                Self::Args(idx) => {
136115                    assert_initial_index(*idx, index);
136116                    *idx = index;
136117                }
136118                _ => swc_visit::wrong_ast_path(),
136119            }
136120        }
136121    }
136122    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136123    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136124    pub enum CallExprField {
136125        #[doc = "Represents [`CallExpr::span`]"]
136126        Span,
136127        #[doc = "Represents [`CallExpr::ctxt`]"]
136128        Ctxt,
136129        #[doc = "Represents [`CallExpr::callee`]"]
136130        Callee,
136131        #[doc = "Represents [`CallExpr::args`]"]
136132        Args(usize),
136133        #[doc = "Represents [`CallExpr::type_args`]"]
136134        TypeArgs,
136135    }
136136    impl CalleeField {
136137        #[inline(always)]
136138        pub(crate) fn set_index(&mut self, _: usize) {
136139            swc_visit::wrong_ast_path();
136140        }
136141    }
136142    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136143    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136144    pub enum CalleeField {
136145        #[doc = "Represents [`Callee::Super`]"]
136146        Super,
136147        #[doc = "Represents [`Callee::Import`]"]
136148        Import,
136149        #[doc = "Represents [`Callee::Expr`]"]
136150        Expr,
136151    }
136152    impl CatchClauseField {
136153        pub(crate) fn set_index(&mut self, index: usize) {
136154            match self {
136155                _ => swc_visit::wrong_ast_path(),
136156            }
136157        }
136158    }
136159    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136160    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136161    pub enum CatchClauseField {
136162        #[doc = "Represents [`CatchClause::span`]"]
136163        Span,
136164        #[doc = "Represents [`CatchClause::param`]"]
136165        Param,
136166        #[doc = "Represents [`CatchClause::body`]"]
136167        Body,
136168    }
136169    impl ClassField {
136170        pub(crate) fn set_index(&mut self, index: usize) {
136171            match self {
136172                Self::Decorators(idx) => {
136173                    assert_initial_index(*idx, index);
136174                    *idx = index;
136175                }
136176                Self::Body(idx) => {
136177                    assert_initial_index(*idx, index);
136178                    *idx = index;
136179                }
136180                Self::Implements(idx) => {
136181                    assert_initial_index(*idx, index);
136182                    *idx = index;
136183                }
136184                _ => swc_visit::wrong_ast_path(),
136185            }
136186        }
136187    }
136188    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136189    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136190    pub enum ClassField {
136191        #[doc = "Represents [`Class::span`]"]
136192        Span,
136193        #[doc = "Represents [`Class::ctxt`]"]
136194        Ctxt,
136195        #[doc = "Represents [`Class::decorators`]"]
136196        Decorators(usize),
136197        #[doc = "Represents [`Class::body`]"]
136198        Body(usize),
136199        #[doc = "Represents [`Class::super_class`]"]
136200        SuperClass,
136201        #[doc = "Represents [`Class::is_abstract`]"]
136202        IsAbstract,
136203        #[doc = "Represents [`Class::type_params`]"]
136204        TypeParams,
136205        #[doc = "Represents [`Class::super_type_params`]"]
136206        SuperTypeParams,
136207        #[doc = "Represents [`Class::implements`]"]
136208        Implements(usize),
136209    }
136210    impl ClassDeclField {
136211        pub(crate) fn set_index(&mut self, index: usize) {
136212            match self {
136213                _ => swc_visit::wrong_ast_path(),
136214            }
136215        }
136216    }
136217    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136218    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136219    pub enum ClassDeclField {
136220        #[doc = "Represents [`ClassDecl::ident`]"]
136221        Ident,
136222        #[doc = "Represents [`ClassDecl::declare`]"]
136223        Declare,
136224        #[doc = "Represents [`ClassDecl::class`]"]
136225        Class,
136226    }
136227    impl ClassExprField {
136228        pub(crate) fn set_index(&mut self, index: usize) {
136229            match self {
136230                _ => swc_visit::wrong_ast_path(),
136231            }
136232        }
136233    }
136234    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136235    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136236    pub enum ClassExprField {
136237        #[doc = "Represents [`ClassExpr::ident`]"]
136238        Ident,
136239        #[doc = "Represents [`ClassExpr::class`]"]
136240        Class,
136241    }
136242    impl ClassMemberField {
136243        #[inline(always)]
136244        pub(crate) fn set_index(&mut self, _: usize) {
136245            swc_visit::wrong_ast_path();
136246        }
136247    }
136248    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136249    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136250    pub enum ClassMemberField {
136251        #[doc = "Represents [`ClassMember::Constructor`]"]
136252        Constructor,
136253        #[doc = "Represents [`ClassMember::Method`]"]
136254        Method,
136255        #[doc = "Represents [`ClassMember::PrivateMethod`]"]
136256        PrivateMethod,
136257        #[doc = "Represents [`ClassMember::ClassProp`]"]
136258        ClassProp,
136259        #[doc = "Represents [`ClassMember::PrivateProp`]"]
136260        PrivateProp,
136261        #[doc = "Represents [`ClassMember::TsIndexSignature`]"]
136262        TsIndexSignature,
136263        #[doc = "Represents [`ClassMember::Empty`]"]
136264        Empty,
136265        #[doc = "Represents [`ClassMember::StaticBlock`]"]
136266        StaticBlock,
136267        #[doc = "Represents [`ClassMember::AutoAccessor`]"]
136268        AutoAccessor,
136269    }
136270    impl ClassMethodField {
136271        pub(crate) fn set_index(&mut self, index: usize) {
136272            match self {
136273                _ => swc_visit::wrong_ast_path(),
136274            }
136275        }
136276    }
136277    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136278    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136279    pub enum ClassMethodField {
136280        #[doc = "Represents [`ClassMethod::span`]"]
136281        Span,
136282        #[doc = "Represents [`ClassMethod::key`]"]
136283        Key,
136284        #[doc = "Represents [`ClassMethod::function`]"]
136285        Function,
136286        #[doc = "Represents [`ClassMethod::kind`]"]
136287        Kind,
136288        #[doc = "Represents [`ClassMethod::is_static`]"]
136289        IsStatic,
136290        #[doc = "Represents [`ClassMethod::accessibility`]"]
136291        Accessibility,
136292        #[doc = "Represents [`ClassMethod::is_abstract`]"]
136293        IsAbstract,
136294        #[doc = "Represents [`ClassMethod::is_optional`]"]
136295        IsOptional,
136296        #[doc = "Represents [`ClassMethod::is_override`]"]
136297        IsOverride,
136298    }
136299    impl ClassPropField {
136300        pub(crate) fn set_index(&mut self, index: usize) {
136301            match self {
136302                Self::Decorators(idx) => {
136303                    assert_initial_index(*idx, index);
136304                    *idx = index;
136305                }
136306                _ => swc_visit::wrong_ast_path(),
136307            }
136308        }
136309    }
136310    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136311    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136312    pub enum ClassPropField {
136313        #[doc = "Represents [`ClassProp::span`]"]
136314        Span,
136315        #[doc = "Represents [`ClassProp::key`]"]
136316        Key,
136317        #[doc = "Represents [`ClassProp::value`]"]
136318        Value,
136319        #[doc = "Represents [`ClassProp::type_ann`]"]
136320        TypeAnn,
136321        #[doc = "Represents [`ClassProp::is_static`]"]
136322        IsStatic,
136323        #[doc = "Represents [`ClassProp::decorators`]"]
136324        Decorators(usize),
136325        #[doc = "Represents [`ClassProp::accessibility`]"]
136326        Accessibility,
136327        #[doc = "Represents [`ClassProp::is_abstract`]"]
136328        IsAbstract,
136329        #[doc = "Represents [`ClassProp::is_optional`]"]
136330        IsOptional,
136331        #[doc = "Represents [`ClassProp::is_override`]"]
136332        IsOverride,
136333        #[doc = "Represents [`ClassProp::readonly`]"]
136334        Readonly,
136335        #[doc = "Represents [`ClassProp::declare`]"]
136336        Declare,
136337        #[doc = "Represents [`ClassProp::definite`]"]
136338        Definite,
136339    }
136340    impl ComputedPropNameField {
136341        pub(crate) fn set_index(&mut self, index: usize) {
136342            match self {
136343                _ => swc_visit::wrong_ast_path(),
136344            }
136345        }
136346    }
136347    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136348    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136349    pub enum ComputedPropNameField {
136350        #[doc = "Represents [`ComputedPropName::span`]"]
136351        Span,
136352        #[doc = "Represents [`ComputedPropName::expr`]"]
136353        Expr,
136354    }
136355    impl CondExprField {
136356        pub(crate) fn set_index(&mut self, index: usize) {
136357            match self {
136358                _ => swc_visit::wrong_ast_path(),
136359            }
136360        }
136361    }
136362    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136363    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136364    pub enum CondExprField {
136365        #[doc = "Represents [`CondExpr::span`]"]
136366        Span,
136367        #[doc = "Represents [`CondExpr::test`]"]
136368        Test,
136369        #[doc = "Represents [`CondExpr::cons`]"]
136370        Cons,
136371        #[doc = "Represents [`CondExpr::alt`]"]
136372        Alt,
136373    }
136374    impl ConstructorField {
136375        pub(crate) fn set_index(&mut self, index: usize) {
136376            match self {
136377                Self::Params(idx) => {
136378                    assert_initial_index(*idx, index);
136379                    *idx = index;
136380                }
136381                _ => swc_visit::wrong_ast_path(),
136382            }
136383        }
136384    }
136385    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136386    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136387    pub enum ConstructorField {
136388        #[doc = "Represents [`Constructor::span`]"]
136389        Span,
136390        #[doc = "Represents [`Constructor::ctxt`]"]
136391        Ctxt,
136392        #[doc = "Represents [`Constructor::key`]"]
136393        Key,
136394        #[doc = "Represents [`Constructor::params`]"]
136395        Params(usize),
136396        #[doc = "Represents [`Constructor::body`]"]
136397        Body,
136398        #[doc = "Represents [`Constructor::accessibility`]"]
136399        Accessibility,
136400        #[doc = "Represents [`Constructor::is_optional`]"]
136401        IsOptional,
136402    }
136403    impl ContinueStmtField {
136404        pub(crate) fn set_index(&mut self, index: usize) {
136405            match self {
136406                _ => swc_visit::wrong_ast_path(),
136407            }
136408        }
136409    }
136410    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136411    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136412    pub enum ContinueStmtField {
136413        #[doc = "Represents [`ContinueStmt::span`]"]
136414        Span,
136415        #[doc = "Represents [`ContinueStmt::label`]"]
136416        Label,
136417    }
136418    impl DebuggerStmtField {
136419        pub(crate) fn set_index(&mut self, index: usize) {
136420            match self {
136421                _ => swc_visit::wrong_ast_path(),
136422            }
136423        }
136424    }
136425    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136426    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136427    pub enum DebuggerStmtField {
136428        #[doc = "Represents [`DebuggerStmt::span`]"]
136429        Span,
136430    }
136431    impl DeclField {
136432        #[inline(always)]
136433        pub(crate) fn set_index(&mut self, _: usize) {
136434            swc_visit::wrong_ast_path();
136435        }
136436    }
136437    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136438    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136439    pub enum DeclField {
136440        #[doc = "Represents [`Decl::Class`]"]
136441        Class,
136442        #[doc = "Represents [`Decl::Fn`]"]
136443        Fn,
136444        #[doc = "Represents [`Decl::Var`]"]
136445        Var,
136446        #[doc = "Represents [`Decl::Using`]"]
136447        Using,
136448        #[doc = "Represents [`Decl::TsInterface`]"]
136449        TsInterface,
136450        #[doc = "Represents [`Decl::TsTypeAlias`]"]
136451        TsTypeAlias,
136452        #[doc = "Represents [`Decl::TsEnum`]"]
136453        TsEnum,
136454        #[doc = "Represents [`Decl::TsModule`]"]
136455        TsModule,
136456    }
136457    impl DecoratorField {
136458        pub(crate) fn set_index(&mut self, index: usize) {
136459            match self {
136460                _ => swc_visit::wrong_ast_path(),
136461            }
136462        }
136463    }
136464    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136465    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136466    pub enum DecoratorField {
136467        #[doc = "Represents [`Decorator::span`]"]
136468        Span,
136469        #[doc = "Represents [`Decorator::expr`]"]
136470        Expr,
136471    }
136472    impl DefaultDeclField {
136473        #[inline(always)]
136474        pub(crate) fn set_index(&mut self, _: usize) {
136475            swc_visit::wrong_ast_path();
136476        }
136477    }
136478    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136479    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136480    pub enum DefaultDeclField {
136481        #[doc = "Represents [`DefaultDecl::Class`]"]
136482        Class,
136483        #[doc = "Represents [`DefaultDecl::Fn`]"]
136484        Fn,
136485        #[doc = "Represents [`DefaultDecl::TsInterfaceDecl`]"]
136486        TsInterfaceDecl,
136487    }
136488    impl DoWhileStmtField {
136489        pub(crate) fn set_index(&mut self, index: usize) {
136490            match self {
136491                _ => swc_visit::wrong_ast_path(),
136492            }
136493        }
136494    }
136495    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136496    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136497    pub enum DoWhileStmtField {
136498        #[doc = "Represents [`DoWhileStmt::span`]"]
136499        Span,
136500        #[doc = "Represents [`DoWhileStmt::test`]"]
136501        Test,
136502        #[doc = "Represents [`DoWhileStmt::body`]"]
136503        Body,
136504    }
136505    impl EmptyStmtField {
136506        pub(crate) fn set_index(&mut self, index: usize) {
136507            match self {
136508                _ => swc_visit::wrong_ast_path(),
136509            }
136510        }
136511    }
136512    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136513    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136514    pub enum EmptyStmtField {
136515        #[doc = "Represents [`EmptyStmt::span`]"]
136516        Span,
136517    }
136518    impl ExportAllField {
136519        pub(crate) fn set_index(&mut self, index: usize) {
136520            match self {
136521                _ => swc_visit::wrong_ast_path(),
136522            }
136523        }
136524    }
136525    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136526    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136527    pub enum ExportAllField {
136528        #[doc = "Represents [`ExportAll::span`]"]
136529        Span,
136530        #[doc = "Represents [`ExportAll::src`]"]
136531        Src,
136532        #[doc = "Represents [`ExportAll::type_only`]"]
136533        TypeOnly,
136534        #[doc = "Represents [`ExportAll::with`]"]
136535        With,
136536    }
136537    impl ExportDeclField {
136538        pub(crate) fn set_index(&mut self, index: usize) {
136539            match self {
136540                _ => swc_visit::wrong_ast_path(),
136541            }
136542        }
136543    }
136544    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136545    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136546    pub enum ExportDeclField {
136547        #[doc = "Represents [`ExportDecl::span`]"]
136548        Span,
136549        #[doc = "Represents [`ExportDecl::decl`]"]
136550        Decl,
136551    }
136552    impl ExportDefaultDeclField {
136553        pub(crate) fn set_index(&mut self, index: usize) {
136554            match self {
136555                _ => swc_visit::wrong_ast_path(),
136556            }
136557        }
136558    }
136559    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136560    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136561    pub enum ExportDefaultDeclField {
136562        #[doc = "Represents [`ExportDefaultDecl::span`]"]
136563        Span,
136564        #[doc = "Represents [`ExportDefaultDecl::decl`]"]
136565        Decl,
136566    }
136567    impl ExportDefaultExprField {
136568        pub(crate) fn set_index(&mut self, index: usize) {
136569            match self {
136570                _ => swc_visit::wrong_ast_path(),
136571            }
136572        }
136573    }
136574    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136575    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136576    pub enum ExportDefaultExprField {
136577        #[doc = "Represents [`ExportDefaultExpr::span`]"]
136578        Span,
136579        #[doc = "Represents [`ExportDefaultExpr::expr`]"]
136580        Expr,
136581    }
136582    impl ExportDefaultSpecifierField {
136583        pub(crate) fn set_index(&mut self, index: usize) {
136584            match self {
136585                _ => swc_visit::wrong_ast_path(),
136586            }
136587        }
136588    }
136589    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136590    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136591    pub enum ExportDefaultSpecifierField {
136592        #[doc = "Represents [`ExportDefaultSpecifier::exported`]"]
136593        Exported,
136594    }
136595    impl ExportNamedSpecifierField {
136596        pub(crate) fn set_index(&mut self, index: usize) {
136597            match self {
136598                _ => swc_visit::wrong_ast_path(),
136599            }
136600        }
136601    }
136602    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136603    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136604    pub enum ExportNamedSpecifierField {
136605        #[doc = "Represents [`ExportNamedSpecifier::span`]"]
136606        Span,
136607        #[doc = "Represents [`ExportNamedSpecifier::orig`]"]
136608        Orig,
136609        #[doc = "Represents [`ExportNamedSpecifier::exported`]"]
136610        Exported,
136611        #[doc = "Represents [`ExportNamedSpecifier::is_type_only`]"]
136612        IsTypeOnly,
136613    }
136614    impl ExportNamespaceSpecifierField {
136615        pub(crate) fn set_index(&mut self, index: usize) {
136616            match self {
136617                _ => swc_visit::wrong_ast_path(),
136618            }
136619        }
136620    }
136621    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136622    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136623    pub enum ExportNamespaceSpecifierField {
136624        #[doc = "Represents [`ExportNamespaceSpecifier::span`]"]
136625        Span,
136626        #[doc = "Represents [`ExportNamespaceSpecifier::name`]"]
136627        Name,
136628    }
136629    impl ExportSpecifierField {
136630        #[inline(always)]
136631        pub(crate) fn set_index(&mut self, _: usize) {
136632            swc_visit::wrong_ast_path();
136633        }
136634    }
136635    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136636    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136637    pub enum ExportSpecifierField {
136638        #[doc = "Represents [`ExportSpecifier::Namespace`]"]
136639        Namespace,
136640        #[doc = "Represents [`ExportSpecifier::Default`]"]
136641        Default,
136642        #[doc = "Represents [`ExportSpecifier::Named`]"]
136643        Named,
136644    }
136645    impl ExprField {
136646        #[inline(always)]
136647        pub(crate) fn set_index(&mut self, _: usize) {
136648            swc_visit::wrong_ast_path();
136649        }
136650    }
136651    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136652    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136653    pub enum ExprField {
136654        #[doc = "Represents [`Expr::This`]"]
136655        This,
136656        #[doc = "Represents [`Expr::Array`]"]
136657        Array,
136658        #[doc = "Represents [`Expr::Object`]"]
136659        Object,
136660        #[doc = "Represents [`Expr::Fn`]"]
136661        Fn,
136662        #[doc = "Represents [`Expr::Unary`]"]
136663        Unary,
136664        #[doc = "Represents [`Expr::Update`]"]
136665        Update,
136666        #[doc = "Represents [`Expr::Bin`]"]
136667        Bin,
136668        #[doc = "Represents [`Expr::Assign`]"]
136669        Assign,
136670        #[doc = "Represents [`Expr::Member`]"]
136671        Member,
136672        #[doc = "Represents [`Expr::SuperProp`]"]
136673        SuperProp,
136674        #[doc = "Represents [`Expr::Cond`]"]
136675        Cond,
136676        #[doc = "Represents [`Expr::Call`]"]
136677        Call,
136678        #[doc = "Represents [`Expr::New`]"]
136679        New,
136680        #[doc = "Represents [`Expr::Seq`]"]
136681        Seq,
136682        #[doc = "Represents [`Expr::Ident`]"]
136683        Ident,
136684        #[doc = "Represents [`Expr::Lit`]"]
136685        Lit,
136686        #[doc = "Represents [`Expr::Tpl`]"]
136687        Tpl,
136688        #[doc = "Represents [`Expr::TaggedTpl`]"]
136689        TaggedTpl,
136690        #[doc = "Represents [`Expr::Arrow`]"]
136691        Arrow,
136692        #[doc = "Represents [`Expr::Class`]"]
136693        Class,
136694        #[doc = "Represents [`Expr::Yield`]"]
136695        Yield,
136696        #[doc = "Represents [`Expr::MetaProp`]"]
136697        MetaProp,
136698        #[doc = "Represents [`Expr::Await`]"]
136699        Await,
136700        #[doc = "Represents [`Expr::Paren`]"]
136701        Paren,
136702        #[doc = "Represents [`Expr::JSXMember`]"]
136703        Jsxmember,
136704        #[doc = "Represents [`Expr::JSXNamespacedName`]"]
136705        JsxnamespacedName,
136706        #[doc = "Represents [`Expr::JSXEmpty`]"]
136707        Jsxempty,
136708        #[doc = "Represents [`Expr::JSXElement`]"]
136709        Jsxelement,
136710        #[doc = "Represents [`Expr::JSXFragment`]"]
136711        Jsxfragment,
136712        #[doc = "Represents [`Expr::TsTypeAssertion`]"]
136713        TsTypeAssertion,
136714        #[doc = "Represents [`Expr::TsConstAssertion`]"]
136715        TsConstAssertion,
136716        #[doc = "Represents [`Expr::TsNonNull`]"]
136717        TsNonNull,
136718        #[doc = "Represents [`Expr::TsAs`]"]
136719        TsAs,
136720        #[doc = "Represents [`Expr::TsInstantiation`]"]
136721        TsInstantiation,
136722        #[doc = "Represents [`Expr::TsSatisfies`]"]
136723        TsSatisfies,
136724        #[doc = "Represents [`Expr::PrivateName`]"]
136725        PrivateName,
136726        #[doc = "Represents [`Expr::OptChain`]"]
136727        OptChain,
136728        #[doc = "Represents [`Expr::Invalid`]"]
136729        Invalid,
136730    }
136731    impl ExprOrSpreadField {
136732        pub(crate) fn set_index(&mut self, index: usize) {
136733            match self {
136734                _ => swc_visit::wrong_ast_path(),
136735            }
136736        }
136737    }
136738    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136739    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136740    pub enum ExprOrSpreadField {
136741        #[doc = "Represents [`ExprOrSpread::spread`]"]
136742        Spread,
136743        #[doc = "Represents [`ExprOrSpread::expr`]"]
136744        Expr,
136745    }
136746    impl ExprStmtField {
136747        pub(crate) fn set_index(&mut self, index: usize) {
136748            match self {
136749                _ => swc_visit::wrong_ast_path(),
136750            }
136751        }
136752    }
136753    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136754    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136755    pub enum ExprStmtField {
136756        #[doc = "Represents [`ExprStmt::span`]"]
136757        Span,
136758        #[doc = "Represents [`ExprStmt::expr`]"]
136759        Expr,
136760    }
136761    impl FnDeclField {
136762        pub(crate) fn set_index(&mut self, index: usize) {
136763            match self {
136764                _ => swc_visit::wrong_ast_path(),
136765            }
136766        }
136767    }
136768    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136769    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136770    pub enum FnDeclField {
136771        #[doc = "Represents [`FnDecl::ident`]"]
136772        Ident,
136773        #[doc = "Represents [`FnDecl::declare`]"]
136774        Declare,
136775        #[doc = "Represents [`FnDecl::function`]"]
136776        Function,
136777    }
136778    impl FnExprField {
136779        pub(crate) fn set_index(&mut self, index: usize) {
136780            match self {
136781                _ => swc_visit::wrong_ast_path(),
136782            }
136783        }
136784    }
136785    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136786    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136787    pub enum FnExprField {
136788        #[doc = "Represents [`FnExpr::ident`]"]
136789        Ident,
136790        #[doc = "Represents [`FnExpr::function`]"]
136791        Function,
136792    }
136793    impl ForHeadField {
136794        #[inline(always)]
136795        pub(crate) fn set_index(&mut self, _: usize) {
136796            swc_visit::wrong_ast_path();
136797        }
136798    }
136799    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136800    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136801    pub enum ForHeadField {
136802        #[doc = "Represents [`ForHead::VarDecl`]"]
136803        VarDecl,
136804        #[doc = "Represents [`ForHead::UsingDecl`]"]
136805        UsingDecl,
136806        #[doc = "Represents [`ForHead::Pat`]"]
136807        Pat,
136808    }
136809    impl ForInStmtField {
136810        pub(crate) fn set_index(&mut self, index: usize) {
136811            match self {
136812                _ => swc_visit::wrong_ast_path(),
136813            }
136814        }
136815    }
136816    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136817    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136818    pub enum ForInStmtField {
136819        #[doc = "Represents [`ForInStmt::span`]"]
136820        Span,
136821        #[doc = "Represents [`ForInStmt::left`]"]
136822        Left,
136823        #[doc = "Represents [`ForInStmt::right`]"]
136824        Right,
136825        #[doc = "Represents [`ForInStmt::body`]"]
136826        Body,
136827    }
136828    impl ForOfStmtField {
136829        pub(crate) fn set_index(&mut self, index: usize) {
136830            match self {
136831                _ => swc_visit::wrong_ast_path(),
136832            }
136833        }
136834    }
136835    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136836    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136837    pub enum ForOfStmtField {
136838        #[doc = "Represents [`ForOfStmt::span`]"]
136839        Span,
136840        #[doc = "Represents [`ForOfStmt::is_await`]"]
136841        IsAwait,
136842        #[doc = "Represents [`ForOfStmt::left`]"]
136843        Left,
136844        #[doc = "Represents [`ForOfStmt::right`]"]
136845        Right,
136846        #[doc = "Represents [`ForOfStmt::body`]"]
136847        Body,
136848    }
136849    impl ForStmtField {
136850        pub(crate) fn set_index(&mut self, index: usize) {
136851            match self {
136852                _ => swc_visit::wrong_ast_path(),
136853            }
136854        }
136855    }
136856    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136857    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136858    pub enum ForStmtField {
136859        #[doc = "Represents [`ForStmt::span`]"]
136860        Span,
136861        #[doc = "Represents [`ForStmt::init`]"]
136862        Init,
136863        #[doc = "Represents [`ForStmt::test`]"]
136864        Test,
136865        #[doc = "Represents [`ForStmt::update`]"]
136866        Update,
136867        #[doc = "Represents [`ForStmt::body`]"]
136868        Body,
136869    }
136870    impl FunctionField {
136871        pub(crate) fn set_index(&mut self, index: usize) {
136872            match self {
136873                Self::Params(idx) => {
136874                    assert_initial_index(*idx, index);
136875                    *idx = index;
136876                }
136877                Self::Decorators(idx) => {
136878                    assert_initial_index(*idx, index);
136879                    *idx = index;
136880                }
136881                _ => swc_visit::wrong_ast_path(),
136882            }
136883        }
136884    }
136885    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136886    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136887    pub enum FunctionField {
136888        #[doc = "Represents [`Function::params`]"]
136889        Params(usize),
136890        #[doc = "Represents [`Function::decorators`]"]
136891        Decorators(usize),
136892        #[doc = "Represents [`Function::span`]"]
136893        Span,
136894        #[doc = "Represents [`Function::ctxt`]"]
136895        Ctxt,
136896        #[doc = "Represents [`Function::body`]"]
136897        Body,
136898        #[doc = "Represents [`Function::is_generator`]"]
136899        IsGenerator,
136900        #[doc = "Represents [`Function::is_async`]"]
136901        IsAsync,
136902        #[doc = "Represents [`Function::type_params`]"]
136903        TypeParams,
136904        #[doc = "Represents [`Function::return_type`]"]
136905        ReturnType,
136906    }
136907    impl GetterPropField {
136908        pub(crate) fn set_index(&mut self, index: usize) {
136909            match self {
136910                _ => swc_visit::wrong_ast_path(),
136911            }
136912        }
136913    }
136914    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136915    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136916    pub enum GetterPropField {
136917        #[doc = "Represents [`GetterProp::span`]"]
136918        Span,
136919        #[doc = "Represents [`GetterProp::key`]"]
136920        Key,
136921        #[doc = "Represents [`GetterProp::type_ann`]"]
136922        TypeAnn,
136923        #[doc = "Represents [`GetterProp::body`]"]
136924        Body,
136925    }
136926    impl IdentField {
136927        pub(crate) fn set_index(&mut self, index: usize) {
136928            match self {
136929                _ => swc_visit::wrong_ast_path(),
136930            }
136931        }
136932    }
136933    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136934    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136935    pub enum IdentField {
136936        #[doc = "Represents [`Ident::span`]"]
136937        Span,
136938        #[doc = "Represents [`Ident::ctxt`]"]
136939        Ctxt,
136940        #[doc = "Represents [`Ident::sym`]"]
136941        Sym,
136942        #[doc = "Represents [`Ident::optional`]"]
136943        Optional,
136944    }
136945    impl IdentNameField {
136946        pub(crate) fn set_index(&mut self, index: usize) {
136947            match self {
136948                _ => swc_visit::wrong_ast_path(),
136949            }
136950        }
136951    }
136952    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136953    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136954    pub enum IdentNameField {
136955        #[doc = "Represents [`IdentName::span`]"]
136956        Span,
136957        #[doc = "Represents [`IdentName::sym`]"]
136958        Sym,
136959    }
136960    impl IfStmtField {
136961        pub(crate) fn set_index(&mut self, index: usize) {
136962            match self {
136963                _ => swc_visit::wrong_ast_path(),
136964            }
136965        }
136966    }
136967    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136968    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136969    pub enum IfStmtField {
136970        #[doc = "Represents [`IfStmt::span`]"]
136971        Span,
136972        #[doc = "Represents [`IfStmt::test`]"]
136973        Test,
136974        #[doc = "Represents [`IfStmt::cons`]"]
136975        Cons,
136976        #[doc = "Represents [`IfStmt::alt`]"]
136977        Alt,
136978    }
136979    impl ImportField {
136980        pub(crate) fn set_index(&mut self, index: usize) {
136981            match self {
136982                _ => swc_visit::wrong_ast_path(),
136983            }
136984        }
136985    }
136986    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
136987    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
136988    pub enum ImportField {
136989        #[doc = "Represents [`Import::span`]"]
136990        Span,
136991        #[doc = "Represents [`Import::phase`]"]
136992        Phase,
136993    }
136994    impl ImportDeclField {
136995        pub(crate) fn set_index(&mut self, index: usize) {
136996            match self {
136997                Self::Specifiers(idx) => {
136998                    assert_initial_index(*idx, index);
136999                    *idx = index;
137000                }
137001                _ => swc_visit::wrong_ast_path(),
137002            }
137003        }
137004    }
137005    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137006    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137007    pub enum ImportDeclField {
137008        #[doc = "Represents [`ImportDecl::span`]"]
137009        Span,
137010        #[doc = "Represents [`ImportDecl::specifiers`]"]
137011        Specifiers(usize),
137012        #[doc = "Represents [`ImportDecl::src`]"]
137013        Src,
137014        #[doc = "Represents [`ImportDecl::type_only`]"]
137015        TypeOnly,
137016        #[doc = "Represents [`ImportDecl::with`]"]
137017        With,
137018        #[doc = "Represents [`ImportDecl::phase`]"]
137019        Phase,
137020    }
137021    impl ImportDefaultSpecifierField {
137022        pub(crate) fn set_index(&mut self, index: usize) {
137023            match self {
137024                _ => swc_visit::wrong_ast_path(),
137025            }
137026        }
137027    }
137028    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137029    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137030    pub enum ImportDefaultSpecifierField {
137031        #[doc = "Represents [`ImportDefaultSpecifier::span`]"]
137032        Span,
137033        #[doc = "Represents [`ImportDefaultSpecifier::local`]"]
137034        Local,
137035    }
137036    impl ImportNamedSpecifierField {
137037        pub(crate) fn set_index(&mut self, index: usize) {
137038            match self {
137039                _ => swc_visit::wrong_ast_path(),
137040            }
137041        }
137042    }
137043    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137044    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137045    pub enum ImportNamedSpecifierField {
137046        #[doc = "Represents [`ImportNamedSpecifier::span`]"]
137047        Span,
137048        #[doc = "Represents [`ImportNamedSpecifier::local`]"]
137049        Local,
137050        #[doc = "Represents [`ImportNamedSpecifier::imported`]"]
137051        Imported,
137052        #[doc = "Represents [`ImportNamedSpecifier::is_type_only`]"]
137053        IsTypeOnly,
137054    }
137055    impl ImportPhaseField {
137056        #[inline(always)]
137057        pub(crate) fn set_index(&mut self, _: usize) {
137058            swc_visit::wrong_ast_path();
137059        }
137060    }
137061    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137062    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137063    pub enum ImportPhaseField {
137064        #[doc = "Represents [`ImportPhase::Evaluation`]"]
137065        Evaluation,
137066        #[doc = "Represents [`ImportPhase::Source`]"]
137067        Source,
137068        #[doc = "Represents [`ImportPhase::Defer`]"]
137069        Defer,
137070    }
137071    impl ImportSpecifierField {
137072        #[inline(always)]
137073        pub(crate) fn set_index(&mut self, _: usize) {
137074            swc_visit::wrong_ast_path();
137075        }
137076    }
137077    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137078    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137079    pub enum ImportSpecifierField {
137080        #[doc = "Represents [`ImportSpecifier::Named`]"]
137081        Named,
137082        #[doc = "Represents [`ImportSpecifier::Default`]"]
137083        Default,
137084        #[doc = "Represents [`ImportSpecifier::Namespace`]"]
137085        Namespace,
137086    }
137087    impl ImportStarAsSpecifierField {
137088        pub(crate) fn set_index(&mut self, index: usize) {
137089            match self {
137090                _ => swc_visit::wrong_ast_path(),
137091            }
137092        }
137093    }
137094    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137095    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137096    pub enum ImportStarAsSpecifierField {
137097        #[doc = "Represents [`ImportStarAsSpecifier::span`]"]
137098        Span,
137099        #[doc = "Represents [`ImportStarAsSpecifier::local`]"]
137100        Local,
137101    }
137102    impl ImportWithField {
137103        pub(crate) fn set_index(&mut self, index: usize) {
137104            match self {
137105                Self::Values(idx) => {
137106                    assert_initial_index(*idx, index);
137107                    *idx = index;
137108                }
137109                _ => swc_visit::wrong_ast_path(),
137110            }
137111        }
137112    }
137113    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137114    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137115    pub enum ImportWithField {
137116        #[doc = "Represents [`ImportWith::span`]"]
137117        Span,
137118        #[doc = "Represents [`ImportWith::values`]"]
137119        Values(usize),
137120    }
137121    impl ImportWithItemField {
137122        pub(crate) fn set_index(&mut self, index: usize) {
137123            match self {
137124                _ => swc_visit::wrong_ast_path(),
137125            }
137126        }
137127    }
137128    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137129    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137130    pub enum ImportWithItemField {
137131        #[doc = "Represents [`ImportWithItem::key`]"]
137132        Key,
137133        #[doc = "Represents [`ImportWithItem::value`]"]
137134        Value,
137135    }
137136    impl InvalidField {
137137        pub(crate) fn set_index(&mut self, index: usize) {
137138            match self {
137139                _ => swc_visit::wrong_ast_path(),
137140            }
137141        }
137142    }
137143    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137144    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137145    pub enum InvalidField {
137146        #[doc = "Represents [`Invalid::span`]"]
137147        Span,
137148    }
137149    impl JSXAttrField {
137150        pub(crate) fn set_index(&mut self, index: usize) {
137151            match self {
137152                _ => swc_visit::wrong_ast_path(),
137153            }
137154        }
137155    }
137156    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137157    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137158    pub enum JSXAttrField {
137159        #[doc = "Represents [`JSXAttr::span`]"]
137160        Span,
137161        #[doc = "Represents [`JSXAttr::name`]"]
137162        Name,
137163        #[doc = "Represents [`JSXAttr::value`]"]
137164        Value,
137165    }
137166    impl JSXAttrNameField {
137167        #[inline(always)]
137168        pub(crate) fn set_index(&mut self, _: usize) {
137169            swc_visit::wrong_ast_path();
137170        }
137171    }
137172    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137173    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137174    pub enum JSXAttrNameField {
137175        #[doc = "Represents [`JSXAttrName::Ident`]"]
137176        Ident,
137177        #[doc = "Represents [`JSXAttrName::JSXNamespacedName`]"]
137178        JsxnamespacedName,
137179    }
137180    impl JSXAttrOrSpreadField {
137181        #[inline(always)]
137182        pub(crate) fn set_index(&mut self, _: usize) {
137183            swc_visit::wrong_ast_path();
137184        }
137185    }
137186    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137187    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137188    pub enum JSXAttrOrSpreadField {
137189        #[doc = "Represents [`JSXAttrOrSpread::JSXAttr`]"]
137190        Jsxattr,
137191        #[doc = "Represents [`JSXAttrOrSpread::SpreadElement`]"]
137192        SpreadElement,
137193    }
137194    impl JSXAttrValueField {
137195        #[inline(always)]
137196        pub(crate) fn set_index(&mut self, _: usize) {
137197            swc_visit::wrong_ast_path();
137198        }
137199    }
137200    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137201    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137202    pub enum JSXAttrValueField {
137203        #[doc = "Represents [`JSXAttrValue::Lit`]"]
137204        Lit,
137205        #[doc = "Represents [`JSXAttrValue::JSXExprContainer`]"]
137206        JsxexprContainer,
137207        #[doc = "Represents [`JSXAttrValue::JSXElement`]"]
137208        Jsxelement,
137209        #[doc = "Represents [`JSXAttrValue::JSXFragment`]"]
137210        Jsxfragment,
137211    }
137212    impl JSXClosingElementField {
137213        pub(crate) fn set_index(&mut self, index: usize) {
137214            match self {
137215                _ => swc_visit::wrong_ast_path(),
137216            }
137217        }
137218    }
137219    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137220    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137221    pub enum JSXClosingElementField {
137222        #[doc = "Represents [`JSXClosingElement::span`]"]
137223        Span,
137224        #[doc = "Represents [`JSXClosingElement::name`]"]
137225        Name,
137226    }
137227    impl JSXClosingFragmentField {
137228        pub(crate) fn set_index(&mut self, index: usize) {
137229            match self {
137230                _ => swc_visit::wrong_ast_path(),
137231            }
137232        }
137233    }
137234    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137235    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137236    pub enum JSXClosingFragmentField {
137237        #[doc = "Represents [`JSXClosingFragment::span`]"]
137238        Span,
137239    }
137240    impl JSXElementField {
137241        pub(crate) fn set_index(&mut self, index: usize) {
137242            match self {
137243                Self::Children(idx) => {
137244                    assert_initial_index(*idx, index);
137245                    *idx = index;
137246                }
137247                _ => swc_visit::wrong_ast_path(),
137248            }
137249        }
137250    }
137251    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137252    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137253    pub enum JSXElementField {
137254        #[doc = "Represents [`JSXElement::span`]"]
137255        Span,
137256        #[doc = "Represents [`JSXElement::opening`]"]
137257        Opening,
137258        #[doc = "Represents [`JSXElement::children`]"]
137259        Children(usize),
137260        #[doc = "Represents [`JSXElement::closing`]"]
137261        Closing,
137262    }
137263    impl JSXElementChildField {
137264        #[inline(always)]
137265        pub(crate) fn set_index(&mut self, _: usize) {
137266            swc_visit::wrong_ast_path();
137267        }
137268    }
137269    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137270    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137271    pub enum JSXElementChildField {
137272        #[doc = "Represents [`JSXElementChild::JSXText`]"]
137273        Jsxtext,
137274        #[doc = "Represents [`JSXElementChild::JSXExprContainer`]"]
137275        JsxexprContainer,
137276        #[doc = "Represents [`JSXElementChild::JSXSpreadChild`]"]
137277        JsxspreadChild,
137278        #[doc = "Represents [`JSXElementChild::JSXElement`]"]
137279        Jsxelement,
137280        #[doc = "Represents [`JSXElementChild::JSXFragment`]"]
137281        Jsxfragment,
137282    }
137283    impl JSXElementNameField {
137284        #[inline(always)]
137285        pub(crate) fn set_index(&mut self, _: usize) {
137286            swc_visit::wrong_ast_path();
137287        }
137288    }
137289    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137290    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137291    pub enum JSXElementNameField {
137292        #[doc = "Represents [`JSXElementName::Ident`]"]
137293        Ident,
137294        #[doc = "Represents [`JSXElementName::JSXMemberExpr`]"]
137295        JsxmemberExpr,
137296        #[doc = "Represents [`JSXElementName::JSXNamespacedName`]"]
137297        JsxnamespacedName,
137298    }
137299    impl JSXEmptyExprField {
137300        pub(crate) fn set_index(&mut self, index: usize) {
137301            match self {
137302                _ => swc_visit::wrong_ast_path(),
137303            }
137304        }
137305    }
137306    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137307    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137308    pub enum JSXEmptyExprField {
137309        #[doc = "Represents [`JSXEmptyExpr::span`]"]
137310        Span,
137311    }
137312    impl JSXExprField {
137313        #[inline(always)]
137314        pub(crate) fn set_index(&mut self, _: usize) {
137315            swc_visit::wrong_ast_path();
137316        }
137317    }
137318    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137319    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137320    pub enum JSXExprField {
137321        #[doc = "Represents [`JSXExpr::JSXEmptyExpr`]"]
137322        JsxemptyExpr,
137323        #[doc = "Represents [`JSXExpr::Expr`]"]
137324        Expr,
137325    }
137326    impl JSXExprContainerField {
137327        pub(crate) fn set_index(&mut self, index: usize) {
137328            match self {
137329                _ => swc_visit::wrong_ast_path(),
137330            }
137331        }
137332    }
137333    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137334    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137335    pub enum JSXExprContainerField {
137336        #[doc = "Represents [`JSXExprContainer::span`]"]
137337        Span,
137338        #[doc = "Represents [`JSXExprContainer::expr`]"]
137339        Expr,
137340    }
137341    impl JSXFragmentField {
137342        pub(crate) fn set_index(&mut self, index: usize) {
137343            match self {
137344                Self::Children(idx) => {
137345                    assert_initial_index(*idx, index);
137346                    *idx = index;
137347                }
137348                _ => swc_visit::wrong_ast_path(),
137349            }
137350        }
137351    }
137352    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137353    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137354    pub enum JSXFragmentField {
137355        #[doc = "Represents [`JSXFragment::span`]"]
137356        Span,
137357        #[doc = "Represents [`JSXFragment::opening`]"]
137358        Opening,
137359        #[doc = "Represents [`JSXFragment::children`]"]
137360        Children(usize),
137361        #[doc = "Represents [`JSXFragment::closing`]"]
137362        Closing,
137363    }
137364    impl JSXMemberExprField {
137365        pub(crate) fn set_index(&mut self, index: usize) {
137366            match self {
137367                _ => swc_visit::wrong_ast_path(),
137368            }
137369        }
137370    }
137371    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137372    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137373    pub enum JSXMemberExprField {
137374        #[doc = "Represents [`JSXMemberExpr::span`]"]
137375        Span,
137376        #[doc = "Represents [`JSXMemberExpr::obj`]"]
137377        Obj,
137378        #[doc = "Represents [`JSXMemberExpr::prop`]"]
137379        Prop,
137380    }
137381    impl JSXNamespacedNameField {
137382        pub(crate) fn set_index(&mut self, index: usize) {
137383            match self {
137384                _ => swc_visit::wrong_ast_path(),
137385            }
137386        }
137387    }
137388    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137389    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137390    pub enum JSXNamespacedNameField {
137391        #[doc = "Represents [`JSXNamespacedName::span`]"]
137392        Span,
137393        #[doc = "Represents [`JSXNamespacedName::ns`]"]
137394        Ns,
137395        #[doc = "Represents [`JSXNamespacedName::name`]"]
137396        Name,
137397    }
137398    impl JSXObjectField {
137399        #[inline(always)]
137400        pub(crate) fn set_index(&mut self, _: usize) {
137401            swc_visit::wrong_ast_path();
137402        }
137403    }
137404    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137405    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137406    pub enum JSXObjectField {
137407        #[doc = "Represents [`JSXObject::JSXMemberExpr`]"]
137408        JsxmemberExpr,
137409        #[doc = "Represents [`JSXObject::Ident`]"]
137410        Ident,
137411    }
137412    impl JSXOpeningElementField {
137413        pub(crate) fn set_index(&mut self, index: usize) {
137414            match self {
137415                Self::Attrs(idx) => {
137416                    assert_initial_index(*idx, index);
137417                    *idx = index;
137418                }
137419                _ => swc_visit::wrong_ast_path(),
137420            }
137421        }
137422    }
137423    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137424    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137425    pub enum JSXOpeningElementField {
137426        #[doc = "Represents [`JSXOpeningElement::name`]"]
137427        Name,
137428        #[doc = "Represents [`JSXOpeningElement::span`]"]
137429        Span,
137430        #[doc = "Represents [`JSXOpeningElement::attrs`]"]
137431        Attrs(usize),
137432        #[doc = "Represents [`JSXOpeningElement::self_closing`]"]
137433        SelfClosing,
137434        #[doc = "Represents [`JSXOpeningElement::type_args`]"]
137435        TypeArgs,
137436    }
137437    impl JSXOpeningFragmentField {
137438        pub(crate) fn set_index(&mut self, index: usize) {
137439            match self {
137440                _ => swc_visit::wrong_ast_path(),
137441            }
137442        }
137443    }
137444    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137445    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137446    pub enum JSXOpeningFragmentField {
137447        #[doc = "Represents [`JSXOpeningFragment::span`]"]
137448        Span,
137449    }
137450    impl JSXSpreadChildField {
137451        pub(crate) fn set_index(&mut self, index: usize) {
137452            match self {
137453                _ => swc_visit::wrong_ast_path(),
137454            }
137455        }
137456    }
137457    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137458    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137459    pub enum JSXSpreadChildField {
137460        #[doc = "Represents [`JSXSpreadChild::span`]"]
137461        Span,
137462        #[doc = "Represents [`JSXSpreadChild::expr`]"]
137463        Expr,
137464    }
137465    impl JSXTextField {
137466        pub(crate) fn set_index(&mut self, index: usize) {
137467            match self {
137468                _ => swc_visit::wrong_ast_path(),
137469            }
137470        }
137471    }
137472    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137473    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137474    pub enum JSXTextField {
137475        #[doc = "Represents [`JSXText::span`]"]
137476        Span,
137477        #[doc = "Represents [`JSXText::value`]"]
137478        Value,
137479        #[doc = "Represents [`JSXText::raw`]"]
137480        Raw,
137481    }
137482    impl KeyField {
137483        #[inline(always)]
137484        pub(crate) fn set_index(&mut self, _: usize) {
137485            swc_visit::wrong_ast_path();
137486        }
137487    }
137488    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137489    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137490    pub enum KeyField {
137491        #[doc = "Represents [`Key::Private`]"]
137492        Private,
137493        #[doc = "Represents [`Key::Public`]"]
137494        Public,
137495    }
137496    impl KeyValuePatPropField {
137497        pub(crate) fn set_index(&mut self, index: usize) {
137498            match self {
137499                _ => swc_visit::wrong_ast_path(),
137500            }
137501        }
137502    }
137503    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137504    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137505    pub enum KeyValuePatPropField {
137506        #[doc = "Represents [`KeyValuePatProp::key`]"]
137507        Key,
137508        #[doc = "Represents [`KeyValuePatProp::value`]"]
137509        Value,
137510    }
137511    impl KeyValuePropField {
137512        pub(crate) fn set_index(&mut self, index: usize) {
137513            match self {
137514                _ => swc_visit::wrong_ast_path(),
137515            }
137516        }
137517    }
137518    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137519    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137520    pub enum KeyValuePropField {
137521        #[doc = "Represents [`KeyValueProp::key`]"]
137522        Key,
137523        #[doc = "Represents [`KeyValueProp::value`]"]
137524        Value,
137525    }
137526    impl LabeledStmtField {
137527        pub(crate) fn set_index(&mut self, index: usize) {
137528            match self {
137529                _ => swc_visit::wrong_ast_path(),
137530            }
137531        }
137532    }
137533    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137534    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137535    pub enum LabeledStmtField {
137536        #[doc = "Represents [`LabeledStmt::span`]"]
137537        Span,
137538        #[doc = "Represents [`LabeledStmt::label`]"]
137539        Label,
137540        #[doc = "Represents [`LabeledStmt::body`]"]
137541        Body,
137542    }
137543    impl LitField {
137544        #[inline(always)]
137545        pub(crate) fn set_index(&mut self, _: usize) {
137546            swc_visit::wrong_ast_path();
137547        }
137548    }
137549    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137550    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137551    pub enum LitField {
137552        #[doc = "Represents [`Lit::Str`]"]
137553        Str,
137554        #[doc = "Represents [`Lit::Bool`]"]
137555        Bool,
137556        #[doc = "Represents [`Lit::Null`]"]
137557        Null,
137558        #[doc = "Represents [`Lit::Num`]"]
137559        Num,
137560        #[doc = "Represents [`Lit::BigInt`]"]
137561        BigInt,
137562        #[doc = "Represents [`Lit::Regex`]"]
137563        Regex,
137564        #[doc = "Represents [`Lit::JSXText`]"]
137565        Jsxtext,
137566    }
137567    impl MemberExprField {
137568        pub(crate) fn set_index(&mut self, index: usize) {
137569            match self {
137570                _ => swc_visit::wrong_ast_path(),
137571            }
137572        }
137573    }
137574    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137575    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137576    pub enum MemberExprField {
137577        #[doc = "Represents [`MemberExpr::span`]"]
137578        Span,
137579        #[doc = "Represents [`MemberExpr::obj`]"]
137580        Obj,
137581        #[doc = "Represents [`MemberExpr::prop`]"]
137582        Prop,
137583    }
137584    impl MemberPropField {
137585        #[inline(always)]
137586        pub(crate) fn set_index(&mut self, _: usize) {
137587            swc_visit::wrong_ast_path();
137588        }
137589    }
137590    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137591    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137592    pub enum MemberPropField {
137593        #[doc = "Represents [`MemberProp::Ident`]"]
137594        Ident,
137595        #[doc = "Represents [`MemberProp::PrivateName`]"]
137596        PrivateName,
137597        #[doc = "Represents [`MemberProp::Computed`]"]
137598        Computed,
137599    }
137600    impl MetaPropExprField {
137601        pub(crate) fn set_index(&mut self, index: usize) {
137602            match self {
137603                _ => swc_visit::wrong_ast_path(),
137604            }
137605        }
137606    }
137607    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137608    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137609    pub enum MetaPropExprField {
137610        #[doc = "Represents [`MetaPropExpr::span`]"]
137611        Span,
137612        #[doc = "Represents [`MetaPropExpr::kind`]"]
137613        Kind,
137614    }
137615    impl MetaPropKindField {
137616        #[inline(always)]
137617        pub(crate) fn set_index(&mut self, _: usize) {
137618            swc_visit::wrong_ast_path();
137619        }
137620    }
137621    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137622    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137623    pub enum MetaPropKindField {
137624        #[doc = "Represents [`MetaPropKind::NewTarget`]"]
137625        NewTarget,
137626        #[doc = "Represents [`MetaPropKind::ImportMeta`]"]
137627        ImportMeta,
137628    }
137629    impl MethodKindField {
137630        #[inline(always)]
137631        pub(crate) fn set_index(&mut self, _: usize) {
137632            swc_visit::wrong_ast_path();
137633        }
137634    }
137635    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137636    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137637    pub enum MethodKindField {
137638        #[doc = "Represents [`MethodKind::Method`]"]
137639        Method,
137640        #[doc = "Represents [`MethodKind::Getter`]"]
137641        Getter,
137642        #[doc = "Represents [`MethodKind::Setter`]"]
137643        Setter,
137644    }
137645    impl MethodPropField {
137646        pub(crate) fn set_index(&mut self, index: usize) {
137647            match self {
137648                _ => swc_visit::wrong_ast_path(),
137649            }
137650        }
137651    }
137652    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137653    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137654    pub enum MethodPropField {
137655        #[doc = "Represents [`MethodProp::key`]"]
137656        Key,
137657        #[doc = "Represents [`MethodProp::function`]"]
137658        Function,
137659    }
137660    impl ModuleField {
137661        pub(crate) fn set_index(&mut self, index: usize) {
137662            match self {
137663                Self::Body(idx) => {
137664                    assert_initial_index(*idx, index);
137665                    *idx = index;
137666                }
137667                _ => swc_visit::wrong_ast_path(),
137668            }
137669        }
137670    }
137671    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137672    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137673    pub enum ModuleField {
137674        #[doc = "Represents [`Module::span`]"]
137675        Span,
137676        #[doc = "Represents [`Module::body`]"]
137677        Body(usize),
137678        #[doc = "Represents [`Module::shebang`]"]
137679        Shebang,
137680    }
137681    impl ModuleDeclField {
137682        #[inline(always)]
137683        pub(crate) fn set_index(&mut self, _: usize) {
137684            swc_visit::wrong_ast_path();
137685        }
137686    }
137687    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137688    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137689    pub enum ModuleDeclField {
137690        #[doc = "Represents [`ModuleDecl::Import`]"]
137691        Import,
137692        #[doc = "Represents [`ModuleDecl::ExportDecl`]"]
137693        ExportDecl,
137694        #[doc = "Represents [`ModuleDecl::ExportNamed`]"]
137695        ExportNamed,
137696        #[doc = "Represents [`ModuleDecl::ExportDefaultDecl`]"]
137697        ExportDefaultDecl,
137698        #[doc = "Represents [`ModuleDecl::ExportDefaultExpr`]"]
137699        ExportDefaultExpr,
137700        #[doc = "Represents [`ModuleDecl::ExportAll`]"]
137701        ExportAll,
137702        #[doc = "Represents [`ModuleDecl::TsImportEquals`]"]
137703        TsImportEquals,
137704        #[doc = "Represents [`ModuleDecl::TsExportAssignment`]"]
137705        TsExportAssignment,
137706        #[doc = "Represents [`ModuleDecl::TsNamespaceExport`]"]
137707        TsNamespaceExport,
137708    }
137709    impl ModuleExportNameField {
137710        #[inline(always)]
137711        pub(crate) fn set_index(&mut self, _: usize) {
137712            swc_visit::wrong_ast_path();
137713        }
137714    }
137715    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137716    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137717    pub enum ModuleExportNameField {
137718        #[doc = "Represents [`ModuleExportName::Ident`]"]
137719        Ident,
137720        #[doc = "Represents [`ModuleExportName::Str`]"]
137721        Str,
137722    }
137723    impl ModuleItemField {
137724        #[inline(always)]
137725        pub(crate) fn set_index(&mut self, _: usize) {
137726            swc_visit::wrong_ast_path();
137727        }
137728    }
137729    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137730    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137731    pub enum ModuleItemField {
137732        #[doc = "Represents [`ModuleItem::ModuleDecl`]"]
137733        ModuleDecl,
137734        #[doc = "Represents [`ModuleItem::Stmt`]"]
137735        Stmt,
137736    }
137737    impl NamedExportField {
137738        pub(crate) fn set_index(&mut self, index: usize) {
137739            match self {
137740                Self::Specifiers(idx) => {
137741                    assert_initial_index(*idx, index);
137742                    *idx = index;
137743                }
137744                _ => swc_visit::wrong_ast_path(),
137745            }
137746        }
137747    }
137748    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137749    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137750    pub enum NamedExportField {
137751        #[doc = "Represents [`NamedExport::span`]"]
137752        Span,
137753        #[doc = "Represents [`NamedExport::specifiers`]"]
137754        Specifiers(usize),
137755        #[doc = "Represents [`NamedExport::src`]"]
137756        Src,
137757        #[doc = "Represents [`NamedExport::type_only`]"]
137758        TypeOnly,
137759        #[doc = "Represents [`NamedExport::with`]"]
137760        With,
137761    }
137762    impl NewExprField {
137763        pub(crate) fn set_index(&mut self, index: usize) {
137764            match self {
137765                Self::Args(idx) => {
137766                    assert_initial_index(*idx, index);
137767                    *idx = index;
137768                }
137769                _ => swc_visit::wrong_ast_path(),
137770            }
137771        }
137772    }
137773    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137774    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137775    pub enum NewExprField {
137776        #[doc = "Represents [`NewExpr::span`]"]
137777        Span,
137778        #[doc = "Represents [`NewExpr::ctxt`]"]
137779        Ctxt,
137780        #[doc = "Represents [`NewExpr::callee`]"]
137781        Callee,
137782        #[doc = "Represents [`NewExpr::args`]"]
137783        Args(usize),
137784        #[doc = "Represents [`NewExpr::type_args`]"]
137785        TypeArgs,
137786    }
137787    impl NullField {
137788        pub(crate) fn set_index(&mut self, index: usize) {
137789            match self {
137790                _ => swc_visit::wrong_ast_path(),
137791            }
137792        }
137793    }
137794    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137795    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137796    pub enum NullField {
137797        #[doc = "Represents [`Null::span`]"]
137798        Span,
137799    }
137800    impl NumberField {
137801        pub(crate) fn set_index(&mut self, index: usize) {
137802            match self {
137803                _ => swc_visit::wrong_ast_path(),
137804            }
137805        }
137806    }
137807    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137808    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137809    pub enum NumberField {
137810        #[doc = "Represents [`Number::span`]"]
137811        Span,
137812        #[doc = "Represents [`Number::value`]"]
137813        Value,
137814        #[doc = "Represents [`Number::raw`]"]
137815        Raw,
137816    }
137817    impl ObjectLitField {
137818        pub(crate) fn set_index(&mut self, index: usize) {
137819            match self {
137820                Self::Props(idx) => {
137821                    assert_initial_index(*idx, index);
137822                    *idx = index;
137823                }
137824                _ => swc_visit::wrong_ast_path(),
137825            }
137826        }
137827    }
137828    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137829    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137830    pub enum ObjectLitField {
137831        #[doc = "Represents [`ObjectLit::span`]"]
137832        Span,
137833        #[doc = "Represents [`ObjectLit::props`]"]
137834        Props(usize),
137835    }
137836    impl ObjectPatField {
137837        pub(crate) fn set_index(&mut self, index: usize) {
137838            match self {
137839                Self::Props(idx) => {
137840                    assert_initial_index(*idx, index);
137841                    *idx = index;
137842                }
137843                _ => swc_visit::wrong_ast_path(),
137844            }
137845        }
137846    }
137847    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137848    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137849    pub enum ObjectPatField {
137850        #[doc = "Represents [`ObjectPat::span`]"]
137851        Span,
137852        #[doc = "Represents [`ObjectPat::props`]"]
137853        Props(usize),
137854        #[doc = "Represents [`ObjectPat::optional`]"]
137855        Optional,
137856        #[doc = "Represents [`ObjectPat::type_ann`]"]
137857        TypeAnn,
137858    }
137859    impl ObjectPatPropField {
137860        #[inline(always)]
137861        pub(crate) fn set_index(&mut self, _: usize) {
137862            swc_visit::wrong_ast_path();
137863        }
137864    }
137865    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137866    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137867    pub enum ObjectPatPropField {
137868        #[doc = "Represents [`ObjectPatProp::KeyValue`]"]
137869        KeyValue,
137870        #[doc = "Represents [`ObjectPatProp::Assign`]"]
137871        Assign,
137872        #[doc = "Represents [`ObjectPatProp::Rest`]"]
137873        Rest,
137874    }
137875    impl OptCallField {
137876        pub(crate) fn set_index(&mut self, index: usize) {
137877            match self {
137878                Self::Args(idx) => {
137879                    assert_initial_index(*idx, index);
137880                    *idx = index;
137881                }
137882                _ => swc_visit::wrong_ast_path(),
137883            }
137884        }
137885    }
137886    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137887    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137888    pub enum OptCallField {
137889        #[doc = "Represents [`OptCall::span`]"]
137890        Span,
137891        #[doc = "Represents [`OptCall::ctxt`]"]
137892        Ctxt,
137893        #[doc = "Represents [`OptCall::callee`]"]
137894        Callee,
137895        #[doc = "Represents [`OptCall::args`]"]
137896        Args(usize),
137897        #[doc = "Represents [`OptCall::type_args`]"]
137898        TypeArgs,
137899    }
137900    impl OptChainBaseField {
137901        #[inline(always)]
137902        pub(crate) fn set_index(&mut self, _: usize) {
137903            swc_visit::wrong_ast_path();
137904        }
137905    }
137906    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137907    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137908    pub enum OptChainBaseField {
137909        #[doc = "Represents [`OptChainBase::Member`]"]
137910        Member,
137911        #[doc = "Represents [`OptChainBase::Call`]"]
137912        Call,
137913    }
137914    impl OptChainExprField {
137915        pub(crate) fn set_index(&mut self, index: usize) {
137916            match self {
137917                _ => swc_visit::wrong_ast_path(),
137918            }
137919        }
137920    }
137921    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137922    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137923    pub enum OptChainExprField {
137924        #[doc = "Represents [`OptChainExpr::span`]"]
137925        Span,
137926        #[doc = "Represents [`OptChainExpr::optional`]"]
137927        Optional,
137928        #[doc = "Represents [`OptChainExpr::base`]"]
137929        Base,
137930    }
137931    impl ParamField {
137932        pub(crate) fn set_index(&mut self, index: usize) {
137933            match self {
137934                Self::Decorators(idx) => {
137935                    assert_initial_index(*idx, index);
137936                    *idx = index;
137937                }
137938                _ => swc_visit::wrong_ast_path(),
137939            }
137940        }
137941    }
137942    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137943    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137944    pub enum ParamField {
137945        #[doc = "Represents [`Param::span`]"]
137946        Span,
137947        #[doc = "Represents [`Param::decorators`]"]
137948        Decorators(usize),
137949        #[doc = "Represents [`Param::pat`]"]
137950        Pat,
137951    }
137952    impl ParamOrTsParamPropField {
137953        #[inline(always)]
137954        pub(crate) fn set_index(&mut self, _: usize) {
137955            swc_visit::wrong_ast_path();
137956        }
137957    }
137958    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137959    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137960    pub enum ParamOrTsParamPropField {
137961        #[doc = "Represents [`ParamOrTsParamProp::TsParamProp`]"]
137962        TsParamProp,
137963        #[doc = "Represents [`ParamOrTsParamProp::Param`]"]
137964        Param,
137965    }
137966    impl ParenExprField {
137967        pub(crate) fn set_index(&mut self, index: usize) {
137968            match self {
137969                _ => swc_visit::wrong_ast_path(),
137970            }
137971        }
137972    }
137973    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137974    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137975    pub enum ParenExprField {
137976        #[doc = "Represents [`ParenExpr::span`]"]
137977        Span,
137978        #[doc = "Represents [`ParenExpr::expr`]"]
137979        Expr,
137980    }
137981    impl PatField {
137982        #[inline(always)]
137983        pub(crate) fn set_index(&mut self, _: usize) {
137984            swc_visit::wrong_ast_path();
137985        }
137986    }
137987    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
137988    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
137989    pub enum PatField {
137990        #[doc = "Represents [`Pat::Ident`]"]
137991        Ident,
137992        #[doc = "Represents [`Pat::Array`]"]
137993        Array,
137994        #[doc = "Represents [`Pat::Rest`]"]
137995        Rest,
137996        #[doc = "Represents [`Pat::Object`]"]
137997        Object,
137998        #[doc = "Represents [`Pat::Assign`]"]
137999        Assign,
138000        #[doc = "Represents [`Pat::Invalid`]"]
138001        Invalid,
138002        #[doc = "Represents [`Pat::Expr`]"]
138003        Expr,
138004    }
138005    impl PrivateMethodField {
138006        pub(crate) fn set_index(&mut self, index: usize) {
138007            match self {
138008                _ => swc_visit::wrong_ast_path(),
138009            }
138010        }
138011    }
138012    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138013    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138014    pub enum PrivateMethodField {
138015        #[doc = "Represents [`PrivateMethod::span`]"]
138016        Span,
138017        #[doc = "Represents [`PrivateMethod::key`]"]
138018        Key,
138019        #[doc = "Represents [`PrivateMethod::function`]"]
138020        Function,
138021        #[doc = "Represents [`PrivateMethod::kind`]"]
138022        Kind,
138023        #[doc = "Represents [`PrivateMethod::is_static`]"]
138024        IsStatic,
138025        #[doc = "Represents [`PrivateMethod::accessibility`]"]
138026        Accessibility,
138027        #[doc = "Represents [`PrivateMethod::is_abstract`]"]
138028        IsAbstract,
138029        #[doc = "Represents [`PrivateMethod::is_optional`]"]
138030        IsOptional,
138031        #[doc = "Represents [`PrivateMethod::is_override`]"]
138032        IsOverride,
138033    }
138034    impl PrivateNameField {
138035        pub(crate) fn set_index(&mut self, index: usize) {
138036            match self {
138037                _ => swc_visit::wrong_ast_path(),
138038            }
138039        }
138040    }
138041    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138042    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138043    pub enum PrivateNameField {
138044        #[doc = "Represents [`PrivateName::span`]"]
138045        Span,
138046        #[doc = "Represents [`PrivateName::name`]"]
138047        Name,
138048    }
138049    impl PrivatePropField {
138050        pub(crate) fn set_index(&mut self, index: usize) {
138051            match self {
138052                Self::Decorators(idx) => {
138053                    assert_initial_index(*idx, index);
138054                    *idx = index;
138055                }
138056                _ => swc_visit::wrong_ast_path(),
138057            }
138058        }
138059    }
138060    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138061    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138062    pub enum PrivatePropField {
138063        #[doc = "Represents [`PrivateProp::span`]"]
138064        Span,
138065        #[doc = "Represents [`PrivateProp::ctxt`]"]
138066        Ctxt,
138067        #[doc = "Represents [`PrivateProp::key`]"]
138068        Key,
138069        #[doc = "Represents [`PrivateProp::value`]"]
138070        Value,
138071        #[doc = "Represents [`PrivateProp::type_ann`]"]
138072        TypeAnn,
138073        #[doc = "Represents [`PrivateProp::is_static`]"]
138074        IsStatic,
138075        #[doc = "Represents [`PrivateProp::decorators`]"]
138076        Decorators(usize),
138077        #[doc = "Represents [`PrivateProp::accessibility`]"]
138078        Accessibility,
138079        #[doc = "Represents [`PrivateProp::is_optional`]"]
138080        IsOptional,
138081        #[doc = "Represents [`PrivateProp::is_override`]"]
138082        IsOverride,
138083        #[doc = "Represents [`PrivateProp::readonly`]"]
138084        Readonly,
138085        #[doc = "Represents [`PrivateProp::definite`]"]
138086        Definite,
138087    }
138088    impl ProgramField {
138089        #[inline(always)]
138090        pub(crate) fn set_index(&mut self, _: usize) {
138091            swc_visit::wrong_ast_path();
138092        }
138093    }
138094    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138095    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138096    pub enum ProgramField {
138097        #[doc = "Represents [`Program::Module`]"]
138098        Module,
138099        #[doc = "Represents [`Program::Script`]"]
138100        Script,
138101    }
138102    impl PropField {
138103        #[inline(always)]
138104        pub(crate) fn set_index(&mut self, _: usize) {
138105            swc_visit::wrong_ast_path();
138106        }
138107    }
138108    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138109    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138110    pub enum PropField {
138111        #[doc = "Represents [`Prop::Shorthand`]"]
138112        Shorthand,
138113        #[doc = "Represents [`Prop::KeyValue`]"]
138114        KeyValue,
138115        #[doc = "Represents [`Prop::Assign`]"]
138116        Assign,
138117        #[doc = "Represents [`Prop::Getter`]"]
138118        Getter,
138119        #[doc = "Represents [`Prop::Setter`]"]
138120        Setter,
138121        #[doc = "Represents [`Prop::Method`]"]
138122        Method,
138123    }
138124    impl PropNameField {
138125        #[inline(always)]
138126        pub(crate) fn set_index(&mut self, _: usize) {
138127            swc_visit::wrong_ast_path();
138128        }
138129    }
138130    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138131    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138132    pub enum PropNameField {
138133        #[doc = "Represents [`PropName::Ident`]"]
138134        Ident,
138135        #[doc = "Represents [`PropName::Str`]"]
138136        Str,
138137        #[doc = "Represents [`PropName::Num`]"]
138138        Num,
138139        #[doc = "Represents [`PropName::Computed`]"]
138140        Computed,
138141        #[doc = "Represents [`PropName::BigInt`]"]
138142        BigInt,
138143    }
138144    impl PropOrSpreadField {
138145        #[inline(always)]
138146        pub(crate) fn set_index(&mut self, _: usize) {
138147            swc_visit::wrong_ast_path();
138148        }
138149    }
138150    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138151    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138152    pub enum PropOrSpreadField {
138153        #[doc = "Represents [`PropOrSpread::Spread`]"]
138154        Spread,
138155        #[doc = "Represents [`PropOrSpread::Prop`]"]
138156        Prop,
138157    }
138158    impl RegexField {
138159        pub(crate) fn set_index(&mut self, index: usize) {
138160            match self {
138161                _ => swc_visit::wrong_ast_path(),
138162            }
138163        }
138164    }
138165    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138166    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138167    pub enum RegexField {
138168        #[doc = "Represents [`Regex::span`]"]
138169        Span,
138170        #[doc = "Represents [`Regex::exp`]"]
138171        Exp,
138172        #[doc = "Represents [`Regex::flags`]"]
138173        Flags,
138174    }
138175    impl RestPatField {
138176        pub(crate) fn set_index(&mut self, index: usize) {
138177            match self {
138178                _ => swc_visit::wrong_ast_path(),
138179            }
138180        }
138181    }
138182    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138183    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138184    pub enum RestPatField {
138185        #[doc = "Represents [`RestPat::span`]"]
138186        Span,
138187        #[doc = "Represents [`RestPat::dot3_token`]"]
138188        Dot3Token,
138189        #[doc = "Represents [`RestPat::arg`]"]
138190        Arg,
138191        #[doc = "Represents [`RestPat::type_ann`]"]
138192        TypeAnn,
138193    }
138194    impl ReturnStmtField {
138195        pub(crate) fn set_index(&mut self, index: usize) {
138196            match self {
138197                _ => swc_visit::wrong_ast_path(),
138198            }
138199        }
138200    }
138201    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138202    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138203    pub enum ReturnStmtField {
138204        #[doc = "Represents [`ReturnStmt::span`]"]
138205        Span,
138206        #[doc = "Represents [`ReturnStmt::arg`]"]
138207        Arg,
138208    }
138209    impl ScriptField {
138210        pub(crate) fn set_index(&mut self, index: usize) {
138211            match self {
138212                Self::Body(idx) => {
138213                    assert_initial_index(*idx, index);
138214                    *idx = index;
138215                }
138216                _ => swc_visit::wrong_ast_path(),
138217            }
138218        }
138219    }
138220    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138221    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138222    pub enum ScriptField {
138223        #[doc = "Represents [`Script::span`]"]
138224        Span,
138225        #[doc = "Represents [`Script::body`]"]
138226        Body(usize),
138227        #[doc = "Represents [`Script::shebang`]"]
138228        Shebang,
138229    }
138230    impl SeqExprField {
138231        pub(crate) fn set_index(&mut self, index: usize) {
138232            match self {
138233                Self::Exprs(idx) => {
138234                    assert_initial_index(*idx, index);
138235                    *idx = index;
138236                }
138237                _ => swc_visit::wrong_ast_path(),
138238            }
138239        }
138240    }
138241    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138242    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138243    pub enum SeqExprField {
138244        #[doc = "Represents [`SeqExpr::span`]"]
138245        Span,
138246        #[doc = "Represents [`SeqExpr::exprs`]"]
138247        Exprs(usize),
138248    }
138249    impl SetterPropField {
138250        pub(crate) fn set_index(&mut self, index: usize) {
138251            match self {
138252                _ => swc_visit::wrong_ast_path(),
138253            }
138254        }
138255    }
138256    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138257    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138258    pub enum SetterPropField {
138259        #[doc = "Represents [`SetterProp::span`]"]
138260        Span,
138261        #[doc = "Represents [`SetterProp::key`]"]
138262        Key,
138263        #[doc = "Represents [`SetterProp::this_param`]"]
138264        ThisParam,
138265        #[doc = "Represents [`SetterProp::param`]"]
138266        Param,
138267        #[doc = "Represents [`SetterProp::body`]"]
138268        Body,
138269    }
138270    impl SimpleAssignTargetField {
138271        #[inline(always)]
138272        pub(crate) fn set_index(&mut self, _: usize) {
138273            swc_visit::wrong_ast_path();
138274        }
138275    }
138276    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138277    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138278    pub enum SimpleAssignTargetField {
138279        #[doc = "Represents [`SimpleAssignTarget::Ident`]"]
138280        Ident,
138281        #[doc = "Represents [`SimpleAssignTarget::Member`]"]
138282        Member,
138283        #[doc = "Represents [`SimpleAssignTarget::SuperProp`]"]
138284        SuperProp,
138285        #[doc = "Represents [`SimpleAssignTarget::Paren`]"]
138286        Paren,
138287        #[doc = "Represents [`SimpleAssignTarget::OptChain`]"]
138288        OptChain,
138289        #[doc = "Represents [`SimpleAssignTarget::TsAs`]"]
138290        TsAs,
138291        #[doc = "Represents [`SimpleAssignTarget::TsSatisfies`]"]
138292        TsSatisfies,
138293        #[doc = "Represents [`SimpleAssignTarget::TsNonNull`]"]
138294        TsNonNull,
138295        #[doc = "Represents [`SimpleAssignTarget::TsTypeAssertion`]"]
138296        TsTypeAssertion,
138297        #[doc = "Represents [`SimpleAssignTarget::TsInstantiation`]"]
138298        TsInstantiation,
138299        #[doc = "Represents [`SimpleAssignTarget::Invalid`]"]
138300        Invalid,
138301    }
138302    impl SpreadElementField {
138303        pub(crate) fn set_index(&mut self, index: usize) {
138304            match self {
138305                _ => swc_visit::wrong_ast_path(),
138306            }
138307        }
138308    }
138309    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138310    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138311    pub enum SpreadElementField {
138312        #[doc = "Represents [`SpreadElement::dot3_token`]"]
138313        Dot3Token,
138314        #[doc = "Represents [`SpreadElement::expr`]"]
138315        Expr,
138316    }
138317    impl StaticBlockField {
138318        pub(crate) fn set_index(&mut self, index: usize) {
138319            match self {
138320                _ => swc_visit::wrong_ast_path(),
138321            }
138322        }
138323    }
138324    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138325    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138326    pub enum StaticBlockField {
138327        #[doc = "Represents [`StaticBlock::span`]"]
138328        Span,
138329        #[doc = "Represents [`StaticBlock::body`]"]
138330        Body,
138331    }
138332    impl StmtField {
138333        #[inline(always)]
138334        pub(crate) fn set_index(&mut self, _: usize) {
138335            swc_visit::wrong_ast_path();
138336        }
138337    }
138338    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138339    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138340    pub enum StmtField {
138341        #[doc = "Represents [`Stmt::Block`]"]
138342        Block,
138343        #[doc = "Represents [`Stmt::Empty`]"]
138344        Empty,
138345        #[doc = "Represents [`Stmt::Debugger`]"]
138346        Debugger,
138347        #[doc = "Represents [`Stmt::With`]"]
138348        With,
138349        #[doc = "Represents [`Stmt::Return`]"]
138350        Return,
138351        #[doc = "Represents [`Stmt::Labeled`]"]
138352        Labeled,
138353        #[doc = "Represents [`Stmt::Break`]"]
138354        Break,
138355        #[doc = "Represents [`Stmt::Continue`]"]
138356        Continue,
138357        #[doc = "Represents [`Stmt::If`]"]
138358        If,
138359        #[doc = "Represents [`Stmt::Switch`]"]
138360        Switch,
138361        #[doc = "Represents [`Stmt::Throw`]"]
138362        Throw,
138363        #[doc = "Represents [`Stmt::Try`]"]
138364        Try,
138365        #[doc = "Represents [`Stmt::While`]"]
138366        While,
138367        #[doc = "Represents [`Stmt::DoWhile`]"]
138368        DoWhile,
138369        #[doc = "Represents [`Stmt::For`]"]
138370        For,
138371        #[doc = "Represents [`Stmt::ForIn`]"]
138372        ForIn,
138373        #[doc = "Represents [`Stmt::ForOf`]"]
138374        ForOf,
138375        #[doc = "Represents [`Stmt::Decl`]"]
138376        Decl,
138377        #[doc = "Represents [`Stmt::Expr`]"]
138378        Expr,
138379    }
138380    impl StrField {
138381        pub(crate) fn set_index(&mut self, index: usize) {
138382            match self {
138383                _ => swc_visit::wrong_ast_path(),
138384            }
138385        }
138386    }
138387    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138388    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138389    pub enum StrField {
138390        #[doc = "Represents [`Str::span`]"]
138391        Span,
138392        #[doc = "Represents [`Str::value`]"]
138393        Value,
138394        #[doc = "Represents [`Str::raw`]"]
138395        Raw,
138396    }
138397    impl SuperField {
138398        pub(crate) fn set_index(&mut self, index: usize) {
138399            match self {
138400                _ => swc_visit::wrong_ast_path(),
138401            }
138402        }
138403    }
138404    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138405    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138406    pub enum SuperField {
138407        #[doc = "Represents [`Super::span`]"]
138408        Span,
138409    }
138410    impl SuperPropField {
138411        #[inline(always)]
138412        pub(crate) fn set_index(&mut self, _: usize) {
138413            swc_visit::wrong_ast_path();
138414        }
138415    }
138416    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138417    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138418    pub enum SuperPropField {
138419        #[doc = "Represents [`SuperProp::Ident`]"]
138420        Ident,
138421        #[doc = "Represents [`SuperProp::Computed`]"]
138422        Computed,
138423    }
138424    impl SuperPropExprField {
138425        pub(crate) fn set_index(&mut self, index: usize) {
138426            match self {
138427                _ => swc_visit::wrong_ast_path(),
138428            }
138429        }
138430    }
138431    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138432    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138433    pub enum SuperPropExprField {
138434        #[doc = "Represents [`SuperPropExpr::span`]"]
138435        Span,
138436        #[doc = "Represents [`SuperPropExpr::obj`]"]
138437        Obj,
138438        #[doc = "Represents [`SuperPropExpr::prop`]"]
138439        Prop,
138440    }
138441    impl SwitchCaseField {
138442        pub(crate) fn set_index(&mut self, index: usize) {
138443            match self {
138444                Self::Cons(idx) => {
138445                    assert_initial_index(*idx, index);
138446                    *idx = index;
138447                }
138448                _ => swc_visit::wrong_ast_path(),
138449            }
138450        }
138451    }
138452    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138453    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138454    pub enum SwitchCaseField {
138455        #[doc = "Represents [`SwitchCase::span`]"]
138456        Span,
138457        #[doc = "Represents [`SwitchCase::test`]"]
138458        Test,
138459        #[doc = "Represents [`SwitchCase::cons`]"]
138460        Cons(usize),
138461    }
138462    impl SwitchStmtField {
138463        pub(crate) fn set_index(&mut self, index: usize) {
138464            match self {
138465                Self::Cases(idx) => {
138466                    assert_initial_index(*idx, index);
138467                    *idx = index;
138468                }
138469                _ => swc_visit::wrong_ast_path(),
138470            }
138471        }
138472    }
138473    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138474    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138475    pub enum SwitchStmtField {
138476        #[doc = "Represents [`SwitchStmt::span`]"]
138477        Span,
138478        #[doc = "Represents [`SwitchStmt::discriminant`]"]
138479        Discriminant,
138480        #[doc = "Represents [`SwitchStmt::cases`]"]
138481        Cases(usize),
138482    }
138483    impl TaggedTplField {
138484        pub(crate) fn set_index(&mut self, index: usize) {
138485            match self {
138486                _ => swc_visit::wrong_ast_path(),
138487            }
138488        }
138489    }
138490    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138491    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138492    pub enum TaggedTplField {
138493        #[doc = "Represents [`TaggedTpl::span`]"]
138494        Span,
138495        #[doc = "Represents [`TaggedTpl::ctxt`]"]
138496        Ctxt,
138497        #[doc = "Represents [`TaggedTpl::tag`]"]
138498        Tag,
138499        #[doc = "Represents [`TaggedTpl::type_params`]"]
138500        TypeParams,
138501        #[doc = "Represents [`TaggedTpl::tpl`]"]
138502        Tpl,
138503    }
138504    impl ThisExprField {
138505        pub(crate) fn set_index(&mut self, index: usize) {
138506            match self {
138507                _ => swc_visit::wrong_ast_path(),
138508            }
138509        }
138510    }
138511    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138512    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138513    pub enum ThisExprField {
138514        #[doc = "Represents [`ThisExpr::span`]"]
138515        Span,
138516    }
138517    impl ThrowStmtField {
138518        pub(crate) fn set_index(&mut self, index: usize) {
138519            match self {
138520                _ => swc_visit::wrong_ast_path(),
138521            }
138522        }
138523    }
138524    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138525    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138526    pub enum ThrowStmtField {
138527        #[doc = "Represents [`ThrowStmt::span`]"]
138528        Span,
138529        #[doc = "Represents [`ThrowStmt::arg`]"]
138530        Arg,
138531    }
138532    impl TplField {
138533        pub(crate) fn set_index(&mut self, index: usize) {
138534            match self {
138535                Self::Exprs(idx) => {
138536                    assert_initial_index(*idx, index);
138537                    *idx = index;
138538                }
138539                Self::Quasis(idx) => {
138540                    assert_initial_index(*idx, index);
138541                    *idx = index;
138542                }
138543                _ => swc_visit::wrong_ast_path(),
138544            }
138545        }
138546    }
138547    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138548    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138549    pub enum TplField {
138550        #[doc = "Represents [`Tpl::span`]"]
138551        Span,
138552        #[doc = "Represents [`Tpl::exprs`]"]
138553        Exprs(usize),
138554        #[doc = "Represents [`Tpl::quasis`]"]
138555        Quasis(usize),
138556    }
138557    impl TplElementField {
138558        pub(crate) fn set_index(&mut self, index: usize) {
138559            match self {
138560                _ => swc_visit::wrong_ast_path(),
138561            }
138562        }
138563    }
138564    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138565    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138566    pub enum TplElementField {
138567        #[doc = "Represents [`TplElement::span`]"]
138568        Span,
138569        #[doc = "Represents [`TplElement::tail`]"]
138570        Tail,
138571        #[doc = "Represents [`TplElement::cooked`]"]
138572        Cooked,
138573        #[doc = "Represents [`TplElement::raw`]"]
138574        Raw,
138575    }
138576    impl TruePlusMinusField {
138577        #[inline(always)]
138578        pub(crate) fn set_index(&mut self, _: usize) {
138579            swc_visit::wrong_ast_path();
138580        }
138581    }
138582    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138583    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138584    pub enum TruePlusMinusField {
138585        #[doc = "Represents [`TruePlusMinus::True`]"]
138586        True,
138587        #[doc = "Represents [`TruePlusMinus::Plus`]"]
138588        Plus,
138589        #[doc = "Represents [`TruePlusMinus::Minus`]"]
138590        Minus,
138591    }
138592    impl TryStmtField {
138593        pub(crate) fn set_index(&mut self, index: usize) {
138594            match self {
138595                _ => swc_visit::wrong_ast_path(),
138596            }
138597        }
138598    }
138599    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138600    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138601    pub enum TryStmtField {
138602        #[doc = "Represents [`TryStmt::span`]"]
138603        Span,
138604        #[doc = "Represents [`TryStmt::block`]"]
138605        Block,
138606        #[doc = "Represents [`TryStmt::handler`]"]
138607        Handler,
138608        #[doc = "Represents [`TryStmt::finalizer`]"]
138609        Finalizer,
138610    }
138611    impl TsArrayTypeField {
138612        pub(crate) fn set_index(&mut self, index: usize) {
138613            match self {
138614                _ => swc_visit::wrong_ast_path(),
138615            }
138616        }
138617    }
138618    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138619    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138620    pub enum TsArrayTypeField {
138621        #[doc = "Represents [`TsArrayType::span`]"]
138622        Span,
138623        #[doc = "Represents [`TsArrayType::elem_type`]"]
138624        ElemType,
138625    }
138626    impl TsAsExprField {
138627        pub(crate) fn set_index(&mut self, index: usize) {
138628            match self {
138629                _ => swc_visit::wrong_ast_path(),
138630            }
138631        }
138632    }
138633    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138634    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138635    pub enum TsAsExprField {
138636        #[doc = "Represents [`TsAsExpr::span`]"]
138637        Span,
138638        #[doc = "Represents [`TsAsExpr::expr`]"]
138639        Expr,
138640        #[doc = "Represents [`TsAsExpr::type_ann`]"]
138641        TypeAnn,
138642    }
138643    impl TsCallSignatureDeclField {
138644        pub(crate) fn set_index(&mut self, index: usize) {
138645            match self {
138646                Self::Params(idx) => {
138647                    assert_initial_index(*idx, index);
138648                    *idx = index;
138649                }
138650                _ => swc_visit::wrong_ast_path(),
138651            }
138652        }
138653    }
138654    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138655    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138656    pub enum TsCallSignatureDeclField {
138657        #[doc = "Represents [`TsCallSignatureDecl::span`]"]
138658        Span,
138659        #[doc = "Represents [`TsCallSignatureDecl::params`]"]
138660        Params(usize),
138661        #[doc = "Represents [`TsCallSignatureDecl::type_ann`]"]
138662        TypeAnn,
138663        #[doc = "Represents [`TsCallSignatureDecl::type_params`]"]
138664        TypeParams,
138665    }
138666    impl TsConditionalTypeField {
138667        pub(crate) fn set_index(&mut self, index: usize) {
138668            match self {
138669                _ => swc_visit::wrong_ast_path(),
138670            }
138671        }
138672    }
138673    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138674    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138675    pub enum TsConditionalTypeField {
138676        #[doc = "Represents [`TsConditionalType::span`]"]
138677        Span,
138678        #[doc = "Represents [`TsConditionalType::check_type`]"]
138679        CheckType,
138680        #[doc = "Represents [`TsConditionalType::extends_type`]"]
138681        ExtendsType,
138682        #[doc = "Represents [`TsConditionalType::true_type`]"]
138683        TrueType,
138684        #[doc = "Represents [`TsConditionalType::false_type`]"]
138685        FalseType,
138686    }
138687    impl TsConstAssertionField {
138688        pub(crate) fn set_index(&mut self, index: usize) {
138689            match self {
138690                _ => swc_visit::wrong_ast_path(),
138691            }
138692        }
138693    }
138694    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138695    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138696    pub enum TsConstAssertionField {
138697        #[doc = "Represents [`TsConstAssertion::span`]"]
138698        Span,
138699        #[doc = "Represents [`TsConstAssertion::expr`]"]
138700        Expr,
138701    }
138702    impl TsConstructSignatureDeclField {
138703        pub(crate) fn set_index(&mut self, index: usize) {
138704            match self {
138705                Self::Params(idx) => {
138706                    assert_initial_index(*idx, index);
138707                    *idx = index;
138708                }
138709                _ => swc_visit::wrong_ast_path(),
138710            }
138711        }
138712    }
138713    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138714    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138715    pub enum TsConstructSignatureDeclField {
138716        #[doc = "Represents [`TsConstructSignatureDecl::span`]"]
138717        Span,
138718        #[doc = "Represents [`TsConstructSignatureDecl::params`]"]
138719        Params(usize),
138720        #[doc = "Represents [`TsConstructSignatureDecl::type_ann`]"]
138721        TypeAnn,
138722        #[doc = "Represents [`TsConstructSignatureDecl::type_params`]"]
138723        TypeParams,
138724    }
138725    impl TsConstructorTypeField {
138726        pub(crate) fn set_index(&mut self, index: usize) {
138727            match self {
138728                Self::Params(idx) => {
138729                    assert_initial_index(*idx, index);
138730                    *idx = index;
138731                }
138732                _ => swc_visit::wrong_ast_path(),
138733            }
138734        }
138735    }
138736    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138737    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138738    pub enum TsConstructorTypeField {
138739        #[doc = "Represents [`TsConstructorType::span`]"]
138740        Span,
138741        #[doc = "Represents [`TsConstructorType::params`]"]
138742        Params(usize),
138743        #[doc = "Represents [`TsConstructorType::type_params`]"]
138744        TypeParams,
138745        #[doc = "Represents [`TsConstructorType::type_ann`]"]
138746        TypeAnn,
138747        #[doc = "Represents [`TsConstructorType::is_abstract`]"]
138748        IsAbstract,
138749    }
138750    impl TsEntityNameField {
138751        #[inline(always)]
138752        pub(crate) fn set_index(&mut self, _: usize) {
138753            swc_visit::wrong_ast_path();
138754        }
138755    }
138756    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138757    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138758    pub enum TsEntityNameField {
138759        #[doc = "Represents [`TsEntityName::TsQualifiedName`]"]
138760        TsQualifiedName,
138761        #[doc = "Represents [`TsEntityName::Ident`]"]
138762        Ident,
138763    }
138764    impl TsEnumDeclField {
138765        pub(crate) fn set_index(&mut self, index: usize) {
138766            match self {
138767                Self::Members(idx) => {
138768                    assert_initial_index(*idx, index);
138769                    *idx = index;
138770                }
138771                _ => swc_visit::wrong_ast_path(),
138772            }
138773        }
138774    }
138775    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138776    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138777    pub enum TsEnumDeclField {
138778        #[doc = "Represents [`TsEnumDecl::span`]"]
138779        Span,
138780        #[doc = "Represents [`TsEnumDecl::declare`]"]
138781        Declare,
138782        #[doc = "Represents [`TsEnumDecl::is_const`]"]
138783        IsConst,
138784        #[doc = "Represents [`TsEnumDecl::id`]"]
138785        Id,
138786        #[doc = "Represents [`TsEnumDecl::members`]"]
138787        Members(usize),
138788    }
138789    impl TsEnumMemberField {
138790        pub(crate) fn set_index(&mut self, index: usize) {
138791            match self {
138792                _ => swc_visit::wrong_ast_path(),
138793            }
138794        }
138795    }
138796    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138797    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138798    pub enum TsEnumMemberField {
138799        #[doc = "Represents [`TsEnumMember::span`]"]
138800        Span,
138801        #[doc = "Represents [`TsEnumMember::id`]"]
138802        Id,
138803        #[doc = "Represents [`TsEnumMember::init`]"]
138804        Init,
138805    }
138806    impl TsEnumMemberIdField {
138807        #[inline(always)]
138808        pub(crate) fn set_index(&mut self, _: usize) {
138809            swc_visit::wrong_ast_path();
138810        }
138811    }
138812    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138813    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138814    pub enum TsEnumMemberIdField {
138815        #[doc = "Represents [`TsEnumMemberId::Ident`]"]
138816        Ident,
138817        #[doc = "Represents [`TsEnumMemberId::Str`]"]
138818        Str,
138819    }
138820    impl TsExportAssignmentField {
138821        pub(crate) fn set_index(&mut self, index: usize) {
138822            match self {
138823                _ => swc_visit::wrong_ast_path(),
138824            }
138825        }
138826    }
138827    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138828    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138829    pub enum TsExportAssignmentField {
138830        #[doc = "Represents [`TsExportAssignment::span`]"]
138831        Span,
138832        #[doc = "Represents [`TsExportAssignment::expr`]"]
138833        Expr,
138834    }
138835    impl TsExprWithTypeArgsField {
138836        pub(crate) fn set_index(&mut self, index: usize) {
138837            match self {
138838                _ => swc_visit::wrong_ast_path(),
138839            }
138840        }
138841    }
138842    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138843    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138844    pub enum TsExprWithTypeArgsField {
138845        #[doc = "Represents [`TsExprWithTypeArgs::span`]"]
138846        Span,
138847        #[doc = "Represents [`TsExprWithTypeArgs::expr`]"]
138848        Expr,
138849        #[doc = "Represents [`TsExprWithTypeArgs::type_args`]"]
138850        TypeArgs,
138851    }
138852    impl TsExternalModuleRefField {
138853        pub(crate) fn set_index(&mut self, index: usize) {
138854            match self {
138855                _ => swc_visit::wrong_ast_path(),
138856            }
138857        }
138858    }
138859    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138860    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138861    pub enum TsExternalModuleRefField {
138862        #[doc = "Represents [`TsExternalModuleRef::span`]"]
138863        Span,
138864        #[doc = "Represents [`TsExternalModuleRef::expr`]"]
138865        Expr,
138866    }
138867    impl TsFnOrConstructorTypeField {
138868        #[inline(always)]
138869        pub(crate) fn set_index(&mut self, _: usize) {
138870            swc_visit::wrong_ast_path();
138871        }
138872    }
138873    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138874    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138875    pub enum TsFnOrConstructorTypeField {
138876        #[doc = "Represents [`TsFnOrConstructorType::TsFnType`]"]
138877        TsFnType,
138878        #[doc = "Represents [`TsFnOrConstructorType::TsConstructorType`]"]
138879        TsConstructorType,
138880    }
138881    impl TsFnParamField {
138882        #[inline(always)]
138883        pub(crate) fn set_index(&mut self, _: usize) {
138884            swc_visit::wrong_ast_path();
138885        }
138886    }
138887    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138888    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138889    pub enum TsFnParamField {
138890        #[doc = "Represents [`TsFnParam::Ident`]"]
138891        Ident,
138892        #[doc = "Represents [`TsFnParam::Array`]"]
138893        Array,
138894        #[doc = "Represents [`TsFnParam::Rest`]"]
138895        Rest,
138896        #[doc = "Represents [`TsFnParam::Object`]"]
138897        Object,
138898    }
138899    impl TsFnTypeField {
138900        pub(crate) fn set_index(&mut self, index: usize) {
138901            match self {
138902                Self::Params(idx) => {
138903                    assert_initial_index(*idx, index);
138904                    *idx = index;
138905                }
138906                _ => swc_visit::wrong_ast_path(),
138907            }
138908        }
138909    }
138910    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138911    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138912    pub enum TsFnTypeField {
138913        #[doc = "Represents [`TsFnType::span`]"]
138914        Span,
138915        #[doc = "Represents [`TsFnType::params`]"]
138916        Params(usize),
138917        #[doc = "Represents [`TsFnType::type_params`]"]
138918        TypeParams,
138919        #[doc = "Represents [`TsFnType::type_ann`]"]
138920        TypeAnn,
138921    }
138922    impl TsGetterSignatureField {
138923        pub(crate) fn set_index(&mut self, index: usize) {
138924            match self {
138925                _ => swc_visit::wrong_ast_path(),
138926            }
138927        }
138928    }
138929    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138930    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138931    pub enum TsGetterSignatureField {
138932        #[doc = "Represents [`TsGetterSignature::span`]"]
138933        Span,
138934        #[doc = "Represents [`TsGetterSignature::key`]"]
138935        Key,
138936        #[doc = "Represents [`TsGetterSignature::computed`]"]
138937        Computed,
138938        #[doc = "Represents [`TsGetterSignature::type_ann`]"]
138939        TypeAnn,
138940    }
138941    impl TsImportEqualsDeclField {
138942        pub(crate) fn set_index(&mut self, index: usize) {
138943            match self {
138944                _ => swc_visit::wrong_ast_path(),
138945            }
138946        }
138947    }
138948    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138949    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138950    pub enum TsImportEqualsDeclField {
138951        #[doc = "Represents [`TsImportEqualsDecl::span`]"]
138952        Span,
138953        #[doc = "Represents [`TsImportEqualsDecl::is_export`]"]
138954        IsExport,
138955        #[doc = "Represents [`TsImportEqualsDecl::is_type_only`]"]
138956        IsTypeOnly,
138957        #[doc = "Represents [`TsImportEqualsDecl::id`]"]
138958        Id,
138959        #[doc = "Represents [`TsImportEqualsDecl::module_ref`]"]
138960        ModuleRef,
138961    }
138962    impl TsImportTypeField {
138963        pub(crate) fn set_index(&mut self, index: usize) {
138964            match self {
138965                _ => swc_visit::wrong_ast_path(),
138966            }
138967        }
138968    }
138969    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138970    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138971    pub enum TsImportTypeField {
138972        #[doc = "Represents [`TsImportType::span`]"]
138973        Span,
138974        #[doc = "Represents [`TsImportType::arg`]"]
138975        Arg,
138976        #[doc = "Represents [`TsImportType::qualifier`]"]
138977        Qualifier,
138978        #[doc = "Represents [`TsImportType::type_args`]"]
138979        TypeArgs,
138980    }
138981    impl TsIndexSignatureField {
138982        pub(crate) fn set_index(&mut self, index: usize) {
138983            match self {
138984                Self::Params(idx) => {
138985                    assert_initial_index(*idx, index);
138986                    *idx = index;
138987                }
138988                _ => swc_visit::wrong_ast_path(),
138989            }
138990        }
138991    }
138992    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
138993    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
138994    pub enum TsIndexSignatureField {
138995        #[doc = "Represents [`TsIndexSignature::params`]"]
138996        Params(usize),
138997        #[doc = "Represents [`TsIndexSignature::type_ann`]"]
138998        TypeAnn,
138999        #[doc = "Represents [`TsIndexSignature::readonly`]"]
139000        Readonly,
139001        #[doc = "Represents [`TsIndexSignature::is_static`]"]
139002        IsStatic,
139003        #[doc = "Represents [`TsIndexSignature::span`]"]
139004        Span,
139005    }
139006    impl TsIndexedAccessTypeField {
139007        pub(crate) fn set_index(&mut self, index: usize) {
139008            match self {
139009                _ => swc_visit::wrong_ast_path(),
139010            }
139011        }
139012    }
139013    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139014    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139015    pub enum TsIndexedAccessTypeField {
139016        #[doc = "Represents [`TsIndexedAccessType::span`]"]
139017        Span,
139018        #[doc = "Represents [`TsIndexedAccessType::readonly`]"]
139019        Readonly,
139020        #[doc = "Represents [`TsIndexedAccessType::obj_type`]"]
139021        ObjType,
139022        #[doc = "Represents [`TsIndexedAccessType::index_type`]"]
139023        IndexType,
139024    }
139025    impl TsInferTypeField {
139026        pub(crate) fn set_index(&mut self, index: usize) {
139027            match self {
139028                _ => swc_visit::wrong_ast_path(),
139029            }
139030        }
139031    }
139032    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139033    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139034    pub enum TsInferTypeField {
139035        #[doc = "Represents [`TsInferType::span`]"]
139036        Span,
139037        #[doc = "Represents [`TsInferType::type_param`]"]
139038        TypeParam,
139039    }
139040    impl TsInstantiationField {
139041        pub(crate) fn set_index(&mut self, index: usize) {
139042            match self {
139043                _ => swc_visit::wrong_ast_path(),
139044            }
139045        }
139046    }
139047    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139048    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139049    pub enum TsInstantiationField {
139050        #[doc = "Represents [`TsInstantiation::span`]"]
139051        Span,
139052        #[doc = "Represents [`TsInstantiation::expr`]"]
139053        Expr,
139054        #[doc = "Represents [`TsInstantiation::type_args`]"]
139055        TypeArgs,
139056    }
139057    impl TsInterfaceBodyField {
139058        pub(crate) fn set_index(&mut self, index: usize) {
139059            match self {
139060                Self::Body(idx) => {
139061                    assert_initial_index(*idx, index);
139062                    *idx = index;
139063                }
139064                _ => swc_visit::wrong_ast_path(),
139065            }
139066        }
139067    }
139068    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139069    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139070    pub enum TsInterfaceBodyField {
139071        #[doc = "Represents [`TsInterfaceBody::span`]"]
139072        Span,
139073        #[doc = "Represents [`TsInterfaceBody::body`]"]
139074        Body(usize),
139075    }
139076    impl TsInterfaceDeclField {
139077        pub(crate) fn set_index(&mut self, index: usize) {
139078            match self {
139079                Self::Extends(idx) => {
139080                    assert_initial_index(*idx, index);
139081                    *idx = index;
139082                }
139083                _ => swc_visit::wrong_ast_path(),
139084            }
139085        }
139086    }
139087    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139088    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139089    pub enum TsInterfaceDeclField {
139090        #[doc = "Represents [`TsInterfaceDecl::span`]"]
139091        Span,
139092        #[doc = "Represents [`TsInterfaceDecl::id`]"]
139093        Id,
139094        #[doc = "Represents [`TsInterfaceDecl::declare`]"]
139095        Declare,
139096        #[doc = "Represents [`TsInterfaceDecl::type_params`]"]
139097        TypeParams,
139098        #[doc = "Represents [`TsInterfaceDecl::extends`]"]
139099        Extends(usize),
139100        #[doc = "Represents [`TsInterfaceDecl::body`]"]
139101        Body,
139102    }
139103    impl TsIntersectionTypeField {
139104        pub(crate) fn set_index(&mut self, index: usize) {
139105            match self {
139106                Self::Types(idx) => {
139107                    assert_initial_index(*idx, index);
139108                    *idx = index;
139109                }
139110                _ => swc_visit::wrong_ast_path(),
139111            }
139112        }
139113    }
139114    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139115    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139116    pub enum TsIntersectionTypeField {
139117        #[doc = "Represents [`TsIntersectionType::span`]"]
139118        Span,
139119        #[doc = "Represents [`TsIntersectionType::types`]"]
139120        Types(usize),
139121    }
139122    impl TsKeywordTypeField {
139123        pub(crate) fn set_index(&mut self, index: usize) {
139124            match self {
139125                _ => swc_visit::wrong_ast_path(),
139126            }
139127        }
139128    }
139129    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139130    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139131    pub enum TsKeywordTypeField {
139132        #[doc = "Represents [`TsKeywordType::span`]"]
139133        Span,
139134        #[doc = "Represents [`TsKeywordType::kind`]"]
139135        Kind,
139136    }
139137    impl TsKeywordTypeKindField {
139138        #[inline(always)]
139139        pub(crate) fn set_index(&mut self, _: usize) {
139140            swc_visit::wrong_ast_path();
139141        }
139142    }
139143    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139144    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139145    pub enum TsKeywordTypeKindField {
139146        #[doc = "Represents [`TsKeywordTypeKind::TsAnyKeyword`]"]
139147        TsAnyKeyword,
139148        #[doc = "Represents [`TsKeywordTypeKind::TsUnknownKeyword`]"]
139149        TsUnknownKeyword,
139150        #[doc = "Represents [`TsKeywordTypeKind::TsNumberKeyword`]"]
139151        TsNumberKeyword,
139152        #[doc = "Represents [`TsKeywordTypeKind::TsObjectKeyword`]"]
139153        TsObjectKeyword,
139154        #[doc = "Represents [`TsKeywordTypeKind::TsBooleanKeyword`]"]
139155        TsBooleanKeyword,
139156        #[doc = "Represents [`TsKeywordTypeKind::TsBigIntKeyword`]"]
139157        TsBigIntKeyword,
139158        #[doc = "Represents [`TsKeywordTypeKind::TsStringKeyword`]"]
139159        TsStringKeyword,
139160        #[doc = "Represents [`TsKeywordTypeKind::TsSymbolKeyword`]"]
139161        TsSymbolKeyword,
139162        #[doc = "Represents [`TsKeywordTypeKind::TsVoidKeyword`]"]
139163        TsVoidKeyword,
139164        #[doc = "Represents [`TsKeywordTypeKind::TsUndefinedKeyword`]"]
139165        TsUndefinedKeyword,
139166        #[doc = "Represents [`TsKeywordTypeKind::TsNullKeyword`]"]
139167        TsNullKeyword,
139168        #[doc = "Represents [`TsKeywordTypeKind::TsNeverKeyword`]"]
139169        TsNeverKeyword,
139170        #[doc = "Represents [`TsKeywordTypeKind::TsIntrinsicKeyword`]"]
139171        TsIntrinsicKeyword,
139172    }
139173    impl TsLitField {
139174        #[inline(always)]
139175        pub(crate) fn set_index(&mut self, _: usize) {
139176            swc_visit::wrong_ast_path();
139177        }
139178    }
139179    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139180    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139181    pub enum TsLitField {
139182        #[doc = "Represents [`TsLit::Number`]"]
139183        Number,
139184        #[doc = "Represents [`TsLit::Str`]"]
139185        Str,
139186        #[doc = "Represents [`TsLit::Bool`]"]
139187        Bool,
139188        #[doc = "Represents [`TsLit::BigInt`]"]
139189        BigInt,
139190        #[doc = "Represents [`TsLit::Tpl`]"]
139191        Tpl,
139192    }
139193    impl TsLitTypeField {
139194        pub(crate) fn set_index(&mut self, index: usize) {
139195            match self {
139196                _ => swc_visit::wrong_ast_path(),
139197            }
139198        }
139199    }
139200    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139201    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139202    pub enum TsLitTypeField {
139203        #[doc = "Represents [`TsLitType::span`]"]
139204        Span,
139205        #[doc = "Represents [`TsLitType::lit`]"]
139206        Lit,
139207    }
139208    impl TsMappedTypeField {
139209        pub(crate) fn set_index(&mut self, index: usize) {
139210            match self {
139211                _ => swc_visit::wrong_ast_path(),
139212            }
139213        }
139214    }
139215    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139216    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139217    pub enum TsMappedTypeField {
139218        #[doc = "Represents [`TsMappedType::span`]"]
139219        Span,
139220        #[doc = "Represents [`TsMappedType::readonly`]"]
139221        Readonly,
139222        #[doc = "Represents [`TsMappedType::type_param`]"]
139223        TypeParam,
139224        #[doc = "Represents [`TsMappedType::name_type`]"]
139225        NameType,
139226        #[doc = "Represents [`TsMappedType::optional`]"]
139227        Optional,
139228        #[doc = "Represents [`TsMappedType::type_ann`]"]
139229        TypeAnn,
139230    }
139231    impl TsMethodSignatureField {
139232        pub(crate) fn set_index(&mut self, index: usize) {
139233            match self {
139234                Self::Params(idx) => {
139235                    assert_initial_index(*idx, index);
139236                    *idx = index;
139237                }
139238                _ => swc_visit::wrong_ast_path(),
139239            }
139240        }
139241    }
139242    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139243    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139244    pub enum TsMethodSignatureField {
139245        #[doc = "Represents [`TsMethodSignature::span`]"]
139246        Span,
139247        #[doc = "Represents [`TsMethodSignature::key`]"]
139248        Key,
139249        #[doc = "Represents [`TsMethodSignature::computed`]"]
139250        Computed,
139251        #[doc = "Represents [`TsMethodSignature::optional`]"]
139252        Optional,
139253        #[doc = "Represents [`TsMethodSignature::params`]"]
139254        Params(usize),
139255        #[doc = "Represents [`TsMethodSignature::type_ann`]"]
139256        TypeAnn,
139257        #[doc = "Represents [`TsMethodSignature::type_params`]"]
139258        TypeParams,
139259    }
139260    impl TsModuleBlockField {
139261        pub(crate) fn set_index(&mut self, index: usize) {
139262            match self {
139263                Self::Body(idx) => {
139264                    assert_initial_index(*idx, index);
139265                    *idx = index;
139266                }
139267                _ => swc_visit::wrong_ast_path(),
139268            }
139269        }
139270    }
139271    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139272    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139273    pub enum TsModuleBlockField {
139274        #[doc = "Represents [`TsModuleBlock::span`]"]
139275        Span,
139276        #[doc = "Represents [`TsModuleBlock::body`]"]
139277        Body(usize),
139278    }
139279    impl TsModuleDeclField {
139280        pub(crate) fn set_index(&mut self, index: usize) {
139281            match self {
139282                _ => swc_visit::wrong_ast_path(),
139283            }
139284        }
139285    }
139286    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139287    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139288    pub enum TsModuleDeclField {
139289        #[doc = "Represents [`TsModuleDecl::span`]"]
139290        Span,
139291        #[doc = "Represents [`TsModuleDecl::declare`]"]
139292        Declare,
139293        #[doc = "Represents [`TsModuleDecl::global`]"]
139294        Global,
139295        #[doc = "Represents [`TsModuleDecl::id`]"]
139296        Id,
139297        #[doc = "Represents [`TsModuleDecl::body`]"]
139298        Body,
139299    }
139300    impl TsModuleNameField {
139301        #[inline(always)]
139302        pub(crate) fn set_index(&mut self, _: usize) {
139303            swc_visit::wrong_ast_path();
139304        }
139305    }
139306    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139307    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139308    pub enum TsModuleNameField {
139309        #[doc = "Represents [`TsModuleName::Ident`]"]
139310        Ident,
139311        #[doc = "Represents [`TsModuleName::Str`]"]
139312        Str,
139313    }
139314    impl TsModuleRefField {
139315        #[inline(always)]
139316        pub(crate) fn set_index(&mut self, _: usize) {
139317            swc_visit::wrong_ast_path();
139318        }
139319    }
139320    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139321    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139322    pub enum TsModuleRefField {
139323        #[doc = "Represents [`TsModuleRef::TsEntityName`]"]
139324        TsEntityName,
139325        #[doc = "Represents [`TsModuleRef::TsExternalModuleRef`]"]
139326        TsExternalModuleRef,
139327    }
139328    impl TsNamespaceBodyField {
139329        #[inline(always)]
139330        pub(crate) fn set_index(&mut self, _: usize) {
139331            swc_visit::wrong_ast_path();
139332        }
139333    }
139334    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139335    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139336    pub enum TsNamespaceBodyField {
139337        #[doc = "Represents [`TsNamespaceBody::TsModuleBlock`]"]
139338        TsModuleBlock,
139339        #[doc = "Represents [`TsNamespaceBody::TsNamespaceDecl`]"]
139340        TsNamespaceDecl,
139341    }
139342    impl TsNamespaceDeclField {
139343        pub(crate) fn set_index(&mut self, index: usize) {
139344            match self {
139345                _ => swc_visit::wrong_ast_path(),
139346            }
139347        }
139348    }
139349    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139350    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139351    pub enum TsNamespaceDeclField {
139352        #[doc = "Represents [`TsNamespaceDecl::span`]"]
139353        Span,
139354        #[doc = "Represents [`TsNamespaceDecl::declare`]"]
139355        Declare,
139356        #[doc = "Represents [`TsNamespaceDecl::global`]"]
139357        Global,
139358        #[doc = "Represents [`TsNamespaceDecl::id`]"]
139359        Id,
139360        #[doc = "Represents [`TsNamespaceDecl::body`]"]
139361        Body,
139362    }
139363    impl TsNamespaceExportDeclField {
139364        pub(crate) fn set_index(&mut self, index: usize) {
139365            match self {
139366                _ => swc_visit::wrong_ast_path(),
139367            }
139368        }
139369    }
139370    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139371    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139372    pub enum TsNamespaceExportDeclField {
139373        #[doc = "Represents [`TsNamespaceExportDecl::span`]"]
139374        Span,
139375        #[doc = "Represents [`TsNamespaceExportDecl::id`]"]
139376        Id,
139377    }
139378    impl TsNonNullExprField {
139379        pub(crate) fn set_index(&mut self, index: usize) {
139380            match self {
139381                _ => swc_visit::wrong_ast_path(),
139382            }
139383        }
139384    }
139385    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139386    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139387    pub enum TsNonNullExprField {
139388        #[doc = "Represents [`TsNonNullExpr::span`]"]
139389        Span,
139390        #[doc = "Represents [`TsNonNullExpr::expr`]"]
139391        Expr,
139392    }
139393    impl TsOptionalTypeField {
139394        pub(crate) fn set_index(&mut self, index: usize) {
139395            match self {
139396                _ => swc_visit::wrong_ast_path(),
139397            }
139398        }
139399    }
139400    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139401    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139402    pub enum TsOptionalTypeField {
139403        #[doc = "Represents [`TsOptionalType::span`]"]
139404        Span,
139405        #[doc = "Represents [`TsOptionalType::type_ann`]"]
139406        TypeAnn,
139407    }
139408    impl TsParamPropField {
139409        pub(crate) fn set_index(&mut self, index: usize) {
139410            match self {
139411                Self::Decorators(idx) => {
139412                    assert_initial_index(*idx, index);
139413                    *idx = index;
139414                }
139415                _ => swc_visit::wrong_ast_path(),
139416            }
139417        }
139418    }
139419    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139420    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139421    pub enum TsParamPropField {
139422        #[doc = "Represents [`TsParamProp::span`]"]
139423        Span,
139424        #[doc = "Represents [`TsParamProp::decorators`]"]
139425        Decorators(usize),
139426        #[doc = "Represents [`TsParamProp::accessibility`]"]
139427        Accessibility,
139428        #[doc = "Represents [`TsParamProp::is_override`]"]
139429        IsOverride,
139430        #[doc = "Represents [`TsParamProp::readonly`]"]
139431        Readonly,
139432        #[doc = "Represents [`TsParamProp::param`]"]
139433        Param,
139434    }
139435    impl TsParamPropParamField {
139436        #[inline(always)]
139437        pub(crate) fn set_index(&mut self, _: usize) {
139438            swc_visit::wrong_ast_path();
139439        }
139440    }
139441    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139442    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139443    pub enum TsParamPropParamField {
139444        #[doc = "Represents [`TsParamPropParam::Ident`]"]
139445        Ident,
139446        #[doc = "Represents [`TsParamPropParam::Assign`]"]
139447        Assign,
139448    }
139449    impl TsParenthesizedTypeField {
139450        pub(crate) fn set_index(&mut self, index: usize) {
139451            match self {
139452                _ => swc_visit::wrong_ast_path(),
139453            }
139454        }
139455    }
139456    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139457    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139458    pub enum TsParenthesizedTypeField {
139459        #[doc = "Represents [`TsParenthesizedType::span`]"]
139460        Span,
139461        #[doc = "Represents [`TsParenthesizedType::type_ann`]"]
139462        TypeAnn,
139463    }
139464    impl TsPropertySignatureField {
139465        pub(crate) fn set_index(&mut self, index: usize) {
139466            match self {
139467                _ => swc_visit::wrong_ast_path(),
139468            }
139469        }
139470    }
139471    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139472    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139473    pub enum TsPropertySignatureField {
139474        #[doc = "Represents [`TsPropertySignature::span`]"]
139475        Span,
139476        #[doc = "Represents [`TsPropertySignature::readonly`]"]
139477        Readonly,
139478        #[doc = "Represents [`TsPropertySignature::key`]"]
139479        Key,
139480        #[doc = "Represents [`TsPropertySignature::computed`]"]
139481        Computed,
139482        #[doc = "Represents [`TsPropertySignature::optional`]"]
139483        Optional,
139484        #[doc = "Represents [`TsPropertySignature::type_ann`]"]
139485        TypeAnn,
139486    }
139487    impl TsQualifiedNameField {
139488        pub(crate) fn set_index(&mut self, index: usize) {
139489            match self {
139490                _ => swc_visit::wrong_ast_path(),
139491            }
139492        }
139493    }
139494    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139495    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139496    pub enum TsQualifiedNameField {
139497        #[doc = "Represents [`TsQualifiedName::span`]"]
139498        Span,
139499        #[doc = "Represents [`TsQualifiedName::left`]"]
139500        Left,
139501        #[doc = "Represents [`TsQualifiedName::right`]"]
139502        Right,
139503    }
139504    impl TsRestTypeField {
139505        pub(crate) fn set_index(&mut self, index: usize) {
139506            match self {
139507                _ => swc_visit::wrong_ast_path(),
139508            }
139509        }
139510    }
139511    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139512    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139513    pub enum TsRestTypeField {
139514        #[doc = "Represents [`TsRestType::span`]"]
139515        Span,
139516        #[doc = "Represents [`TsRestType::type_ann`]"]
139517        TypeAnn,
139518    }
139519    impl TsSatisfiesExprField {
139520        pub(crate) fn set_index(&mut self, index: usize) {
139521            match self {
139522                _ => swc_visit::wrong_ast_path(),
139523            }
139524        }
139525    }
139526    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139527    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139528    pub enum TsSatisfiesExprField {
139529        #[doc = "Represents [`TsSatisfiesExpr::span`]"]
139530        Span,
139531        #[doc = "Represents [`TsSatisfiesExpr::expr`]"]
139532        Expr,
139533        #[doc = "Represents [`TsSatisfiesExpr::type_ann`]"]
139534        TypeAnn,
139535    }
139536    impl TsSetterSignatureField {
139537        pub(crate) fn set_index(&mut self, index: usize) {
139538            match self {
139539                _ => swc_visit::wrong_ast_path(),
139540            }
139541        }
139542    }
139543    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139544    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139545    pub enum TsSetterSignatureField {
139546        #[doc = "Represents [`TsSetterSignature::span`]"]
139547        Span,
139548        #[doc = "Represents [`TsSetterSignature::key`]"]
139549        Key,
139550        #[doc = "Represents [`TsSetterSignature::computed`]"]
139551        Computed,
139552        #[doc = "Represents [`TsSetterSignature::param`]"]
139553        Param,
139554    }
139555    impl TsThisTypeField {
139556        pub(crate) fn set_index(&mut self, index: usize) {
139557            match self {
139558                _ => swc_visit::wrong_ast_path(),
139559            }
139560        }
139561    }
139562    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139563    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139564    pub enum TsThisTypeField {
139565        #[doc = "Represents [`TsThisType::span`]"]
139566        Span,
139567    }
139568    impl TsThisTypeOrIdentField {
139569        #[inline(always)]
139570        pub(crate) fn set_index(&mut self, _: usize) {
139571            swc_visit::wrong_ast_path();
139572        }
139573    }
139574    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139575    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139576    pub enum TsThisTypeOrIdentField {
139577        #[doc = "Represents [`TsThisTypeOrIdent::TsThisType`]"]
139578        TsThisType,
139579        #[doc = "Represents [`TsThisTypeOrIdent::Ident`]"]
139580        Ident,
139581    }
139582    impl TsTplLitTypeField {
139583        pub(crate) fn set_index(&mut self, index: usize) {
139584            match self {
139585                Self::Types(idx) => {
139586                    assert_initial_index(*idx, index);
139587                    *idx = index;
139588                }
139589                Self::Quasis(idx) => {
139590                    assert_initial_index(*idx, index);
139591                    *idx = index;
139592                }
139593                _ => swc_visit::wrong_ast_path(),
139594            }
139595        }
139596    }
139597    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139598    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139599    pub enum TsTplLitTypeField {
139600        #[doc = "Represents [`TsTplLitType::span`]"]
139601        Span,
139602        #[doc = "Represents [`TsTplLitType::types`]"]
139603        Types(usize),
139604        #[doc = "Represents [`TsTplLitType::quasis`]"]
139605        Quasis(usize),
139606    }
139607    impl TsTupleElementField {
139608        pub(crate) fn set_index(&mut self, index: usize) {
139609            match self {
139610                _ => swc_visit::wrong_ast_path(),
139611            }
139612        }
139613    }
139614    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139615    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139616    pub enum TsTupleElementField {
139617        #[doc = "Represents [`TsTupleElement::span`]"]
139618        Span,
139619        #[doc = "Represents [`TsTupleElement::label`]"]
139620        Label,
139621        #[doc = "Represents [`TsTupleElement::ty`]"]
139622        Ty,
139623    }
139624    impl TsTupleTypeField {
139625        pub(crate) fn set_index(&mut self, index: usize) {
139626            match self {
139627                Self::ElemTypes(idx) => {
139628                    assert_initial_index(*idx, index);
139629                    *idx = index;
139630                }
139631                _ => swc_visit::wrong_ast_path(),
139632            }
139633        }
139634    }
139635    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139636    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139637    pub enum TsTupleTypeField {
139638        #[doc = "Represents [`TsTupleType::span`]"]
139639        Span,
139640        #[doc = "Represents [`TsTupleType::elem_types`]"]
139641        ElemTypes(usize),
139642    }
139643    impl TsTypeField {
139644        #[inline(always)]
139645        pub(crate) fn set_index(&mut self, _: usize) {
139646            swc_visit::wrong_ast_path();
139647        }
139648    }
139649    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139650    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139651    pub enum TsTypeField {
139652        #[doc = "Represents [`TsType::TsKeywordType`]"]
139653        TsKeywordType,
139654        #[doc = "Represents [`TsType::TsThisType`]"]
139655        TsThisType,
139656        #[doc = "Represents [`TsType::TsFnOrConstructorType`]"]
139657        TsFnOrConstructorType,
139658        #[doc = "Represents [`TsType::TsTypeRef`]"]
139659        TsTypeRef,
139660        #[doc = "Represents [`TsType::TsTypeQuery`]"]
139661        TsTypeQuery,
139662        #[doc = "Represents [`TsType::TsTypeLit`]"]
139663        TsTypeLit,
139664        #[doc = "Represents [`TsType::TsArrayType`]"]
139665        TsArrayType,
139666        #[doc = "Represents [`TsType::TsTupleType`]"]
139667        TsTupleType,
139668        #[doc = "Represents [`TsType::TsOptionalType`]"]
139669        TsOptionalType,
139670        #[doc = "Represents [`TsType::TsRestType`]"]
139671        TsRestType,
139672        #[doc = "Represents [`TsType::TsUnionOrIntersectionType`]"]
139673        TsUnionOrIntersectionType,
139674        #[doc = "Represents [`TsType::TsConditionalType`]"]
139675        TsConditionalType,
139676        #[doc = "Represents [`TsType::TsInferType`]"]
139677        TsInferType,
139678        #[doc = "Represents [`TsType::TsParenthesizedType`]"]
139679        TsParenthesizedType,
139680        #[doc = "Represents [`TsType::TsTypeOperator`]"]
139681        TsTypeOperator,
139682        #[doc = "Represents [`TsType::TsIndexedAccessType`]"]
139683        TsIndexedAccessType,
139684        #[doc = "Represents [`TsType::TsMappedType`]"]
139685        TsMappedType,
139686        #[doc = "Represents [`TsType::TsLitType`]"]
139687        TsLitType,
139688        #[doc = "Represents [`TsType::TsTypePredicate`]"]
139689        TsTypePredicate,
139690        #[doc = "Represents [`TsType::TsImportType`]"]
139691        TsImportType,
139692    }
139693    impl TsTypeAliasDeclField {
139694        pub(crate) fn set_index(&mut self, index: usize) {
139695            match self {
139696                _ => swc_visit::wrong_ast_path(),
139697            }
139698        }
139699    }
139700    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139701    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139702    pub enum TsTypeAliasDeclField {
139703        #[doc = "Represents [`TsTypeAliasDecl::span`]"]
139704        Span,
139705        #[doc = "Represents [`TsTypeAliasDecl::declare`]"]
139706        Declare,
139707        #[doc = "Represents [`TsTypeAliasDecl::id`]"]
139708        Id,
139709        #[doc = "Represents [`TsTypeAliasDecl::type_params`]"]
139710        TypeParams,
139711        #[doc = "Represents [`TsTypeAliasDecl::type_ann`]"]
139712        TypeAnn,
139713    }
139714    impl TsTypeAnnField {
139715        pub(crate) fn set_index(&mut self, index: usize) {
139716            match self {
139717                _ => swc_visit::wrong_ast_path(),
139718            }
139719        }
139720    }
139721    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139722    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139723    pub enum TsTypeAnnField {
139724        #[doc = "Represents [`TsTypeAnn::span`]"]
139725        Span,
139726        #[doc = "Represents [`TsTypeAnn::type_ann`]"]
139727        TypeAnn,
139728    }
139729    impl TsTypeAssertionField {
139730        pub(crate) fn set_index(&mut self, index: usize) {
139731            match self {
139732                _ => swc_visit::wrong_ast_path(),
139733            }
139734        }
139735    }
139736    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139737    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139738    pub enum TsTypeAssertionField {
139739        #[doc = "Represents [`TsTypeAssertion::span`]"]
139740        Span,
139741        #[doc = "Represents [`TsTypeAssertion::expr`]"]
139742        Expr,
139743        #[doc = "Represents [`TsTypeAssertion::type_ann`]"]
139744        TypeAnn,
139745    }
139746    impl TsTypeElementField {
139747        #[inline(always)]
139748        pub(crate) fn set_index(&mut self, _: usize) {
139749            swc_visit::wrong_ast_path();
139750        }
139751    }
139752    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139753    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139754    pub enum TsTypeElementField {
139755        #[doc = "Represents [`TsTypeElement::TsCallSignatureDecl`]"]
139756        TsCallSignatureDecl,
139757        #[doc = "Represents [`TsTypeElement::TsConstructSignatureDecl`]"]
139758        TsConstructSignatureDecl,
139759        #[doc = "Represents [`TsTypeElement::TsPropertySignature`]"]
139760        TsPropertySignature,
139761        #[doc = "Represents [`TsTypeElement::TsGetterSignature`]"]
139762        TsGetterSignature,
139763        #[doc = "Represents [`TsTypeElement::TsSetterSignature`]"]
139764        TsSetterSignature,
139765        #[doc = "Represents [`TsTypeElement::TsMethodSignature`]"]
139766        TsMethodSignature,
139767        #[doc = "Represents [`TsTypeElement::TsIndexSignature`]"]
139768        TsIndexSignature,
139769    }
139770    impl TsTypeLitField {
139771        pub(crate) fn set_index(&mut self, index: usize) {
139772            match self {
139773                Self::Members(idx) => {
139774                    assert_initial_index(*idx, index);
139775                    *idx = index;
139776                }
139777                _ => swc_visit::wrong_ast_path(),
139778            }
139779        }
139780    }
139781    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139782    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139783    pub enum TsTypeLitField {
139784        #[doc = "Represents [`TsTypeLit::span`]"]
139785        Span,
139786        #[doc = "Represents [`TsTypeLit::members`]"]
139787        Members(usize),
139788    }
139789    impl TsTypeOperatorField {
139790        pub(crate) fn set_index(&mut self, index: usize) {
139791            match self {
139792                _ => swc_visit::wrong_ast_path(),
139793            }
139794        }
139795    }
139796    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139797    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139798    pub enum TsTypeOperatorField {
139799        #[doc = "Represents [`TsTypeOperator::span`]"]
139800        Span,
139801        #[doc = "Represents [`TsTypeOperator::op`]"]
139802        Op,
139803        #[doc = "Represents [`TsTypeOperator::type_ann`]"]
139804        TypeAnn,
139805    }
139806    impl TsTypeOperatorOpField {
139807        #[inline(always)]
139808        pub(crate) fn set_index(&mut self, _: usize) {
139809            swc_visit::wrong_ast_path();
139810        }
139811    }
139812    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139813    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139814    pub enum TsTypeOperatorOpField {
139815        #[doc = "Represents [`TsTypeOperatorOp::KeyOf`]"]
139816        KeyOf,
139817        #[doc = "Represents [`TsTypeOperatorOp::Unique`]"]
139818        Unique,
139819        #[doc = "Represents [`TsTypeOperatorOp::ReadOnly`]"]
139820        ReadOnly,
139821    }
139822    impl TsTypeParamField {
139823        pub(crate) fn set_index(&mut self, index: usize) {
139824            match self {
139825                _ => swc_visit::wrong_ast_path(),
139826            }
139827        }
139828    }
139829    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139830    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139831    pub enum TsTypeParamField {
139832        #[doc = "Represents [`TsTypeParam::span`]"]
139833        Span,
139834        #[doc = "Represents [`TsTypeParam::name`]"]
139835        Name,
139836        #[doc = "Represents [`TsTypeParam::is_in`]"]
139837        IsIn,
139838        #[doc = "Represents [`TsTypeParam::is_out`]"]
139839        IsOut,
139840        #[doc = "Represents [`TsTypeParam::is_const`]"]
139841        IsConst,
139842        #[doc = "Represents [`TsTypeParam::constraint`]"]
139843        Constraint,
139844        #[doc = "Represents [`TsTypeParam::default`]"]
139845        Default,
139846    }
139847    impl TsTypeParamDeclField {
139848        pub(crate) fn set_index(&mut self, index: usize) {
139849            match self {
139850                Self::Params(idx) => {
139851                    assert_initial_index(*idx, index);
139852                    *idx = index;
139853                }
139854                _ => swc_visit::wrong_ast_path(),
139855            }
139856        }
139857    }
139858    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139859    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139860    pub enum TsTypeParamDeclField {
139861        #[doc = "Represents [`TsTypeParamDecl::span`]"]
139862        Span,
139863        #[doc = "Represents [`TsTypeParamDecl::params`]"]
139864        Params(usize),
139865    }
139866    impl TsTypeParamInstantiationField {
139867        pub(crate) fn set_index(&mut self, index: usize) {
139868            match self {
139869                Self::Params(idx) => {
139870                    assert_initial_index(*idx, index);
139871                    *idx = index;
139872                }
139873                _ => swc_visit::wrong_ast_path(),
139874            }
139875        }
139876    }
139877    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139878    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139879    pub enum TsTypeParamInstantiationField {
139880        #[doc = "Represents [`TsTypeParamInstantiation::span`]"]
139881        Span,
139882        #[doc = "Represents [`TsTypeParamInstantiation::params`]"]
139883        Params(usize),
139884    }
139885    impl TsTypePredicateField {
139886        pub(crate) fn set_index(&mut self, index: usize) {
139887            match self {
139888                _ => swc_visit::wrong_ast_path(),
139889            }
139890        }
139891    }
139892    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139893    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139894    pub enum TsTypePredicateField {
139895        #[doc = "Represents [`TsTypePredicate::span`]"]
139896        Span,
139897        #[doc = "Represents [`TsTypePredicate::asserts`]"]
139898        Asserts,
139899        #[doc = "Represents [`TsTypePredicate::param_name`]"]
139900        ParamName,
139901        #[doc = "Represents [`TsTypePredicate::type_ann`]"]
139902        TypeAnn,
139903    }
139904    impl TsTypeQueryField {
139905        pub(crate) fn set_index(&mut self, index: usize) {
139906            match self {
139907                _ => swc_visit::wrong_ast_path(),
139908            }
139909        }
139910    }
139911    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139912    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139913    pub enum TsTypeQueryField {
139914        #[doc = "Represents [`TsTypeQuery::span`]"]
139915        Span,
139916        #[doc = "Represents [`TsTypeQuery::expr_name`]"]
139917        ExprName,
139918        #[doc = "Represents [`TsTypeQuery::type_args`]"]
139919        TypeArgs,
139920    }
139921    impl TsTypeQueryExprField {
139922        #[inline(always)]
139923        pub(crate) fn set_index(&mut self, _: usize) {
139924            swc_visit::wrong_ast_path();
139925        }
139926    }
139927    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139928    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139929    pub enum TsTypeQueryExprField {
139930        #[doc = "Represents [`TsTypeQueryExpr::TsEntityName`]"]
139931        TsEntityName,
139932        #[doc = "Represents [`TsTypeQueryExpr::Import`]"]
139933        Import,
139934    }
139935    impl TsTypeRefField {
139936        pub(crate) fn set_index(&mut self, index: usize) {
139937            match self {
139938                _ => swc_visit::wrong_ast_path(),
139939            }
139940        }
139941    }
139942    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139943    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139944    pub enum TsTypeRefField {
139945        #[doc = "Represents [`TsTypeRef::span`]"]
139946        Span,
139947        #[doc = "Represents [`TsTypeRef::type_name`]"]
139948        TypeName,
139949        #[doc = "Represents [`TsTypeRef::type_params`]"]
139950        TypeParams,
139951    }
139952    impl TsUnionOrIntersectionTypeField {
139953        #[inline(always)]
139954        pub(crate) fn set_index(&mut self, _: usize) {
139955            swc_visit::wrong_ast_path();
139956        }
139957    }
139958    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139959    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139960    pub enum TsUnionOrIntersectionTypeField {
139961        #[doc = "Represents [`TsUnionOrIntersectionType::TsUnionType`]"]
139962        TsUnionType,
139963        #[doc = "Represents [`TsUnionOrIntersectionType::TsIntersectionType`]"]
139964        TsIntersectionType,
139965    }
139966    impl TsUnionTypeField {
139967        pub(crate) fn set_index(&mut self, index: usize) {
139968            match self {
139969                Self::Types(idx) => {
139970                    assert_initial_index(*idx, index);
139971                    *idx = index;
139972                }
139973                _ => swc_visit::wrong_ast_path(),
139974            }
139975        }
139976    }
139977    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139978    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139979    pub enum TsUnionTypeField {
139980        #[doc = "Represents [`TsUnionType::span`]"]
139981        Span,
139982        #[doc = "Represents [`TsUnionType::types`]"]
139983        Types(usize),
139984    }
139985    impl UnaryExprField {
139986        pub(crate) fn set_index(&mut self, index: usize) {
139987            match self {
139988                _ => swc_visit::wrong_ast_path(),
139989            }
139990        }
139991    }
139992    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
139993    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
139994    pub enum UnaryExprField {
139995        #[doc = "Represents [`UnaryExpr::span`]"]
139996        Span,
139997        #[doc = "Represents [`UnaryExpr::op`]"]
139998        Op,
139999        #[doc = "Represents [`UnaryExpr::arg`]"]
140000        Arg,
140001    }
140002    impl UnaryOpField {
140003        #[inline(always)]
140004        pub(crate) fn set_index(&mut self, _: usize) {
140005            swc_visit::wrong_ast_path();
140006        }
140007    }
140008    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140009    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140010    pub enum UnaryOpField {
140011        #[doc = "Represents [`UnaryOp::Minus`]"]
140012        Minus,
140013        #[doc = "Represents [`UnaryOp::Plus`]"]
140014        Plus,
140015        #[doc = "Represents [`UnaryOp::Bang`]"]
140016        Bang,
140017        #[doc = "Represents [`UnaryOp::Tilde`]"]
140018        Tilde,
140019        #[doc = "Represents [`UnaryOp::TypeOf`]"]
140020        TypeOf,
140021        #[doc = "Represents [`UnaryOp::Void`]"]
140022        Void,
140023        #[doc = "Represents [`UnaryOp::Delete`]"]
140024        Delete,
140025    }
140026    impl UpdateExprField {
140027        pub(crate) fn set_index(&mut self, index: usize) {
140028            match self {
140029                _ => swc_visit::wrong_ast_path(),
140030            }
140031        }
140032    }
140033    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140034    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140035    pub enum UpdateExprField {
140036        #[doc = "Represents [`UpdateExpr::span`]"]
140037        Span,
140038        #[doc = "Represents [`UpdateExpr::op`]"]
140039        Op,
140040        #[doc = "Represents [`UpdateExpr::prefix`]"]
140041        Prefix,
140042        #[doc = "Represents [`UpdateExpr::arg`]"]
140043        Arg,
140044    }
140045    impl UpdateOpField {
140046        #[inline(always)]
140047        pub(crate) fn set_index(&mut self, _: usize) {
140048            swc_visit::wrong_ast_path();
140049        }
140050    }
140051    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140052    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140053    pub enum UpdateOpField {
140054        #[doc = "Represents [`UpdateOp::PlusPlus`]"]
140055        PlusPlus,
140056        #[doc = "Represents [`UpdateOp::MinusMinus`]"]
140057        MinusMinus,
140058    }
140059    impl UsingDeclField {
140060        pub(crate) fn set_index(&mut self, index: usize) {
140061            match self {
140062                Self::Decls(idx) => {
140063                    assert_initial_index(*idx, index);
140064                    *idx = index;
140065                }
140066                _ => swc_visit::wrong_ast_path(),
140067            }
140068        }
140069    }
140070    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140071    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140072    pub enum UsingDeclField {
140073        #[doc = "Represents [`UsingDecl::span`]"]
140074        Span,
140075        #[doc = "Represents [`UsingDecl::is_await`]"]
140076        IsAwait,
140077        #[doc = "Represents [`UsingDecl::decls`]"]
140078        Decls(usize),
140079    }
140080    impl VarDeclField {
140081        pub(crate) fn set_index(&mut self, index: usize) {
140082            match self {
140083                Self::Decls(idx) => {
140084                    assert_initial_index(*idx, index);
140085                    *idx = index;
140086                }
140087                _ => swc_visit::wrong_ast_path(),
140088            }
140089        }
140090    }
140091    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140092    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140093    pub enum VarDeclField {
140094        #[doc = "Represents [`VarDecl::span`]"]
140095        Span,
140096        #[doc = "Represents [`VarDecl::ctxt`]"]
140097        Ctxt,
140098        #[doc = "Represents [`VarDecl::kind`]"]
140099        Kind,
140100        #[doc = "Represents [`VarDecl::declare`]"]
140101        Declare,
140102        #[doc = "Represents [`VarDecl::decls`]"]
140103        Decls(usize),
140104    }
140105    impl VarDeclKindField {
140106        #[inline(always)]
140107        pub(crate) fn set_index(&mut self, _: usize) {
140108            swc_visit::wrong_ast_path();
140109        }
140110    }
140111    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140112    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140113    pub enum VarDeclKindField {
140114        #[doc = "Represents [`VarDeclKind::Var`]"]
140115        Var,
140116        #[doc = "Represents [`VarDeclKind::Let`]"]
140117        Let,
140118        #[doc = "Represents [`VarDeclKind::Const`]"]
140119        Const,
140120    }
140121    impl VarDeclOrExprField {
140122        #[inline(always)]
140123        pub(crate) fn set_index(&mut self, _: usize) {
140124            swc_visit::wrong_ast_path();
140125        }
140126    }
140127    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140128    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140129    pub enum VarDeclOrExprField {
140130        #[doc = "Represents [`VarDeclOrExpr::VarDecl`]"]
140131        VarDecl,
140132        #[doc = "Represents [`VarDeclOrExpr::Expr`]"]
140133        Expr,
140134    }
140135    impl VarDeclaratorField {
140136        pub(crate) fn set_index(&mut self, index: usize) {
140137            match self {
140138                _ => swc_visit::wrong_ast_path(),
140139            }
140140        }
140141    }
140142    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140143    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140144    pub enum VarDeclaratorField {
140145        #[doc = "Represents [`VarDeclarator::span`]"]
140146        Span,
140147        #[doc = "Represents [`VarDeclarator::name`]"]
140148        Name,
140149        #[doc = "Represents [`VarDeclarator::init`]"]
140150        Init,
140151        #[doc = "Represents [`VarDeclarator::definite`]"]
140152        Definite,
140153    }
140154    impl WhileStmtField {
140155        pub(crate) fn set_index(&mut self, index: usize) {
140156            match self {
140157                _ => swc_visit::wrong_ast_path(),
140158            }
140159        }
140160    }
140161    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140162    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140163    pub enum WhileStmtField {
140164        #[doc = "Represents [`WhileStmt::span`]"]
140165        Span,
140166        #[doc = "Represents [`WhileStmt::test`]"]
140167        Test,
140168        #[doc = "Represents [`WhileStmt::body`]"]
140169        Body,
140170    }
140171    impl WithStmtField {
140172        pub(crate) fn set_index(&mut self, index: usize) {
140173            match self {
140174                _ => swc_visit::wrong_ast_path(),
140175            }
140176        }
140177    }
140178    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140179    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140180    pub enum WithStmtField {
140181        #[doc = "Represents [`WithStmt::span`]"]
140182        Span,
140183        #[doc = "Represents [`WithStmt::obj`]"]
140184        Obj,
140185        #[doc = "Represents [`WithStmt::body`]"]
140186        Body,
140187    }
140188    impl YieldExprField {
140189        pub(crate) fn set_index(&mut self, index: usize) {
140190            match self {
140191                _ => swc_visit::wrong_ast_path(),
140192            }
140193        }
140194    }
140195    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140196    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140197    pub enum YieldExprField {
140198        #[doc = "Represents [`YieldExpr::span`]"]
140199        Span,
140200        #[doc = "Represents [`YieldExpr::arg`]"]
140201        Arg,
140202        #[doc = "Represents [`YieldExpr::delegate`]"]
140203        Delegate,
140204    }
140205    #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140206    #[cfg_attr(feature = "serde-impl", derive(serde::Serialize, serde::Deserialize))]
140207    pub enum AstParentKind {
140208        Accessibility(AccessibilityField),
140209        ArrayLit(ArrayLitField),
140210        ArrayPat(ArrayPatField),
140211        ArrowExpr(ArrowExprField),
140212        AssignExpr(AssignExprField),
140213        AssignOp(AssignOpField),
140214        AssignPat(AssignPatField),
140215        AssignPatProp(AssignPatPropField),
140216        AssignProp(AssignPropField),
140217        AssignTarget(AssignTargetField),
140218        AssignTargetPat(AssignTargetPatField),
140219        AutoAccessor(AutoAccessorField),
140220        AwaitExpr(AwaitExprField),
140221        BigInt(BigIntField),
140222        BinExpr(BinExprField),
140223        BinaryOp(BinaryOpField),
140224        BindingIdent(BindingIdentField),
140225        BlockStmt(BlockStmtField),
140226        BlockStmtOrExpr(BlockStmtOrExprField),
140227        Bool(BoolField),
140228        BreakStmt(BreakStmtField),
140229        CallExpr(CallExprField),
140230        Callee(CalleeField),
140231        CatchClause(CatchClauseField),
140232        Class(ClassField),
140233        ClassDecl(ClassDeclField),
140234        ClassExpr(ClassExprField),
140235        ClassMember(ClassMemberField),
140236        ClassMethod(ClassMethodField),
140237        ClassProp(ClassPropField),
140238        ComputedPropName(ComputedPropNameField),
140239        CondExpr(CondExprField),
140240        Constructor(ConstructorField),
140241        ContinueStmt(ContinueStmtField),
140242        DebuggerStmt(DebuggerStmtField),
140243        Decl(DeclField),
140244        Decorator(DecoratorField),
140245        DefaultDecl(DefaultDeclField),
140246        DoWhileStmt(DoWhileStmtField),
140247        EmptyStmt(EmptyStmtField),
140248        ExportAll(ExportAllField),
140249        ExportDecl(ExportDeclField),
140250        ExportDefaultDecl(ExportDefaultDeclField),
140251        ExportDefaultExpr(ExportDefaultExprField),
140252        ExportDefaultSpecifier(ExportDefaultSpecifierField),
140253        ExportNamedSpecifier(ExportNamedSpecifierField),
140254        ExportNamespaceSpecifier(ExportNamespaceSpecifierField),
140255        ExportSpecifier(ExportSpecifierField),
140256        Expr(ExprField),
140257        ExprOrSpread(ExprOrSpreadField),
140258        ExprStmt(ExprStmtField),
140259        FnDecl(FnDeclField),
140260        FnExpr(FnExprField),
140261        ForHead(ForHeadField),
140262        ForInStmt(ForInStmtField),
140263        ForOfStmt(ForOfStmtField),
140264        ForStmt(ForStmtField),
140265        Function(FunctionField),
140266        GetterProp(GetterPropField),
140267        Ident(IdentField),
140268        IdentName(IdentNameField),
140269        IfStmt(IfStmtField),
140270        Import(ImportField),
140271        ImportDecl(ImportDeclField),
140272        ImportDefaultSpecifier(ImportDefaultSpecifierField),
140273        ImportNamedSpecifier(ImportNamedSpecifierField),
140274        ImportPhase(ImportPhaseField),
140275        ImportSpecifier(ImportSpecifierField),
140276        ImportStarAsSpecifier(ImportStarAsSpecifierField),
140277        ImportWith(ImportWithField),
140278        ImportWithItem(ImportWithItemField),
140279        Invalid(InvalidField),
140280        JSXAttr(JSXAttrField),
140281        JSXAttrName(JSXAttrNameField),
140282        JSXAttrOrSpread(JSXAttrOrSpreadField),
140283        JSXAttrValue(JSXAttrValueField),
140284        JSXClosingElement(JSXClosingElementField),
140285        JSXClosingFragment(JSXClosingFragmentField),
140286        JSXElement(JSXElementField),
140287        JSXElementChild(JSXElementChildField),
140288        JSXElementName(JSXElementNameField),
140289        JSXEmptyExpr(JSXEmptyExprField),
140290        JSXExpr(JSXExprField),
140291        JSXExprContainer(JSXExprContainerField),
140292        JSXFragment(JSXFragmentField),
140293        JSXMemberExpr(JSXMemberExprField),
140294        JSXNamespacedName(JSXNamespacedNameField),
140295        JSXObject(JSXObjectField),
140296        JSXOpeningElement(JSXOpeningElementField),
140297        JSXOpeningFragment(JSXOpeningFragmentField),
140298        JSXSpreadChild(JSXSpreadChildField),
140299        JSXText(JSXTextField),
140300        Key(KeyField),
140301        KeyValuePatProp(KeyValuePatPropField),
140302        KeyValueProp(KeyValuePropField),
140303        LabeledStmt(LabeledStmtField),
140304        Lit(LitField),
140305        MemberExpr(MemberExprField),
140306        MemberProp(MemberPropField),
140307        MetaPropExpr(MetaPropExprField),
140308        MetaPropKind(MetaPropKindField),
140309        MethodKind(MethodKindField),
140310        MethodProp(MethodPropField),
140311        Module(ModuleField),
140312        ModuleDecl(ModuleDeclField),
140313        ModuleExportName(ModuleExportNameField),
140314        ModuleItem(ModuleItemField),
140315        NamedExport(NamedExportField),
140316        NewExpr(NewExprField),
140317        Null(NullField),
140318        Number(NumberField),
140319        ObjectLit(ObjectLitField),
140320        ObjectPat(ObjectPatField),
140321        ObjectPatProp(ObjectPatPropField),
140322        OptCall(OptCallField),
140323        OptChainBase(OptChainBaseField),
140324        OptChainExpr(OptChainExprField),
140325        Param(ParamField),
140326        ParamOrTsParamProp(ParamOrTsParamPropField),
140327        ParenExpr(ParenExprField),
140328        Pat(PatField),
140329        PrivateMethod(PrivateMethodField),
140330        PrivateName(PrivateNameField),
140331        PrivateProp(PrivatePropField),
140332        Program(ProgramField),
140333        Prop(PropField),
140334        PropName(PropNameField),
140335        PropOrSpread(PropOrSpreadField),
140336        Regex(RegexField),
140337        RestPat(RestPatField),
140338        ReturnStmt(ReturnStmtField),
140339        Script(ScriptField),
140340        SeqExpr(SeqExprField),
140341        SetterProp(SetterPropField),
140342        SimpleAssignTarget(SimpleAssignTargetField),
140343        SpreadElement(SpreadElementField),
140344        StaticBlock(StaticBlockField),
140345        Stmt(StmtField),
140346        Str(StrField),
140347        Super(SuperField),
140348        SuperProp(SuperPropField),
140349        SuperPropExpr(SuperPropExprField),
140350        SwitchCase(SwitchCaseField),
140351        SwitchStmt(SwitchStmtField),
140352        TaggedTpl(TaggedTplField),
140353        ThisExpr(ThisExprField),
140354        ThrowStmt(ThrowStmtField),
140355        Tpl(TplField),
140356        TplElement(TplElementField),
140357        TruePlusMinus(TruePlusMinusField),
140358        TryStmt(TryStmtField),
140359        TsArrayType(TsArrayTypeField),
140360        TsAsExpr(TsAsExprField),
140361        TsCallSignatureDecl(TsCallSignatureDeclField),
140362        TsConditionalType(TsConditionalTypeField),
140363        TsConstAssertion(TsConstAssertionField),
140364        TsConstructSignatureDecl(TsConstructSignatureDeclField),
140365        TsConstructorType(TsConstructorTypeField),
140366        TsEntityName(TsEntityNameField),
140367        TsEnumDecl(TsEnumDeclField),
140368        TsEnumMember(TsEnumMemberField),
140369        TsEnumMemberId(TsEnumMemberIdField),
140370        TsExportAssignment(TsExportAssignmentField),
140371        TsExprWithTypeArgs(TsExprWithTypeArgsField),
140372        TsExternalModuleRef(TsExternalModuleRefField),
140373        TsFnOrConstructorType(TsFnOrConstructorTypeField),
140374        TsFnParam(TsFnParamField),
140375        TsFnType(TsFnTypeField),
140376        TsGetterSignature(TsGetterSignatureField),
140377        TsImportEqualsDecl(TsImportEqualsDeclField),
140378        TsImportType(TsImportTypeField),
140379        TsIndexSignature(TsIndexSignatureField),
140380        TsIndexedAccessType(TsIndexedAccessTypeField),
140381        TsInferType(TsInferTypeField),
140382        TsInstantiation(TsInstantiationField),
140383        TsInterfaceBody(TsInterfaceBodyField),
140384        TsInterfaceDecl(TsInterfaceDeclField),
140385        TsIntersectionType(TsIntersectionTypeField),
140386        TsKeywordType(TsKeywordTypeField),
140387        TsKeywordTypeKind(TsKeywordTypeKindField),
140388        TsLit(TsLitField),
140389        TsLitType(TsLitTypeField),
140390        TsMappedType(TsMappedTypeField),
140391        TsMethodSignature(TsMethodSignatureField),
140392        TsModuleBlock(TsModuleBlockField),
140393        TsModuleDecl(TsModuleDeclField),
140394        TsModuleName(TsModuleNameField),
140395        TsModuleRef(TsModuleRefField),
140396        TsNamespaceBody(TsNamespaceBodyField),
140397        TsNamespaceDecl(TsNamespaceDeclField),
140398        TsNamespaceExportDecl(TsNamespaceExportDeclField),
140399        TsNonNullExpr(TsNonNullExprField),
140400        TsOptionalType(TsOptionalTypeField),
140401        TsParamProp(TsParamPropField),
140402        TsParamPropParam(TsParamPropParamField),
140403        TsParenthesizedType(TsParenthesizedTypeField),
140404        TsPropertySignature(TsPropertySignatureField),
140405        TsQualifiedName(TsQualifiedNameField),
140406        TsRestType(TsRestTypeField),
140407        TsSatisfiesExpr(TsSatisfiesExprField),
140408        TsSetterSignature(TsSetterSignatureField),
140409        TsThisType(TsThisTypeField),
140410        TsThisTypeOrIdent(TsThisTypeOrIdentField),
140411        TsTplLitType(TsTplLitTypeField),
140412        TsTupleElement(TsTupleElementField),
140413        TsTupleType(TsTupleTypeField),
140414        TsType(TsTypeField),
140415        TsTypeAliasDecl(TsTypeAliasDeclField),
140416        TsTypeAnn(TsTypeAnnField),
140417        TsTypeAssertion(TsTypeAssertionField),
140418        TsTypeElement(TsTypeElementField),
140419        TsTypeLit(TsTypeLitField),
140420        TsTypeOperator(TsTypeOperatorField),
140421        TsTypeOperatorOp(TsTypeOperatorOpField),
140422        TsTypeParam(TsTypeParamField),
140423        TsTypeParamDecl(TsTypeParamDeclField),
140424        TsTypeParamInstantiation(TsTypeParamInstantiationField),
140425        TsTypePredicate(TsTypePredicateField),
140426        TsTypeQuery(TsTypeQueryField),
140427        TsTypeQueryExpr(TsTypeQueryExprField),
140428        TsTypeRef(TsTypeRefField),
140429        TsUnionOrIntersectionType(TsUnionOrIntersectionTypeField),
140430        TsUnionType(TsUnionTypeField),
140431        UnaryExpr(UnaryExprField),
140432        UnaryOp(UnaryOpField),
140433        UpdateExpr(UpdateExprField),
140434        UpdateOp(UpdateOpField),
140435        UsingDecl(UsingDeclField),
140436        VarDecl(VarDeclField),
140437        VarDeclKind(VarDeclKindField),
140438        VarDeclOrExpr(VarDeclOrExprField),
140439        VarDeclarator(VarDeclaratorField),
140440        WhileStmt(WhileStmtField),
140441        WithStmt(WithStmtField),
140442        YieldExpr(YieldExprField),
140443    }
140444    impl ::swc_visit::ParentKind for AstParentKind {
140445        #[inline]
140446        fn set_index(&mut self, index: usize) {
140447            match self {
140448                Self::Accessibility(v) => v.set_index(index),
140449                Self::ArrayLit(v) => v.set_index(index),
140450                Self::ArrayPat(v) => v.set_index(index),
140451                Self::ArrowExpr(v) => v.set_index(index),
140452                Self::AssignExpr(v) => v.set_index(index),
140453                Self::AssignOp(v) => v.set_index(index),
140454                Self::AssignPat(v) => v.set_index(index),
140455                Self::AssignPatProp(v) => v.set_index(index),
140456                Self::AssignProp(v) => v.set_index(index),
140457                Self::AssignTarget(v) => v.set_index(index),
140458                Self::AssignTargetPat(v) => v.set_index(index),
140459                Self::AutoAccessor(v) => v.set_index(index),
140460                Self::AwaitExpr(v) => v.set_index(index),
140461                Self::BigInt(v) => v.set_index(index),
140462                Self::BinExpr(v) => v.set_index(index),
140463                Self::BinaryOp(v) => v.set_index(index),
140464                Self::BindingIdent(v) => v.set_index(index),
140465                Self::BlockStmt(v) => v.set_index(index),
140466                Self::BlockStmtOrExpr(v) => v.set_index(index),
140467                Self::Bool(v) => v.set_index(index),
140468                Self::BreakStmt(v) => v.set_index(index),
140469                Self::CallExpr(v) => v.set_index(index),
140470                Self::Callee(v) => v.set_index(index),
140471                Self::CatchClause(v) => v.set_index(index),
140472                Self::Class(v) => v.set_index(index),
140473                Self::ClassDecl(v) => v.set_index(index),
140474                Self::ClassExpr(v) => v.set_index(index),
140475                Self::ClassMember(v) => v.set_index(index),
140476                Self::ClassMethod(v) => v.set_index(index),
140477                Self::ClassProp(v) => v.set_index(index),
140478                Self::ComputedPropName(v) => v.set_index(index),
140479                Self::CondExpr(v) => v.set_index(index),
140480                Self::Constructor(v) => v.set_index(index),
140481                Self::ContinueStmt(v) => v.set_index(index),
140482                Self::DebuggerStmt(v) => v.set_index(index),
140483                Self::Decl(v) => v.set_index(index),
140484                Self::Decorator(v) => v.set_index(index),
140485                Self::DefaultDecl(v) => v.set_index(index),
140486                Self::DoWhileStmt(v) => v.set_index(index),
140487                Self::EmptyStmt(v) => v.set_index(index),
140488                Self::ExportAll(v) => v.set_index(index),
140489                Self::ExportDecl(v) => v.set_index(index),
140490                Self::ExportDefaultDecl(v) => v.set_index(index),
140491                Self::ExportDefaultExpr(v) => v.set_index(index),
140492                Self::ExportDefaultSpecifier(v) => v.set_index(index),
140493                Self::ExportNamedSpecifier(v) => v.set_index(index),
140494                Self::ExportNamespaceSpecifier(v) => v.set_index(index),
140495                Self::ExportSpecifier(v) => v.set_index(index),
140496                Self::Expr(v) => v.set_index(index),
140497                Self::ExprOrSpread(v) => v.set_index(index),
140498                Self::ExprStmt(v) => v.set_index(index),
140499                Self::FnDecl(v) => v.set_index(index),
140500                Self::FnExpr(v) => v.set_index(index),
140501                Self::ForHead(v) => v.set_index(index),
140502                Self::ForInStmt(v) => v.set_index(index),
140503                Self::ForOfStmt(v) => v.set_index(index),
140504                Self::ForStmt(v) => v.set_index(index),
140505                Self::Function(v) => v.set_index(index),
140506                Self::GetterProp(v) => v.set_index(index),
140507                Self::Ident(v) => v.set_index(index),
140508                Self::IdentName(v) => v.set_index(index),
140509                Self::IfStmt(v) => v.set_index(index),
140510                Self::Import(v) => v.set_index(index),
140511                Self::ImportDecl(v) => v.set_index(index),
140512                Self::ImportDefaultSpecifier(v) => v.set_index(index),
140513                Self::ImportNamedSpecifier(v) => v.set_index(index),
140514                Self::ImportPhase(v) => v.set_index(index),
140515                Self::ImportSpecifier(v) => v.set_index(index),
140516                Self::ImportStarAsSpecifier(v) => v.set_index(index),
140517                Self::ImportWith(v) => v.set_index(index),
140518                Self::ImportWithItem(v) => v.set_index(index),
140519                Self::Invalid(v) => v.set_index(index),
140520                Self::JSXAttr(v) => v.set_index(index),
140521                Self::JSXAttrName(v) => v.set_index(index),
140522                Self::JSXAttrOrSpread(v) => v.set_index(index),
140523                Self::JSXAttrValue(v) => v.set_index(index),
140524                Self::JSXClosingElement(v) => v.set_index(index),
140525                Self::JSXClosingFragment(v) => v.set_index(index),
140526                Self::JSXElement(v) => v.set_index(index),
140527                Self::JSXElementChild(v) => v.set_index(index),
140528                Self::JSXElementName(v) => v.set_index(index),
140529                Self::JSXEmptyExpr(v) => v.set_index(index),
140530                Self::JSXExpr(v) => v.set_index(index),
140531                Self::JSXExprContainer(v) => v.set_index(index),
140532                Self::JSXFragment(v) => v.set_index(index),
140533                Self::JSXMemberExpr(v) => v.set_index(index),
140534                Self::JSXNamespacedName(v) => v.set_index(index),
140535                Self::JSXObject(v) => v.set_index(index),
140536                Self::JSXOpeningElement(v) => v.set_index(index),
140537                Self::JSXOpeningFragment(v) => v.set_index(index),
140538                Self::JSXSpreadChild(v) => v.set_index(index),
140539                Self::JSXText(v) => v.set_index(index),
140540                Self::Key(v) => v.set_index(index),
140541                Self::KeyValuePatProp(v) => v.set_index(index),
140542                Self::KeyValueProp(v) => v.set_index(index),
140543                Self::LabeledStmt(v) => v.set_index(index),
140544                Self::Lit(v) => v.set_index(index),
140545                Self::MemberExpr(v) => v.set_index(index),
140546                Self::MemberProp(v) => v.set_index(index),
140547                Self::MetaPropExpr(v) => v.set_index(index),
140548                Self::MetaPropKind(v) => v.set_index(index),
140549                Self::MethodKind(v) => v.set_index(index),
140550                Self::MethodProp(v) => v.set_index(index),
140551                Self::Module(v) => v.set_index(index),
140552                Self::ModuleDecl(v) => v.set_index(index),
140553                Self::ModuleExportName(v) => v.set_index(index),
140554                Self::ModuleItem(v) => v.set_index(index),
140555                Self::NamedExport(v) => v.set_index(index),
140556                Self::NewExpr(v) => v.set_index(index),
140557                Self::Null(v) => v.set_index(index),
140558                Self::Number(v) => v.set_index(index),
140559                Self::ObjectLit(v) => v.set_index(index),
140560                Self::ObjectPat(v) => v.set_index(index),
140561                Self::ObjectPatProp(v) => v.set_index(index),
140562                Self::OptCall(v) => v.set_index(index),
140563                Self::OptChainBase(v) => v.set_index(index),
140564                Self::OptChainExpr(v) => v.set_index(index),
140565                Self::Param(v) => v.set_index(index),
140566                Self::ParamOrTsParamProp(v) => v.set_index(index),
140567                Self::ParenExpr(v) => v.set_index(index),
140568                Self::Pat(v) => v.set_index(index),
140569                Self::PrivateMethod(v) => v.set_index(index),
140570                Self::PrivateName(v) => v.set_index(index),
140571                Self::PrivateProp(v) => v.set_index(index),
140572                Self::Program(v) => v.set_index(index),
140573                Self::Prop(v) => v.set_index(index),
140574                Self::PropName(v) => v.set_index(index),
140575                Self::PropOrSpread(v) => v.set_index(index),
140576                Self::Regex(v) => v.set_index(index),
140577                Self::RestPat(v) => v.set_index(index),
140578                Self::ReturnStmt(v) => v.set_index(index),
140579                Self::Script(v) => v.set_index(index),
140580                Self::SeqExpr(v) => v.set_index(index),
140581                Self::SetterProp(v) => v.set_index(index),
140582                Self::SimpleAssignTarget(v) => v.set_index(index),
140583                Self::SpreadElement(v) => v.set_index(index),
140584                Self::StaticBlock(v) => v.set_index(index),
140585                Self::Stmt(v) => v.set_index(index),
140586                Self::Str(v) => v.set_index(index),
140587                Self::Super(v) => v.set_index(index),
140588                Self::SuperProp(v) => v.set_index(index),
140589                Self::SuperPropExpr(v) => v.set_index(index),
140590                Self::SwitchCase(v) => v.set_index(index),
140591                Self::SwitchStmt(v) => v.set_index(index),
140592                Self::TaggedTpl(v) => v.set_index(index),
140593                Self::ThisExpr(v) => v.set_index(index),
140594                Self::ThrowStmt(v) => v.set_index(index),
140595                Self::Tpl(v) => v.set_index(index),
140596                Self::TplElement(v) => v.set_index(index),
140597                Self::TruePlusMinus(v) => v.set_index(index),
140598                Self::TryStmt(v) => v.set_index(index),
140599                Self::TsArrayType(v) => v.set_index(index),
140600                Self::TsAsExpr(v) => v.set_index(index),
140601                Self::TsCallSignatureDecl(v) => v.set_index(index),
140602                Self::TsConditionalType(v) => v.set_index(index),
140603                Self::TsConstAssertion(v) => v.set_index(index),
140604                Self::TsConstructSignatureDecl(v) => v.set_index(index),
140605                Self::TsConstructorType(v) => v.set_index(index),
140606                Self::TsEntityName(v) => v.set_index(index),
140607                Self::TsEnumDecl(v) => v.set_index(index),
140608                Self::TsEnumMember(v) => v.set_index(index),
140609                Self::TsEnumMemberId(v) => v.set_index(index),
140610                Self::TsExportAssignment(v) => v.set_index(index),
140611                Self::TsExprWithTypeArgs(v) => v.set_index(index),
140612                Self::TsExternalModuleRef(v) => v.set_index(index),
140613                Self::TsFnOrConstructorType(v) => v.set_index(index),
140614                Self::TsFnParam(v) => v.set_index(index),
140615                Self::TsFnType(v) => v.set_index(index),
140616                Self::TsGetterSignature(v) => v.set_index(index),
140617                Self::TsImportEqualsDecl(v) => v.set_index(index),
140618                Self::TsImportType(v) => v.set_index(index),
140619                Self::TsIndexSignature(v) => v.set_index(index),
140620                Self::TsIndexedAccessType(v) => v.set_index(index),
140621                Self::TsInferType(v) => v.set_index(index),
140622                Self::TsInstantiation(v) => v.set_index(index),
140623                Self::TsInterfaceBody(v) => v.set_index(index),
140624                Self::TsInterfaceDecl(v) => v.set_index(index),
140625                Self::TsIntersectionType(v) => v.set_index(index),
140626                Self::TsKeywordType(v) => v.set_index(index),
140627                Self::TsKeywordTypeKind(v) => v.set_index(index),
140628                Self::TsLit(v) => v.set_index(index),
140629                Self::TsLitType(v) => v.set_index(index),
140630                Self::TsMappedType(v) => v.set_index(index),
140631                Self::TsMethodSignature(v) => v.set_index(index),
140632                Self::TsModuleBlock(v) => v.set_index(index),
140633                Self::TsModuleDecl(v) => v.set_index(index),
140634                Self::TsModuleName(v) => v.set_index(index),
140635                Self::TsModuleRef(v) => v.set_index(index),
140636                Self::TsNamespaceBody(v) => v.set_index(index),
140637                Self::TsNamespaceDecl(v) => v.set_index(index),
140638                Self::TsNamespaceExportDecl(v) => v.set_index(index),
140639                Self::TsNonNullExpr(v) => v.set_index(index),
140640                Self::TsOptionalType(v) => v.set_index(index),
140641                Self::TsParamProp(v) => v.set_index(index),
140642                Self::TsParamPropParam(v) => v.set_index(index),
140643                Self::TsParenthesizedType(v) => v.set_index(index),
140644                Self::TsPropertySignature(v) => v.set_index(index),
140645                Self::TsQualifiedName(v) => v.set_index(index),
140646                Self::TsRestType(v) => v.set_index(index),
140647                Self::TsSatisfiesExpr(v) => v.set_index(index),
140648                Self::TsSetterSignature(v) => v.set_index(index),
140649                Self::TsThisType(v) => v.set_index(index),
140650                Self::TsThisTypeOrIdent(v) => v.set_index(index),
140651                Self::TsTplLitType(v) => v.set_index(index),
140652                Self::TsTupleElement(v) => v.set_index(index),
140653                Self::TsTupleType(v) => v.set_index(index),
140654                Self::TsType(v) => v.set_index(index),
140655                Self::TsTypeAliasDecl(v) => v.set_index(index),
140656                Self::TsTypeAnn(v) => v.set_index(index),
140657                Self::TsTypeAssertion(v) => v.set_index(index),
140658                Self::TsTypeElement(v) => v.set_index(index),
140659                Self::TsTypeLit(v) => v.set_index(index),
140660                Self::TsTypeOperator(v) => v.set_index(index),
140661                Self::TsTypeOperatorOp(v) => v.set_index(index),
140662                Self::TsTypeParam(v) => v.set_index(index),
140663                Self::TsTypeParamDecl(v) => v.set_index(index),
140664                Self::TsTypeParamInstantiation(v) => v.set_index(index),
140665                Self::TsTypePredicate(v) => v.set_index(index),
140666                Self::TsTypeQuery(v) => v.set_index(index),
140667                Self::TsTypeQueryExpr(v) => v.set_index(index),
140668                Self::TsTypeRef(v) => v.set_index(index),
140669                Self::TsUnionOrIntersectionType(v) => v.set_index(index),
140670                Self::TsUnionType(v) => v.set_index(index),
140671                Self::UnaryExpr(v) => v.set_index(index),
140672                Self::UnaryOp(v) => v.set_index(index),
140673                Self::UpdateExpr(v) => v.set_index(index),
140674                Self::UpdateOp(v) => v.set_index(index),
140675                Self::UsingDecl(v) => v.set_index(index),
140676                Self::VarDecl(v) => v.set_index(index),
140677                Self::VarDeclKind(v) => v.set_index(index),
140678                Self::VarDeclOrExpr(v) => v.set_index(index),
140679                Self::VarDeclarator(v) => v.set_index(index),
140680                Self::WhileStmt(v) => v.set_index(index),
140681                Self::WithStmt(v) => v.set_index(index),
140682                Self::YieldExpr(v) => v.set_index(index),
140683            }
140684        }
140685    }
140686    #[derive(Debug, Clone, Copy)]
140687    pub enum AstParentNodeRef<'ast> {
140688        Accessibility(&'ast Accessibility, AccessibilityField),
140689        ArrayLit(&'ast ArrayLit, ArrayLitField),
140690        ArrayPat(&'ast ArrayPat, ArrayPatField),
140691        ArrowExpr(&'ast ArrowExpr, ArrowExprField),
140692        AssignExpr(&'ast AssignExpr, AssignExprField),
140693        AssignOp(&'ast AssignOp, AssignOpField),
140694        AssignPat(&'ast AssignPat, AssignPatField),
140695        AssignPatProp(&'ast AssignPatProp, AssignPatPropField),
140696        AssignProp(&'ast AssignProp, AssignPropField),
140697        AssignTarget(&'ast AssignTarget, AssignTargetField),
140698        AssignTargetPat(&'ast AssignTargetPat, AssignTargetPatField),
140699        AutoAccessor(&'ast AutoAccessor, AutoAccessorField),
140700        AwaitExpr(&'ast AwaitExpr, AwaitExprField),
140701        BigInt(&'ast BigInt, BigIntField),
140702        BinExpr(&'ast BinExpr, BinExprField),
140703        BinaryOp(&'ast BinaryOp, BinaryOpField),
140704        BindingIdent(&'ast BindingIdent, BindingIdentField),
140705        BlockStmt(&'ast BlockStmt, BlockStmtField),
140706        BlockStmtOrExpr(&'ast BlockStmtOrExpr, BlockStmtOrExprField),
140707        Bool(&'ast Bool, BoolField),
140708        BreakStmt(&'ast BreakStmt, BreakStmtField),
140709        CallExpr(&'ast CallExpr, CallExprField),
140710        Callee(&'ast Callee, CalleeField),
140711        CatchClause(&'ast CatchClause, CatchClauseField),
140712        Class(&'ast Class, ClassField),
140713        ClassDecl(&'ast ClassDecl, ClassDeclField),
140714        ClassExpr(&'ast ClassExpr, ClassExprField),
140715        ClassMember(&'ast ClassMember, ClassMemberField),
140716        ClassMethod(&'ast ClassMethod, ClassMethodField),
140717        ClassProp(&'ast ClassProp, ClassPropField),
140718        ComputedPropName(&'ast ComputedPropName, ComputedPropNameField),
140719        CondExpr(&'ast CondExpr, CondExprField),
140720        Constructor(&'ast Constructor, ConstructorField),
140721        ContinueStmt(&'ast ContinueStmt, ContinueStmtField),
140722        DebuggerStmt(&'ast DebuggerStmt, DebuggerStmtField),
140723        Decl(&'ast Decl, DeclField),
140724        Decorator(&'ast Decorator, DecoratorField),
140725        DefaultDecl(&'ast DefaultDecl, DefaultDeclField),
140726        DoWhileStmt(&'ast DoWhileStmt, DoWhileStmtField),
140727        EmptyStmt(&'ast EmptyStmt, EmptyStmtField),
140728        ExportAll(&'ast ExportAll, ExportAllField),
140729        ExportDecl(&'ast ExportDecl, ExportDeclField),
140730        ExportDefaultDecl(&'ast ExportDefaultDecl, ExportDefaultDeclField),
140731        ExportDefaultExpr(&'ast ExportDefaultExpr, ExportDefaultExprField),
140732        ExportDefaultSpecifier(&'ast ExportDefaultSpecifier, ExportDefaultSpecifierField),
140733        ExportNamedSpecifier(&'ast ExportNamedSpecifier, ExportNamedSpecifierField),
140734        ExportNamespaceSpecifier(
140735            &'ast ExportNamespaceSpecifier,
140736            ExportNamespaceSpecifierField,
140737        ),
140738        ExportSpecifier(&'ast ExportSpecifier, ExportSpecifierField),
140739        Expr(&'ast Expr, ExprField),
140740        ExprOrSpread(&'ast ExprOrSpread, ExprOrSpreadField),
140741        ExprStmt(&'ast ExprStmt, ExprStmtField),
140742        FnDecl(&'ast FnDecl, FnDeclField),
140743        FnExpr(&'ast FnExpr, FnExprField),
140744        ForHead(&'ast ForHead, ForHeadField),
140745        ForInStmt(&'ast ForInStmt, ForInStmtField),
140746        ForOfStmt(&'ast ForOfStmt, ForOfStmtField),
140747        ForStmt(&'ast ForStmt, ForStmtField),
140748        Function(&'ast Function, FunctionField),
140749        GetterProp(&'ast GetterProp, GetterPropField),
140750        Ident(&'ast Ident, IdentField),
140751        IdentName(&'ast IdentName, IdentNameField),
140752        IfStmt(&'ast IfStmt, IfStmtField),
140753        Import(&'ast Import, ImportField),
140754        ImportDecl(&'ast ImportDecl, ImportDeclField),
140755        ImportDefaultSpecifier(&'ast ImportDefaultSpecifier, ImportDefaultSpecifierField),
140756        ImportNamedSpecifier(&'ast ImportNamedSpecifier, ImportNamedSpecifierField),
140757        ImportPhase(&'ast ImportPhase, ImportPhaseField),
140758        ImportSpecifier(&'ast ImportSpecifier, ImportSpecifierField),
140759        ImportStarAsSpecifier(&'ast ImportStarAsSpecifier, ImportStarAsSpecifierField),
140760        ImportWith(&'ast ImportWith, ImportWithField),
140761        ImportWithItem(&'ast ImportWithItem, ImportWithItemField),
140762        Invalid(&'ast Invalid, InvalidField),
140763        JSXAttr(&'ast JSXAttr, JSXAttrField),
140764        JSXAttrName(&'ast JSXAttrName, JSXAttrNameField),
140765        JSXAttrOrSpread(&'ast JSXAttrOrSpread, JSXAttrOrSpreadField),
140766        JSXAttrValue(&'ast JSXAttrValue, JSXAttrValueField),
140767        JSXClosingElement(&'ast JSXClosingElement, JSXClosingElementField),
140768        JSXClosingFragment(&'ast JSXClosingFragment, JSXClosingFragmentField),
140769        JSXElement(&'ast JSXElement, JSXElementField),
140770        JSXElementChild(&'ast JSXElementChild, JSXElementChildField),
140771        JSXElementName(&'ast JSXElementName, JSXElementNameField),
140772        JSXEmptyExpr(&'ast JSXEmptyExpr, JSXEmptyExprField),
140773        JSXExpr(&'ast JSXExpr, JSXExprField),
140774        JSXExprContainer(&'ast JSXExprContainer, JSXExprContainerField),
140775        JSXFragment(&'ast JSXFragment, JSXFragmentField),
140776        JSXMemberExpr(&'ast JSXMemberExpr, JSXMemberExprField),
140777        JSXNamespacedName(&'ast JSXNamespacedName, JSXNamespacedNameField),
140778        JSXObject(&'ast JSXObject, JSXObjectField),
140779        JSXOpeningElement(&'ast JSXOpeningElement, JSXOpeningElementField),
140780        JSXOpeningFragment(&'ast JSXOpeningFragment, JSXOpeningFragmentField),
140781        JSXSpreadChild(&'ast JSXSpreadChild, JSXSpreadChildField),
140782        JSXText(&'ast JSXText, JSXTextField),
140783        Key(&'ast Key, KeyField),
140784        KeyValuePatProp(&'ast KeyValuePatProp, KeyValuePatPropField),
140785        KeyValueProp(&'ast KeyValueProp, KeyValuePropField),
140786        LabeledStmt(&'ast LabeledStmt, LabeledStmtField),
140787        Lit(&'ast Lit, LitField),
140788        MemberExpr(&'ast MemberExpr, MemberExprField),
140789        MemberProp(&'ast MemberProp, MemberPropField),
140790        MetaPropExpr(&'ast MetaPropExpr, MetaPropExprField),
140791        MetaPropKind(&'ast MetaPropKind, MetaPropKindField),
140792        MethodKind(&'ast MethodKind, MethodKindField),
140793        MethodProp(&'ast MethodProp, MethodPropField),
140794        Module(&'ast Module, ModuleField),
140795        ModuleDecl(&'ast ModuleDecl, ModuleDeclField),
140796        ModuleExportName(&'ast ModuleExportName, ModuleExportNameField),
140797        ModuleItem(&'ast ModuleItem, ModuleItemField),
140798        NamedExport(&'ast NamedExport, NamedExportField),
140799        NewExpr(&'ast NewExpr, NewExprField),
140800        Null(&'ast Null, NullField),
140801        Number(&'ast Number, NumberField),
140802        ObjectLit(&'ast ObjectLit, ObjectLitField),
140803        ObjectPat(&'ast ObjectPat, ObjectPatField),
140804        ObjectPatProp(&'ast ObjectPatProp, ObjectPatPropField),
140805        OptCall(&'ast OptCall, OptCallField),
140806        OptChainBase(&'ast OptChainBase, OptChainBaseField),
140807        OptChainExpr(&'ast OptChainExpr, OptChainExprField),
140808        Param(&'ast Param, ParamField),
140809        ParamOrTsParamProp(&'ast ParamOrTsParamProp, ParamOrTsParamPropField),
140810        ParenExpr(&'ast ParenExpr, ParenExprField),
140811        Pat(&'ast Pat, PatField),
140812        PrivateMethod(&'ast PrivateMethod, PrivateMethodField),
140813        PrivateName(&'ast PrivateName, PrivateNameField),
140814        PrivateProp(&'ast PrivateProp, PrivatePropField),
140815        Program(&'ast Program, ProgramField),
140816        Prop(&'ast Prop, PropField),
140817        PropName(&'ast PropName, PropNameField),
140818        PropOrSpread(&'ast PropOrSpread, PropOrSpreadField),
140819        Regex(&'ast Regex, RegexField),
140820        RestPat(&'ast RestPat, RestPatField),
140821        ReturnStmt(&'ast ReturnStmt, ReturnStmtField),
140822        Script(&'ast Script, ScriptField),
140823        SeqExpr(&'ast SeqExpr, SeqExprField),
140824        SetterProp(&'ast SetterProp, SetterPropField),
140825        SimpleAssignTarget(&'ast SimpleAssignTarget, SimpleAssignTargetField),
140826        SpreadElement(&'ast SpreadElement, SpreadElementField),
140827        StaticBlock(&'ast StaticBlock, StaticBlockField),
140828        Stmt(&'ast Stmt, StmtField),
140829        Str(&'ast Str, StrField),
140830        Super(&'ast Super, SuperField),
140831        SuperProp(&'ast SuperProp, SuperPropField),
140832        SuperPropExpr(&'ast SuperPropExpr, SuperPropExprField),
140833        SwitchCase(&'ast SwitchCase, SwitchCaseField),
140834        SwitchStmt(&'ast SwitchStmt, SwitchStmtField),
140835        TaggedTpl(&'ast TaggedTpl, TaggedTplField),
140836        ThisExpr(&'ast ThisExpr, ThisExprField),
140837        ThrowStmt(&'ast ThrowStmt, ThrowStmtField),
140838        Tpl(&'ast Tpl, TplField),
140839        TplElement(&'ast TplElement, TplElementField),
140840        TruePlusMinus(&'ast TruePlusMinus, TruePlusMinusField),
140841        TryStmt(&'ast TryStmt, TryStmtField),
140842        TsArrayType(&'ast TsArrayType, TsArrayTypeField),
140843        TsAsExpr(&'ast TsAsExpr, TsAsExprField),
140844        TsCallSignatureDecl(&'ast TsCallSignatureDecl, TsCallSignatureDeclField),
140845        TsConditionalType(&'ast TsConditionalType, TsConditionalTypeField),
140846        TsConstAssertion(&'ast TsConstAssertion, TsConstAssertionField),
140847        TsConstructSignatureDecl(
140848            &'ast TsConstructSignatureDecl,
140849            TsConstructSignatureDeclField,
140850        ),
140851        TsConstructorType(&'ast TsConstructorType, TsConstructorTypeField),
140852        TsEntityName(&'ast TsEntityName, TsEntityNameField),
140853        TsEnumDecl(&'ast TsEnumDecl, TsEnumDeclField),
140854        TsEnumMember(&'ast TsEnumMember, TsEnumMemberField),
140855        TsEnumMemberId(&'ast TsEnumMemberId, TsEnumMemberIdField),
140856        TsExportAssignment(&'ast TsExportAssignment, TsExportAssignmentField),
140857        TsExprWithTypeArgs(&'ast TsExprWithTypeArgs, TsExprWithTypeArgsField),
140858        TsExternalModuleRef(&'ast TsExternalModuleRef, TsExternalModuleRefField),
140859        TsFnOrConstructorType(&'ast TsFnOrConstructorType, TsFnOrConstructorTypeField),
140860        TsFnParam(&'ast TsFnParam, TsFnParamField),
140861        TsFnType(&'ast TsFnType, TsFnTypeField),
140862        TsGetterSignature(&'ast TsGetterSignature, TsGetterSignatureField),
140863        TsImportEqualsDecl(&'ast TsImportEqualsDecl, TsImportEqualsDeclField),
140864        TsImportType(&'ast TsImportType, TsImportTypeField),
140865        TsIndexSignature(&'ast TsIndexSignature, TsIndexSignatureField),
140866        TsIndexedAccessType(&'ast TsIndexedAccessType, TsIndexedAccessTypeField),
140867        TsInferType(&'ast TsInferType, TsInferTypeField),
140868        TsInstantiation(&'ast TsInstantiation, TsInstantiationField),
140869        TsInterfaceBody(&'ast TsInterfaceBody, TsInterfaceBodyField),
140870        TsInterfaceDecl(&'ast TsInterfaceDecl, TsInterfaceDeclField),
140871        TsIntersectionType(&'ast TsIntersectionType, TsIntersectionTypeField),
140872        TsKeywordType(&'ast TsKeywordType, TsKeywordTypeField),
140873        TsKeywordTypeKind(&'ast TsKeywordTypeKind, TsKeywordTypeKindField),
140874        TsLit(&'ast TsLit, TsLitField),
140875        TsLitType(&'ast TsLitType, TsLitTypeField),
140876        TsMappedType(&'ast TsMappedType, TsMappedTypeField),
140877        TsMethodSignature(&'ast TsMethodSignature, TsMethodSignatureField),
140878        TsModuleBlock(&'ast TsModuleBlock, TsModuleBlockField),
140879        TsModuleDecl(&'ast TsModuleDecl, TsModuleDeclField),
140880        TsModuleName(&'ast TsModuleName, TsModuleNameField),
140881        TsModuleRef(&'ast TsModuleRef, TsModuleRefField),
140882        TsNamespaceBody(&'ast TsNamespaceBody, TsNamespaceBodyField),
140883        TsNamespaceDecl(&'ast TsNamespaceDecl, TsNamespaceDeclField),
140884        TsNamespaceExportDecl(&'ast TsNamespaceExportDecl, TsNamespaceExportDeclField),
140885        TsNonNullExpr(&'ast TsNonNullExpr, TsNonNullExprField),
140886        TsOptionalType(&'ast TsOptionalType, TsOptionalTypeField),
140887        TsParamProp(&'ast TsParamProp, TsParamPropField),
140888        TsParamPropParam(&'ast TsParamPropParam, TsParamPropParamField),
140889        TsParenthesizedType(&'ast TsParenthesizedType, TsParenthesizedTypeField),
140890        TsPropertySignature(&'ast TsPropertySignature, TsPropertySignatureField),
140891        TsQualifiedName(&'ast TsQualifiedName, TsQualifiedNameField),
140892        TsRestType(&'ast TsRestType, TsRestTypeField),
140893        TsSatisfiesExpr(&'ast TsSatisfiesExpr, TsSatisfiesExprField),
140894        TsSetterSignature(&'ast TsSetterSignature, TsSetterSignatureField),
140895        TsThisType(&'ast TsThisType, TsThisTypeField),
140896        TsThisTypeOrIdent(&'ast TsThisTypeOrIdent, TsThisTypeOrIdentField),
140897        TsTplLitType(&'ast TsTplLitType, TsTplLitTypeField),
140898        TsTupleElement(&'ast TsTupleElement, TsTupleElementField),
140899        TsTupleType(&'ast TsTupleType, TsTupleTypeField),
140900        TsType(&'ast TsType, TsTypeField),
140901        TsTypeAliasDecl(&'ast TsTypeAliasDecl, TsTypeAliasDeclField),
140902        TsTypeAnn(&'ast TsTypeAnn, TsTypeAnnField),
140903        TsTypeAssertion(&'ast TsTypeAssertion, TsTypeAssertionField),
140904        TsTypeElement(&'ast TsTypeElement, TsTypeElementField),
140905        TsTypeLit(&'ast TsTypeLit, TsTypeLitField),
140906        TsTypeOperator(&'ast TsTypeOperator, TsTypeOperatorField),
140907        TsTypeOperatorOp(&'ast TsTypeOperatorOp, TsTypeOperatorOpField),
140908        TsTypeParam(&'ast TsTypeParam, TsTypeParamField),
140909        TsTypeParamDecl(&'ast TsTypeParamDecl, TsTypeParamDeclField),
140910        TsTypeParamInstantiation(
140911            &'ast TsTypeParamInstantiation,
140912            TsTypeParamInstantiationField,
140913        ),
140914        TsTypePredicate(&'ast TsTypePredicate, TsTypePredicateField),
140915        TsTypeQuery(&'ast TsTypeQuery, TsTypeQueryField),
140916        TsTypeQueryExpr(&'ast TsTypeQueryExpr, TsTypeQueryExprField),
140917        TsTypeRef(&'ast TsTypeRef, TsTypeRefField),
140918        TsUnionOrIntersectionType(
140919            &'ast TsUnionOrIntersectionType,
140920            TsUnionOrIntersectionTypeField,
140921        ),
140922        TsUnionType(&'ast TsUnionType, TsUnionTypeField),
140923        UnaryExpr(&'ast UnaryExpr, UnaryExprField),
140924        UnaryOp(&'ast UnaryOp, UnaryOpField),
140925        UpdateExpr(&'ast UpdateExpr, UpdateExprField),
140926        UpdateOp(&'ast UpdateOp, UpdateOpField),
140927        UsingDecl(&'ast UsingDecl, UsingDeclField),
140928        VarDecl(&'ast VarDecl, VarDeclField),
140929        VarDeclKind(&'ast VarDeclKind, VarDeclKindField),
140930        VarDeclOrExpr(&'ast VarDeclOrExpr, VarDeclOrExprField),
140931        VarDeclarator(&'ast VarDeclarator, VarDeclaratorField),
140932        WhileStmt(&'ast WhileStmt, WhileStmtField),
140933        WithStmt(&'ast WithStmt, WithStmtField),
140934        YieldExpr(&'ast YieldExpr, YieldExprField),
140935    }
140936    impl<'ast> ::swc_visit::NodeRef for AstParentNodeRef<'ast> {
140937        type ParentKind = AstParentKind;
140938
140939        #[inline(always)]
140940        fn kind(&self) -> AstParentKind {
140941            self.kind()
140942        }
140943
140944        fn set_index(&mut self, index: usize) {
140945            match self {
140946                Self::Accessibility(_, __field_kind) => __field_kind.set_index(index),
140947                Self::ArrayLit(_, __field_kind) => __field_kind.set_index(index),
140948                Self::ArrayPat(_, __field_kind) => __field_kind.set_index(index),
140949                Self::ArrowExpr(_, __field_kind) => __field_kind.set_index(index),
140950                Self::AssignExpr(_, __field_kind) => __field_kind.set_index(index),
140951                Self::AssignOp(_, __field_kind) => __field_kind.set_index(index),
140952                Self::AssignPat(_, __field_kind) => __field_kind.set_index(index),
140953                Self::AssignPatProp(_, __field_kind) => __field_kind.set_index(index),
140954                Self::AssignProp(_, __field_kind) => __field_kind.set_index(index),
140955                Self::AssignTarget(_, __field_kind) => __field_kind.set_index(index),
140956                Self::AssignTargetPat(_, __field_kind) => __field_kind.set_index(index),
140957                Self::AutoAccessor(_, __field_kind) => __field_kind.set_index(index),
140958                Self::AwaitExpr(_, __field_kind) => __field_kind.set_index(index),
140959                Self::BigInt(_, __field_kind) => __field_kind.set_index(index),
140960                Self::BinExpr(_, __field_kind) => __field_kind.set_index(index),
140961                Self::BinaryOp(_, __field_kind) => __field_kind.set_index(index),
140962                Self::BindingIdent(_, __field_kind) => __field_kind.set_index(index),
140963                Self::BlockStmt(_, __field_kind) => __field_kind.set_index(index),
140964                Self::BlockStmtOrExpr(_, __field_kind) => __field_kind.set_index(index),
140965                Self::Bool(_, __field_kind) => __field_kind.set_index(index),
140966                Self::BreakStmt(_, __field_kind) => __field_kind.set_index(index),
140967                Self::CallExpr(_, __field_kind) => __field_kind.set_index(index),
140968                Self::Callee(_, __field_kind) => __field_kind.set_index(index),
140969                Self::CatchClause(_, __field_kind) => __field_kind.set_index(index),
140970                Self::Class(_, __field_kind) => __field_kind.set_index(index),
140971                Self::ClassDecl(_, __field_kind) => __field_kind.set_index(index),
140972                Self::ClassExpr(_, __field_kind) => __field_kind.set_index(index),
140973                Self::ClassMember(_, __field_kind) => __field_kind.set_index(index),
140974                Self::ClassMethod(_, __field_kind) => __field_kind.set_index(index),
140975                Self::ClassProp(_, __field_kind) => __field_kind.set_index(index),
140976                Self::ComputedPropName(_, __field_kind) => __field_kind.set_index(index),
140977                Self::CondExpr(_, __field_kind) => __field_kind.set_index(index),
140978                Self::Constructor(_, __field_kind) => __field_kind.set_index(index),
140979                Self::ContinueStmt(_, __field_kind) => __field_kind.set_index(index),
140980                Self::DebuggerStmt(_, __field_kind) => __field_kind.set_index(index),
140981                Self::Decl(_, __field_kind) => __field_kind.set_index(index),
140982                Self::Decorator(_, __field_kind) => __field_kind.set_index(index),
140983                Self::DefaultDecl(_, __field_kind) => __field_kind.set_index(index),
140984                Self::DoWhileStmt(_, __field_kind) => __field_kind.set_index(index),
140985                Self::EmptyStmt(_, __field_kind) => __field_kind.set_index(index),
140986                Self::ExportAll(_, __field_kind) => __field_kind.set_index(index),
140987                Self::ExportDecl(_, __field_kind) => __field_kind.set_index(index),
140988                Self::ExportDefaultDecl(_, __field_kind) => __field_kind.set_index(index),
140989                Self::ExportDefaultExpr(_, __field_kind) => __field_kind.set_index(index),
140990                Self::ExportDefaultSpecifier(_, __field_kind) => __field_kind.set_index(index),
140991                Self::ExportNamedSpecifier(_, __field_kind) => __field_kind.set_index(index),
140992                Self::ExportNamespaceSpecifier(_, __field_kind) => __field_kind.set_index(index),
140993                Self::ExportSpecifier(_, __field_kind) => __field_kind.set_index(index),
140994                Self::Expr(_, __field_kind) => __field_kind.set_index(index),
140995                Self::ExprOrSpread(_, __field_kind) => __field_kind.set_index(index),
140996                Self::ExprStmt(_, __field_kind) => __field_kind.set_index(index),
140997                Self::FnDecl(_, __field_kind) => __field_kind.set_index(index),
140998                Self::FnExpr(_, __field_kind) => __field_kind.set_index(index),
140999                Self::ForHead(_, __field_kind) => __field_kind.set_index(index),
141000                Self::ForInStmt(_, __field_kind) => __field_kind.set_index(index),
141001                Self::ForOfStmt(_, __field_kind) => __field_kind.set_index(index),
141002                Self::ForStmt(_, __field_kind) => __field_kind.set_index(index),
141003                Self::Function(_, __field_kind) => __field_kind.set_index(index),
141004                Self::GetterProp(_, __field_kind) => __field_kind.set_index(index),
141005                Self::Ident(_, __field_kind) => __field_kind.set_index(index),
141006                Self::IdentName(_, __field_kind) => __field_kind.set_index(index),
141007                Self::IfStmt(_, __field_kind) => __field_kind.set_index(index),
141008                Self::Import(_, __field_kind) => __field_kind.set_index(index),
141009                Self::ImportDecl(_, __field_kind) => __field_kind.set_index(index),
141010                Self::ImportDefaultSpecifier(_, __field_kind) => __field_kind.set_index(index),
141011                Self::ImportNamedSpecifier(_, __field_kind) => __field_kind.set_index(index),
141012                Self::ImportPhase(_, __field_kind) => __field_kind.set_index(index),
141013                Self::ImportSpecifier(_, __field_kind) => __field_kind.set_index(index),
141014                Self::ImportStarAsSpecifier(_, __field_kind) => __field_kind.set_index(index),
141015                Self::ImportWith(_, __field_kind) => __field_kind.set_index(index),
141016                Self::ImportWithItem(_, __field_kind) => __field_kind.set_index(index),
141017                Self::Invalid(_, __field_kind) => __field_kind.set_index(index),
141018                Self::JSXAttr(_, __field_kind) => __field_kind.set_index(index),
141019                Self::JSXAttrName(_, __field_kind) => __field_kind.set_index(index),
141020                Self::JSXAttrOrSpread(_, __field_kind) => __field_kind.set_index(index),
141021                Self::JSXAttrValue(_, __field_kind) => __field_kind.set_index(index),
141022                Self::JSXClosingElement(_, __field_kind) => __field_kind.set_index(index),
141023                Self::JSXClosingFragment(_, __field_kind) => __field_kind.set_index(index),
141024                Self::JSXElement(_, __field_kind) => __field_kind.set_index(index),
141025                Self::JSXElementChild(_, __field_kind) => __field_kind.set_index(index),
141026                Self::JSXElementName(_, __field_kind) => __field_kind.set_index(index),
141027                Self::JSXEmptyExpr(_, __field_kind) => __field_kind.set_index(index),
141028                Self::JSXExpr(_, __field_kind) => __field_kind.set_index(index),
141029                Self::JSXExprContainer(_, __field_kind) => __field_kind.set_index(index),
141030                Self::JSXFragment(_, __field_kind) => __field_kind.set_index(index),
141031                Self::JSXMemberExpr(_, __field_kind) => __field_kind.set_index(index),
141032                Self::JSXNamespacedName(_, __field_kind) => __field_kind.set_index(index),
141033                Self::JSXObject(_, __field_kind) => __field_kind.set_index(index),
141034                Self::JSXOpeningElement(_, __field_kind) => __field_kind.set_index(index),
141035                Self::JSXOpeningFragment(_, __field_kind) => __field_kind.set_index(index),
141036                Self::JSXSpreadChild(_, __field_kind) => __field_kind.set_index(index),
141037                Self::JSXText(_, __field_kind) => __field_kind.set_index(index),
141038                Self::Key(_, __field_kind) => __field_kind.set_index(index),
141039                Self::KeyValuePatProp(_, __field_kind) => __field_kind.set_index(index),
141040                Self::KeyValueProp(_, __field_kind) => __field_kind.set_index(index),
141041                Self::LabeledStmt(_, __field_kind) => __field_kind.set_index(index),
141042                Self::Lit(_, __field_kind) => __field_kind.set_index(index),
141043                Self::MemberExpr(_, __field_kind) => __field_kind.set_index(index),
141044                Self::MemberProp(_, __field_kind) => __field_kind.set_index(index),
141045                Self::MetaPropExpr(_, __field_kind) => __field_kind.set_index(index),
141046                Self::MetaPropKind(_, __field_kind) => __field_kind.set_index(index),
141047                Self::MethodKind(_, __field_kind) => __field_kind.set_index(index),
141048                Self::MethodProp(_, __field_kind) => __field_kind.set_index(index),
141049                Self::Module(_, __field_kind) => __field_kind.set_index(index),
141050                Self::ModuleDecl(_, __field_kind) => __field_kind.set_index(index),
141051                Self::ModuleExportName(_, __field_kind) => __field_kind.set_index(index),
141052                Self::ModuleItem(_, __field_kind) => __field_kind.set_index(index),
141053                Self::NamedExport(_, __field_kind) => __field_kind.set_index(index),
141054                Self::NewExpr(_, __field_kind) => __field_kind.set_index(index),
141055                Self::Null(_, __field_kind) => __field_kind.set_index(index),
141056                Self::Number(_, __field_kind) => __field_kind.set_index(index),
141057                Self::ObjectLit(_, __field_kind) => __field_kind.set_index(index),
141058                Self::ObjectPat(_, __field_kind) => __field_kind.set_index(index),
141059                Self::ObjectPatProp(_, __field_kind) => __field_kind.set_index(index),
141060                Self::OptCall(_, __field_kind) => __field_kind.set_index(index),
141061                Self::OptChainBase(_, __field_kind) => __field_kind.set_index(index),
141062                Self::OptChainExpr(_, __field_kind) => __field_kind.set_index(index),
141063                Self::Param(_, __field_kind) => __field_kind.set_index(index),
141064                Self::ParamOrTsParamProp(_, __field_kind) => __field_kind.set_index(index),
141065                Self::ParenExpr(_, __field_kind) => __field_kind.set_index(index),
141066                Self::Pat(_, __field_kind) => __field_kind.set_index(index),
141067                Self::PrivateMethod(_, __field_kind) => __field_kind.set_index(index),
141068                Self::PrivateName(_, __field_kind) => __field_kind.set_index(index),
141069                Self::PrivateProp(_, __field_kind) => __field_kind.set_index(index),
141070                Self::Program(_, __field_kind) => __field_kind.set_index(index),
141071                Self::Prop(_, __field_kind) => __field_kind.set_index(index),
141072                Self::PropName(_, __field_kind) => __field_kind.set_index(index),
141073                Self::PropOrSpread(_, __field_kind) => __field_kind.set_index(index),
141074                Self::Regex(_, __field_kind) => __field_kind.set_index(index),
141075                Self::RestPat(_, __field_kind) => __field_kind.set_index(index),
141076                Self::ReturnStmt(_, __field_kind) => __field_kind.set_index(index),
141077                Self::Script(_, __field_kind) => __field_kind.set_index(index),
141078                Self::SeqExpr(_, __field_kind) => __field_kind.set_index(index),
141079                Self::SetterProp(_, __field_kind) => __field_kind.set_index(index),
141080                Self::SimpleAssignTarget(_, __field_kind) => __field_kind.set_index(index),
141081                Self::SpreadElement(_, __field_kind) => __field_kind.set_index(index),
141082                Self::StaticBlock(_, __field_kind) => __field_kind.set_index(index),
141083                Self::Stmt(_, __field_kind) => __field_kind.set_index(index),
141084                Self::Str(_, __field_kind) => __field_kind.set_index(index),
141085                Self::Super(_, __field_kind) => __field_kind.set_index(index),
141086                Self::SuperProp(_, __field_kind) => __field_kind.set_index(index),
141087                Self::SuperPropExpr(_, __field_kind) => __field_kind.set_index(index),
141088                Self::SwitchCase(_, __field_kind) => __field_kind.set_index(index),
141089                Self::SwitchStmt(_, __field_kind) => __field_kind.set_index(index),
141090                Self::TaggedTpl(_, __field_kind) => __field_kind.set_index(index),
141091                Self::ThisExpr(_, __field_kind) => __field_kind.set_index(index),
141092                Self::ThrowStmt(_, __field_kind) => __field_kind.set_index(index),
141093                Self::Tpl(_, __field_kind) => __field_kind.set_index(index),
141094                Self::TplElement(_, __field_kind) => __field_kind.set_index(index),
141095                Self::TruePlusMinus(_, __field_kind) => __field_kind.set_index(index),
141096                Self::TryStmt(_, __field_kind) => __field_kind.set_index(index),
141097                Self::TsArrayType(_, __field_kind) => __field_kind.set_index(index),
141098                Self::TsAsExpr(_, __field_kind) => __field_kind.set_index(index),
141099                Self::TsCallSignatureDecl(_, __field_kind) => __field_kind.set_index(index),
141100                Self::TsConditionalType(_, __field_kind) => __field_kind.set_index(index),
141101                Self::TsConstAssertion(_, __field_kind) => __field_kind.set_index(index),
141102                Self::TsConstructSignatureDecl(_, __field_kind) => __field_kind.set_index(index),
141103                Self::TsConstructorType(_, __field_kind) => __field_kind.set_index(index),
141104                Self::TsEntityName(_, __field_kind) => __field_kind.set_index(index),
141105                Self::TsEnumDecl(_, __field_kind) => __field_kind.set_index(index),
141106                Self::TsEnumMember(_, __field_kind) => __field_kind.set_index(index),
141107                Self::TsEnumMemberId(_, __field_kind) => __field_kind.set_index(index),
141108                Self::TsExportAssignment(_, __field_kind) => __field_kind.set_index(index),
141109                Self::TsExprWithTypeArgs(_, __field_kind) => __field_kind.set_index(index),
141110                Self::TsExternalModuleRef(_, __field_kind) => __field_kind.set_index(index),
141111                Self::TsFnOrConstructorType(_, __field_kind) => __field_kind.set_index(index),
141112                Self::TsFnParam(_, __field_kind) => __field_kind.set_index(index),
141113                Self::TsFnType(_, __field_kind) => __field_kind.set_index(index),
141114                Self::TsGetterSignature(_, __field_kind) => __field_kind.set_index(index),
141115                Self::TsImportEqualsDecl(_, __field_kind) => __field_kind.set_index(index),
141116                Self::TsImportType(_, __field_kind) => __field_kind.set_index(index),
141117                Self::TsIndexSignature(_, __field_kind) => __field_kind.set_index(index),
141118                Self::TsIndexedAccessType(_, __field_kind) => __field_kind.set_index(index),
141119                Self::TsInferType(_, __field_kind) => __field_kind.set_index(index),
141120                Self::TsInstantiation(_, __field_kind) => __field_kind.set_index(index),
141121                Self::TsInterfaceBody(_, __field_kind) => __field_kind.set_index(index),
141122                Self::TsInterfaceDecl(_, __field_kind) => __field_kind.set_index(index),
141123                Self::TsIntersectionType(_, __field_kind) => __field_kind.set_index(index),
141124                Self::TsKeywordType(_, __field_kind) => __field_kind.set_index(index),
141125                Self::TsKeywordTypeKind(_, __field_kind) => __field_kind.set_index(index),
141126                Self::TsLit(_, __field_kind) => __field_kind.set_index(index),
141127                Self::TsLitType(_, __field_kind) => __field_kind.set_index(index),
141128                Self::TsMappedType(_, __field_kind) => __field_kind.set_index(index),
141129                Self::TsMethodSignature(_, __field_kind) => __field_kind.set_index(index),
141130                Self::TsModuleBlock(_, __field_kind) => __field_kind.set_index(index),
141131                Self::TsModuleDecl(_, __field_kind) => __field_kind.set_index(index),
141132                Self::TsModuleName(_, __field_kind) => __field_kind.set_index(index),
141133                Self::TsModuleRef(_, __field_kind) => __field_kind.set_index(index),
141134                Self::TsNamespaceBody(_, __field_kind) => __field_kind.set_index(index),
141135                Self::TsNamespaceDecl(_, __field_kind) => __field_kind.set_index(index),
141136                Self::TsNamespaceExportDecl(_, __field_kind) => __field_kind.set_index(index),
141137                Self::TsNonNullExpr(_, __field_kind) => __field_kind.set_index(index),
141138                Self::TsOptionalType(_, __field_kind) => __field_kind.set_index(index),
141139                Self::TsParamProp(_, __field_kind) => __field_kind.set_index(index),
141140                Self::TsParamPropParam(_, __field_kind) => __field_kind.set_index(index),
141141                Self::TsParenthesizedType(_, __field_kind) => __field_kind.set_index(index),
141142                Self::TsPropertySignature(_, __field_kind) => __field_kind.set_index(index),
141143                Self::TsQualifiedName(_, __field_kind) => __field_kind.set_index(index),
141144                Self::TsRestType(_, __field_kind) => __field_kind.set_index(index),
141145                Self::TsSatisfiesExpr(_, __field_kind) => __field_kind.set_index(index),
141146                Self::TsSetterSignature(_, __field_kind) => __field_kind.set_index(index),
141147                Self::TsThisType(_, __field_kind) => __field_kind.set_index(index),
141148                Self::TsThisTypeOrIdent(_, __field_kind) => __field_kind.set_index(index),
141149                Self::TsTplLitType(_, __field_kind) => __field_kind.set_index(index),
141150                Self::TsTupleElement(_, __field_kind) => __field_kind.set_index(index),
141151                Self::TsTupleType(_, __field_kind) => __field_kind.set_index(index),
141152                Self::TsType(_, __field_kind) => __field_kind.set_index(index),
141153                Self::TsTypeAliasDecl(_, __field_kind) => __field_kind.set_index(index),
141154                Self::TsTypeAnn(_, __field_kind) => __field_kind.set_index(index),
141155                Self::TsTypeAssertion(_, __field_kind) => __field_kind.set_index(index),
141156                Self::TsTypeElement(_, __field_kind) => __field_kind.set_index(index),
141157                Self::TsTypeLit(_, __field_kind) => __field_kind.set_index(index),
141158                Self::TsTypeOperator(_, __field_kind) => __field_kind.set_index(index),
141159                Self::TsTypeOperatorOp(_, __field_kind) => __field_kind.set_index(index),
141160                Self::TsTypeParam(_, __field_kind) => __field_kind.set_index(index),
141161                Self::TsTypeParamDecl(_, __field_kind) => __field_kind.set_index(index),
141162                Self::TsTypeParamInstantiation(_, __field_kind) => __field_kind.set_index(index),
141163                Self::TsTypePredicate(_, __field_kind) => __field_kind.set_index(index),
141164                Self::TsTypeQuery(_, __field_kind) => __field_kind.set_index(index),
141165                Self::TsTypeQueryExpr(_, __field_kind) => __field_kind.set_index(index),
141166                Self::TsTypeRef(_, __field_kind) => __field_kind.set_index(index),
141167                Self::TsUnionOrIntersectionType(_, __field_kind) => __field_kind.set_index(index),
141168                Self::TsUnionType(_, __field_kind) => __field_kind.set_index(index),
141169                Self::UnaryExpr(_, __field_kind) => __field_kind.set_index(index),
141170                Self::UnaryOp(_, __field_kind) => __field_kind.set_index(index),
141171                Self::UpdateExpr(_, __field_kind) => __field_kind.set_index(index),
141172                Self::UpdateOp(_, __field_kind) => __field_kind.set_index(index),
141173                Self::UsingDecl(_, __field_kind) => __field_kind.set_index(index),
141174                Self::VarDecl(_, __field_kind) => __field_kind.set_index(index),
141175                Self::VarDeclKind(_, __field_kind) => __field_kind.set_index(index),
141176                Self::VarDeclOrExpr(_, __field_kind) => __field_kind.set_index(index),
141177                Self::VarDeclarator(_, __field_kind) => __field_kind.set_index(index),
141178                Self::WhileStmt(_, __field_kind) => __field_kind.set_index(index),
141179                Self::WithStmt(_, __field_kind) => __field_kind.set_index(index),
141180                Self::YieldExpr(_, __field_kind) => __field_kind.set_index(index),
141181            }
141182        }
141183    }
141184    #[cfg(any(docsrs, feature = "path"))]
141185    impl<'ast> AstParentNodeRef<'ast> {
141186        #[inline]
141187        pub fn kind(&self) -> AstParentKind {
141188            match self {
141189                Self::Accessibility(_, __field_kind) => AstParentKind::Accessibility(*__field_kind),
141190                Self::ArrayLit(_, __field_kind) => AstParentKind::ArrayLit(*__field_kind),
141191                Self::ArrayPat(_, __field_kind) => AstParentKind::ArrayPat(*__field_kind),
141192                Self::ArrowExpr(_, __field_kind) => AstParentKind::ArrowExpr(*__field_kind),
141193                Self::AssignExpr(_, __field_kind) => AstParentKind::AssignExpr(*__field_kind),
141194                Self::AssignOp(_, __field_kind) => AstParentKind::AssignOp(*__field_kind),
141195                Self::AssignPat(_, __field_kind) => AstParentKind::AssignPat(*__field_kind),
141196                Self::AssignPatProp(_, __field_kind) => AstParentKind::AssignPatProp(*__field_kind),
141197                Self::AssignProp(_, __field_kind) => AstParentKind::AssignProp(*__field_kind),
141198                Self::AssignTarget(_, __field_kind) => AstParentKind::AssignTarget(*__field_kind),
141199                Self::AssignTargetPat(_, __field_kind) => {
141200                    AstParentKind::AssignTargetPat(*__field_kind)
141201                }
141202                Self::AutoAccessor(_, __field_kind) => AstParentKind::AutoAccessor(*__field_kind),
141203                Self::AwaitExpr(_, __field_kind) => AstParentKind::AwaitExpr(*__field_kind),
141204                Self::BigInt(_, __field_kind) => AstParentKind::BigInt(*__field_kind),
141205                Self::BinExpr(_, __field_kind) => AstParentKind::BinExpr(*__field_kind),
141206                Self::BinaryOp(_, __field_kind) => AstParentKind::BinaryOp(*__field_kind),
141207                Self::BindingIdent(_, __field_kind) => AstParentKind::BindingIdent(*__field_kind),
141208                Self::BlockStmt(_, __field_kind) => AstParentKind::BlockStmt(*__field_kind),
141209                Self::BlockStmtOrExpr(_, __field_kind) => {
141210                    AstParentKind::BlockStmtOrExpr(*__field_kind)
141211                }
141212                Self::Bool(_, __field_kind) => AstParentKind::Bool(*__field_kind),
141213                Self::BreakStmt(_, __field_kind) => AstParentKind::BreakStmt(*__field_kind),
141214                Self::CallExpr(_, __field_kind) => AstParentKind::CallExpr(*__field_kind),
141215                Self::Callee(_, __field_kind) => AstParentKind::Callee(*__field_kind),
141216                Self::CatchClause(_, __field_kind) => AstParentKind::CatchClause(*__field_kind),
141217                Self::Class(_, __field_kind) => AstParentKind::Class(*__field_kind),
141218                Self::ClassDecl(_, __field_kind) => AstParentKind::ClassDecl(*__field_kind),
141219                Self::ClassExpr(_, __field_kind) => AstParentKind::ClassExpr(*__field_kind),
141220                Self::ClassMember(_, __field_kind) => AstParentKind::ClassMember(*__field_kind),
141221                Self::ClassMethod(_, __field_kind) => AstParentKind::ClassMethod(*__field_kind),
141222                Self::ClassProp(_, __field_kind) => AstParentKind::ClassProp(*__field_kind),
141223                Self::ComputedPropName(_, __field_kind) => {
141224                    AstParentKind::ComputedPropName(*__field_kind)
141225                }
141226                Self::CondExpr(_, __field_kind) => AstParentKind::CondExpr(*__field_kind),
141227                Self::Constructor(_, __field_kind) => AstParentKind::Constructor(*__field_kind),
141228                Self::ContinueStmt(_, __field_kind) => AstParentKind::ContinueStmt(*__field_kind),
141229                Self::DebuggerStmt(_, __field_kind) => AstParentKind::DebuggerStmt(*__field_kind),
141230                Self::Decl(_, __field_kind) => AstParentKind::Decl(*__field_kind),
141231                Self::Decorator(_, __field_kind) => AstParentKind::Decorator(*__field_kind),
141232                Self::DefaultDecl(_, __field_kind) => AstParentKind::DefaultDecl(*__field_kind),
141233                Self::DoWhileStmt(_, __field_kind) => AstParentKind::DoWhileStmt(*__field_kind),
141234                Self::EmptyStmt(_, __field_kind) => AstParentKind::EmptyStmt(*__field_kind),
141235                Self::ExportAll(_, __field_kind) => AstParentKind::ExportAll(*__field_kind),
141236                Self::ExportDecl(_, __field_kind) => AstParentKind::ExportDecl(*__field_kind),
141237                Self::ExportDefaultDecl(_, __field_kind) => {
141238                    AstParentKind::ExportDefaultDecl(*__field_kind)
141239                }
141240                Self::ExportDefaultExpr(_, __field_kind) => {
141241                    AstParentKind::ExportDefaultExpr(*__field_kind)
141242                }
141243                Self::ExportDefaultSpecifier(_, __field_kind) => {
141244                    AstParentKind::ExportDefaultSpecifier(*__field_kind)
141245                }
141246                Self::ExportNamedSpecifier(_, __field_kind) => {
141247                    AstParentKind::ExportNamedSpecifier(*__field_kind)
141248                }
141249                Self::ExportNamespaceSpecifier(_, __field_kind) => {
141250                    AstParentKind::ExportNamespaceSpecifier(*__field_kind)
141251                }
141252                Self::ExportSpecifier(_, __field_kind) => {
141253                    AstParentKind::ExportSpecifier(*__field_kind)
141254                }
141255                Self::Expr(_, __field_kind) => AstParentKind::Expr(*__field_kind),
141256                Self::ExprOrSpread(_, __field_kind) => AstParentKind::ExprOrSpread(*__field_kind),
141257                Self::ExprStmt(_, __field_kind) => AstParentKind::ExprStmt(*__field_kind),
141258                Self::FnDecl(_, __field_kind) => AstParentKind::FnDecl(*__field_kind),
141259                Self::FnExpr(_, __field_kind) => AstParentKind::FnExpr(*__field_kind),
141260                Self::ForHead(_, __field_kind) => AstParentKind::ForHead(*__field_kind),
141261                Self::ForInStmt(_, __field_kind) => AstParentKind::ForInStmt(*__field_kind),
141262                Self::ForOfStmt(_, __field_kind) => AstParentKind::ForOfStmt(*__field_kind),
141263                Self::ForStmt(_, __field_kind) => AstParentKind::ForStmt(*__field_kind),
141264                Self::Function(_, __field_kind) => AstParentKind::Function(*__field_kind),
141265                Self::GetterProp(_, __field_kind) => AstParentKind::GetterProp(*__field_kind),
141266                Self::Ident(_, __field_kind) => AstParentKind::Ident(*__field_kind),
141267                Self::IdentName(_, __field_kind) => AstParentKind::IdentName(*__field_kind),
141268                Self::IfStmt(_, __field_kind) => AstParentKind::IfStmt(*__field_kind),
141269                Self::Import(_, __field_kind) => AstParentKind::Import(*__field_kind),
141270                Self::ImportDecl(_, __field_kind) => AstParentKind::ImportDecl(*__field_kind),
141271                Self::ImportDefaultSpecifier(_, __field_kind) => {
141272                    AstParentKind::ImportDefaultSpecifier(*__field_kind)
141273                }
141274                Self::ImportNamedSpecifier(_, __field_kind) => {
141275                    AstParentKind::ImportNamedSpecifier(*__field_kind)
141276                }
141277                Self::ImportPhase(_, __field_kind) => AstParentKind::ImportPhase(*__field_kind),
141278                Self::ImportSpecifier(_, __field_kind) => {
141279                    AstParentKind::ImportSpecifier(*__field_kind)
141280                }
141281                Self::ImportStarAsSpecifier(_, __field_kind) => {
141282                    AstParentKind::ImportStarAsSpecifier(*__field_kind)
141283                }
141284                Self::ImportWith(_, __field_kind) => AstParentKind::ImportWith(*__field_kind),
141285                Self::ImportWithItem(_, __field_kind) => {
141286                    AstParentKind::ImportWithItem(*__field_kind)
141287                }
141288                Self::Invalid(_, __field_kind) => AstParentKind::Invalid(*__field_kind),
141289                Self::JSXAttr(_, __field_kind) => AstParentKind::JSXAttr(*__field_kind),
141290                Self::JSXAttrName(_, __field_kind) => AstParentKind::JSXAttrName(*__field_kind),
141291                Self::JSXAttrOrSpread(_, __field_kind) => {
141292                    AstParentKind::JSXAttrOrSpread(*__field_kind)
141293                }
141294                Self::JSXAttrValue(_, __field_kind) => AstParentKind::JSXAttrValue(*__field_kind),
141295                Self::JSXClosingElement(_, __field_kind) => {
141296                    AstParentKind::JSXClosingElement(*__field_kind)
141297                }
141298                Self::JSXClosingFragment(_, __field_kind) => {
141299                    AstParentKind::JSXClosingFragment(*__field_kind)
141300                }
141301                Self::JSXElement(_, __field_kind) => AstParentKind::JSXElement(*__field_kind),
141302                Self::JSXElementChild(_, __field_kind) => {
141303                    AstParentKind::JSXElementChild(*__field_kind)
141304                }
141305                Self::JSXElementName(_, __field_kind) => {
141306                    AstParentKind::JSXElementName(*__field_kind)
141307                }
141308                Self::JSXEmptyExpr(_, __field_kind) => AstParentKind::JSXEmptyExpr(*__field_kind),
141309                Self::JSXExpr(_, __field_kind) => AstParentKind::JSXExpr(*__field_kind),
141310                Self::JSXExprContainer(_, __field_kind) => {
141311                    AstParentKind::JSXExprContainer(*__field_kind)
141312                }
141313                Self::JSXFragment(_, __field_kind) => AstParentKind::JSXFragment(*__field_kind),
141314                Self::JSXMemberExpr(_, __field_kind) => AstParentKind::JSXMemberExpr(*__field_kind),
141315                Self::JSXNamespacedName(_, __field_kind) => {
141316                    AstParentKind::JSXNamespacedName(*__field_kind)
141317                }
141318                Self::JSXObject(_, __field_kind) => AstParentKind::JSXObject(*__field_kind),
141319                Self::JSXOpeningElement(_, __field_kind) => {
141320                    AstParentKind::JSXOpeningElement(*__field_kind)
141321                }
141322                Self::JSXOpeningFragment(_, __field_kind) => {
141323                    AstParentKind::JSXOpeningFragment(*__field_kind)
141324                }
141325                Self::JSXSpreadChild(_, __field_kind) => {
141326                    AstParentKind::JSXSpreadChild(*__field_kind)
141327                }
141328                Self::JSXText(_, __field_kind) => AstParentKind::JSXText(*__field_kind),
141329                Self::Key(_, __field_kind) => AstParentKind::Key(*__field_kind),
141330                Self::KeyValuePatProp(_, __field_kind) => {
141331                    AstParentKind::KeyValuePatProp(*__field_kind)
141332                }
141333                Self::KeyValueProp(_, __field_kind) => AstParentKind::KeyValueProp(*__field_kind),
141334                Self::LabeledStmt(_, __field_kind) => AstParentKind::LabeledStmt(*__field_kind),
141335                Self::Lit(_, __field_kind) => AstParentKind::Lit(*__field_kind),
141336                Self::MemberExpr(_, __field_kind) => AstParentKind::MemberExpr(*__field_kind),
141337                Self::MemberProp(_, __field_kind) => AstParentKind::MemberProp(*__field_kind),
141338                Self::MetaPropExpr(_, __field_kind) => AstParentKind::MetaPropExpr(*__field_kind),
141339                Self::MetaPropKind(_, __field_kind) => AstParentKind::MetaPropKind(*__field_kind),
141340                Self::MethodKind(_, __field_kind) => AstParentKind::MethodKind(*__field_kind),
141341                Self::MethodProp(_, __field_kind) => AstParentKind::MethodProp(*__field_kind),
141342                Self::Module(_, __field_kind) => AstParentKind::Module(*__field_kind),
141343                Self::ModuleDecl(_, __field_kind) => AstParentKind::ModuleDecl(*__field_kind),
141344                Self::ModuleExportName(_, __field_kind) => {
141345                    AstParentKind::ModuleExportName(*__field_kind)
141346                }
141347                Self::ModuleItem(_, __field_kind) => AstParentKind::ModuleItem(*__field_kind),
141348                Self::NamedExport(_, __field_kind) => AstParentKind::NamedExport(*__field_kind),
141349                Self::NewExpr(_, __field_kind) => AstParentKind::NewExpr(*__field_kind),
141350                Self::Null(_, __field_kind) => AstParentKind::Null(*__field_kind),
141351                Self::Number(_, __field_kind) => AstParentKind::Number(*__field_kind),
141352                Self::ObjectLit(_, __field_kind) => AstParentKind::ObjectLit(*__field_kind),
141353                Self::ObjectPat(_, __field_kind) => AstParentKind::ObjectPat(*__field_kind),
141354                Self::ObjectPatProp(_, __field_kind) => AstParentKind::ObjectPatProp(*__field_kind),
141355                Self::OptCall(_, __field_kind) => AstParentKind::OptCall(*__field_kind),
141356                Self::OptChainBase(_, __field_kind) => AstParentKind::OptChainBase(*__field_kind),
141357                Self::OptChainExpr(_, __field_kind) => AstParentKind::OptChainExpr(*__field_kind),
141358                Self::Param(_, __field_kind) => AstParentKind::Param(*__field_kind),
141359                Self::ParamOrTsParamProp(_, __field_kind) => {
141360                    AstParentKind::ParamOrTsParamProp(*__field_kind)
141361                }
141362                Self::ParenExpr(_, __field_kind) => AstParentKind::ParenExpr(*__field_kind),
141363                Self::Pat(_, __field_kind) => AstParentKind::Pat(*__field_kind),
141364                Self::PrivateMethod(_, __field_kind) => AstParentKind::PrivateMethod(*__field_kind),
141365                Self::PrivateName(_, __field_kind) => AstParentKind::PrivateName(*__field_kind),
141366                Self::PrivateProp(_, __field_kind) => AstParentKind::PrivateProp(*__field_kind),
141367                Self::Program(_, __field_kind) => AstParentKind::Program(*__field_kind),
141368                Self::Prop(_, __field_kind) => AstParentKind::Prop(*__field_kind),
141369                Self::PropName(_, __field_kind) => AstParentKind::PropName(*__field_kind),
141370                Self::PropOrSpread(_, __field_kind) => AstParentKind::PropOrSpread(*__field_kind),
141371                Self::Regex(_, __field_kind) => AstParentKind::Regex(*__field_kind),
141372                Self::RestPat(_, __field_kind) => AstParentKind::RestPat(*__field_kind),
141373                Self::ReturnStmt(_, __field_kind) => AstParentKind::ReturnStmt(*__field_kind),
141374                Self::Script(_, __field_kind) => AstParentKind::Script(*__field_kind),
141375                Self::SeqExpr(_, __field_kind) => AstParentKind::SeqExpr(*__field_kind),
141376                Self::SetterProp(_, __field_kind) => AstParentKind::SetterProp(*__field_kind),
141377                Self::SimpleAssignTarget(_, __field_kind) => {
141378                    AstParentKind::SimpleAssignTarget(*__field_kind)
141379                }
141380                Self::SpreadElement(_, __field_kind) => AstParentKind::SpreadElement(*__field_kind),
141381                Self::StaticBlock(_, __field_kind) => AstParentKind::StaticBlock(*__field_kind),
141382                Self::Stmt(_, __field_kind) => AstParentKind::Stmt(*__field_kind),
141383                Self::Str(_, __field_kind) => AstParentKind::Str(*__field_kind),
141384                Self::Super(_, __field_kind) => AstParentKind::Super(*__field_kind),
141385                Self::SuperProp(_, __field_kind) => AstParentKind::SuperProp(*__field_kind),
141386                Self::SuperPropExpr(_, __field_kind) => AstParentKind::SuperPropExpr(*__field_kind),
141387                Self::SwitchCase(_, __field_kind) => AstParentKind::SwitchCase(*__field_kind),
141388                Self::SwitchStmt(_, __field_kind) => AstParentKind::SwitchStmt(*__field_kind),
141389                Self::TaggedTpl(_, __field_kind) => AstParentKind::TaggedTpl(*__field_kind),
141390                Self::ThisExpr(_, __field_kind) => AstParentKind::ThisExpr(*__field_kind),
141391                Self::ThrowStmt(_, __field_kind) => AstParentKind::ThrowStmt(*__field_kind),
141392                Self::Tpl(_, __field_kind) => AstParentKind::Tpl(*__field_kind),
141393                Self::TplElement(_, __field_kind) => AstParentKind::TplElement(*__field_kind),
141394                Self::TruePlusMinus(_, __field_kind) => AstParentKind::TruePlusMinus(*__field_kind),
141395                Self::TryStmt(_, __field_kind) => AstParentKind::TryStmt(*__field_kind),
141396                Self::TsArrayType(_, __field_kind) => AstParentKind::TsArrayType(*__field_kind),
141397                Self::TsAsExpr(_, __field_kind) => AstParentKind::TsAsExpr(*__field_kind),
141398                Self::TsCallSignatureDecl(_, __field_kind) => {
141399                    AstParentKind::TsCallSignatureDecl(*__field_kind)
141400                }
141401                Self::TsConditionalType(_, __field_kind) => {
141402                    AstParentKind::TsConditionalType(*__field_kind)
141403                }
141404                Self::TsConstAssertion(_, __field_kind) => {
141405                    AstParentKind::TsConstAssertion(*__field_kind)
141406                }
141407                Self::TsConstructSignatureDecl(_, __field_kind) => {
141408                    AstParentKind::TsConstructSignatureDecl(*__field_kind)
141409                }
141410                Self::TsConstructorType(_, __field_kind) => {
141411                    AstParentKind::TsConstructorType(*__field_kind)
141412                }
141413                Self::TsEntityName(_, __field_kind) => AstParentKind::TsEntityName(*__field_kind),
141414                Self::TsEnumDecl(_, __field_kind) => AstParentKind::TsEnumDecl(*__field_kind),
141415                Self::TsEnumMember(_, __field_kind) => AstParentKind::TsEnumMember(*__field_kind),
141416                Self::TsEnumMemberId(_, __field_kind) => {
141417                    AstParentKind::TsEnumMemberId(*__field_kind)
141418                }
141419                Self::TsExportAssignment(_, __field_kind) => {
141420                    AstParentKind::TsExportAssignment(*__field_kind)
141421                }
141422                Self::TsExprWithTypeArgs(_, __field_kind) => {
141423                    AstParentKind::TsExprWithTypeArgs(*__field_kind)
141424                }
141425                Self::TsExternalModuleRef(_, __field_kind) => {
141426                    AstParentKind::TsExternalModuleRef(*__field_kind)
141427                }
141428                Self::TsFnOrConstructorType(_, __field_kind) => {
141429                    AstParentKind::TsFnOrConstructorType(*__field_kind)
141430                }
141431                Self::TsFnParam(_, __field_kind) => AstParentKind::TsFnParam(*__field_kind),
141432                Self::TsFnType(_, __field_kind) => AstParentKind::TsFnType(*__field_kind),
141433                Self::TsGetterSignature(_, __field_kind) => {
141434                    AstParentKind::TsGetterSignature(*__field_kind)
141435                }
141436                Self::TsImportEqualsDecl(_, __field_kind) => {
141437                    AstParentKind::TsImportEqualsDecl(*__field_kind)
141438                }
141439                Self::TsImportType(_, __field_kind) => AstParentKind::TsImportType(*__field_kind),
141440                Self::TsIndexSignature(_, __field_kind) => {
141441                    AstParentKind::TsIndexSignature(*__field_kind)
141442                }
141443                Self::TsIndexedAccessType(_, __field_kind) => {
141444                    AstParentKind::TsIndexedAccessType(*__field_kind)
141445                }
141446                Self::TsInferType(_, __field_kind) => AstParentKind::TsInferType(*__field_kind),
141447                Self::TsInstantiation(_, __field_kind) => {
141448                    AstParentKind::TsInstantiation(*__field_kind)
141449                }
141450                Self::TsInterfaceBody(_, __field_kind) => {
141451                    AstParentKind::TsInterfaceBody(*__field_kind)
141452                }
141453                Self::TsInterfaceDecl(_, __field_kind) => {
141454                    AstParentKind::TsInterfaceDecl(*__field_kind)
141455                }
141456                Self::TsIntersectionType(_, __field_kind) => {
141457                    AstParentKind::TsIntersectionType(*__field_kind)
141458                }
141459                Self::TsKeywordType(_, __field_kind) => AstParentKind::TsKeywordType(*__field_kind),
141460                Self::TsKeywordTypeKind(_, __field_kind) => {
141461                    AstParentKind::TsKeywordTypeKind(*__field_kind)
141462                }
141463                Self::TsLit(_, __field_kind) => AstParentKind::TsLit(*__field_kind),
141464                Self::TsLitType(_, __field_kind) => AstParentKind::TsLitType(*__field_kind),
141465                Self::TsMappedType(_, __field_kind) => AstParentKind::TsMappedType(*__field_kind),
141466                Self::TsMethodSignature(_, __field_kind) => {
141467                    AstParentKind::TsMethodSignature(*__field_kind)
141468                }
141469                Self::TsModuleBlock(_, __field_kind) => AstParentKind::TsModuleBlock(*__field_kind),
141470                Self::TsModuleDecl(_, __field_kind) => AstParentKind::TsModuleDecl(*__field_kind),
141471                Self::TsModuleName(_, __field_kind) => AstParentKind::TsModuleName(*__field_kind),
141472                Self::TsModuleRef(_, __field_kind) => AstParentKind::TsModuleRef(*__field_kind),
141473                Self::TsNamespaceBody(_, __field_kind) => {
141474                    AstParentKind::TsNamespaceBody(*__field_kind)
141475                }
141476                Self::TsNamespaceDecl(_, __field_kind) => {
141477                    AstParentKind::TsNamespaceDecl(*__field_kind)
141478                }
141479                Self::TsNamespaceExportDecl(_, __field_kind) => {
141480                    AstParentKind::TsNamespaceExportDecl(*__field_kind)
141481                }
141482                Self::TsNonNullExpr(_, __field_kind) => AstParentKind::TsNonNullExpr(*__field_kind),
141483                Self::TsOptionalType(_, __field_kind) => {
141484                    AstParentKind::TsOptionalType(*__field_kind)
141485                }
141486                Self::TsParamProp(_, __field_kind) => AstParentKind::TsParamProp(*__field_kind),
141487                Self::TsParamPropParam(_, __field_kind) => {
141488                    AstParentKind::TsParamPropParam(*__field_kind)
141489                }
141490                Self::TsParenthesizedType(_, __field_kind) => {
141491                    AstParentKind::TsParenthesizedType(*__field_kind)
141492                }
141493                Self::TsPropertySignature(_, __field_kind) => {
141494                    AstParentKind::TsPropertySignature(*__field_kind)
141495                }
141496                Self::TsQualifiedName(_, __field_kind) => {
141497                    AstParentKind::TsQualifiedName(*__field_kind)
141498                }
141499                Self::TsRestType(_, __field_kind) => AstParentKind::TsRestType(*__field_kind),
141500                Self::TsSatisfiesExpr(_, __field_kind) => {
141501                    AstParentKind::TsSatisfiesExpr(*__field_kind)
141502                }
141503                Self::TsSetterSignature(_, __field_kind) => {
141504                    AstParentKind::TsSetterSignature(*__field_kind)
141505                }
141506                Self::TsThisType(_, __field_kind) => AstParentKind::TsThisType(*__field_kind),
141507                Self::TsThisTypeOrIdent(_, __field_kind) => {
141508                    AstParentKind::TsThisTypeOrIdent(*__field_kind)
141509                }
141510                Self::TsTplLitType(_, __field_kind) => AstParentKind::TsTplLitType(*__field_kind),
141511                Self::TsTupleElement(_, __field_kind) => {
141512                    AstParentKind::TsTupleElement(*__field_kind)
141513                }
141514                Self::TsTupleType(_, __field_kind) => AstParentKind::TsTupleType(*__field_kind),
141515                Self::TsType(_, __field_kind) => AstParentKind::TsType(*__field_kind),
141516                Self::TsTypeAliasDecl(_, __field_kind) => {
141517                    AstParentKind::TsTypeAliasDecl(*__field_kind)
141518                }
141519                Self::TsTypeAnn(_, __field_kind) => AstParentKind::TsTypeAnn(*__field_kind),
141520                Self::TsTypeAssertion(_, __field_kind) => {
141521                    AstParentKind::TsTypeAssertion(*__field_kind)
141522                }
141523                Self::TsTypeElement(_, __field_kind) => AstParentKind::TsTypeElement(*__field_kind),
141524                Self::TsTypeLit(_, __field_kind) => AstParentKind::TsTypeLit(*__field_kind),
141525                Self::TsTypeOperator(_, __field_kind) => {
141526                    AstParentKind::TsTypeOperator(*__field_kind)
141527                }
141528                Self::TsTypeOperatorOp(_, __field_kind) => {
141529                    AstParentKind::TsTypeOperatorOp(*__field_kind)
141530                }
141531                Self::TsTypeParam(_, __field_kind) => AstParentKind::TsTypeParam(*__field_kind),
141532                Self::TsTypeParamDecl(_, __field_kind) => {
141533                    AstParentKind::TsTypeParamDecl(*__field_kind)
141534                }
141535                Self::TsTypeParamInstantiation(_, __field_kind) => {
141536                    AstParentKind::TsTypeParamInstantiation(*__field_kind)
141537                }
141538                Self::TsTypePredicate(_, __field_kind) => {
141539                    AstParentKind::TsTypePredicate(*__field_kind)
141540                }
141541                Self::TsTypeQuery(_, __field_kind) => AstParentKind::TsTypeQuery(*__field_kind),
141542                Self::TsTypeQueryExpr(_, __field_kind) => {
141543                    AstParentKind::TsTypeQueryExpr(*__field_kind)
141544                }
141545                Self::TsTypeRef(_, __field_kind) => AstParentKind::TsTypeRef(*__field_kind),
141546                Self::TsUnionOrIntersectionType(_, __field_kind) => {
141547                    AstParentKind::TsUnionOrIntersectionType(*__field_kind)
141548                }
141549                Self::TsUnionType(_, __field_kind) => AstParentKind::TsUnionType(*__field_kind),
141550                Self::UnaryExpr(_, __field_kind) => AstParentKind::UnaryExpr(*__field_kind),
141551                Self::UnaryOp(_, __field_kind) => AstParentKind::UnaryOp(*__field_kind),
141552                Self::UpdateExpr(_, __field_kind) => AstParentKind::UpdateExpr(*__field_kind),
141553                Self::UpdateOp(_, __field_kind) => AstParentKind::UpdateOp(*__field_kind),
141554                Self::UsingDecl(_, __field_kind) => AstParentKind::UsingDecl(*__field_kind),
141555                Self::VarDecl(_, __field_kind) => AstParentKind::VarDecl(*__field_kind),
141556                Self::VarDeclKind(_, __field_kind) => AstParentKind::VarDeclKind(*__field_kind),
141557                Self::VarDeclOrExpr(_, __field_kind) => AstParentKind::VarDeclOrExpr(*__field_kind),
141558                Self::VarDeclarator(_, __field_kind) => AstParentKind::VarDeclarator(*__field_kind),
141559                Self::WhileStmt(_, __field_kind) => AstParentKind::WhileStmt(*__field_kind),
141560                Self::WithStmt(_, __field_kind) => AstParentKind::WithStmt(*__field_kind),
141561                Self::YieldExpr(_, __field_kind) => AstParentKind::YieldExpr(*__field_kind),
141562            }
141563        }
141564    }
141565}
141566impl<'ast> From<&'ast Accessibility> for NodeRef<'ast> {
141567    fn from(node: &'ast Accessibility) -> Self {
141568        NodeRef::Accessibility(node)
141569    }
141570}
141571impl<'ast> From<&'ast ArrayLit> for NodeRef<'ast> {
141572    fn from(node: &'ast ArrayLit) -> Self {
141573        NodeRef::ArrayLit(node)
141574    }
141575}
141576impl<'ast> From<&'ast ArrayPat> for NodeRef<'ast> {
141577    fn from(node: &'ast ArrayPat) -> Self {
141578        NodeRef::ArrayPat(node)
141579    }
141580}
141581impl<'ast> From<&'ast ArrowExpr> for NodeRef<'ast> {
141582    fn from(node: &'ast ArrowExpr) -> Self {
141583        NodeRef::ArrowExpr(node)
141584    }
141585}
141586impl<'ast> From<&'ast AssignExpr> for NodeRef<'ast> {
141587    fn from(node: &'ast AssignExpr) -> Self {
141588        NodeRef::AssignExpr(node)
141589    }
141590}
141591impl<'ast> From<&'ast AssignOp> for NodeRef<'ast> {
141592    fn from(node: &'ast AssignOp) -> Self {
141593        NodeRef::AssignOp(node)
141594    }
141595}
141596impl<'ast> From<&'ast AssignPat> for NodeRef<'ast> {
141597    fn from(node: &'ast AssignPat) -> Self {
141598        NodeRef::AssignPat(node)
141599    }
141600}
141601impl<'ast> From<&'ast AssignPatProp> for NodeRef<'ast> {
141602    fn from(node: &'ast AssignPatProp) -> Self {
141603        NodeRef::AssignPatProp(node)
141604    }
141605}
141606impl<'ast> From<&'ast AssignProp> for NodeRef<'ast> {
141607    fn from(node: &'ast AssignProp) -> Self {
141608        NodeRef::AssignProp(node)
141609    }
141610}
141611impl<'ast> From<&'ast AssignTarget> for NodeRef<'ast> {
141612    fn from(node: &'ast AssignTarget) -> Self {
141613        NodeRef::AssignTarget(node)
141614    }
141615}
141616impl<'ast> From<&'ast AssignTargetPat> for NodeRef<'ast> {
141617    fn from(node: &'ast AssignTargetPat) -> Self {
141618        NodeRef::AssignTargetPat(node)
141619    }
141620}
141621impl<'ast> From<&'ast AutoAccessor> for NodeRef<'ast> {
141622    fn from(node: &'ast AutoAccessor) -> Self {
141623        NodeRef::AutoAccessor(node)
141624    }
141625}
141626impl<'ast> From<&'ast AwaitExpr> for NodeRef<'ast> {
141627    fn from(node: &'ast AwaitExpr) -> Self {
141628        NodeRef::AwaitExpr(node)
141629    }
141630}
141631impl<'ast> From<&'ast BigInt> for NodeRef<'ast> {
141632    fn from(node: &'ast BigInt) -> Self {
141633        NodeRef::BigInt(node)
141634    }
141635}
141636impl<'ast> From<&'ast BinExpr> for NodeRef<'ast> {
141637    fn from(node: &'ast BinExpr) -> Self {
141638        NodeRef::BinExpr(node)
141639    }
141640}
141641impl<'ast> From<&'ast BinaryOp> for NodeRef<'ast> {
141642    fn from(node: &'ast BinaryOp) -> Self {
141643        NodeRef::BinaryOp(node)
141644    }
141645}
141646impl<'ast> From<&'ast BindingIdent> for NodeRef<'ast> {
141647    fn from(node: &'ast BindingIdent) -> Self {
141648        NodeRef::BindingIdent(node)
141649    }
141650}
141651impl<'ast> From<&'ast BlockStmt> for NodeRef<'ast> {
141652    fn from(node: &'ast BlockStmt) -> Self {
141653        NodeRef::BlockStmt(node)
141654    }
141655}
141656impl<'ast> From<&'ast BlockStmtOrExpr> for NodeRef<'ast> {
141657    fn from(node: &'ast BlockStmtOrExpr) -> Self {
141658        NodeRef::BlockStmtOrExpr(node)
141659    }
141660}
141661impl<'ast> From<&'ast Bool> for NodeRef<'ast> {
141662    fn from(node: &'ast Bool) -> Self {
141663        NodeRef::Bool(node)
141664    }
141665}
141666impl<'ast> From<&'ast BreakStmt> for NodeRef<'ast> {
141667    fn from(node: &'ast BreakStmt) -> Self {
141668        NodeRef::BreakStmt(node)
141669    }
141670}
141671impl<'ast> From<&'ast CallExpr> for NodeRef<'ast> {
141672    fn from(node: &'ast CallExpr) -> Self {
141673        NodeRef::CallExpr(node)
141674    }
141675}
141676impl<'ast> From<&'ast Callee> for NodeRef<'ast> {
141677    fn from(node: &'ast Callee) -> Self {
141678        NodeRef::Callee(node)
141679    }
141680}
141681impl<'ast> From<&'ast CatchClause> for NodeRef<'ast> {
141682    fn from(node: &'ast CatchClause) -> Self {
141683        NodeRef::CatchClause(node)
141684    }
141685}
141686impl<'ast> From<&'ast Class> for NodeRef<'ast> {
141687    fn from(node: &'ast Class) -> Self {
141688        NodeRef::Class(node)
141689    }
141690}
141691impl<'ast> From<&'ast ClassDecl> for NodeRef<'ast> {
141692    fn from(node: &'ast ClassDecl) -> Self {
141693        NodeRef::ClassDecl(node)
141694    }
141695}
141696impl<'ast> From<&'ast ClassExpr> for NodeRef<'ast> {
141697    fn from(node: &'ast ClassExpr) -> Self {
141698        NodeRef::ClassExpr(node)
141699    }
141700}
141701impl<'ast> From<&'ast ClassMember> for NodeRef<'ast> {
141702    fn from(node: &'ast ClassMember) -> Self {
141703        NodeRef::ClassMember(node)
141704    }
141705}
141706impl<'ast> From<&'ast ClassMethod> for NodeRef<'ast> {
141707    fn from(node: &'ast ClassMethod) -> Self {
141708        NodeRef::ClassMethod(node)
141709    }
141710}
141711impl<'ast> From<&'ast ClassProp> for NodeRef<'ast> {
141712    fn from(node: &'ast ClassProp) -> Self {
141713        NodeRef::ClassProp(node)
141714    }
141715}
141716impl<'ast> From<&'ast ComputedPropName> for NodeRef<'ast> {
141717    fn from(node: &'ast ComputedPropName) -> Self {
141718        NodeRef::ComputedPropName(node)
141719    }
141720}
141721impl<'ast> From<&'ast CondExpr> for NodeRef<'ast> {
141722    fn from(node: &'ast CondExpr) -> Self {
141723        NodeRef::CondExpr(node)
141724    }
141725}
141726impl<'ast> From<&'ast Constructor> for NodeRef<'ast> {
141727    fn from(node: &'ast Constructor) -> Self {
141728        NodeRef::Constructor(node)
141729    }
141730}
141731impl<'ast> From<&'ast ContinueStmt> for NodeRef<'ast> {
141732    fn from(node: &'ast ContinueStmt) -> Self {
141733        NodeRef::ContinueStmt(node)
141734    }
141735}
141736impl<'ast> From<&'ast DebuggerStmt> for NodeRef<'ast> {
141737    fn from(node: &'ast DebuggerStmt) -> Self {
141738        NodeRef::DebuggerStmt(node)
141739    }
141740}
141741impl<'ast> From<&'ast Decl> for NodeRef<'ast> {
141742    fn from(node: &'ast Decl) -> Self {
141743        NodeRef::Decl(node)
141744    }
141745}
141746impl<'ast> From<&'ast Decorator> for NodeRef<'ast> {
141747    fn from(node: &'ast Decorator) -> Self {
141748        NodeRef::Decorator(node)
141749    }
141750}
141751impl<'ast> From<&'ast DefaultDecl> for NodeRef<'ast> {
141752    fn from(node: &'ast DefaultDecl) -> Self {
141753        NodeRef::DefaultDecl(node)
141754    }
141755}
141756impl<'ast> From<&'ast DoWhileStmt> for NodeRef<'ast> {
141757    fn from(node: &'ast DoWhileStmt) -> Self {
141758        NodeRef::DoWhileStmt(node)
141759    }
141760}
141761impl<'ast> From<&'ast EmptyStmt> for NodeRef<'ast> {
141762    fn from(node: &'ast EmptyStmt) -> Self {
141763        NodeRef::EmptyStmt(node)
141764    }
141765}
141766impl<'ast> From<&'ast ExportAll> for NodeRef<'ast> {
141767    fn from(node: &'ast ExportAll) -> Self {
141768        NodeRef::ExportAll(node)
141769    }
141770}
141771impl<'ast> From<&'ast ExportDecl> for NodeRef<'ast> {
141772    fn from(node: &'ast ExportDecl) -> Self {
141773        NodeRef::ExportDecl(node)
141774    }
141775}
141776impl<'ast> From<&'ast ExportDefaultDecl> for NodeRef<'ast> {
141777    fn from(node: &'ast ExportDefaultDecl) -> Self {
141778        NodeRef::ExportDefaultDecl(node)
141779    }
141780}
141781impl<'ast> From<&'ast ExportDefaultExpr> for NodeRef<'ast> {
141782    fn from(node: &'ast ExportDefaultExpr) -> Self {
141783        NodeRef::ExportDefaultExpr(node)
141784    }
141785}
141786impl<'ast> From<&'ast ExportDefaultSpecifier> for NodeRef<'ast> {
141787    fn from(node: &'ast ExportDefaultSpecifier) -> Self {
141788        NodeRef::ExportDefaultSpecifier(node)
141789    }
141790}
141791impl<'ast> From<&'ast ExportNamedSpecifier> for NodeRef<'ast> {
141792    fn from(node: &'ast ExportNamedSpecifier) -> Self {
141793        NodeRef::ExportNamedSpecifier(node)
141794    }
141795}
141796impl<'ast> From<&'ast ExportNamespaceSpecifier> for NodeRef<'ast> {
141797    fn from(node: &'ast ExportNamespaceSpecifier) -> Self {
141798        NodeRef::ExportNamespaceSpecifier(node)
141799    }
141800}
141801impl<'ast> From<&'ast ExportSpecifier> for NodeRef<'ast> {
141802    fn from(node: &'ast ExportSpecifier) -> Self {
141803        NodeRef::ExportSpecifier(node)
141804    }
141805}
141806impl<'ast> From<&'ast Expr> for NodeRef<'ast> {
141807    fn from(node: &'ast Expr) -> Self {
141808        NodeRef::Expr(node)
141809    }
141810}
141811impl<'ast> From<&'ast ExprOrSpread> for NodeRef<'ast> {
141812    fn from(node: &'ast ExprOrSpread) -> Self {
141813        NodeRef::ExprOrSpread(node)
141814    }
141815}
141816impl<'ast> From<&'ast ExprStmt> for NodeRef<'ast> {
141817    fn from(node: &'ast ExprStmt) -> Self {
141818        NodeRef::ExprStmt(node)
141819    }
141820}
141821impl<'ast> From<&'ast FnDecl> for NodeRef<'ast> {
141822    fn from(node: &'ast FnDecl) -> Self {
141823        NodeRef::FnDecl(node)
141824    }
141825}
141826impl<'ast> From<&'ast FnExpr> for NodeRef<'ast> {
141827    fn from(node: &'ast FnExpr) -> Self {
141828        NodeRef::FnExpr(node)
141829    }
141830}
141831impl<'ast> From<&'ast ForHead> for NodeRef<'ast> {
141832    fn from(node: &'ast ForHead) -> Self {
141833        NodeRef::ForHead(node)
141834    }
141835}
141836impl<'ast> From<&'ast ForInStmt> for NodeRef<'ast> {
141837    fn from(node: &'ast ForInStmt) -> Self {
141838        NodeRef::ForInStmt(node)
141839    }
141840}
141841impl<'ast> From<&'ast ForOfStmt> for NodeRef<'ast> {
141842    fn from(node: &'ast ForOfStmt) -> Self {
141843        NodeRef::ForOfStmt(node)
141844    }
141845}
141846impl<'ast> From<&'ast ForStmt> for NodeRef<'ast> {
141847    fn from(node: &'ast ForStmt) -> Self {
141848        NodeRef::ForStmt(node)
141849    }
141850}
141851impl<'ast> From<&'ast Function> for NodeRef<'ast> {
141852    fn from(node: &'ast Function) -> Self {
141853        NodeRef::Function(node)
141854    }
141855}
141856impl<'ast> From<&'ast GetterProp> for NodeRef<'ast> {
141857    fn from(node: &'ast GetterProp) -> Self {
141858        NodeRef::GetterProp(node)
141859    }
141860}
141861impl<'ast> From<&'ast Ident> for NodeRef<'ast> {
141862    fn from(node: &'ast Ident) -> Self {
141863        NodeRef::Ident(node)
141864    }
141865}
141866impl<'ast> From<&'ast IdentName> for NodeRef<'ast> {
141867    fn from(node: &'ast IdentName) -> Self {
141868        NodeRef::IdentName(node)
141869    }
141870}
141871impl<'ast> From<&'ast IfStmt> for NodeRef<'ast> {
141872    fn from(node: &'ast IfStmt) -> Self {
141873        NodeRef::IfStmt(node)
141874    }
141875}
141876impl<'ast> From<&'ast Import> for NodeRef<'ast> {
141877    fn from(node: &'ast Import) -> Self {
141878        NodeRef::Import(node)
141879    }
141880}
141881impl<'ast> From<&'ast ImportDecl> for NodeRef<'ast> {
141882    fn from(node: &'ast ImportDecl) -> Self {
141883        NodeRef::ImportDecl(node)
141884    }
141885}
141886impl<'ast> From<&'ast ImportDefaultSpecifier> for NodeRef<'ast> {
141887    fn from(node: &'ast ImportDefaultSpecifier) -> Self {
141888        NodeRef::ImportDefaultSpecifier(node)
141889    }
141890}
141891impl<'ast> From<&'ast ImportNamedSpecifier> for NodeRef<'ast> {
141892    fn from(node: &'ast ImportNamedSpecifier) -> Self {
141893        NodeRef::ImportNamedSpecifier(node)
141894    }
141895}
141896impl<'ast> From<&'ast ImportPhase> for NodeRef<'ast> {
141897    fn from(node: &'ast ImportPhase) -> Self {
141898        NodeRef::ImportPhase(node)
141899    }
141900}
141901impl<'ast> From<&'ast ImportSpecifier> for NodeRef<'ast> {
141902    fn from(node: &'ast ImportSpecifier) -> Self {
141903        NodeRef::ImportSpecifier(node)
141904    }
141905}
141906impl<'ast> From<&'ast ImportStarAsSpecifier> for NodeRef<'ast> {
141907    fn from(node: &'ast ImportStarAsSpecifier) -> Self {
141908        NodeRef::ImportStarAsSpecifier(node)
141909    }
141910}
141911impl<'ast> From<&'ast ImportWith> for NodeRef<'ast> {
141912    fn from(node: &'ast ImportWith) -> Self {
141913        NodeRef::ImportWith(node)
141914    }
141915}
141916impl<'ast> From<&'ast ImportWithItem> for NodeRef<'ast> {
141917    fn from(node: &'ast ImportWithItem) -> Self {
141918        NodeRef::ImportWithItem(node)
141919    }
141920}
141921impl<'ast> From<&'ast Invalid> for NodeRef<'ast> {
141922    fn from(node: &'ast Invalid) -> Self {
141923        NodeRef::Invalid(node)
141924    }
141925}
141926impl<'ast> From<&'ast JSXAttr> for NodeRef<'ast> {
141927    fn from(node: &'ast JSXAttr) -> Self {
141928        NodeRef::JSXAttr(node)
141929    }
141930}
141931impl<'ast> From<&'ast JSXAttrName> for NodeRef<'ast> {
141932    fn from(node: &'ast JSXAttrName) -> Self {
141933        NodeRef::JSXAttrName(node)
141934    }
141935}
141936impl<'ast> From<&'ast JSXAttrOrSpread> for NodeRef<'ast> {
141937    fn from(node: &'ast JSXAttrOrSpread) -> Self {
141938        NodeRef::JSXAttrOrSpread(node)
141939    }
141940}
141941impl<'ast> From<&'ast JSXAttrValue> for NodeRef<'ast> {
141942    fn from(node: &'ast JSXAttrValue) -> Self {
141943        NodeRef::JSXAttrValue(node)
141944    }
141945}
141946impl<'ast> From<&'ast JSXClosingElement> for NodeRef<'ast> {
141947    fn from(node: &'ast JSXClosingElement) -> Self {
141948        NodeRef::JSXClosingElement(node)
141949    }
141950}
141951impl<'ast> From<&'ast JSXClosingFragment> for NodeRef<'ast> {
141952    fn from(node: &'ast JSXClosingFragment) -> Self {
141953        NodeRef::JSXClosingFragment(node)
141954    }
141955}
141956impl<'ast> From<&'ast JSXElement> for NodeRef<'ast> {
141957    fn from(node: &'ast JSXElement) -> Self {
141958        NodeRef::JSXElement(node)
141959    }
141960}
141961impl<'ast> From<&'ast JSXElementChild> for NodeRef<'ast> {
141962    fn from(node: &'ast JSXElementChild) -> Self {
141963        NodeRef::JSXElementChild(node)
141964    }
141965}
141966impl<'ast> From<&'ast JSXElementName> for NodeRef<'ast> {
141967    fn from(node: &'ast JSXElementName) -> Self {
141968        NodeRef::JSXElementName(node)
141969    }
141970}
141971impl<'ast> From<&'ast JSXEmptyExpr> for NodeRef<'ast> {
141972    fn from(node: &'ast JSXEmptyExpr) -> Self {
141973        NodeRef::JSXEmptyExpr(node)
141974    }
141975}
141976impl<'ast> From<&'ast JSXExpr> for NodeRef<'ast> {
141977    fn from(node: &'ast JSXExpr) -> Self {
141978        NodeRef::JSXExpr(node)
141979    }
141980}
141981impl<'ast> From<&'ast JSXExprContainer> for NodeRef<'ast> {
141982    fn from(node: &'ast JSXExprContainer) -> Self {
141983        NodeRef::JSXExprContainer(node)
141984    }
141985}
141986impl<'ast> From<&'ast JSXFragment> for NodeRef<'ast> {
141987    fn from(node: &'ast JSXFragment) -> Self {
141988        NodeRef::JSXFragment(node)
141989    }
141990}
141991impl<'ast> From<&'ast JSXMemberExpr> for NodeRef<'ast> {
141992    fn from(node: &'ast JSXMemberExpr) -> Self {
141993        NodeRef::JSXMemberExpr(node)
141994    }
141995}
141996impl<'ast> From<&'ast JSXNamespacedName> for NodeRef<'ast> {
141997    fn from(node: &'ast JSXNamespacedName) -> Self {
141998        NodeRef::JSXNamespacedName(node)
141999    }
142000}
142001impl<'ast> From<&'ast JSXObject> for NodeRef<'ast> {
142002    fn from(node: &'ast JSXObject) -> Self {
142003        NodeRef::JSXObject(node)
142004    }
142005}
142006impl<'ast> From<&'ast JSXOpeningElement> for NodeRef<'ast> {
142007    fn from(node: &'ast JSXOpeningElement) -> Self {
142008        NodeRef::JSXOpeningElement(node)
142009    }
142010}
142011impl<'ast> From<&'ast JSXOpeningFragment> for NodeRef<'ast> {
142012    fn from(node: &'ast JSXOpeningFragment) -> Self {
142013        NodeRef::JSXOpeningFragment(node)
142014    }
142015}
142016impl<'ast> From<&'ast JSXSpreadChild> for NodeRef<'ast> {
142017    fn from(node: &'ast JSXSpreadChild) -> Self {
142018        NodeRef::JSXSpreadChild(node)
142019    }
142020}
142021impl<'ast> From<&'ast JSXText> for NodeRef<'ast> {
142022    fn from(node: &'ast JSXText) -> Self {
142023        NodeRef::JSXText(node)
142024    }
142025}
142026impl<'ast> From<&'ast Key> for NodeRef<'ast> {
142027    fn from(node: &'ast Key) -> Self {
142028        NodeRef::Key(node)
142029    }
142030}
142031impl<'ast> From<&'ast KeyValuePatProp> for NodeRef<'ast> {
142032    fn from(node: &'ast KeyValuePatProp) -> Self {
142033        NodeRef::KeyValuePatProp(node)
142034    }
142035}
142036impl<'ast> From<&'ast KeyValueProp> for NodeRef<'ast> {
142037    fn from(node: &'ast KeyValueProp) -> Self {
142038        NodeRef::KeyValueProp(node)
142039    }
142040}
142041impl<'ast> From<&'ast LabeledStmt> for NodeRef<'ast> {
142042    fn from(node: &'ast LabeledStmt) -> Self {
142043        NodeRef::LabeledStmt(node)
142044    }
142045}
142046impl<'ast> From<&'ast Lit> for NodeRef<'ast> {
142047    fn from(node: &'ast Lit) -> Self {
142048        NodeRef::Lit(node)
142049    }
142050}
142051impl<'ast> From<&'ast MemberExpr> for NodeRef<'ast> {
142052    fn from(node: &'ast MemberExpr) -> Self {
142053        NodeRef::MemberExpr(node)
142054    }
142055}
142056impl<'ast> From<&'ast MemberProp> for NodeRef<'ast> {
142057    fn from(node: &'ast MemberProp) -> Self {
142058        NodeRef::MemberProp(node)
142059    }
142060}
142061impl<'ast> From<&'ast MetaPropExpr> for NodeRef<'ast> {
142062    fn from(node: &'ast MetaPropExpr) -> Self {
142063        NodeRef::MetaPropExpr(node)
142064    }
142065}
142066impl<'ast> From<&'ast MetaPropKind> for NodeRef<'ast> {
142067    fn from(node: &'ast MetaPropKind) -> Self {
142068        NodeRef::MetaPropKind(node)
142069    }
142070}
142071impl<'ast> From<&'ast MethodKind> for NodeRef<'ast> {
142072    fn from(node: &'ast MethodKind) -> Self {
142073        NodeRef::MethodKind(node)
142074    }
142075}
142076impl<'ast> From<&'ast MethodProp> for NodeRef<'ast> {
142077    fn from(node: &'ast MethodProp) -> Self {
142078        NodeRef::MethodProp(node)
142079    }
142080}
142081impl<'ast> From<&'ast Module> for NodeRef<'ast> {
142082    fn from(node: &'ast Module) -> Self {
142083        NodeRef::Module(node)
142084    }
142085}
142086impl<'ast> From<&'ast ModuleDecl> for NodeRef<'ast> {
142087    fn from(node: &'ast ModuleDecl) -> Self {
142088        NodeRef::ModuleDecl(node)
142089    }
142090}
142091impl<'ast> From<&'ast ModuleExportName> for NodeRef<'ast> {
142092    fn from(node: &'ast ModuleExportName) -> Self {
142093        NodeRef::ModuleExportName(node)
142094    }
142095}
142096impl<'ast> From<&'ast ModuleItem> for NodeRef<'ast> {
142097    fn from(node: &'ast ModuleItem) -> Self {
142098        NodeRef::ModuleItem(node)
142099    }
142100}
142101impl<'ast> From<&'ast NamedExport> for NodeRef<'ast> {
142102    fn from(node: &'ast NamedExport) -> Self {
142103        NodeRef::NamedExport(node)
142104    }
142105}
142106impl<'ast> From<&'ast NewExpr> for NodeRef<'ast> {
142107    fn from(node: &'ast NewExpr) -> Self {
142108        NodeRef::NewExpr(node)
142109    }
142110}
142111impl<'ast> From<&'ast Null> for NodeRef<'ast> {
142112    fn from(node: &'ast Null) -> Self {
142113        NodeRef::Null(node)
142114    }
142115}
142116impl<'ast> From<&'ast Number> for NodeRef<'ast> {
142117    fn from(node: &'ast Number) -> Self {
142118        NodeRef::Number(node)
142119    }
142120}
142121impl<'ast> From<&'ast ObjectLit> for NodeRef<'ast> {
142122    fn from(node: &'ast ObjectLit) -> Self {
142123        NodeRef::ObjectLit(node)
142124    }
142125}
142126impl<'ast> From<&'ast ObjectPat> for NodeRef<'ast> {
142127    fn from(node: &'ast ObjectPat) -> Self {
142128        NodeRef::ObjectPat(node)
142129    }
142130}
142131impl<'ast> From<&'ast ObjectPatProp> for NodeRef<'ast> {
142132    fn from(node: &'ast ObjectPatProp) -> Self {
142133        NodeRef::ObjectPatProp(node)
142134    }
142135}
142136impl<'ast> From<&'ast OptCall> for NodeRef<'ast> {
142137    fn from(node: &'ast OptCall) -> Self {
142138        NodeRef::OptCall(node)
142139    }
142140}
142141impl<'ast> From<&'ast OptChainBase> for NodeRef<'ast> {
142142    fn from(node: &'ast OptChainBase) -> Self {
142143        NodeRef::OptChainBase(node)
142144    }
142145}
142146impl<'ast> From<&'ast OptChainExpr> for NodeRef<'ast> {
142147    fn from(node: &'ast OptChainExpr) -> Self {
142148        NodeRef::OptChainExpr(node)
142149    }
142150}
142151impl<'ast> From<&'ast Param> for NodeRef<'ast> {
142152    fn from(node: &'ast Param) -> Self {
142153        NodeRef::Param(node)
142154    }
142155}
142156impl<'ast> From<&'ast ParamOrTsParamProp> for NodeRef<'ast> {
142157    fn from(node: &'ast ParamOrTsParamProp) -> Self {
142158        NodeRef::ParamOrTsParamProp(node)
142159    }
142160}
142161impl<'ast> From<&'ast ParenExpr> for NodeRef<'ast> {
142162    fn from(node: &'ast ParenExpr) -> Self {
142163        NodeRef::ParenExpr(node)
142164    }
142165}
142166impl<'ast> From<&'ast Pat> for NodeRef<'ast> {
142167    fn from(node: &'ast Pat) -> Self {
142168        NodeRef::Pat(node)
142169    }
142170}
142171impl<'ast> From<&'ast PrivateMethod> for NodeRef<'ast> {
142172    fn from(node: &'ast PrivateMethod) -> Self {
142173        NodeRef::PrivateMethod(node)
142174    }
142175}
142176impl<'ast> From<&'ast PrivateName> for NodeRef<'ast> {
142177    fn from(node: &'ast PrivateName) -> Self {
142178        NodeRef::PrivateName(node)
142179    }
142180}
142181impl<'ast> From<&'ast PrivateProp> for NodeRef<'ast> {
142182    fn from(node: &'ast PrivateProp) -> Self {
142183        NodeRef::PrivateProp(node)
142184    }
142185}
142186impl<'ast> From<&'ast Program> for NodeRef<'ast> {
142187    fn from(node: &'ast Program) -> Self {
142188        NodeRef::Program(node)
142189    }
142190}
142191impl<'ast> From<&'ast Prop> for NodeRef<'ast> {
142192    fn from(node: &'ast Prop) -> Self {
142193        NodeRef::Prop(node)
142194    }
142195}
142196impl<'ast> From<&'ast PropName> for NodeRef<'ast> {
142197    fn from(node: &'ast PropName) -> Self {
142198        NodeRef::PropName(node)
142199    }
142200}
142201impl<'ast> From<&'ast PropOrSpread> for NodeRef<'ast> {
142202    fn from(node: &'ast PropOrSpread) -> Self {
142203        NodeRef::PropOrSpread(node)
142204    }
142205}
142206impl<'ast> From<&'ast Regex> for NodeRef<'ast> {
142207    fn from(node: &'ast Regex) -> Self {
142208        NodeRef::Regex(node)
142209    }
142210}
142211impl<'ast> From<&'ast RestPat> for NodeRef<'ast> {
142212    fn from(node: &'ast RestPat) -> Self {
142213        NodeRef::RestPat(node)
142214    }
142215}
142216impl<'ast> From<&'ast ReturnStmt> for NodeRef<'ast> {
142217    fn from(node: &'ast ReturnStmt) -> Self {
142218        NodeRef::ReturnStmt(node)
142219    }
142220}
142221impl<'ast> From<&'ast Script> for NodeRef<'ast> {
142222    fn from(node: &'ast Script) -> Self {
142223        NodeRef::Script(node)
142224    }
142225}
142226impl<'ast> From<&'ast SeqExpr> for NodeRef<'ast> {
142227    fn from(node: &'ast SeqExpr) -> Self {
142228        NodeRef::SeqExpr(node)
142229    }
142230}
142231impl<'ast> From<&'ast SetterProp> for NodeRef<'ast> {
142232    fn from(node: &'ast SetterProp) -> Self {
142233        NodeRef::SetterProp(node)
142234    }
142235}
142236impl<'ast> From<&'ast SimpleAssignTarget> for NodeRef<'ast> {
142237    fn from(node: &'ast SimpleAssignTarget) -> Self {
142238        NodeRef::SimpleAssignTarget(node)
142239    }
142240}
142241impl<'ast> From<&'ast SpreadElement> for NodeRef<'ast> {
142242    fn from(node: &'ast SpreadElement) -> Self {
142243        NodeRef::SpreadElement(node)
142244    }
142245}
142246impl<'ast> From<&'ast StaticBlock> for NodeRef<'ast> {
142247    fn from(node: &'ast StaticBlock) -> Self {
142248        NodeRef::StaticBlock(node)
142249    }
142250}
142251impl<'ast> From<&'ast Stmt> for NodeRef<'ast> {
142252    fn from(node: &'ast Stmt) -> Self {
142253        NodeRef::Stmt(node)
142254    }
142255}
142256impl<'ast> From<&'ast Str> for NodeRef<'ast> {
142257    fn from(node: &'ast Str) -> Self {
142258        NodeRef::Str(node)
142259    }
142260}
142261impl<'ast> From<&'ast Super> for NodeRef<'ast> {
142262    fn from(node: &'ast Super) -> Self {
142263        NodeRef::Super(node)
142264    }
142265}
142266impl<'ast> From<&'ast SuperProp> for NodeRef<'ast> {
142267    fn from(node: &'ast SuperProp) -> Self {
142268        NodeRef::SuperProp(node)
142269    }
142270}
142271impl<'ast> From<&'ast SuperPropExpr> for NodeRef<'ast> {
142272    fn from(node: &'ast SuperPropExpr) -> Self {
142273        NodeRef::SuperPropExpr(node)
142274    }
142275}
142276impl<'ast> From<&'ast SwitchCase> for NodeRef<'ast> {
142277    fn from(node: &'ast SwitchCase) -> Self {
142278        NodeRef::SwitchCase(node)
142279    }
142280}
142281impl<'ast> From<&'ast SwitchStmt> for NodeRef<'ast> {
142282    fn from(node: &'ast SwitchStmt) -> Self {
142283        NodeRef::SwitchStmt(node)
142284    }
142285}
142286impl<'ast> From<&'ast TaggedTpl> for NodeRef<'ast> {
142287    fn from(node: &'ast TaggedTpl) -> Self {
142288        NodeRef::TaggedTpl(node)
142289    }
142290}
142291impl<'ast> From<&'ast ThisExpr> for NodeRef<'ast> {
142292    fn from(node: &'ast ThisExpr) -> Self {
142293        NodeRef::ThisExpr(node)
142294    }
142295}
142296impl<'ast> From<&'ast ThrowStmt> for NodeRef<'ast> {
142297    fn from(node: &'ast ThrowStmt) -> Self {
142298        NodeRef::ThrowStmt(node)
142299    }
142300}
142301impl<'ast> From<&'ast Tpl> for NodeRef<'ast> {
142302    fn from(node: &'ast Tpl) -> Self {
142303        NodeRef::Tpl(node)
142304    }
142305}
142306impl<'ast> From<&'ast TplElement> for NodeRef<'ast> {
142307    fn from(node: &'ast TplElement) -> Self {
142308        NodeRef::TplElement(node)
142309    }
142310}
142311impl<'ast> From<&'ast TruePlusMinus> for NodeRef<'ast> {
142312    fn from(node: &'ast TruePlusMinus) -> Self {
142313        NodeRef::TruePlusMinus(node)
142314    }
142315}
142316impl<'ast> From<&'ast TryStmt> for NodeRef<'ast> {
142317    fn from(node: &'ast TryStmt) -> Self {
142318        NodeRef::TryStmt(node)
142319    }
142320}
142321impl<'ast> From<&'ast TsArrayType> for NodeRef<'ast> {
142322    fn from(node: &'ast TsArrayType) -> Self {
142323        NodeRef::TsArrayType(node)
142324    }
142325}
142326impl<'ast> From<&'ast TsAsExpr> for NodeRef<'ast> {
142327    fn from(node: &'ast TsAsExpr) -> Self {
142328        NodeRef::TsAsExpr(node)
142329    }
142330}
142331impl<'ast> From<&'ast TsCallSignatureDecl> for NodeRef<'ast> {
142332    fn from(node: &'ast TsCallSignatureDecl) -> Self {
142333        NodeRef::TsCallSignatureDecl(node)
142334    }
142335}
142336impl<'ast> From<&'ast TsConditionalType> for NodeRef<'ast> {
142337    fn from(node: &'ast TsConditionalType) -> Self {
142338        NodeRef::TsConditionalType(node)
142339    }
142340}
142341impl<'ast> From<&'ast TsConstAssertion> for NodeRef<'ast> {
142342    fn from(node: &'ast TsConstAssertion) -> Self {
142343        NodeRef::TsConstAssertion(node)
142344    }
142345}
142346impl<'ast> From<&'ast TsConstructSignatureDecl> for NodeRef<'ast> {
142347    fn from(node: &'ast TsConstructSignatureDecl) -> Self {
142348        NodeRef::TsConstructSignatureDecl(node)
142349    }
142350}
142351impl<'ast> From<&'ast TsConstructorType> for NodeRef<'ast> {
142352    fn from(node: &'ast TsConstructorType) -> Self {
142353        NodeRef::TsConstructorType(node)
142354    }
142355}
142356impl<'ast> From<&'ast TsEntityName> for NodeRef<'ast> {
142357    fn from(node: &'ast TsEntityName) -> Self {
142358        NodeRef::TsEntityName(node)
142359    }
142360}
142361impl<'ast> From<&'ast TsEnumDecl> for NodeRef<'ast> {
142362    fn from(node: &'ast TsEnumDecl) -> Self {
142363        NodeRef::TsEnumDecl(node)
142364    }
142365}
142366impl<'ast> From<&'ast TsEnumMember> for NodeRef<'ast> {
142367    fn from(node: &'ast TsEnumMember) -> Self {
142368        NodeRef::TsEnumMember(node)
142369    }
142370}
142371impl<'ast> From<&'ast TsEnumMemberId> for NodeRef<'ast> {
142372    fn from(node: &'ast TsEnumMemberId) -> Self {
142373        NodeRef::TsEnumMemberId(node)
142374    }
142375}
142376impl<'ast> From<&'ast TsExportAssignment> for NodeRef<'ast> {
142377    fn from(node: &'ast TsExportAssignment) -> Self {
142378        NodeRef::TsExportAssignment(node)
142379    }
142380}
142381impl<'ast> From<&'ast TsExprWithTypeArgs> for NodeRef<'ast> {
142382    fn from(node: &'ast TsExprWithTypeArgs) -> Self {
142383        NodeRef::TsExprWithTypeArgs(node)
142384    }
142385}
142386impl<'ast> From<&'ast TsExternalModuleRef> for NodeRef<'ast> {
142387    fn from(node: &'ast TsExternalModuleRef) -> Self {
142388        NodeRef::TsExternalModuleRef(node)
142389    }
142390}
142391impl<'ast> From<&'ast TsFnOrConstructorType> for NodeRef<'ast> {
142392    fn from(node: &'ast TsFnOrConstructorType) -> Self {
142393        NodeRef::TsFnOrConstructorType(node)
142394    }
142395}
142396impl<'ast> From<&'ast TsFnParam> for NodeRef<'ast> {
142397    fn from(node: &'ast TsFnParam) -> Self {
142398        NodeRef::TsFnParam(node)
142399    }
142400}
142401impl<'ast> From<&'ast TsFnType> for NodeRef<'ast> {
142402    fn from(node: &'ast TsFnType) -> Self {
142403        NodeRef::TsFnType(node)
142404    }
142405}
142406impl<'ast> From<&'ast TsGetterSignature> for NodeRef<'ast> {
142407    fn from(node: &'ast TsGetterSignature) -> Self {
142408        NodeRef::TsGetterSignature(node)
142409    }
142410}
142411impl<'ast> From<&'ast TsImportEqualsDecl> for NodeRef<'ast> {
142412    fn from(node: &'ast TsImportEqualsDecl) -> Self {
142413        NodeRef::TsImportEqualsDecl(node)
142414    }
142415}
142416impl<'ast> From<&'ast TsImportType> for NodeRef<'ast> {
142417    fn from(node: &'ast TsImportType) -> Self {
142418        NodeRef::TsImportType(node)
142419    }
142420}
142421impl<'ast> From<&'ast TsIndexSignature> for NodeRef<'ast> {
142422    fn from(node: &'ast TsIndexSignature) -> Self {
142423        NodeRef::TsIndexSignature(node)
142424    }
142425}
142426impl<'ast> From<&'ast TsIndexedAccessType> for NodeRef<'ast> {
142427    fn from(node: &'ast TsIndexedAccessType) -> Self {
142428        NodeRef::TsIndexedAccessType(node)
142429    }
142430}
142431impl<'ast> From<&'ast TsInferType> for NodeRef<'ast> {
142432    fn from(node: &'ast TsInferType) -> Self {
142433        NodeRef::TsInferType(node)
142434    }
142435}
142436impl<'ast> From<&'ast TsInstantiation> for NodeRef<'ast> {
142437    fn from(node: &'ast TsInstantiation) -> Self {
142438        NodeRef::TsInstantiation(node)
142439    }
142440}
142441impl<'ast> From<&'ast TsInterfaceBody> for NodeRef<'ast> {
142442    fn from(node: &'ast TsInterfaceBody) -> Self {
142443        NodeRef::TsInterfaceBody(node)
142444    }
142445}
142446impl<'ast> From<&'ast TsInterfaceDecl> for NodeRef<'ast> {
142447    fn from(node: &'ast TsInterfaceDecl) -> Self {
142448        NodeRef::TsInterfaceDecl(node)
142449    }
142450}
142451impl<'ast> From<&'ast TsIntersectionType> for NodeRef<'ast> {
142452    fn from(node: &'ast TsIntersectionType) -> Self {
142453        NodeRef::TsIntersectionType(node)
142454    }
142455}
142456impl<'ast> From<&'ast TsKeywordType> for NodeRef<'ast> {
142457    fn from(node: &'ast TsKeywordType) -> Self {
142458        NodeRef::TsKeywordType(node)
142459    }
142460}
142461impl<'ast> From<&'ast TsKeywordTypeKind> for NodeRef<'ast> {
142462    fn from(node: &'ast TsKeywordTypeKind) -> Self {
142463        NodeRef::TsKeywordTypeKind(node)
142464    }
142465}
142466impl<'ast> From<&'ast TsLit> for NodeRef<'ast> {
142467    fn from(node: &'ast TsLit) -> Self {
142468        NodeRef::TsLit(node)
142469    }
142470}
142471impl<'ast> From<&'ast TsLitType> for NodeRef<'ast> {
142472    fn from(node: &'ast TsLitType) -> Self {
142473        NodeRef::TsLitType(node)
142474    }
142475}
142476impl<'ast> From<&'ast TsMappedType> for NodeRef<'ast> {
142477    fn from(node: &'ast TsMappedType) -> Self {
142478        NodeRef::TsMappedType(node)
142479    }
142480}
142481impl<'ast> From<&'ast TsMethodSignature> for NodeRef<'ast> {
142482    fn from(node: &'ast TsMethodSignature) -> Self {
142483        NodeRef::TsMethodSignature(node)
142484    }
142485}
142486impl<'ast> From<&'ast TsModuleBlock> for NodeRef<'ast> {
142487    fn from(node: &'ast TsModuleBlock) -> Self {
142488        NodeRef::TsModuleBlock(node)
142489    }
142490}
142491impl<'ast> From<&'ast TsModuleDecl> for NodeRef<'ast> {
142492    fn from(node: &'ast TsModuleDecl) -> Self {
142493        NodeRef::TsModuleDecl(node)
142494    }
142495}
142496impl<'ast> From<&'ast TsModuleName> for NodeRef<'ast> {
142497    fn from(node: &'ast TsModuleName) -> Self {
142498        NodeRef::TsModuleName(node)
142499    }
142500}
142501impl<'ast> From<&'ast TsModuleRef> for NodeRef<'ast> {
142502    fn from(node: &'ast TsModuleRef) -> Self {
142503        NodeRef::TsModuleRef(node)
142504    }
142505}
142506impl<'ast> From<&'ast TsNamespaceBody> for NodeRef<'ast> {
142507    fn from(node: &'ast TsNamespaceBody) -> Self {
142508        NodeRef::TsNamespaceBody(node)
142509    }
142510}
142511impl<'ast> From<&'ast TsNamespaceDecl> for NodeRef<'ast> {
142512    fn from(node: &'ast TsNamespaceDecl) -> Self {
142513        NodeRef::TsNamespaceDecl(node)
142514    }
142515}
142516impl<'ast> From<&'ast TsNamespaceExportDecl> for NodeRef<'ast> {
142517    fn from(node: &'ast TsNamespaceExportDecl) -> Self {
142518        NodeRef::TsNamespaceExportDecl(node)
142519    }
142520}
142521impl<'ast> From<&'ast TsNonNullExpr> for NodeRef<'ast> {
142522    fn from(node: &'ast TsNonNullExpr) -> Self {
142523        NodeRef::TsNonNullExpr(node)
142524    }
142525}
142526impl<'ast> From<&'ast TsOptionalType> for NodeRef<'ast> {
142527    fn from(node: &'ast TsOptionalType) -> Self {
142528        NodeRef::TsOptionalType(node)
142529    }
142530}
142531impl<'ast> From<&'ast TsParamProp> for NodeRef<'ast> {
142532    fn from(node: &'ast TsParamProp) -> Self {
142533        NodeRef::TsParamProp(node)
142534    }
142535}
142536impl<'ast> From<&'ast TsParamPropParam> for NodeRef<'ast> {
142537    fn from(node: &'ast TsParamPropParam) -> Self {
142538        NodeRef::TsParamPropParam(node)
142539    }
142540}
142541impl<'ast> From<&'ast TsParenthesizedType> for NodeRef<'ast> {
142542    fn from(node: &'ast TsParenthesizedType) -> Self {
142543        NodeRef::TsParenthesizedType(node)
142544    }
142545}
142546impl<'ast> From<&'ast TsPropertySignature> for NodeRef<'ast> {
142547    fn from(node: &'ast TsPropertySignature) -> Self {
142548        NodeRef::TsPropertySignature(node)
142549    }
142550}
142551impl<'ast> From<&'ast TsQualifiedName> for NodeRef<'ast> {
142552    fn from(node: &'ast TsQualifiedName) -> Self {
142553        NodeRef::TsQualifiedName(node)
142554    }
142555}
142556impl<'ast> From<&'ast TsRestType> for NodeRef<'ast> {
142557    fn from(node: &'ast TsRestType) -> Self {
142558        NodeRef::TsRestType(node)
142559    }
142560}
142561impl<'ast> From<&'ast TsSatisfiesExpr> for NodeRef<'ast> {
142562    fn from(node: &'ast TsSatisfiesExpr) -> Self {
142563        NodeRef::TsSatisfiesExpr(node)
142564    }
142565}
142566impl<'ast> From<&'ast TsSetterSignature> for NodeRef<'ast> {
142567    fn from(node: &'ast TsSetterSignature) -> Self {
142568        NodeRef::TsSetterSignature(node)
142569    }
142570}
142571impl<'ast> From<&'ast TsThisType> for NodeRef<'ast> {
142572    fn from(node: &'ast TsThisType) -> Self {
142573        NodeRef::TsThisType(node)
142574    }
142575}
142576impl<'ast> From<&'ast TsThisTypeOrIdent> for NodeRef<'ast> {
142577    fn from(node: &'ast TsThisTypeOrIdent) -> Self {
142578        NodeRef::TsThisTypeOrIdent(node)
142579    }
142580}
142581impl<'ast> From<&'ast TsTplLitType> for NodeRef<'ast> {
142582    fn from(node: &'ast TsTplLitType) -> Self {
142583        NodeRef::TsTplLitType(node)
142584    }
142585}
142586impl<'ast> From<&'ast TsTupleElement> for NodeRef<'ast> {
142587    fn from(node: &'ast TsTupleElement) -> Self {
142588        NodeRef::TsTupleElement(node)
142589    }
142590}
142591impl<'ast> From<&'ast TsTupleType> for NodeRef<'ast> {
142592    fn from(node: &'ast TsTupleType) -> Self {
142593        NodeRef::TsTupleType(node)
142594    }
142595}
142596impl<'ast> From<&'ast TsType> for NodeRef<'ast> {
142597    fn from(node: &'ast TsType) -> Self {
142598        NodeRef::TsType(node)
142599    }
142600}
142601impl<'ast> From<&'ast TsTypeAliasDecl> for NodeRef<'ast> {
142602    fn from(node: &'ast TsTypeAliasDecl) -> Self {
142603        NodeRef::TsTypeAliasDecl(node)
142604    }
142605}
142606impl<'ast> From<&'ast TsTypeAnn> for NodeRef<'ast> {
142607    fn from(node: &'ast TsTypeAnn) -> Self {
142608        NodeRef::TsTypeAnn(node)
142609    }
142610}
142611impl<'ast> From<&'ast TsTypeAssertion> for NodeRef<'ast> {
142612    fn from(node: &'ast TsTypeAssertion) -> Self {
142613        NodeRef::TsTypeAssertion(node)
142614    }
142615}
142616impl<'ast> From<&'ast TsTypeElement> for NodeRef<'ast> {
142617    fn from(node: &'ast TsTypeElement) -> Self {
142618        NodeRef::TsTypeElement(node)
142619    }
142620}
142621impl<'ast> From<&'ast TsTypeLit> for NodeRef<'ast> {
142622    fn from(node: &'ast TsTypeLit) -> Self {
142623        NodeRef::TsTypeLit(node)
142624    }
142625}
142626impl<'ast> From<&'ast TsTypeOperator> for NodeRef<'ast> {
142627    fn from(node: &'ast TsTypeOperator) -> Self {
142628        NodeRef::TsTypeOperator(node)
142629    }
142630}
142631impl<'ast> From<&'ast TsTypeOperatorOp> for NodeRef<'ast> {
142632    fn from(node: &'ast TsTypeOperatorOp) -> Self {
142633        NodeRef::TsTypeOperatorOp(node)
142634    }
142635}
142636impl<'ast> From<&'ast TsTypeParam> for NodeRef<'ast> {
142637    fn from(node: &'ast TsTypeParam) -> Self {
142638        NodeRef::TsTypeParam(node)
142639    }
142640}
142641impl<'ast> From<&'ast TsTypeParamDecl> for NodeRef<'ast> {
142642    fn from(node: &'ast TsTypeParamDecl) -> Self {
142643        NodeRef::TsTypeParamDecl(node)
142644    }
142645}
142646impl<'ast> From<&'ast TsTypeParamInstantiation> for NodeRef<'ast> {
142647    fn from(node: &'ast TsTypeParamInstantiation) -> Self {
142648        NodeRef::TsTypeParamInstantiation(node)
142649    }
142650}
142651impl<'ast> From<&'ast TsTypePredicate> for NodeRef<'ast> {
142652    fn from(node: &'ast TsTypePredicate) -> Self {
142653        NodeRef::TsTypePredicate(node)
142654    }
142655}
142656impl<'ast> From<&'ast TsTypeQuery> for NodeRef<'ast> {
142657    fn from(node: &'ast TsTypeQuery) -> Self {
142658        NodeRef::TsTypeQuery(node)
142659    }
142660}
142661impl<'ast> From<&'ast TsTypeQueryExpr> for NodeRef<'ast> {
142662    fn from(node: &'ast TsTypeQueryExpr) -> Self {
142663        NodeRef::TsTypeQueryExpr(node)
142664    }
142665}
142666impl<'ast> From<&'ast TsTypeRef> for NodeRef<'ast> {
142667    fn from(node: &'ast TsTypeRef) -> Self {
142668        NodeRef::TsTypeRef(node)
142669    }
142670}
142671impl<'ast> From<&'ast TsUnionOrIntersectionType> for NodeRef<'ast> {
142672    fn from(node: &'ast TsUnionOrIntersectionType) -> Self {
142673        NodeRef::TsUnionOrIntersectionType(node)
142674    }
142675}
142676impl<'ast> From<&'ast TsUnionType> for NodeRef<'ast> {
142677    fn from(node: &'ast TsUnionType) -> Self {
142678        NodeRef::TsUnionType(node)
142679    }
142680}
142681impl<'ast> From<&'ast UnaryExpr> for NodeRef<'ast> {
142682    fn from(node: &'ast UnaryExpr) -> Self {
142683        NodeRef::UnaryExpr(node)
142684    }
142685}
142686impl<'ast> From<&'ast UnaryOp> for NodeRef<'ast> {
142687    fn from(node: &'ast UnaryOp) -> Self {
142688        NodeRef::UnaryOp(node)
142689    }
142690}
142691impl<'ast> From<&'ast UpdateExpr> for NodeRef<'ast> {
142692    fn from(node: &'ast UpdateExpr) -> Self {
142693        NodeRef::UpdateExpr(node)
142694    }
142695}
142696impl<'ast> From<&'ast UpdateOp> for NodeRef<'ast> {
142697    fn from(node: &'ast UpdateOp) -> Self {
142698        NodeRef::UpdateOp(node)
142699    }
142700}
142701impl<'ast> From<&'ast UsingDecl> for NodeRef<'ast> {
142702    fn from(node: &'ast UsingDecl) -> Self {
142703        NodeRef::UsingDecl(node)
142704    }
142705}
142706impl<'ast> From<&'ast VarDecl> for NodeRef<'ast> {
142707    fn from(node: &'ast VarDecl) -> Self {
142708        NodeRef::VarDecl(node)
142709    }
142710}
142711impl<'ast> From<&'ast VarDeclKind> for NodeRef<'ast> {
142712    fn from(node: &'ast VarDeclKind) -> Self {
142713        NodeRef::VarDeclKind(node)
142714    }
142715}
142716impl<'ast> From<&'ast VarDeclOrExpr> for NodeRef<'ast> {
142717    fn from(node: &'ast VarDeclOrExpr) -> Self {
142718        NodeRef::VarDeclOrExpr(node)
142719    }
142720}
142721impl<'ast> From<&'ast VarDeclarator> for NodeRef<'ast> {
142722    fn from(node: &'ast VarDeclarator) -> Self {
142723        NodeRef::VarDeclarator(node)
142724    }
142725}
142726impl<'ast> From<&'ast WhileStmt> for NodeRef<'ast> {
142727    fn from(node: &'ast WhileStmt) -> Self {
142728        NodeRef::WhileStmt(node)
142729    }
142730}
142731impl<'ast> From<&'ast WithStmt> for NodeRef<'ast> {
142732    fn from(node: &'ast WithStmt) -> Self {
142733        NodeRef::WithStmt(node)
142734    }
142735}
142736impl<'ast> From<&'ast YieldExpr> for NodeRef<'ast> {
142737    fn from(node: &'ast YieldExpr) -> Self {
142738        NodeRef::YieldExpr(node)
142739    }
142740}
142741#[derive(Debug, Clone, Copy)]
142742pub enum NodeRef<'ast> {
142743    Accessibility(&'ast Accessibility),
142744    ArrayLit(&'ast ArrayLit),
142745    ArrayPat(&'ast ArrayPat),
142746    ArrowExpr(&'ast ArrowExpr),
142747    AssignExpr(&'ast AssignExpr),
142748    AssignOp(&'ast AssignOp),
142749    AssignPat(&'ast AssignPat),
142750    AssignPatProp(&'ast AssignPatProp),
142751    AssignProp(&'ast AssignProp),
142752    AssignTarget(&'ast AssignTarget),
142753    AssignTargetPat(&'ast AssignTargetPat),
142754    AutoAccessor(&'ast AutoAccessor),
142755    AwaitExpr(&'ast AwaitExpr),
142756    BigInt(&'ast BigInt),
142757    BinExpr(&'ast BinExpr),
142758    BinaryOp(&'ast BinaryOp),
142759    BindingIdent(&'ast BindingIdent),
142760    BlockStmt(&'ast BlockStmt),
142761    BlockStmtOrExpr(&'ast BlockStmtOrExpr),
142762    Bool(&'ast Bool),
142763    BreakStmt(&'ast BreakStmt),
142764    CallExpr(&'ast CallExpr),
142765    Callee(&'ast Callee),
142766    CatchClause(&'ast CatchClause),
142767    Class(&'ast Class),
142768    ClassDecl(&'ast ClassDecl),
142769    ClassExpr(&'ast ClassExpr),
142770    ClassMember(&'ast ClassMember),
142771    ClassMethod(&'ast ClassMethod),
142772    ClassProp(&'ast ClassProp),
142773    ComputedPropName(&'ast ComputedPropName),
142774    CondExpr(&'ast CondExpr),
142775    Constructor(&'ast Constructor),
142776    ContinueStmt(&'ast ContinueStmt),
142777    DebuggerStmt(&'ast DebuggerStmt),
142778    Decl(&'ast Decl),
142779    Decorator(&'ast Decorator),
142780    DefaultDecl(&'ast DefaultDecl),
142781    DoWhileStmt(&'ast DoWhileStmt),
142782    EmptyStmt(&'ast EmptyStmt),
142783    ExportAll(&'ast ExportAll),
142784    ExportDecl(&'ast ExportDecl),
142785    ExportDefaultDecl(&'ast ExportDefaultDecl),
142786    ExportDefaultExpr(&'ast ExportDefaultExpr),
142787    ExportDefaultSpecifier(&'ast ExportDefaultSpecifier),
142788    ExportNamedSpecifier(&'ast ExportNamedSpecifier),
142789    ExportNamespaceSpecifier(&'ast ExportNamespaceSpecifier),
142790    ExportSpecifier(&'ast ExportSpecifier),
142791    Expr(&'ast Expr),
142792    ExprOrSpread(&'ast ExprOrSpread),
142793    ExprStmt(&'ast ExprStmt),
142794    FnDecl(&'ast FnDecl),
142795    FnExpr(&'ast FnExpr),
142796    ForHead(&'ast ForHead),
142797    ForInStmt(&'ast ForInStmt),
142798    ForOfStmt(&'ast ForOfStmt),
142799    ForStmt(&'ast ForStmt),
142800    Function(&'ast Function),
142801    GetterProp(&'ast GetterProp),
142802    Ident(&'ast Ident),
142803    IdentName(&'ast IdentName),
142804    IfStmt(&'ast IfStmt),
142805    Import(&'ast Import),
142806    ImportDecl(&'ast ImportDecl),
142807    ImportDefaultSpecifier(&'ast ImportDefaultSpecifier),
142808    ImportNamedSpecifier(&'ast ImportNamedSpecifier),
142809    ImportPhase(&'ast ImportPhase),
142810    ImportSpecifier(&'ast ImportSpecifier),
142811    ImportStarAsSpecifier(&'ast ImportStarAsSpecifier),
142812    ImportWith(&'ast ImportWith),
142813    ImportWithItem(&'ast ImportWithItem),
142814    Invalid(&'ast Invalid),
142815    JSXAttr(&'ast JSXAttr),
142816    JSXAttrName(&'ast JSXAttrName),
142817    JSXAttrOrSpread(&'ast JSXAttrOrSpread),
142818    JSXAttrValue(&'ast JSXAttrValue),
142819    JSXClosingElement(&'ast JSXClosingElement),
142820    JSXClosingFragment(&'ast JSXClosingFragment),
142821    JSXElement(&'ast JSXElement),
142822    JSXElementChild(&'ast JSXElementChild),
142823    JSXElementName(&'ast JSXElementName),
142824    JSXEmptyExpr(&'ast JSXEmptyExpr),
142825    JSXExpr(&'ast JSXExpr),
142826    JSXExprContainer(&'ast JSXExprContainer),
142827    JSXFragment(&'ast JSXFragment),
142828    JSXMemberExpr(&'ast JSXMemberExpr),
142829    JSXNamespacedName(&'ast JSXNamespacedName),
142830    JSXObject(&'ast JSXObject),
142831    JSXOpeningElement(&'ast JSXOpeningElement),
142832    JSXOpeningFragment(&'ast JSXOpeningFragment),
142833    JSXSpreadChild(&'ast JSXSpreadChild),
142834    JSXText(&'ast JSXText),
142835    Key(&'ast Key),
142836    KeyValuePatProp(&'ast KeyValuePatProp),
142837    KeyValueProp(&'ast KeyValueProp),
142838    LabeledStmt(&'ast LabeledStmt),
142839    Lit(&'ast Lit),
142840    MemberExpr(&'ast MemberExpr),
142841    MemberProp(&'ast MemberProp),
142842    MetaPropExpr(&'ast MetaPropExpr),
142843    MetaPropKind(&'ast MetaPropKind),
142844    MethodKind(&'ast MethodKind),
142845    MethodProp(&'ast MethodProp),
142846    Module(&'ast Module),
142847    ModuleDecl(&'ast ModuleDecl),
142848    ModuleExportName(&'ast ModuleExportName),
142849    ModuleItem(&'ast ModuleItem),
142850    NamedExport(&'ast NamedExport),
142851    NewExpr(&'ast NewExpr),
142852    Null(&'ast Null),
142853    Number(&'ast Number),
142854    ObjectLit(&'ast ObjectLit),
142855    ObjectPat(&'ast ObjectPat),
142856    ObjectPatProp(&'ast ObjectPatProp),
142857    OptCall(&'ast OptCall),
142858    OptChainBase(&'ast OptChainBase),
142859    OptChainExpr(&'ast OptChainExpr),
142860    Param(&'ast Param),
142861    ParamOrTsParamProp(&'ast ParamOrTsParamProp),
142862    ParenExpr(&'ast ParenExpr),
142863    Pat(&'ast Pat),
142864    PrivateMethod(&'ast PrivateMethod),
142865    PrivateName(&'ast PrivateName),
142866    PrivateProp(&'ast PrivateProp),
142867    Program(&'ast Program),
142868    Prop(&'ast Prop),
142869    PropName(&'ast PropName),
142870    PropOrSpread(&'ast PropOrSpread),
142871    Regex(&'ast Regex),
142872    RestPat(&'ast RestPat),
142873    ReturnStmt(&'ast ReturnStmt),
142874    Script(&'ast Script),
142875    SeqExpr(&'ast SeqExpr),
142876    SetterProp(&'ast SetterProp),
142877    SimpleAssignTarget(&'ast SimpleAssignTarget),
142878    SpreadElement(&'ast SpreadElement),
142879    StaticBlock(&'ast StaticBlock),
142880    Stmt(&'ast Stmt),
142881    Str(&'ast Str),
142882    Super(&'ast Super),
142883    SuperProp(&'ast SuperProp),
142884    SuperPropExpr(&'ast SuperPropExpr),
142885    SwitchCase(&'ast SwitchCase),
142886    SwitchStmt(&'ast SwitchStmt),
142887    TaggedTpl(&'ast TaggedTpl),
142888    ThisExpr(&'ast ThisExpr),
142889    ThrowStmt(&'ast ThrowStmt),
142890    Tpl(&'ast Tpl),
142891    TplElement(&'ast TplElement),
142892    TruePlusMinus(&'ast TruePlusMinus),
142893    TryStmt(&'ast TryStmt),
142894    TsArrayType(&'ast TsArrayType),
142895    TsAsExpr(&'ast TsAsExpr),
142896    TsCallSignatureDecl(&'ast TsCallSignatureDecl),
142897    TsConditionalType(&'ast TsConditionalType),
142898    TsConstAssertion(&'ast TsConstAssertion),
142899    TsConstructSignatureDecl(&'ast TsConstructSignatureDecl),
142900    TsConstructorType(&'ast TsConstructorType),
142901    TsEntityName(&'ast TsEntityName),
142902    TsEnumDecl(&'ast TsEnumDecl),
142903    TsEnumMember(&'ast TsEnumMember),
142904    TsEnumMemberId(&'ast TsEnumMemberId),
142905    TsExportAssignment(&'ast TsExportAssignment),
142906    TsExprWithTypeArgs(&'ast TsExprWithTypeArgs),
142907    TsExternalModuleRef(&'ast TsExternalModuleRef),
142908    TsFnOrConstructorType(&'ast TsFnOrConstructorType),
142909    TsFnParam(&'ast TsFnParam),
142910    TsFnType(&'ast TsFnType),
142911    TsGetterSignature(&'ast TsGetterSignature),
142912    TsImportEqualsDecl(&'ast TsImportEqualsDecl),
142913    TsImportType(&'ast TsImportType),
142914    TsIndexSignature(&'ast TsIndexSignature),
142915    TsIndexedAccessType(&'ast TsIndexedAccessType),
142916    TsInferType(&'ast TsInferType),
142917    TsInstantiation(&'ast TsInstantiation),
142918    TsInterfaceBody(&'ast TsInterfaceBody),
142919    TsInterfaceDecl(&'ast TsInterfaceDecl),
142920    TsIntersectionType(&'ast TsIntersectionType),
142921    TsKeywordType(&'ast TsKeywordType),
142922    TsKeywordTypeKind(&'ast TsKeywordTypeKind),
142923    TsLit(&'ast TsLit),
142924    TsLitType(&'ast TsLitType),
142925    TsMappedType(&'ast TsMappedType),
142926    TsMethodSignature(&'ast TsMethodSignature),
142927    TsModuleBlock(&'ast TsModuleBlock),
142928    TsModuleDecl(&'ast TsModuleDecl),
142929    TsModuleName(&'ast TsModuleName),
142930    TsModuleRef(&'ast TsModuleRef),
142931    TsNamespaceBody(&'ast TsNamespaceBody),
142932    TsNamespaceDecl(&'ast TsNamespaceDecl),
142933    TsNamespaceExportDecl(&'ast TsNamespaceExportDecl),
142934    TsNonNullExpr(&'ast TsNonNullExpr),
142935    TsOptionalType(&'ast TsOptionalType),
142936    TsParamProp(&'ast TsParamProp),
142937    TsParamPropParam(&'ast TsParamPropParam),
142938    TsParenthesizedType(&'ast TsParenthesizedType),
142939    TsPropertySignature(&'ast TsPropertySignature),
142940    TsQualifiedName(&'ast TsQualifiedName),
142941    TsRestType(&'ast TsRestType),
142942    TsSatisfiesExpr(&'ast TsSatisfiesExpr),
142943    TsSetterSignature(&'ast TsSetterSignature),
142944    TsThisType(&'ast TsThisType),
142945    TsThisTypeOrIdent(&'ast TsThisTypeOrIdent),
142946    TsTplLitType(&'ast TsTplLitType),
142947    TsTupleElement(&'ast TsTupleElement),
142948    TsTupleType(&'ast TsTupleType),
142949    TsType(&'ast TsType),
142950    TsTypeAliasDecl(&'ast TsTypeAliasDecl),
142951    TsTypeAnn(&'ast TsTypeAnn),
142952    TsTypeAssertion(&'ast TsTypeAssertion),
142953    TsTypeElement(&'ast TsTypeElement),
142954    TsTypeLit(&'ast TsTypeLit),
142955    TsTypeOperator(&'ast TsTypeOperator),
142956    TsTypeOperatorOp(&'ast TsTypeOperatorOp),
142957    TsTypeParam(&'ast TsTypeParam),
142958    TsTypeParamDecl(&'ast TsTypeParamDecl),
142959    TsTypeParamInstantiation(&'ast TsTypeParamInstantiation),
142960    TsTypePredicate(&'ast TsTypePredicate),
142961    TsTypeQuery(&'ast TsTypeQuery),
142962    TsTypeQueryExpr(&'ast TsTypeQueryExpr),
142963    TsTypeRef(&'ast TsTypeRef),
142964    TsUnionOrIntersectionType(&'ast TsUnionOrIntersectionType),
142965    TsUnionType(&'ast TsUnionType),
142966    UnaryExpr(&'ast UnaryExpr),
142967    UnaryOp(&'ast UnaryOp),
142968    UpdateExpr(&'ast UpdateExpr),
142969    UpdateOp(&'ast UpdateOp),
142970    UsingDecl(&'ast UsingDecl),
142971    VarDecl(&'ast VarDecl),
142972    VarDeclKind(&'ast VarDeclKind),
142973    VarDeclOrExpr(&'ast VarDeclOrExpr),
142974    VarDeclarator(&'ast VarDeclarator),
142975    WhileStmt(&'ast WhileStmt),
142976    WithStmt(&'ast WithStmt),
142977    YieldExpr(&'ast YieldExpr),
142978}
142979impl<'ast> NodeRef<'ast> {
142980    #[doc = r" This is not a part of semver-stable API. It is experimental and subject to change."]
142981    #[allow(unreachable_patterns)]
142982    pub fn experimental_raw_children<'a>(&'a self) -> Box<dyn 'a + Iterator<Item = NodeRef<'ast>>> {
142983        match self {
142984            NodeRef::Accessibility(node) => match node {
142985                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
142986            },
142987            NodeRef::ArrayLit(node) => {
142988                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
142989                    node.elems.iter().flat_map(|item| {
142990                        item.iter()
142991                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item)))
142992                    }),
142993                );
142994                Box::new(iterator)
142995            }
142996            NodeRef::ArrayPat(node) => {
142997                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
142998                    .chain(node.elems.iter().flat_map(|item| {
142999                        item.iter()
143000                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item)))
143001                    }))
143002                    .chain(node.type_ann.iter().flat_map(|item| {
143003                        let item = &*item;
143004                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143005                    }));
143006                Box::new(iterator)
143007            }
143008            NodeRef::ArrowExpr(node) => {
143009                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143010                    .chain(
143011                        node.params
143012                            .iter()
143013                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
143014                    )
143015                    .chain({
143016                        let item = &*node.body;
143017                        ::std::iter::once(NodeRef::BlockStmtOrExpr(&item))
143018                    })
143019                    .chain(node.type_params.iter().flat_map(|item| {
143020                        let item = &*item;
143021                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
143022                    }))
143023                    .chain(node.return_type.iter().flat_map(|item| {
143024                        let item = &*item;
143025                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143026                    }));
143027                Box::new(iterator)
143028            }
143029            NodeRef::AssignExpr(node) => {
143030                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143031                    .chain(::std::iter::once(NodeRef::AssignOp(&node.op)))
143032                    .chain(::std::iter::once(NodeRef::AssignTarget(&node.left)))
143033                    .chain({
143034                        let item = &*node.right;
143035                        ::std::iter::once(NodeRef::Expr(&item))
143036                    });
143037                Box::new(iterator)
143038            }
143039            NodeRef::AssignOp(node) => match node {
143040                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143041            },
143042            NodeRef::AssignPat(node) => {
143043                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143044                    .chain({
143045                        let item = &*node.left;
143046                        ::std::iter::once(NodeRef::Pat(&item))
143047                    })
143048                    .chain({
143049                        let item = &*node.right;
143050                        ::std::iter::once(NodeRef::Expr(&item))
143051                    });
143052                Box::new(iterator)
143053            }
143054            NodeRef::AssignPatProp(node) => {
143055                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143056                    .chain(::std::iter::once(NodeRef::BindingIdent(&node.key)))
143057                    .chain(node.value.iter().flat_map(|item| {
143058                        let item = &*item;
143059                        ::std::iter::once(NodeRef::Expr(&item))
143060                    }));
143061                Box::new(iterator)
143062            }
143063            NodeRef::AssignProp(node) => {
143064                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143065                    .chain(::std::iter::once(NodeRef::Ident(&node.key)))
143066                    .chain({
143067                        let item = &*node.value;
143068                        ::std::iter::once(NodeRef::Expr(&item))
143069                    });
143070                Box::new(iterator)
143071            }
143072            NodeRef::AssignTarget(node) => match node {
143073                AssignTarget::Simple(v0) => {
143074                    Box::new(::std::iter::once(NodeRef::SimpleAssignTarget(v0)))
143075                }
143076                AssignTarget::Pat(v0) => Box::new(::std::iter::once(NodeRef::AssignTargetPat(v0))),
143077                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143078            },
143079            NodeRef::AssignTargetPat(node) => match node {
143080                AssignTargetPat::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayPat(v0))),
143081                AssignTargetPat::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectPat(v0))),
143082                AssignTargetPat::Invalid(v0) => Box::new(::std::iter::once(NodeRef::Invalid(v0))),
143083                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143084            },
143085            NodeRef::AutoAccessor(node) => {
143086                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143087                    .chain(::std::iter::once(NodeRef::Key(&node.key)))
143088                    .chain(node.value.iter().flat_map(|item| {
143089                        let item = &*item;
143090                        ::std::iter::once(NodeRef::Expr(&item))
143091                    }))
143092                    .chain(node.type_ann.iter().flat_map(|item| {
143093                        let item = &*item;
143094                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143095                    }))
143096                    .chain(
143097                        node.decorators
143098                            .iter()
143099                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
143100                    )
143101                    .chain(
143102                        node.accessibility
143103                            .iter()
143104                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
143105                    );
143106                Box::new(iterator)
143107            }
143108            NodeRef::AwaitExpr(node) => {
143109                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143110                    let item = &*node.arg;
143111                    ::std::iter::once(NodeRef::Expr(&item))
143112                });
143113                Box::new(iterator)
143114            }
143115            NodeRef::BigInt(node) => {
143116                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143117                Box::new(iterator)
143118            }
143119            NodeRef::BinExpr(node) => {
143120                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143121                    .chain(::std::iter::once(NodeRef::BinaryOp(&node.op)))
143122                    .chain({
143123                        let item = &*node.left;
143124                        ::std::iter::once(NodeRef::Expr(&item))
143125                    })
143126                    .chain({
143127                        let item = &*node.right;
143128                        ::std::iter::once(NodeRef::Expr(&item))
143129                    });
143130                Box::new(iterator)
143131            }
143132            NodeRef::BinaryOp(node) => match node {
143133                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143134            },
143135            NodeRef::BindingIdent(node) => {
143136                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143137                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
143138                    .chain(node.type_ann.iter().flat_map(|item| {
143139                        let item = &*item;
143140                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143141                    }));
143142                Box::new(iterator)
143143            }
143144            NodeRef::BlockStmt(node) => {
143145                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
143146                    node.stmts
143147                        .iter()
143148                        .flat_map(|item| ::std::iter::once(NodeRef::Stmt(&item))),
143149                );
143150                Box::new(iterator)
143151            }
143152            NodeRef::BlockStmtOrExpr(node) => match node {
143153                BlockStmtOrExpr::BlockStmt(v0) => {
143154                    Box::new(::std::iter::once(NodeRef::BlockStmt(v0)))
143155                }
143156                BlockStmtOrExpr::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
143157                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143158            },
143159            NodeRef::Bool(node) => {
143160                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143161                Box::new(iterator)
143162            }
143163            NodeRef::BreakStmt(node) => {
143164                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
143165                    node.label
143166                        .iter()
143167                        .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
143168                );
143169                Box::new(iterator)
143170            }
143171            NodeRef::CallExpr(node) => {
143172                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143173                    .chain(::std::iter::once(NodeRef::Callee(&node.callee)))
143174                    .chain(
143175                        node.args
143176                            .iter()
143177                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item))),
143178                    )
143179                    .chain(node.type_args.iter().flat_map(|item| {
143180                        let item = &*item;
143181                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
143182                    }));
143183                Box::new(iterator)
143184            }
143185            NodeRef::Callee(node) => match node {
143186                Callee::Super(v0) => Box::new(::std::iter::once(NodeRef::Super(v0))),
143187                Callee::Import(v0) => Box::new(::std::iter::once(NodeRef::Import(v0))),
143188                Callee::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
143189                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143190            },
143191            NodeRef::CatchClause(node) => {
143192                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143193                    .chain(
143194                        node.param
143195                            .iter()
143196                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
143197                    )
143198                    .chain(::std::iter::once(NodeRef::BlockStmt(&node.body)));
143199                Box::new(iterator)
143200            }
143201            NodeRef::Class(node) => {
143202                let iterator =
143203                    ::std::iter::empty::<NodeRef<'ast>>()
143204                        .chain(
143205                            node.decorators
143206                                .iter()
143207                                .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
143208                        )
143209                        .chain(
143210                            node.body
143211                                .iter()
143212                                .flat_map(|item| ::std::iter::once(NodeRef::ClassMember(&item))),
143213                        )
143214                        .chain(node.super_class.iter().flat_map(|item| {
143215                            let item = &*item;
143216                            ::std::iter::once(NodeRef::Expr(&item))
143217                        }))
143218                        .chain(node.type_params.iter().flat_map(|item| {
143219                            let item = &*item;
143220                            ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
143221                        }))
143222                        .chain(node.super_type_params.iter().flat_map(|item| {
143223                            let item = &*item;
143224                            ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
143225                        }))
143226                        .chain(node.implements.iter().flat_map(|item| {
143227                            ::std::iter::once(NodeRef::TsExprWithTypeArgs(&item))
143228                        }));
143229                Box::new(iterator)
143230            }
143231            NodeRef::ClassDecl(node) => {
143232                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143233                    .chain(::std::iter::once(NodeRef::Ident(&node.ident)))
143234                    .chain({
143235                        let item = &*node.class;
143236                        ::std::iter::once(NodeRef::Class(&item))
143237                    });
143238                Box::new(iterator)
143239            }
143240            NodeRef::ClassExpr(node) => {
143241                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143242                    .chain(
143243                        node.ident
143244                            .iter()
143245                            .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
143246                    )
143247                    .chain({
143248                        let item = &*node.class;
143249                        ::std::iter::once(NodeRef::Class(&item))
143250                    });
143251                Box::new(iterator)
143252            }
143253            NodeRef::ClassMember(node) => match node {
143254                ClassMember::Constructor(v0) => {
143255                    Box::new(::std::iter::once(NodeRef::Constructor(v0)))
143256                }
143257                ClassMember::Method(v0) => Box::new(::std::iter::once(NodeRef::ClassMethod(v0))),
143258                ClassMember::PrivateMethod(v0) => {
143259                    Box::new(::std::iter::once(NodeRef::PrivateMethod(v0)))
143260                }
143261                ClassMember::ClassProp(v0) => Box::new(::std::iter::once(NodeRef::ClassProp(v0))),
143262                ClassMember::PrivateProp(v0) => {
143263                    Box::new(::std::iter::once(NodeRef::PrivateProp(v0)))
143264                }
143265                ClassMember::TsIndexSignature(v0) => {
143266                    Box::new(::std::iter::once(NodeRef::TsIndexSignature(v0)))
143267                }
143268                ClassMember::Empty(v0) => Box::new(::std::iter::once(NodeRef::EmptyStmt(v0))),
143269                ClassMember::StaticBlock(v0) => {
143270                    Box::new(::std::iter::once(NodeRef::StaticBlock(v0)))
143271                }
143272                ClassMember::AutoAccessor(v0) => {
143273                    Box::new(::std::iter::once(NodeRef::AutoAccessor(v0)))
143274                }
143275                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143276            },
143277            NodeRef::ClassMethod(node) => {
143278                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143279                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143280                    .chain({
143281                        let item = &*node.function;
143282                        ::std::iter::once(NodeRef::Function(&item))
143283                    })
143284                    .chain(::std::iter::once(NodeRef::MethodKind(&node.kind)))
143285                    .chain(
143286                        node.accessibility
143287                            .iter()
143288                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
143289                    );
143290                Box::new(iterator)
143291            }
143292            NodeRef::ClassProp(node) => {
143293                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143294                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143295                    .chain(node.value.iter().flat_map(|item| {
143296                        let item = &*item;
143297                        ::std::iter::once(NodeRef::Expr(&item))
143298                    }))
143299                    .chain(node.type_ann.iter().flat_map(|item| {
143300                        let item = &*item;
143301                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143302                    }))
143303                    .chain(
143304                        node.decorators
143305                            .iter()
143306                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
143307                    )
143308                    .chain(
143309                        node.accessibility
143310                            .iter()
143311                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
143312                    );
143313                Box::new(iterator)
143314            }
143315            NodeRef::ComputedPropName(node) => {
143316                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143317                    let item = &*node.expr;
143318                    ::std::iter::once(NodeRef::Expr(&item))
143319                });
143320                Box::new(iterator)
143321            }
143322            NodeRef::CondExpr(node) => {
143323                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143324                    .chain({
143325                        let item = &*node.test;
143326                        ::std::iter::once(NodeRef::Expr(&item))
143327                    })
143328                    .chain({
143329                        let item = &*node.cons;
143330                        ::std::iter::once(NodeRef::Expr(&item))
143331                    })
143332                    .chain({
143333                        let item = &*node.alt;
143334                        ::std::iter::once(NodeRef::Expr(&item))
143335                    });
143336                Box::new(iterator)
143337            }
143338            NodeRef::Constructor(node) => {
143339                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143340                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143341                    .chain(
143342                        node.params
143343                            .iter()
143344                            .flat_map(|item| ::std::iter::once(NodeRef::ParamOrTsParamProp(&item))),
143345                    )
143346                    .chain(
143347                        node.body
143348                            .iter()
143349                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
143350                    )
143351                    .chain(
143352                        node.accessibility
143353                            .iter()
143354                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
143355                    );
143356                Box::new(iterator)
143357            }
143358            NodeRef::ContinueStmt(node) => {
143359                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
143360                    node.label
143361                        .iter()
143362                        .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
143363                );
143364                Box::new(iterator)
143365            }
143366            NodeRef::DebuggerStmt(node) => {
143367                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143368                Box::new(iterator)
143369            }
143370            NodeRef::Decl(node) => match node {
143371                Decl::Class(v0) => Box::new(::std::iter::once(NodeRef::ClassDecl(v0))),
143372                Decl::Fn(v0) => Box::new(::std::iter::once(NodeRef::FnDecl(v0))),
143373                Decl::Var(v0) => Box::new(::std::iter::once(NodeRef::VarDecl(v0))),
143374                Decl::Using(v0) => Box::new(::std::iter::once(NodeRef::UsingDecl(v0))),
143375                Decl::TsInterface(v0) => Box::new(::std::iter::once(NodeRef::TsInterfaceDecl(v0))),
143376                Decl::TsTypeAlias(v0) => Box::new(::std::iter::once(NodeRef::TsTypeAliasDecl(v0))),
143377                Decl::TsEnum(v0) => Box::new(::std::iter::once(NodeRef::TsEnumDecl(v0))),
143378                Decl::TsModule(v0) => Box::new(::std::iter::once(NodeRef::TsModuleDecl(v0))),
143379                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143380            },
143381            NodeRef::Decorator(node) => {
143382                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143383                    let item = &*node.expr;
143384                    ::std::iter::once(NodeRef::Expr(&item))
143385                });
143386                Box::new(iterator)
143387            }
143388            NodeRef::DefaultDecl(node) => match node {
143389                DefaultDecl::Class(v0) => Box::new(::std::iter::once(NodeRef::ClassExpr(v0))),
143390                DefaultDecl::Fn(v0) => Box::new(::std::iter::once(NodeRef::FnExpr(v0))),
143391                DefaultDecl::TsInterfaceDecl(v0) => {
143392                    Box::new(::std::iter::once(NodeRef::TsInterfaceDecl(v0)))
143393                }
143394                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143395            },
143396            NodeRef::DoWhileStmt(node) => {
143397                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143398                    .chain({
143399                        let item = &*node.test;
143400                        ::std::iter::once(NodeRef::Expr(&item))
143401                    })
143402                    .chain({
143403                        let item = &*node.body;
143404                        ::std::iter::once(NodeRef::Stmt(&item))
143405                    });
143406                Box::new(iterator)
143407            }
143408            NodeRef::EmptyStmt(node) => {
143409                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143410                Box::new(iterator)
143411            }
143412            NodeRef::ExportAll(node) => {
143413                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143414                    .chain({
143415                        let item = &*node.src;
143416                        ::std::iter::once(NodeRef::Str(&item))
143417                    })
143418                    .chain(node.with.iter().flat_map(|item| {
143419                        let item = &*item;
143420                        ::std::iter::once(NodeRef::ObjectLit(&item))
143421                    }));
143422                Box::new(iterator)
143423            }
143424            NodeRef::ExportDecl(node) => {
143425                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143426                    .chain(::std::iter::once(NodeRef::Decl(&node.decl)));
143427                Box::new(iterator)
143428            }
143429            NodeRef::ExportDefaultDecl(node) => {
143430                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143431                    .chain(::std::iter::once(NodeRef::DefaultDecl(&node.decl)));
143432                Box::new(iterator)
143433            }
143434            NodeRef::ExportDefaultExpr(node) => {
143435                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143436                    let item = &*node.expr;
143437                    ::std::iter::once(NodeRef::Expr(&item))
143438                });
143439                Box::new(iterator)
143440            }
143441            NodeRef::ExportDefaultSpecifier(node) => {
143442                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143443                    .chain(::std::iter::once(NodeRef::Ident(&node.exported)));
143444                Box::new(iterator)
143445            }
143446            NodeRef::ExportNamedSpecifier(node) => {
143447                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143448                    .chain(::std::iter::once(NodeRef::ModuleExportName(&node.orig)))
143449                    .chain(
143450                        node.exported
143451                            .iter()
143452                            .flat_map(|item| ::std::iter::once(NodeRef::ModuleExportName(&item))),
143453                    );
143454                Box::new(iterator)
143455            }
143456            NodeRef::ExportNamespaceSpecifier(node) => {
143457                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143458                    .chain(::std::iter::once(NodeRef::ModuleExportName(&node.name)));
143459                Box::new(iterator)
143460            }
143461            NodeRef::ExportSpecifier(node) => match node {
143462                ExportSpecifier::Namespace(v0) => {
143463                    Box::new(::std::iter::once(NodeRef::ExportNamespaceSpecifier(v0)))
143464                }
143465                ExportSpecifier::Default(v0) => {
143466                    Box::new(::std::iter::once(NodeRef::ExportDefaultSpecifier(v0)))
143467                }
143468                ExportSpecifier::Named(v0) => {
143469                    Box::new(::std::iter::once(NodeRef::ExportNamedSpecifier(v0)))
143470                }
143471                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143472            },
143473            NodeRef::Expr(node) => match node {
143474                Expr::This(v0) => Box::new(::std::iter::once(NodeRef::ThisExpr(v0))),
143475                Expr::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayLit(v0))),
143476                Expr::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectLit(v0))),
143477                Expr::Fn(v0) => Box::new(::std::iter::once(NodeRef::FnExpr(v0))),
143478                Expr::Unary(v0) => Box::new(::std::iter::once(NodeRef::UnaryExpr(v0))),
143479                Expr::Update(v0) => Box::new(::std::iter::once(NodeRef::UpdateExpr(v0))),
143480                Expr::Bin(v0) => Box::new(::std::iter::once(NodeRef::BinExpr(v0))),
143481                Expr::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignExpr(v0))),
143482                Expr::Member(v0) => Box::new(::std::iter::once(NodeRef::MemberExpr(v0))),
143483                Expr::SuperProp(v0) => Box::new(::std::iter::once(NodeRef::SuperPropExpr(v0))),
143484                Expr::Cond(v0) => Box::new(::std::iter::once(NodeRef::CondExpr(v0))),
143485                Expr::Call(v0) => Box::new(::std::iter::once(NodeRef::CallExpr(v0))),
143486                Expr::New(v0) => Box::new(::std::iter::once(NodeRef::NewExpr(v0))),
143487                Expr::Seq(v0) => Box::new(::std::iter::once(NodeRef::SeqExpr(v0))),
143488                Expr::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
143489                Expr::Lit(v0) => Box::new(::std::iter::once(NodeRef::Lit(v0))),
143490                Expr::Tpl(v0) => Box::new(::std::iter::once(NodeRef::Tpl(v0))),
143491                Expr::TaggedTpl(v0) => Box::new(::std::iter::once(NodeRef::TaggedTpl(v0))),
143492                Expr::Arrow(v0) => Box::new(::std::iter::once(NodeRef::ArrowExpr(v0))),
143493                Expr::Class(v0) => Box::new(::std::iter::once(NodeRef::ClassExpr(v0))),
143494                Expr::Yield(v0) => Box::new(::std::iter::once(NodeRef::YieldExpr(v0))),
143495                Expr::MetaProp(v0) => Box::new(::std::iter::once(NodeRef::MetaPropExpr(v0))),
143496                Expr::Await(v0) => Box::new(::std::iter::once(NodeRef::AwaitExpr(v0))),
143497                Expr::Paren(v0) => Box::new(::std::iter::once(NodeRef::ParenExpr(v0))),
143498                Expr::JSXMember(v0) => Box::new(::std::iter::once(NodeRef::JSXMemberExpr(v0))),
143499                Expr::JSXNamespacedName(v0) => {
143500                    Box::new(::std::iter::once(NodeRef::JSXNamespacedName(v0)))
143501                }
143502                Expr::JSXEmpty(v0) => Box::new(::std::iter::once(NodeRef::JSXEmptyExpr(v0))),
143503                Expr::JSXElement(v0) => Box::new(::std::iter::once(NodeRef::JSXElement(v0))),
143504                Expr::JSXFragment(v0) => Box::new(::std::iter::once(NodeRef::JSXFragment(v0))),
143505                Expr::TsTypeAssertion(v0) => {
143506                    Box::new(::std::iter::once(NodeRef::TsTypeAssertion(v0)))
143507                }
143508                Expr::TsConstAssertion(v0) => {
143509                    Box::new(::std::iter::once(NodeRef::TsConstAssertion(v0)))
143510                }
143511                Expr::TsNonNull(v0) => Box::new(::std::iter::once(NodeRef::TsNonNullExpr(v0))),
143512                Expr::TsAs(v0) => Box::new(::std::iter::once(NodeRef::TsAsExpr(v0))),
143513                Expr::TsInstantiation(v0) => {
143514                    Box::new(::std::iter::once(NodeRef::TsInstantiation(v0)))
143515                }
143516                Expr::TsSatisfies(v0) => Box::new(::std::iter::once(NodeRef::TsSatisfiesExpr(v0))),
143517                Expr::PrivateName(v0) => Box::new(::std::iter::once(NodeRef::PrivateName(v0))),
143518                Expr::OptChain(v0) => Box::new(::std::iter::once(NodeRef::OptChainExpr(v0))),
143519                Expr::Invalid(v0) => Box::new(::std::iter::once(NodeRef::Invalid(v0))),
143520                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143521            },
143522            NodeRef::ExprOrSpread(node) => {
143523                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143524                    let item = &*node.expr;
143525                    ::std::iter::once(NodeRef::Expr(&item))
143526                });
143527                Box::new(iterator)
143528            }
143529            NodeRef::ExprStmt(node) => {
143530                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143531                    let item = &*node.expr;
143532                    ::std::iter::once(NodeRef::Expr(&item))
143533                });
143534                Box::new(iterator)
143535            }
143536            NodeRef::FnDecl(node) => {
143537                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143538                    .chain(::std::iter::once(NodeRef::Ident(&node.ident)))
143539                    .chain({
143540                        let item = &*node.function;
143541                        ::std::iter::once(NodeRef::Function(&item))
143542                    });
143543                Box::new(iterator)
143544            }
143545            NodeRef::FnExpr(node) => {
143546                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143547                    .chain(
143548                        node.ident
143549                            .iter()
143550                            .flat_map(|item| ::std::iter::once(NodeRef::Ident(&item))),
143551                    )
143552                    .chain({
143553                        let item = &*node.function;
143554                        ::std::iter::once(NodeRef::Function(&item))
143555                    });
143556                Box::new(iterator)
143557            }
143558            NodeRef::ForHead(node) => match node {
143559                ForHead::VarDecl(v0) => Box::new(::std::iter::once(NodeRef::VarDecl(v0))),
143560                ForHead::UsingDecl(v0) => Box::new(::std::iter::once(NodeRef::UsingDecl(v0))),
143561                ForHead::Pat(v0) => Box::new(::std::iter::once(NodeRef::Pat(v0))),
143562                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143563            },
143564            NodeRef::ForInStmt(node) => {
143565                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143566                    .chain(::std::iter::once(NodeRef::ForHead(&node.left)))
143567                    .chain({
143568                        let item = &*node.right;
143569                        ::std::iter::once(NodeRef::Expr(&item))
143570                    })
143571                    .chain({
143572                        let item = &*node.body;
143573                        ::std::iter::once(NodeRef::Stmt(&item))
143574                    });
143575                Box::new(iterator)
143576            }
143577            NodeRef::ForOfStmt(node) => {
143578                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143579                    .chain(::std::iter::once(NodeRef::ForHead(&node.left)))
143580                    .chain({
143581                        let item = &*node.right;
143582                        ::std::iter::once(NodeRef::Expr(&item))
143583                    })
143584                    .chain({
143585                        let item = &*node.body;
143586                        ::std::iter::once(NodeRef::Stmt(&item))
143587                    });
143588                Box::new(iterator)
143589            }
143590            NodeRef::ForStmt(node) => {
143591                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143592                    .chain(
143593                        node.init
143594                            .iter()
143595                            .flat_map(|item| ::std::iter::once(NodeRef::VarDeclOrExpr(&item))),
143596                    )
143597                    .chain(node.test.iter().flat_map(|item| {
143598                        let item = &*item;
143599                        ::std::iter::once(NodeRef::Expr(&item))
143600                    }))
143601                    .chain(node.update.iter().flat_map(|item| {
143602                        let item = &*item;
143603                        ::std::iter::once(NodeRef::Expr(&item))
143604                    }))
143605                    .chain({
143606                        let item = &*node.body;
143607                        ::std::iter::once(NodeRef::Stmt(&item))
143608                    });
143609                Box::new(iterator)
143610            }
143611            NodeRef::Function(node) => {
143612                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143613                    .chain(
143614                        node.params
143615                            .iter()
143616                            .flat_map(|item| ::std::iter::once(NodeRef::Param(&item))),
143617                    )
143618                    .chain(
143619                        node.decorators
143620                            .iter()
143621                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
143622                    )
143623                    .chain(
143624                        node.body
143625                            .iter()
143626                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
143627                    )
143628                    .chain(node.type_params.iter().flat_map(|item| {
143629                        let item = &*item;
143630                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
143631                    }))
143632                    .chain(node.return_type.iter().flat_map(|item| {
143633                        let item = &*item;
143634                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143635                    }));
143636                Box::new(iterator)
143637            }
143638            NodeRef::GetterProp(node) => {
143639                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143640                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143641                    .chain(node.type_ann.iter().flat_map(|item| {
143642                        let item = &*item;
143643                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
143644                    }))
143645                    .chain(
143646                        node.body
143647                            .iter()
143648                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
143649                    );
143650                Box::new(iterator)
143651            }
143652            NodeRef::Ident(node) => {
143653                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143654                Box::new(iterator)
143655            }
143656            NodeRef::IdentName(node) => {
143657                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143658                Box::new(iterator)
143659            }
143660            NodeRef::IfStmt(node) => {
143661                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143662                    .chain({
143663                        let item = &*node.test;
143664                        ::std::iter::once(NodeRef::Expr(&item))
143665                    })
143666                    .chain({
143667                        let item = &*node.cons;
143668                        ::std::iter::once(NodeRef::Stmt(&item))
143669                    })
143670                    .chain(node.alt.iter().flat_map(|item| {
143671                        let item = &*item;
143672                        ::std::iter::once(NodeRef::Stmt(&item))
143673                    }));
143674                Box::new(iterator)
143675            }
143676            NodeRef::Import(node) => {
143677                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143678                    .chain(::std::iter::once(NodeRef::ImportPhase(&node.phase)));
143679                Box::new(iterator)
143680            }
143681            NodeRef::ImportDecl(node) => {
143682                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143683                    .chain(
143684                        node.specifiers
143685                            .iter()
143686                            .flat_map(|item| ::std::iter::once(NodeRef::ImportSpecifier(&item))),
143687                    )
143688                    .chain({
143689                        let item = &*node.src;
143690                        ::std::iter::once(NodeRef::Str(&item))
143691                    })
143692                    .chain(node.with.iter().flat_map(|item| {
143693                        let item = &*item;
143694                        ::std::iter::once(NodeRef::ObjectLit(&item))
143695                    }))
143696                    .chain(::std::iter::once(NodeRef::ImportPhase(&node.phase)));
143697                Box::new(iterator)
143698            }
143699            NodeRef::ImportDefaultSpecifier(node) => {
143700                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143701                    .chain(::std::iter::once(NodeRef::Ident(&node.local)));
143702                Box::new(iterator)
143703            }
143704            NodeRef::ImportNamedSpecifier(node) => {
143705                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143706                    .chain(::std::iter::once(NodeRef::Ident(&node.local)))
143707                    .chain(
143708                        node.imported
143709                            .iter()
143710                            .flat_map(|item| ::std::iter::once(NodeRef::ModuleExportName(&item))),
143711                    );
143712                Box::new(iterator)
143713            }
143714            NodeRef::ImportPhase(node) => match node {
143715                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143716            },
143717            NodeRef::ImportSpecifier(node) => match node {
143718                ImportSpecifier::Named(v0) => {
143719                    Box::new(::std::iter::once(NodeRef::ImportNamedSpecifier(v0)))
143720                }
143721                ImportSpecifier::Default(v0) => {
143722                    Box::new(::std::iter::once(NodeRef::ImportDefaultSpecifier(v0)))
143723                }
143724                ImportSpecifier::Namespace(v0) => {
143725                    Box::new(::std::iter::once(NodeRef::ImportStarAsSpecifier(v0)))
143726                }
143727                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143728            },
143729            NodeRef::ImportStarAsSpecifier(node) => {
143730                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143731                    .chain(::std::iter::once(NodeRef::Ident(&node.local)));
143732                Box::new(iterator)
143733            }
143734            NodeRef::ImportWith(node) => {
143735                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
143736                    node.values
143737                        .iter()
143738                        .flat_map(|item| ::std::iter::once(NodeRef::ImportWithItem(&item))),
143739                );
143740                Box::new(iterator)
143741            }
143742            NodeRef::ImportWithItem(node) => {
143743                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143744                    .chain(::std::iter::once(NodeRef::IdentName(&node.key)))
143745                    .chain(::std::iter::once(NodeRef::Str(&node.value)));
143746                Box::new(iterator)
143747            }
143748            NodeRef::Invalid(node) => {
143749                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143750                Box::new(iterator)
143751            }
143752            NodeRef::JSXAttr(node) => {
143753                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143754                    .chain(::std::iter::once(NodeRef::JSXAttrName(&node.name)))
143755                    .chain(
143756                        node.value
143757                            .iter()
143758                            .flat_map(|item| ::std::iter::once(NodeRef::JSXAttrValue(&item))),
143759                    );
143760                Box::new(iterator)
143761            }
143762            NodeRef::JSXAttrName(node) => match node {
143763                JSXAttrName::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
143764                JSXAttrName::JSXNamespacedName(v0) => {
143765                    Box::new(::std::iter::once(NodeRef::JSXNamespacedName(v0)))
143766                }
143767                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143768            },
143769            NodeRef::JSXAttrOrSpread(node) => match node {
143770                JSXAttrOrSpread::JSXAttr(v0) => Box::new(::std::iter::once(NodeRef::JSXAttr(v0))),
143771                JSXAttrOrSpread::SpreadElement(v0) => {
143772                    Box::new(::std::iter::once(NodeRef::SpreadElement(v0)))
143773                }
143774                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143775            },
143776            NodeRef::JSXAttrValue(node) => match node {
143777                JSXAttrValue::Lit(v0) => Box::new(::std::iter::once(NodeRef::Lit(v0))),
143778                JSXAttrValue::JSXExprContainer(v0) => {
143779                    Box::new(::std::iter::once(NodeRef::JSXExprContainer(v0)))
143780                }
143781                JSXAttrValue::JSXElement(v0) => {
143782                    Box::new(::std::iter::once(NodeRef::JSXElement(v0)))
143783                }
143784                JSXAttrValue::JSXFragment(v0) => {
143785                    Box::new(::std::iter::once(NodeRef::JSXFragment(v0)))
143786                }
143787                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143788            },
143789            NodeRef::JSXClosingElement(node) => {
143790                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143791                    .chain(::std::iter::once(NodeRef::JSXElementName(&node.name)));
143792                Box::new(iterator)
143793            }
143794            NodeRef::JSXClosingFragment(node) => {
143795                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143796                Box::new(iterator)
143797            }
143798            NodeRef::JSXElement(node) => {
143799                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143800                    .chain(::std::iter::once(NodeRef::JSXOpeningElement(&node.opening)))
143801                    .chain(
143802                        node.children
143803                            .iter()
143804                            .flat_map(|item| ::std::iter::once(NodeRef::JSXElementChild(&item))),
143805                    )
143806                    .chain(
143807                        node.closing
143808                            .iter()
143809                            .flat_map(|item| ::std::iter::once(NodeRef::JSXClosingElement(&item))),
143810                    );
143811                Box::new(iterator)
143812            }
143813            NodeRef::JSXElementChild(node) => match node {
143814                JSXElementChild::JSXText(v0) => Box::new(::std::iter::once(NodeRef::JSXText(v0))),
143815                JSXElementChild::JSXExprContainer(v0) => {
143816                    Box::new(::std::iter::once(NodeRef::JSXExprContainer(v0)))
143817                }
143818                JSXElementChild::JSXSpreadChild(v0) => {
143819                    Box::new(::std::iter::once(NodeRef::JSXSpreadChild(v0)))
143820                }
143821                JSXElementChild::JSXElement(v0) => {
143822                    Box::new(::std::iter::once(NodeRef::JSXElement(v0)))
143823                }
143824                JSXElementChild::JSXFragment(v0) => {
143825                    Box::new(::std::iter::once(NodeRef::JSXFragment(v0)))
143826                }
143827                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143828            },
143829            NodeRef::JSXElementName(node) => match node {
143830                JSXElementName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
143831                JSXElementName::JSXMemberExpr(v0) => {
143832                    Box::new(::std::iter::once(NodeRef::JSXMemberExpr(v0)))
143833                }
143834                JSXElementName::JSXNamespacedName(v0) => {
143835                    Box::new(::std::iter::once(NodeRef::JSXNamespacedName(v0)))
143836                }
143837                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143838            },
143839            NodeRef::JSXEmptyExpr(node) => {
143840                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143841                Box::new(iterator)
143842            }
143843            NodeRef::JSXExpr(node) => match node {
143844                JSXExpr::JSXEmptyExpr(v0) => Box::new(::std::iter::once(NodeRef::JSXEmptyExpr(v0))),
143845                JSXExpr::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
143846                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143847            },
143848            NodeRef::JSXExprContainer(node) => {
143849                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143850                    .chain(::std::iter::once(NodeRef::JSXExpr(&node.expr)));
143851                Box::new(iterator)
143852            }
143853            NodeRef::JSXFragment(node) => {
143854                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143855                    .chain(::std::iter::once(NodeRef::JSXOpeningFragment(
143856                        &node.opening,
143857                    )))
143858                    .chain(
143859                        node.children
143860                            .iter()
143861                            .flat_map(|item| ::std::iter::once(NodeRef::JSXElementChild(&item))),
143862                    )
143863                    .chain(::std::iter::once(NodeRef::JSXClosingFragment(
143864                        &node.closing,
143865                    )));
143866                Box::new(iterator)
143867            }
143868            NodeRef::JSXMemberExpr(node) => {
143869                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143870                    .chain(::std::iter::once(NodeRef::JSXObject(&node.obj)))
143871                    .chain(::std::iter::once(NodeRef::IdentName(&node.prop)));
143872                Box::new(iterator)
143873            }
143874            NodeRef::JSXNamespacedName(node) => {
143875                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143876                    .chain(::std::iter::once(NodeRef::IdentName(&node.ns)))
143877                    .chain(::std::iter::once(NodeRef::IdentName(&node.name)));
143878                Box::new(iterator)
143879            }
143880            NodeRef::JSXObject(node) => match node {
143881                JSXObject::JSXMemberExpr(v0) => {
143882                    Box::new(::std::iter::once(NodeRef::JSXMemberExpr(v0)))
143883                }
143884                JSXObject::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
143885                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143886            },
143887            NodeRef::JSXOpeningElement(node) => {
143888                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143889                    .chain(::std::iter::once(NodeRef::JSXElementName(&node.name)))
143890                    .chain(
143891                        node.attrs
143892                            .iter()
143893                            .flat_map(|item| ::std::iter::once(NodeRef::JSXAttrOrSpread(&item))),
143894                    )
143895                    .chain(node.type_args.iter().flat_map(|item| {
143896                        let item = &*item;
143897                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
143898                    }));
143899                Box::new(iterator)
143900            }
143901            NodeRef::JSXOpeningFragment(node) => {
143902                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143903                Box::new(iterator)
143904            }
143905            NodeRef::JSXSpreadChild(node) => {
143906                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
143907                    let item = &*node.expr;
143908                    ::std::iter::once(NodeRef::Expr(&item))
143909                });
143910                Box::new(iterator)
143911            }
143912            NodeRef::JSXText(node) => {
143913                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
143914                Box::new(iterator)
143915            }
143916            NodeRef::Key(node) => match node {
143917                Key::Private(v0) => Box::new(::std::iter::once(NodeRef::PrivateName(v0))),
143918                Key::Public(v0) => Box::new(::std::iter::once(NodeRef::PropName(v0))),
143919                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143920            },
143921            NodeRef::KeyValuePatProp(node) => {
143922                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143923                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143924                    .chain({
143925                        let item = &*node.value;
143926                        ::std::iter::once(NodeRef::Pat(&item))
143927                    });
143928                Box::new(iterator)
143929            }
143930            NodeRef::KeyValueProp(node) => {
143931                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143932                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143933                    .chain({
143934                        let item = &*node.value;
143935                        ::std::iter::once(NodeRef::Expr(&item))
143936                    });
143937                Box::new(iterator)
143938            }
143939            NodeRef::LabeledStmt(node) => {
143940                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143941                    .chain(::std::iter::once(NodeRef::Ident(&node.label)))
143942                    .chain({
143943                        let item = &*node.body;
143944                        ::std::iter::once(NodeRef::Stmt(&item))
143945                    });
143946                Box::new(iterator)
143947            }
143948            NodeRef::Lit(node) => match node {
143949                Lit::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
143950                Lit::Bool(v0) => Box::new(::std::iter::once(NodeRef::Bool(v0))),
143951                Lit::Null(v0) => Box::new(::std::iter::once(NodeRef::Null(v0))),
143952                Lit::Num(v0) => Box::new(::std::iter::once(NodeRef::Number(v0))),
143953                Lit::BigInt(v0) => Box::new(::std::iter::once(NodeRef::BigInt(v0))),
143954                Lit::Regex(v0) => Box::new(::std::iter::once(NodeRef::Regex(v0))),
143955                Lit::JSXText(v0) => Box::new(::std::iter::once(NodeRef::JSXText(v0))),
143956                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143957            },
143958            NodeRef::MemberExpr(node) => {
143959                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143960                    .chain({
143961                        let item = &*node.obj;
143962                        ::std::iter::once(NodeRef::Expr(&item))
143963                    })
143964                    .chain(::std::iter::once(NodeRef::MemberProp(&node.prop)));
143965                Box::new(iterator)
143966            }
143967            NodeRef::MemberProp(node) => match node {
143968                MemberProp::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
143969                MemberProp::PrivateName(v0) => {
143970                    Box::new(::std::iter::once(NodeRef::PrivateName(v0)))
143971                }
143972                MemberProp::Computed(v0) => {
143973                    Box::new(::std::iter::once(NodeRef::ComputedPropName(v0)))
143974                }
143975                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143976            },
143977            NodeRef::MetaPropExpr(node) => {
143978                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143979                    .chain(::std::iter::once(NodeRef::MetaPropKind(&node.kind)));
143980                Box::new(iterator)
143981            }
143982            NodeRef::MetaPropKind(node) => match node {
143983                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143984            },
143985            NodeRef::MethodKind(node) => match node {
143986                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
143987            },
143988            NodeRef::MethodProp(node) => {
143989                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
143990                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
143991                    .chain({
143992                        let item = &*node.function;
143993                        ::std::iter::once(NodeRef::Function(&item))
143994                    });
143995                Box::new(iterator)
143996            }
143997            NodeRef::Module(node) => {
143998                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
143999                    node.body
144000                        .iter()
144001                        .flat_map(|item| ::std::iter::once(NodeRef::ModuleItem(&item))),
144002                );
144003                Box::new(iterator)
144004            }
144005            NodeRef::ModuleDecl(node) => match node {
144006                ModuleDecl::Import(v0) => Box::new(::std::iter::once(NodeRef::ImportDecl(v0))),
144007                ModuleDecl::ExportDecl(v0) => Box::new(::std::iter::once(NodeRef::ExportDecl(v0))),
144008                ModuleDecl::ExportNamed(v0) => {
144009                    Box::new(::std::iter::once(NodeRef::NamedExport(v0)))
144010                }
144011                ModuleDecl::ExportDefaultDecl(v0) => {
144012                    Box::new(::std::iter::once(NodeRef::ExportDefaultDecl(v0)))
144013                }
144014                ModuleDecl::ExportDefaultExpr(v0) => {
144015                    Box::new(::std::iter::once(NodeRef::ExportDefaultExpr(v0)))
144016                }
144017                ModuleDecl::ExportAll(v0) => Box::new(::std::iter::once(NodeRef::ExportAll(v0))),
144018                ModuleDecl::TsImportEquals(v0) => {
144019                    Box::new(::std::iter::once(NodeRef::TsImportEqualsDecl(v0)))
144020                }
144021                ModuleDecl::TsExportAssignment(v0) => {
144022                    Box::new(::std::iter::once(NodeRef::TsExportAssignment(v0)))
144023                }
144024                ModuleDecl::TsNamespaceExport(v0) => {
144025                    Box::new(::std::iter::once(NodeRef::TsNamespaceExportDecl(v0)))
144026                }
144027                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144028            },
144029            NodeRef::ModuleExportName(node) => match node {
144030                ModuleExportName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144031                ModuleExportName::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
144032                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144033            },
144034            NodeRef::ModuleItem(node) => match node {
144035                ModuleItem::ModuleDecl(v0) => Box::new(::std::iter::once(NodeRef::ModuleDecl(v0))),
144036                ModuleItem::Stmt(v0) => Box::new(::std::iter::once(NodeRef::Stmt(v0))),
144037                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144038            },
144039            NodeRef::NamedExport(node) => {
144040                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144041                    .chain(
144042                        node.specifiers
144043                            .iter()
144044                            .flat_map(|item| ::std::iter::once(NodeRef::ExportSpecifier(&item))),
144045                    )
144046                    .chain(node.src.iter().flat_map(|item| {
144047                        let item = &*item;
144048                        ::std::iter::once(NodeRef::Str(&item))
144049                    }))
144050                    .chain(node.with.iter().flat_map(|item| {
144051                        let item = &*item;
144052                        ::std::iter::once(NodeRef::ObjectLit(&item))
144053                    }));
144054                Box::new(iterator)
144055            }
144056            NodeRef::NewExpr(node) => {
144057                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144058                    .chain({
144059                        let item = &*node.callee;
144060                        ::std::iter::once(NodeRef::Expr(&item))
144061                    })
144062                    .chain(node.args.iter().flat_map(|item| {
144063                        item.iter()
144064                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item)))
144065                    }))
144066                    .chain(node.type_args.iter().flat_map(|item| {
144067                        let item = &*item;
144068                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144069                    }));
144070                Box::new(iterator)
144071            }
144072            NodeRef::Null(node) => {
144073                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144074                Box::new(iterator)
144075            }
144076            NodeRef::Number(node) => {
144077                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144078                Box::new(iterator)
144079            }
144080            NodeRef::ObjectLit(node) => {
144081                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144082                    node.props
144083                        .iter()
144084                        .flat_map(|item| ::std::iter::once(NodeRef::PropOrSpread(&item))),
144085                );
144086                Box::new(iterator)
144087            }
144088            NodeRef::ObjectPat(node) => {
144089                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144090                    .chain(
144091                        node.props
144092                            .iter()
144093                            .flat_map(|item| ::std::iter::once(NodeRef::ObjectPatProp(&item))),
144094                    )
144095                    .chain(node.type_ann.iter().flat_map(|item| {
144096                        let item = &*item;
144097                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144098                    }));
144099                Box::new(iterator)
144100            }
144101            NodeRef::ObjectPatProp(node) => match node {
144102                ObjectPatProp::KeyValue(v0) => {
144103                    Box::new(::std::iter::once(NodeRef::KeyValuePatProp(v0)))
144104                }
144105                ObjectPatProp::Assign(v0) => {
144106                    Box::new(::std::iter::once(NodeRef::AssignPatProp(v0)))
144107                }
144108                ObjectPatProp::Rest(v0) => Box::new(::std::iter::once(NodeRef::RestPat(v0))),
144109                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144110            },
144111            NodeRef::OptCall(node) => {
144112                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144113                    .chain({
144114                        let item = &*node.callee;
144115                        ::std::iter::once(NodeRef::Expr(&item))
144116                    })
144117                    .chain(
144118                        node.args
144119                            .iter()
144120                            .flat_map(|item| ::std::iter::once(NodeRef::ExprOrSpread(&item))),
144121                    )
144122                    .chain(node.type_args.iter().flat_map(|item| {
144123                        let item = &*item;
144124                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144125                    }));
144126                Box::new(iterator)
144127            }
144128            NodeRef::OptChainBase(node) => match node {
144129                OptChainBase::Member(v0) => Box::new(::std::iter::once(NodeRef::MemberExpr(v0))),
144130                OptChainBase::Call(v0) => Box::new(::std::iter::once(NodeRef::OptCall(v0))),
144131                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144132            },
144133            NodeRef::OptChainExpr(node) => {
144134                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144135                    let item = &*node.base;
144136                    ::std::iter::once(NodeRef::OptChainBase(&item))
144137                });
144138                Box::new(iterator)
144139            }
144140            NodeRef::Param(node) => {
144141                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144142                    .chain(
144143                        node.decorators
144144                            .iter()
144145                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144146                    )
144147                    .chain(::std::iter::once(NodeRef::Pat(&node.pat)));
144148                Box::new(iterator)
144149            }
144150            NodeRef::ParamOrTsParamProp(node) => match node {
144151                ParamOrTsParamProp::TsParamProp(v0) => {
144152                    Box::new(::std::iter::once(NodeRef::TsParamProp(v0)))
144153                }
144154                ParamOrTsParamProp::Param(v0) => Box::new(::std::iter::once(NodeRef::Param(v0))),
144155                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144156            },
144157            NodeRef::ParenExpr(node) => {
144158                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144159                    let item = &*node.expr;
144160                    ::std::iter::once(NodeRef::Expr(&item))
144161                });
144162                Box::new(iterator)
144163            }
144164            NodeRef::Pat(node) => match node {
144165                Pat::Ident(v0) => Box::new(::std::iter::once(NodeRef::BindingIdent(v0))),
144166                Pat::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayPat(v0))),
144167                Pat::Rest(v0) => Box::new(::std::iter::once(NodeRef::RestPat(v0))),
144168                Pat::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectPat(v0))),
144169                Pat::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignPat(v0))),
144170                Pat::Invalid(v0) => Box::new(::std::iter::once(NodeRef::Invalid(v0))),
144171                Pat::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
144172                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144173            },
144174            NodeRef::PrivateMethod(node) => {
144175                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144176                    .chain(::std::iter::once(NodeRef::PrivateName(&node.key)))
144177                    .chain({
144178                        let item = &*node.function;
144179                        ::std::iter::once(NodeRef::Function(&item))
144180                    })
144181                    .chain(::std::iter::once(NodeRef::MethodKind(&node.kind)))
144182                    .chain(
144183                        node.accessibility
144184                            .iter()
144185                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144186                    );
144187                Box::new(iterator)
144188            }
144189            NodeRef::PrivateName(node) => {
144190                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144191                Box::new(iterator)
144192            }
144193            NodeRef::PrivateProp(node) => {
144194                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144195                    .chain(::std::iter::once(NodeRef::PrivateName(&node.key)))
144196                    .chain(node.value.iter().flat_map(|item| {
144197                        let item = &*item;
144198                        ::std::iter::once(NodeRef::Expr(&item))
144199                    }))
144200                    .chain(node.type_ann.iter().flat_map(|item| {
144201                        let item = &*item;
144202                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144203                    }))
144204                    .chain(
144205                        node.decorators
144206                            .iter()
144207                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144208                    )
144209                    .chain(
144210                        node.accessibility
144211                            .iter()
144212                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144213                    );
144214                Box::new(iterator)
144215            }
144216            NodeRef::Program(node) => match node {
144217                Program::Module(v0) => Box::new(::std::iter::once(NodeRef::Module(v0))),
144218                Program::Script(v0) => Box::new(::std::iter::once(NodeRef::Script(v0))),
144219                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144220            },
144221            NodeRef::Prop(node) => match node {
144222                Prop::Shorthand(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144223                Prop::KeyValue(v0) => Box::new(::std::iter::once(NodeRef::KeyValueProp(v0))),
144224                Prop::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignProp(v0))),
144225                Prop::Getter(v0) => Box::new(::std::iter::once(NodeRef::GetterProp(v0))),
144226                Prop::Setter(v0) => Box::new(::std::iter::once(NodeRef::SetterProp(v0))),
144227                Prop::Method(v0) => Box::new(::std::iter::once(NodeRef::MethodProp(v0))),
144228                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144229            },
144230            NodeRef::PropName(node) => match node {
144231                PropName::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
144232                PropName::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
144233                PropName::Num(v0) => Box::new(::std::iter::once(NodeRef::Number(v0))),
144234                PropName::Computed(v0) => {
144235                    Box::new(::std::iter::once(NodeRef::ComputedPropName(v0)))
144236                }
144237                PropName::BigInt(v0) => Box::new(::std::iter::once(NodeRef::BigInt(v0))),
144238                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144239            },
144240            NodeRef::PropOrSpread(node) => match node {
144241                PropOrSpread::Spread(v0) => Box::new(::std::iter::once(NodeRef::SpreadElement(v0))),
144242                PropOrSpread::Prop(v0) => Box::new(::std::iter::once(NodeRef::Prop(v0))),
144243                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144244            },
144245            NodeRef::Regex(node) => {
144246                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144247                Box::new(iterator)
144248            }
144249            NodeRef::RestPat(node) => {
144250                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144251                    .chain({
144252                        let item = &*node.arg;
144253                        ::std::iter::once(NodeRef::Pat(&item))
144254                    })
144255                    .chain(node.type_ann.iter().flat_map(|item| {
144256                        let item = &*item;
144257                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144258                    }));
144259                Box::new(iterator)
144260            }
144261            NodeRef::ReturnStmt(node) => {
144262                let iterator =
144263                    ::std::iter::empty::<NodeRef<'ast>>().chain(node.arg.iter().flat_map(|item| {
144264                        let item = &*item;
144265                        ::std::iter::once(NodeRef::Expr(&item))
144266                    }));
144267                Box::new(iterator)
144268            }
144269            NodeRef::Script(node) => {
144270                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144271                    node.body
144272                        .iter()
144273                        .flat_map(|item| ::std::iter::once(NodeRef::Stmt(&item))),
144274                );
144275                Box::new(iterator)
144276            }
144277            NodeRef::SeqExpr(node) => {
144278                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144279                    node.exprs.iter().flat_map(|item| {
144280                        let item = &*item;
144281                        ::std::iter::once(NodeRef::Expr(&item))
144282                    }),
144283                );
144284                Box::new(iterator)
144285            }
144286            NodeRef::SetterProp(node) => {
144287                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144288                    .chain(::std::iter::once(NodeRef::PropName(&node.key)))
144289                    .chain(
144290                        node.this_param
144291                            .iter()
144292                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
144293                    )
144294                    .chain({
144295                        let item = &*node.param;
144296                        ::std::iter::once(NodeRef::Pat(&item))
144297                    })
144298                    .chain(
144299                        node.body
144300                            .iter()
144301                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
144302                    );
144303                Box::new(iterator)
144304            }
144305            NodeRef::SimpleAssignTarget(node) => match node {
144306                SimpleAssignTarget::Ident(v0) => {
144307                    Box::new(::std::iter::once(NodeRef::BindingIdent(v0)))
144308                }
144309                SimpleAssignTarget::Member(v0) => {
144310                    Box::new(::std::iter::once(NodeRef::MemberExpr(v0)))
144311                }
144312                SimpleAssignTarget::SuperProp(v0) => {
144313                    Box::new(::std::iter::once(NodeRef::SuperPropExpr(v0)))
144314                }
144315                SimpleAssignTarget::Paren(v0) => {
144316                    Box::new(::std::iter::once(NodeRef::ParenExpr(v0)))
144317                }
144318                SimpleAssignTarget::OptChain(v0) => {
144319                    Box::new(::std::iter::once(NodeRef::OptChainExpr(v0)))
144320                }
144321                SimpleAssignTarget::TsAs(v0) => Box::new(::std::iter::once(NodeRef::TsAsExpr(v0))),
144322                SimpleAssignTarget::TsSatisfies(v0) => {
144323                    Box::new(::std::iter::once(NodeRef::TsSatisfiesExpr(v0)))
144324                }
144325                SimpleAssignTarget::TsNonNull(v0) => {
144326                    Box::new(::std::iter::once(NodeRef::TsNonNullExpr(v0)))
144327                }
144328                SimpleAssignTarget::TsTypeAssertion(v0) => {
144329                    Box::new(::std::iter::once(NodeRef::TsTypeAssertion(v0)))
144330                }
144331                SimpleAssignTarget::TsInstantiation(v0) => {
144332                    Box::new(::std::iter::once(NodeRef::TsInstantiation(v0)))
144333                }
144334                SimpleAssignTarget::Invalid(v0) => {
144335                    Box::new(::std::iter::once(NodeRef::Invalid(v0)))
144336                }
144337                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144338            },
144339            NodeRef::SpreadElement(node) => {
144340                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144341                    let item = &*node.expr;
144342                    ::std::iter::once(NodeRef::Expr(&item))
144343                });
144344                Box::new(iterator)
144345            }
144346            NodeRef::StaticBlock(node) => {
144347                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144348                    .chain(::std::iter::once(NodeRef::BlockStmt(&node.body)));
144349                Box::new(iterator)
144350            }
144351            NodeRef::Stmt(node) => match node {
144352                Stmt::Block(v0) => Box::new(::std::iter::once(NodeRef::BlockStmt(v0))),
144353                Stmt::Empty(v0) => Box::new(::std::iter::once(NodeRef::EmptyStmt(v0))),
144354                Stmt::Debugger(v0) => Box::new(::std::iter::once(NodeRef::DebuggerStmt(v0))),
144355                Stmt::With(v0) => Box::new(::std::iter::once(NodeRef::WithStmt(v0))),
144356                Stmt::Return(v0) => Box::new(::std::iter::once(NodeRef::ReturnStmt(v0))),
144357                Stmt::Labeled(v0) => Box::new(::std::iter::once(NodeRef::LabeledStmt(v0))),
144358                Stmt::Break(v0) => Box::new(::std::iter::once(NodeRef::BreakStmt(v0))),
144359                Stmt::Continue(v0) => Box::new(::std::iter::once(NodeRef::ContinueStmt(v0))),
144360                Stmt::If(v0) => Box::new(::std::iter::once(NodeRef::IfStmt(v0))),
144361                Stmt::Switch(v0) => Box::new(::std::iter::once(NodeRef::SwitchStmt(v0))),
144362                Stmt::Throw(v0) => Box::new(::std::iter::once(NodeRef::ThrowStmt(v0))),
144363                Stmt::Try(v0) => Box::new(::std::iter::once(NodeRef::TryStmt(v0))),
144364                Stmt::While(v0) => Box::new(::std::iter::once(NodeRef::WhileStmt(v0))),
144365                Stmt::DoWhile(v0) => Box::new(::std::iter::once(NodeRef::DoWhileStmt(v0))),
144366                Stmt::For(v0) => Box::new(::std::iter::once(NodeRef::ForStmt(v0))),
144367                Stmt::ForIn(v0) => Box::new(::std::iter::once(NodeRef::ForInStmt(v0))),
144368                Stmt::ForOf(v0) => Box::new(::std::iter::once(NodeRef::ForOfStmt(v0))),
144369                Stmt::Decl(v0) => Box::new(::std::iter::once(NodeRef::Decl(v0))),
144370                Stmt::Expr(v0) => Box::new(::std::iter::once(NodeRef::ExprStmt(v0))),
144371                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144372            },
144373            NodeRef::Str(node) => {
144374                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144375                Box::new(iterator)
144376            }
144377            NodeRef::Super(node) => {
144378                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144379                Box::new(iterator)
144380            }
144381            NodeRef::SuperProp(node) => match node {
144382                SuperProp::Ident(v0) => Box::new(::std::iter::once(NodeRef::IdentName(v0))),
144383                SuperProp::Computed(v0) => {
144384                    Box::new(::std::iter::once(NodeRef::ComputedPropName(v0)))
144385                }
144386                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144387            },
144388            NodeRef::SuperPropExpr(node) => {
144389                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144390                    .chain(::std::iter::once(NodeRef::Super(&node.obj)))
144391                    .chain(::std::iter::once(NodeRef::SuperProp(&node.prop)));
144392                Box::new(iterator)
144393            }
144394            NodeRef::SwitchCase(node) => {
144395                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144396                    .chain(node.test.iter().flat_map(|item| {
144397                        let item = &*item;
144398                        ::std::iter::once(NodeRef::Expr(&item))
144399                    }))
144400                    .chain(
144401                        node.cons
144402                            .iter()
144403                            .flat_map(|item| ::std::iter::once(NodeRef::Stmt(&item))),
144404                    );
144405                Box::new(iterator)
144406            }
144407            NodeRef::SwitchStmt(node) => {
144408                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144409                    .chain({
144410                        let item = &*node.discriminant;
144411                        ::std::iter::once(NodeRef::Expr(&item))
144412                    })
144413                    .chain(
144414                        node.cases
144415                            .iter()
144416                            .flat_map(|item| ::std::iter::once(NodeRef::SwitchCase(&item))),
144417                    );
144418                Box::new(iterator)
144419            }
144420            NodeRef::TaggedTpl(node) => {
144421                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144422                    .chain({
144423                        let item = &*node.tag;
144424                        ::std::iter::once(NodeRef::Expr(&item))
144425                    })
144426                    .chain(node.type_params.iter().flat_map(|item| {
144427                        let item = &*item;
144428                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144429                    }))
144430                    .chain({
144431                        let item = &*node.tpl;
144432                        ::std::iter::once(NodeRef::Tpl(&item))
144433                    });
144434                Box::new(iterator)
144435            }
144436            NodeRef::ThisExpr(node) => {
144437                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144438                Box::new(iterator)
144439            }
144440            NodeRef::ThrowStmt(node) => {
144441                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144442                    let item = &*node.arg;
144443                    ::std::iter::once(NodeRef::Expr(&item))
144444                });
144445                Box::new(iterator)
144446            }
144447            NodeRef::Tpl(node) => {
144448                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144449                    .chain(node.exprs.iter().flat_map(|item| {
144450                        let item = &*item;
144451                        ::std::iter::once(NodeRef::Expr(&item))
144452                    }))
144453                    .chain(
144454                        node.quasis
144455                            .iter()
144456                            .flat_map(|item| ::std::iter::once(NodeRef::TplElement(&item))),
144457                    );
144458                Box::new(iterator)
144459            }
144460            NodeRef::TplElement(node) => {
144461                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144462                Box::new(iterator)
144463            }
144464            NodeRef::TruePlusMinus(node) => match node {
144465                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144466            },
144467            NodeRef::TryStmt(node) => {
144468                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144469                    .chain(::std::iter::once(NodeRef::BlockStmt(&node.block)))
144470                    .chain(
144471                        node.handler
144472                            .iter()
144473                            .flat_map(|item| ::std::iter::once(NodeRef::CatchClause(&item))),
144474                    )
144475                    .chain(
144476                        node.finalizer
144477                            .iter()
144478                            .flat_map(|item| ::std::iter::once(NodeRef::BlockStmt(&item))),
144479                    );
144480                Box::new(iterator)
144481            }
144482            NodeRef::TsArrayType(node) => {
144483                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144484                    let item = &*node.elem_type;
144485                    ::std::iter::once(NodeRef::TsType(&item))
144486                });
144487                Box::new(iterator)
144488            }
144489            NodeRef::TsAsExpr(node) => {
144490                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144491                    .chain({
144492                        let item = &*node.expr;
144493                        ::std::iter::once(NodeRef::Expr(&item))
144494                    })
144495                    .chain({
144496                        let item = &*node.type_ann;
144497                        ::std::iter::once(NodeRef::TsType(&item))
144498                    });
144499                Box::new(iterator)
144500            }
144501            NodeRef::TsCallSignatureDecl(node) => {
144502                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144503                    .chain(
144504                        node.params
144505                            .iter()
144506                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
144507                    )
144508                    .chain(node.type_ann.iter().flat_map(|item| {
144509                        let item = &*item;
144510                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144511                    }))
144512                    .chain(node.type_params.iter().flat_map(|item| {
144513                        let item = &*item;
144514                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144515                    }));
144516                Box::new(iterator)
144517            }
144518            NodeRef::TsConditionalType(node) => {
144519                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144520                    .chain({
144521                        let item = &*node.check_type;
144522                        ::std::iter::once(NodeRef::TsType(&item))
144523                    })
144524                    .chain({
144525                        let item = &*node.extends_type;
144526                        ::std::iter::once(NodeRef::TsType(&item))
144527                    })
144528                    .chain({
144529                        let item = &*node.true_type;
144530                        ::std::iter::once(NodeRef::TsType(&item))
144531                    })
144532                    .chain({
144533                        let item = &*node.false_type;
144534                        ::std::iter::once(NodeRef::TsType(&item))
144535                    });
144536                Box::new(iterator)
144537            }
144538            NodeRef::TsConstAssertion(node) => {
144539                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144540                    let item = &*node.expr;
144541                    ::std::iter::once(NodeRef::Expr(&item))
144542                });
144543                Box::new(iterator)
144544            }
144545            NodeRef::TsConstructSignatureDecl(node) => {
144546                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144547                    .chain(
144548                        node.params
144549                            .iter()
144550                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
144551                    )
144552                    .chain(node.type_ann.iter().flat_map(|item| {
144553                        let item = &*item;
144554                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144555                    }))
144556                    .chain(node.type_params.iter().flat_map(|item| {
144557                        let item = &*item;
144558                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144559                    }));
144560                Box::new(iterator)
144561            }
144562            NodeRef::TsConstructorType(node) => {
144563                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144564                    .chain(
144565                        node.params
144566                            .iter()
144567                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
144568                    )
144569                    .chain(node.type_params.iter().flat_map(|item| {
144570                        let item = &*item;
144571                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144572                    }))
144573                    .chain({
144574                        let item = &*node.type_ann;
144575                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144576                    });
144577                Box::new(iterator)
144578            }
144579            NodeRef::TsEntityName(node) => match node {
144580                TsEntityName::TsQualifiedName(v0) => {
144581                    Box::new(::std::iter::once(NodeRef::TsQualifiedName(v0)))
144582                }
144583                TsEntityName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144584                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144585            },
144586            NodeRef::TsEnumDecl(node) => {
144587                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144588                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
144589                    .chain(
144590                        node.members
144591                            .iter()
144592                            .flat_map(|item| ::std::iter::once(NodeRef::TsEnumMember(&item))),
144593                    );
144594                Box::new(iterator)
144595            }
144596            NodeRef::TsEnumMember(node) => {
144597                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144598                    .chain(::std::iter::once(NodeRef::TsEnumMemberId(&node.id)))
144599                    .chain(node.init.iter().flat_map(|item| {
144600                        let item = &*item;
144601                        ::std::iter::once(NodeRef::Expr(&item))
144602                    }));
144603                Box::new(iterator)
144604            }
144605            NodeRef::TsEnumMemberId(node) => match node {
144606                TsEnumMemberId::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144607                TsEnumMemberId::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
144608                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144609            },
144610            NodeRef::TsExportAssignment(node) => {
144611                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144612                    let item = &*node.expr;
144613                    ::std::iter::once(NodeRef::Expr(&item))
144614                });
144615                Box::new(iterator)
144616            }
144617            NodeRef::TsExprWithTypeArgs(node) => {
144618                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144619                    .chain({
144620                        let item = &*node.expr;
144621                        ::std::iter::once(NodeRef::Expr(&item))
144622                    })
144623                    .chain(node.type_args.iter().flat_map(|item| {
144624                        let item = &*item;
144625                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144626                    }));
144627                Box::new(iterator)
144628            }
144629            NodeRef::TsExternalModuleRef(node) => {
144630                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144631                    .chain(::std::iter::once(NodeRef::Str(&node.expr)));
144632                Box::new(iterator)
144633            }
144634            NodeRef::TsFnOrConstructorType(node) => match node {
144635                TsFnOrConstructorType::TsFnType(v0) => {
144636                    Box::new(::std::iter::once(NodeRef::TsFnType(v0)))
144637                }
144638                TsFnOrConstructorType::TsConstructorType(v0) => {
144639                    Box::new(::std::iter::once(NodeRef::TsConstructorType(v0)))
144640                }
144641                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144642            },
144643            NodeRef::TsFnParam(node) => match node {
144644                TsFnParam::Ident(v0) => Box::new(::std::iter::once(NodeRef::BindingIdent(v0))),
144645                TsFnParam::Array(v0) => Box::new(::std::iter::once(NodeRef::ArrayPat(v0))),
144646                TsFnParam::Rest(v0) => Box::new(::std::iter::once(NodeRef::RestPat(v0))),
144647                TsFnParam::Object(v0) => Box::new(::std::iter::once(NodeRef::ObjectPat(v0))),
144648                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144649            },
144650            NodeRef::TsFnType(node) => {
144651                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144652                    .chain(
144653                        node.params
144654                            .iter()
144655                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
144656                    )
144657                    .chain(node.type_params.iter().flat_map(|item| {
144658                        let item = &*item;
144659                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144660                    }))
144661                    .chain({
144662                        let item = &*node.type_ann;
144663                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144664                    });
144665                Box::new(iterator)
144666            }
144667            NodeRef::TsGetterSignature(node) => {
144668                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144669                    .chain({
144670                        let item = &*node.key;
144671                        ::std::iter::once(NodeRef::Expr(&item))
144672                    })
144673                    .chain(node.type_ann.iter().flat_map(|item| {
144674                        let item = &*item;
144675                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144676                    }));
144677                Box::new(iterator)
144678            }
144679            NodeRef::TsImportEqualsDecl(node) => {
144680                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144681                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
144682                    .chain(::std::iter::once(NodeRef::TsModuleRef(&node.module_ref)));
144683                Box::new(iterator)
144684            }
144685            NodeRef::TsImportType(node) => {
144686                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144687                    .chain(::std::iter::once(NodeRef::Str(&node.arg)))
144688                    .chain(
144689                        node.qualifier
144690                            .iter()
144691                            .flat_map(|item| ::std::iter::once(NodeRef::TsEntityName(&item))),
144692                    )
144693                    .chain(node.type_args.iter().flat_map(|item| {
144694                        let item = &*item;
144695                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144696                    }));
144697                Box::new(iterator)
144698            }
144699            NodeRef::TsIndexSignature(node) => {
144700                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144701                    .chain(
144702                        node.params
144703                            .iter()
144704                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
144705                    )
144706                    .chain(node.type_ann.iter().flat_map(|item| {
144707                        let item = &*item;
144708                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144709                    }));
144710                Box::new(iterator)
144711            }
144712            NodeRef::TsIndexedAccessType(node) => {
144713                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144714                    .chain({
144715                        let item = &*node.obj_type;
144716                        ::std::iter::once(NodeRef::TsType(&item))
144717                    })
144718                    .chain({
144719                        let item = &*node.index_type;
144720                        ::std::iter::once(NodeRef::TsType(&item))
144721                    });
144722                Box::new(iterator)
144723            }
144724            NodeRef::TsInferType(node) => {
144725                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144726                    .chain(::std::iter::once(NodeRef::TsTypeParam(&node.type_param)));
144727                Box::new(iterator)
144728            }
144729            NodeRef::TsInstantiation(node) => {
144730                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144731                    .chain({
144732                        let item = &*node.expr;
144733                        ::std::iter::once(NodeRef::Expr(&item))
144734                    })
144735                    .chain({
144736                        let item = &*node.type_args;
144737                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
144738                    });
144739                Box::new(iterator)
144740            }
144741            NodeRef::TsInterfaceBody(node) => {
144742                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144743                    node.body
144744                        .iter()
144745                        .flat_map(|item| ::std::iter::once(NodeRef::TsTypeElement(&item))),
144746                );
144747                Box::new(iterator)
144748            }
144749            NodeRef::TsInterfaceDecl(node) => {
144750                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144751                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
144752                    .chain(node.type_params.iter().flat_map(|item| {
144753                        let item = &*item;
144754                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144755                    }))
144756                    .chain(
144757                        node.extends
144758                            .iter()
144759                            .flat_map(|item| ::std::iter::once(NodeRef::TsExprWithTypeArgs(&item))),
144760                    )
144761                    .chain(::std::iter::once(NodeRef::TsInterfaceBody(&node.body)));
144762                Box::new(iterator)
144763            }
144764            NodeRef::TsIntersectionType(node) => {
144765                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144766                    node.types.iter().flat_map(|item| {
144767                        let item = &*item;
144768                        ::std::iter::once(NodeRef::TsType(&item))
144769                    }),
144770                );
144771                Box::new(iterator)
144772            }
144773            NodeRef::TsKeywordType(node) => {
144774                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144775                    .chain(::std::iter::once(NodeRef::TsKeywordTypeKind(&node.kind)));
144776                Box::new(iterator)
144777            }
144778            NodeRef::TsKeywordTypeKind(node) => match node {
144779                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144780            },
144781            NodeRef::TsLit(node) => match node {
144782                TsLit::Number(v0) => Box::new(::std::iter::once(NodeRef::Number(v0))),
144783                TsLit::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
144784                TsLit::Bool(v0) => Box::new(::std::iter::once(NodeRef::Bool(v0))),
144785                TsLit::BigInt(v0) => Box::new(::std::iter::once(NodeRef::BigInt(v0))),
144786                TsLit::Tpl(v0) => Box::new(::std::iter::once(NodeRef::TsTplLitType(v0))),
144787                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144788            },
144789            NodeRef::TsLitType(node) => {
144790                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144791                    .chain(::std::iter::once(NodeRef::TsLit(&node.lit)));
144792                Box::new(iterator)
144793            }
144794            NodeRef::TsMappedType(node) => {
144795                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144796                    .chain(
144797                        node.readonly
144798                            .iter()
144799                            .flat_map(|item| ::std::iter::once(NodeRef::TruePlusMinus(&item))),
144800                    )
144801                    .chain(::std::iter::once(NodeRef::TsTypeParam(&node.type_param)))
144802                    .chain(node.name_type.iter().flat_map(|item| {
144803                        let item = &*item;
144804                        ::std::iter::once(NodeRef::TsType(&item))
144805                    }))
144806                    .chain(
144807                        node.optional
144808                            .iter()
144809                            .flat_map(|item| ::std::iter::once(NodeRef::TruePlusMinus(&item))),
144810                    )
144811                    .chain(node.type_ann.iter().flat_map(|item| {
144812                        let item = &*item;
144813                        ::std::iter::once(NodeRef::TsType(&item))
144814                    }));
144815                Box::new(iterator)
144816            }
144817            NodeRef::TsMethodSignature(node) => {
144818                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144819                    .chain({
144820                        let item = &*node.key;
144821                        ::std::iter::once(NodeRef::Expr(&item))
144822                    })
144823                    .chain(
144824                        node.params
144825                            .iter()
144826                            .flat_map(|item| ::std::iter::once(NodeRef::TsFnParam(&item))),
144827                    )
144828                    .chain(node.type_ann.iter().flat_map(|item| {
144829                        let item = &*item;
144830                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144831                    }))
144832                    .chain(node.type_params.iter().flat_map(|item| {
144833                        let item = &*item;
144834                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
144835                    }));
144836                Box::new(iterator)
144837            }
144838            NodeRef::TsModuleBlock(node) => {
144839                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
144840                    node.body
144841                        .iter()
144842                        .flat_map(|item| ::std::iter::once(NodeRef::ModuleItem(&item))),
144843                );
144844                Box::new(iterator)
144845            }
144846            NodeRef::TsModuleDecl(node) => {
144847                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144848                    .chain(::std::iter::once(NodeRef::TsModuleName(&node.id)))
144849                    .chain(
144850                        node.body
144851                            .iter()
144852                            .flat_map(|item| ::std::iter::once(NodeRef::TsNamespaceBody(&item))),
144853                    );
144854                Box::new(iterator)
144855            }
144856            NodeRef::TsModuleName(node) => match node {
144857                TsModuleName::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144858                TsModuleName::Str(v0) => Box::new(::std::iter::once(NodeRef::Str(v0))),
144859                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144860            },
144861            NodeRef::TsModuleRef(node) => match node {
144862                TsModuleRef::TsEntityName(v0) => {
144863                    Box::new(::std::iter::once(NodeRef::TsEntityName(v0)))
144864                }
144865                TsModuleRef::TsExternalModuleRef(v0) => {
144866                    Box::new(::std::iter::once(NodeRef::TsExternalModuleRef(v0)))
144867                }
144868                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144869            },
144870            NodeRef::TsNamespaceBody(node) => match node {
144871                TsNamespaceBody::TsModuleBlock(v0) => {
144872                    Box::new(::std::iter::once(NodeRef::TsModuleBlock(v0)))
144873                }
144874                TsNamespaceBody::TsNamespaceDecl(v0) => {
144875                    Box::new(::std::iter::once(NodeRef::TsNamespaceDecl(v0)))
144876                }
144877                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144878            },
144879            NodeRef::TsNamespaceDecl(node) => {
144880                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144881                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
144882                    .chain({
144883                        let item = &*node.body;
144884                        ::std::iter::once(NodeRef::TsNamespaceBody(&item))
144885                    });
144886                Box::new(iterator)
144887            }
144888            NodeRef::TsNamespaceExportDecl(node) => {
144889                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144890                    .chain(::std::iter::once(NodeRef::Ident(&node.id)));
144891                Box::new(iterator)
144892            }
144893            NodeRef::TsNonNullExpr(node) => {
144894                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144895                    let item = &*node.expr;
144896                    ::std::iter::once(NodeRef::Expr(&item))
144897                });
144898                Box::new(iterator)
144899            }
144900            NodeRef::TsOptionalType(node) => {
144901                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144902                    let item = &*node.type_ann;
144903                    ::std::iter::once(NodeRef::TsType(&item))
144904                });
144905                Box::new(iterator)
144906            }
144907            NodeRef::TsParamProp(node) => {
144908                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144909                    .chain(
144910                        node.decorators
144911                            .iter()
144912                            .flat_map(|item| ::std::iter::once(NodeRef::Decorator(&item))),
144913                    )
144914                    .chain(
144915                        node.accessibility
144916                            .iter()
144917                            .flat_map(|item| ::std::iter::once(NodeRef::Accessibility(&item))),
144918                    )
144919                    .chain(::std::iter::once(NodeRef::TsParamPropParam(&node.param)));
144920                Box::new(iterator)
144921            }
144922            NodeRef::TsParamPropParam(node) => match node {
144923                TsParamPropParam::Ident(v0) => {
144924                    Box::new(::std::iter::once(NodeRef::BindingIdent(v0)))
144925                }
144926                TsParamPropParam::Assign(v0) => Box::new(::std::iter::once(NodeRef::AssignPat(v0))),
144927                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144928            },
144929            NodeRef::TsParenthesizedType(node) => {
144930                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144931                    let item = &*node.type_ann;
144932                    ::std::iter::once(NodeRef::TsType(&item))
144933                });
144934                Box::new(iterator)
144935            }
144936            NodeRef::TsPropertySignature(node) => {
144937                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144938                    .chain({
144939                        let item = &*node.key;
144940                        ::std::iter::once(NodeRef::Expr(&item))
144941                    })
144942                    .chain(node.type_ann.iter().flat_map(|item| {
144943                        let item = &*item;
144944                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
144945                    }));
144946                Box::new(iterator)
144947            }
144948            NodeRef::TsQualifiedName(node) => {
144949                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144950                    .chain(::std::iter::once(NodeRef::TsEntityName(&node.left)))
144951                    .chain(::std::iter::once(NodeRef::IdentName(&node.right)));
144952                Box::new(iterator)
144953            }
144954            NodeRef::TsRestType(node) => {
144955                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
144956                    let item = &*node.type_ann;
144957                    ::std::iter::once(NodeRef::TsType(&item))
144958                });
144959                Box::new(iterator)
144960            }
144961            NodeRef::TsSatisfiesExpr(node) => {
144962                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144963                    .chain({
144964                        let item = &*node.expr;
144965                        ::std::iter::once(NodeRef::Expr(&item))
144966                    })
144967                    .chain({
144968                        let item = &*node.type_ann;
144969                        ::std::iter::once(NodeRef::TsType(&item))
144970                    });
144971                Box::new(iterator)
144972            }
144973            NodeRef::TsSetterSignature(node) => {
144974                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144975                    .chain({
144976                        let item = &*node.key;
144977                        ::std::iter::once(NodeRef::Expr(&item))
144978                    })
144979                    .chain(::std::iter::once(NodeRef::TsFnParam(&node.param)));
144980                Box::new(iterator)
144981            }
144982            NodeRef::TsThisType(node) => {
144983                let iterator = ::std::iter::empty::<NodeRef<'ast>>();
144984                Box::new(iterator)
144985            }
144986            NodeRef::TsThisTypeOrIdent(node) => match node {
144987                TsThisTypeOrIdent::TsThisType(v0) => {
144988                    Box::new(::std::iter::once(NodeRef::TsThisType(v0)))
144989                }
144990                TsThisTypeOrIdent::Ident(v0) => Box::new(::std::iter::once(NodeRef::Ident(v0))),
144991                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
144992            },
144993            NodeRef::TsTplLitType(node) => {
144994                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
144995                    .chain(node.types.iter().flat_map(|item| {
144996                        let item = &*item;
144997                        ::std::iter::once(NodeRef::TsType(&item))
144998                    }))
144999                    .chain(
145000                        node.quasis
145001                            .iter()
145002                            .flat_map(|item| ::std::iter::once(NodeRef::TplElement(&item))),
145003                    );
145004                Box::new(iterator)
145005            }
145006            NodeRef::TsTupleElement(node) => {
145007                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145008                    .chain(
145009                        node.label
145010                            .iter()
145011                            .flat_map(|item| ::std::iter::once(NodeRef::Pat(&item))),
145012                    )
145013                    .chain({
145014                        let item = &*node.ty;
145015                        ::std::iter::once(NodeRef::TsType(&item))
145016                    });
145017                Box::new(iterator)
145018            }
145019            NodeRef::TsTupleType(node) => {
145020                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145021                    node.elem_types
145022                        .iter()
145023                        .flat_map(|item| ::std::iter::once(NodeRef::TsTupleElement(&item))),
145024                );
145025                Box::new(iterator)
145026            }
145027            NodeRef::TsType(node) => match node {
145028                TsType::TsKeywordType(v0) => {
145029                    Box::new(::std::iter::once(NodeRef::TsKeywordType(v0)))
145030                }
145031                TsType::TsThisType(v0) => Box::new(::std::iter::once(NodeRef::TsThisType(v0))),
145032                TsType::TsFnOrConstructorType(v0) => {
145033                    Box::new(::std::iter::once(NodeRef::TsFnOrConstructorType(v0)))
145034                }
145035                TsType::TsTypeRef(v0) => Box::new(::std::iter::once(NodeRef::TsTypeRef(v0))),
145036                TsType::TsTypeQuery(v0) => Box::new(::std::iter::once(NodeRef::TsTypeQuery(v0))),
145037                TsType::TsTypeLit(v0) => Box::new(::std::iter::once(NodeRef::TsTypeLit(v0))),
145038                TsType::TsArrayType(v0) => Box::new(::std::iter::once(NodeRef::TsArrayType(v0))),
145039                TsType::TsTupleType(v0) => Box::new(::std::iter::once(NodeRef::TsTupleType(v0))),
145040                TsType::TsOptionalType(v0) => {
145041                    Box::new(::std::iter::once(NodeRef::TsOptionalType(v0)))
145042                }
145043                TsType::TsRestType(v0) => Box::new(::std::iter::once(NodeRef::TsRestType(v0))),
145044                TsType::TsUnionOrIntersectionType(v0) => {
145045                    Box::new(::std::iter::once(NodeRef::TsUnionOrIntersectionType(v0)))
145046                }
145047                TsType::TsConditionalType(v0) => {
145048                    Box::new(::std::iter::once(NodeRef::TsConditionalType(v0)))
145049                }
145050                TsType::TsInferType(v0) => Box::new(::std::iter::once(NodeRef::TsInferType(v0))),
145051                TsType::TsParenthesizedType(v0) => {
145052                    Box::new(::std::iter::once(NodeRef::TsParenthesizedType(v0)))
145053                }
145054                TsType::TsTypeOperator(v0) => {
145055                    Box::new(::std::iter::once(NodeRef::TsTypeOperator(v0)))
145056                }
145057                TsType::TsIndexedAccessType(v0) => {
145058                    Box::new(::std::iter::once(NodeRef::TsIndexedAccessType(v0)))
145059                }
145060                TsType::TsMappedType(v0) => Box::new(::std::iter::once(NodeRef::TsMappedType(v0))),
145061                TsType::TsLitType(v0) => Box::new(::std::iter::once(NodeRef::TsLitType(v0))),
145062                TsType::TsTypePredicate(v0) => {
145063                    Box::new(::std::iter::once(NodeRef::TsTypePredicate(v0)))
145064                }
145065                TsType::TsImportType(v0) => Box::new(::std::iter::once(NodeRef::TsImportType(v0))),
145066                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145067            },
145068            NodeRef::TsTypeAliasDecl(node) => {
145069                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145070                    .chain(::std::iter::once(NodeRef::Ident(&node.id)))
145071                    .chain(node.type_params.iter().flat_map(|item| {
145072                        let item = &*item;
145073                        ::std::iter::once(NodeRef::TsTypeParamDecl(&item))
145074                    }))
145075                    .chain({
145076                        let item = &*node.type_ann;
145077                        ::std::iter::once(NodeRef::TsType(&item))
145078                    });
145079                Box::new(iterator)
145080            }
145081            NodeRef::TsTypeAnn(node) => {
145082                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain({
145083                    let item = &*node.type_ann;
145084                    ::std::iter::once(NodeRef::TsType(&item))
145085                });
145086                Box::new(iterator)
145087            }
145088            NodeRef::TsTypeAssertion(node) => {
145089                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145090                    .chain({
145091                        let item = &*node.expr;
145092                        ::std::iter::once(NodeRef::Expr(&item))
145093                    })
145094                    .chain({
145095                        let item = &*node.type_ann;
145096                        ::std::iter::once(NodeRef::TsType(&item))
145097                    });
145098                Box::new(iterator)
145099            }
145100            NodeRef::TsTypeElement(node) => match node {
145101                TsTypeElement::TsCallSignatureDecl(v0) => {
145102                    Box::new(::std::iter::once(NodeRef::TsCallSignatureDecl(v0)))
145103                }
145104                TsTypeElement::TsConstructSignatureDecl(v0) => {
145105                    Box::new(::std::iter::once(NodeRef::TsConstructSignatureDecl(v0)))
145106                }
145107                TsTypeElement::TsPropertySignature(v0) => {
145108                    Box::new(::std::iter::once(NodeRef::TsPropertySignature(v0)))
145109                }
145110                TsTypeElement::TsGetterSignature(v0) => {
145111                    Box::new(::std::iter::once(NodeRef::TsGetterSignature(v0)))
145112                }
145113                TsTypeElement::TsSetterSignature(v0) => {
145114                    Box::new(::std::iter::once(NodeRef::TsSetterSignature(v0)))
145115                }
145116                TsTypeElement::TsMethodSignature(v0) => {
145117                    Box::new(::std::iter::once(NodeRef::TsMethodSignature(v0)))
145118                }
145119                TsTypeElement::TsIndexSignature(v0) => {
145120                    Box::new(::std::iter::once(NodeRef::TsIndexSignature(v0)))
145121                }
145122                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145123            },
145124            NodeRef::TsTypeLit(node) => {
145125                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145126                    node.members
145127                        .iter()
145128                        .flat_map(|item| ::std::iter::once(NodeRef::TsTypeElement(&item))),
145129                );
145130                Box::new(iterator)
145131            }
145132            NodeRef::TsTypeOperator(node) => {
145133                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145134                    .chain(::std::iter::once(NodeRef::TsTypeOperatorOp(&node.op)))
145135                    .chain({
145136                        let item = &*node.type_ann;
145137                        ::std::iter::once(NodeRef::TsType(&item))
145138                    });
145139                Box::new(iterator)
145140            }
145141            NodeRef::TsTypeOperatorOp(node) => match node {
145142                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145143            },
145144            NodeRef::TsTypeParam(node) => {
145145                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145146                    .chain(::std::iter::once(NodeRef::Ident(&node.name)))
145147                    .chain(node.constraint.iter().flat_map(|item| {
145148                        let item = &*item;
145149                        ::std::iter::once(NodeRef::TsType(&item))
145150                    }))
145151                    .chain(node.default.iter().flat_map(|item| {
145152                        let item = &*item;
145153                        ::std::iter::once(NodeRef::TsType(&item))
145154                    }));
145155                Box::new(iterator)
145156            }
145157            NodeRef::TsTypeParamDecl(node) => {
145158                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145159                    node.params
145160                        .iter()
145161                        .flat_map(|item| ::std::iter::once(NodeRef::TsTypeParam(&item))),
145162                );
145163                Box::new(iterator)
145164            }
145165            NodeRef::TsTypeParamInstantiation(node) => {
145166                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145167                    node.params.iter().flat_map(|item| {
145168                        let item = &*item;
145169                        ::std::iter::once(NodeRef::TsType(&item))
145170                    }),
145171                );
145172                Box::new(iterator)
145173            }
145174            NodeRef::TsTypePredicate(node) => {
145175                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145176                    .chain(::std::iter::once(NodeRef::TsThisTypeOrIdent(
145177                        &node.param_name,
145178                    )))
145179                    .chain(node.type_ann.iter().flat_map(|item| {
145180                        let item = &*item;
145181                        ::std::iter::once(NodeRef::TsTypeAnn(&item))
145182                    }));
145183                Box::new(iterator)
145184            }
145185            NodeRef::TsTypeQuery(node) => {
145186                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145187                    .chain(::std::iter::once(NodeRef::TsTypeQueryExpr(&node.expr_name)))
145188                    .chain(node.type_args.iter().flat_map(|item| {
145189                        let item = &*item;
145190                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145191                    }));
145192                Box::new(iterator)
145193            }
145194            NodeRef::TsTypeQueryExpr(node) => match node {
145195                TsTypeQueryExpr::TsEntityName(v0) => {
145196                    Box::new(::std::iter::once(NodeRef::TsEntityName(v0)))
145197                }
145198                TsTypeQueryExpr::Import(v0) => {
145199                    Box::new(::std::iter::once(NodeRef::TsImportType(v0)))
145200                }
145201                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145202            },
145203            NodeRef::TsTypeRef(node) => {
145204                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145205                    .chain(::std::iter::once(NodeRef::TsEntityName(&node.type_name)))
145206                    .chain(node.type_params.iter().flat_map(|item| {
145207                        let item = &*item;
145208                        ::std::iter::once(NodeRef::TsTypeParamInstantiation(&item))
145209                    }));
145210                Box::new(iterator)
145211            }
145212            NodeRef::TsUnionOrIntersectionType(node) => match node {
145213                TsUnionOrIntersectionType::TsUnionType(v0) => {
145214                    Box::new(::std::iter::once(NodeRef::TsUnionType(v0)))
145215                }
145216                TsUnionOrIntersectionType::TsIntersectionType(v0) => {
145217                    Box::new(::std::iter::once(NodeRef::TsIntersectionType(v0)))
145218                }
145219                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145220            },
145221            NodeRef::TsUnionType(node) => {
145222                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145223                    node.types.iter().flat_map(|item| {
145224                        let item = &*item;
145225                        ::std::iter::once(NodeRef::TsType(&item))
145226                    }),
145227                );
145228                Box::new(iterator)
145229            }
145230            NodeRef::UnaryExpr(node) => {
145231                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145232                    .chain(::std::iter::once(NodeRef::UnaryOp(&node.op)))
145233                    .chain({
145234                        let item = &*node.arg;
145235                        ::std::iter::once(NodeRef::Expr(&item))
145236                    });
145237                Box::new(iterator)
145238            }
145239            NodeRef::UnaryOp(node) => match node {
145240                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145241            },
145242            NodeRef::UpdateExpr(node) => {
145243                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145244                    .chain(::std::iter::once(NodeRef::UpdateOp(&node.op)))
145245                    .chain({
145246                        let item = &*node.arg;
145247                        ::std::iter::once(NodeRef::Expr(&item))
145248                    });
145249                Box::new(iterator)
145250            }
145251            NodeRef::UpdateOp(node) => match node {
145252                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145253            },
145254            NodeRef::UsingDecl(node) => {
145255                let iterator = ::std::iter::empty::<NodeRef<'ast>>().chain(
145256                    node.decls
145257                        .iter()
145258                        .flat_map(|item| ::std::iter::once(NodeRef::VarDeclarator(&item))),
145259                );
145260                Box::new(iterator)
145261            }
145262            NodeRef::VarDecl(node) => {
145263                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145264                    .chain(::std::iter::once(NodeRef::VarDeclKind(&node.kind)))
145265                    .chain(
145266                        node.decls
145267                            .iter()
145268                            .flat_map(|item| ::std::iter::once(NodeRef::VarDeclarator(&item))),
145269                    );
145270                Box::new(iterator)
145271            }
145272            NodeRef::VarDeclKind(node) => match node {
145273                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145274            },
145275            NodeRef::VarDeclOrExpr(node) => match node {
145276                VarDeclOrExpr::VarDecl(v0) => Box::new(::std::iter::once(NodeRef::VarDecl(v0))),
145277                VarDeclOrExpr::Expr(v0) => Box::new(::std::iter::once(NodeRef::Expr(v0))),
145278                _ => Box::new(::std::iter::empty::<NodeRef<'ast>>()),
145279            },
145280            NodeRef::VarDeclarator(node) => {
145281                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145282                    .chain(::std::iter::once(NodeRef::Pat(&node.name)))
145283                    .chain(node.init.iter().flat_map(|item| {
145284                        let item = &*item;
145285                        ::std::iter::once(NodeRef::Expr(&item))
145286                    }));
145287                Box::new(iterator)
145288            }
145289            NodeRef::WhileStmt(node) => {
145290                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145291                    .chain({
145292                        let item = &*node.test;
145293                        ::std::iter::once(NodeRef::Expr(&item))
145294                    })
145295                    .chain({
145296                        let item = &*node.body;
145297                        ::std::iter::once(NodeRef::Stmt(&item))
145298                    });
145299                Box::new(iterator)
145300            }
145301            NodeRef::WithStmt(node) => {
145302                let iterator = ::std::iter::empty::<NodeRef<'ast>>()
145303                    .chain({
145304                        let item = &*node.obj;
145305                        ::std::iter::once(NodeRef::Expr(&item))
145306                    })
145307                    .chain({
145308                        let item = &*node.body;
145309                        ::std::iter::once(NodeRef::Stmt(&item))
145310                    });
145311                Box::new(iterator)
145312            }
145313            NodeRef::YieldExpr(node) => {
145314                let iterator =
145315                    ::std::iter::empty::<NodeRef<'ast>>().chain(node.arg.iter().flat_map(|item| {
145316                        let item = &*item;
145317                        ::std::iter::once(NodeRef::Expr(&item))
145318                    }));
145319                Box::new(iterator)
145320            }
145321        }
145322    }
145323}
145324impl<'ast> NodeRef<'ast> {
145325    #[doc = r" Visit all nodes in self in preorder."]
145326    #[doc = r""]
145327    #[doc = r" This is not a part of semver-stable API. It is"]
145328    #[doc = r" experimental and subject to change."]
145329    pub fn experimental_traverse(&'ast self) -> Box<dyn 'ast + Iterator<Item = NodeRef<'ast>>> {
145330        let mut queue = std::collections::VecDeque::<NodeRef<'ast>>::new();
145331        queue.push_back(*self);
145332        Box::new(std::iter::from_fn(move || {
145333            let node: NodeRef<'ast> = queue.pop_front()?;
145334            {
145335                let children = node.experimental_raw_children();
145336                queue.extend(children);
145337            }
145338            Some(node)
145339        }))
145340    }
145341}
145342#[cfg(any(docsrs, feature = "path"))]
145343pub use self::fields::{AstParentKind, AstParentNodeRef};